From 5adc31cb7c723619c11dcf3ce81645943c275f75 Mon Sep 17 00:00:00 2001 From: YuanXu Date: Thu, 6 Jul 2017 23:25:38 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E5=BC=95=E5=85=A5bootstrap,messager,stor?= =?UTF-8?q?e,datetimepicker,modaltrigger=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/zui/boostrap.datetimepicker/index.d.ts | 123 ++++++++++++ .../zui/boostrap.datetimepicker/package.json | 5 + .../zui/boostrap.datetimepicker/tsconfig.json | 27 +++ types/zui/bootstrap.d.ts | 126 +++++++++++++ types/zui/index.d.ts | 33 ++++ types/zui/messager.d.ts | 45 +++++ types/zui/modal.d.ts | 19 ++ types/zui/modal.trigger.d.ts | 50 +++++ types/zui/store.d.ts | 25 +++ types/zui/tsconfig.json | 22 +++ types/zui/tslint.json | 1 + types/zui/zui-tests.ts | 176 ++++++++++++++++++ 12 files changed, 652 insertions(+) create mode 100644 types/zui/boostrap.datetimepicker/index.d.ts create mode 100644 types/zui/boostrap.datetimepicker/package.json create mode 100644 types/zui/boostrap.datetimepicker/tsconfig.json create mode 100644 types/zui/bootstrap.d.ts create mode 100644 types/zui/index.d.ts create mode 100644 types/zui/messager.d.ts create mode 100644 types/zui/modal.d.ts create mode 100644 types/zui/modal.trigger.d.ts create mode 100644 types/zui/store.d.ts create mode 100644 types/zui/tsconfig.json create mode 100644 types/zui/tslint.json create mode 100644 types/zui/zui-tests.ts diff --git a/types/zui/boostrap.datetimepicker/index.d.ts b/types/zui/boostrap.datetimepicker/index.d.ts new file mode 100644 index 0000000000..129d77491a --- /dev/null +++ b/types/zui/boostrap.datetimepicker/index.d.ts @@ -0,0 +1,123 @@ +// Type definitions for Bootstrap datetimepicker v3 3.x +// Project: http://eonasdan.github.io/bootstrap-datetimepicker +// Definitions by: Jesica N. Fera +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +/** + * bootstrap-datetimepicker.js 3.0.0 Copyright (c) 2014 Jonathan Peterson + * Available via the MIT license. + * see: http://eonasdan.github.io/bootstrap-datetimepicker or https://github.com/Eonasdan/bootstrap-datetimepicker for details. + */ + +/// + +import * as moment from 'moment'; + +export as namespace BootstrapV3DatetimePicker; + +export interface DatetimepickerChangeEventObject extends DatetimepickerEventObject { + oldDate: moment.Moment; +} + +export interface DatetimepickerEventObject extends JQueryEventObject { + date: moment.Moment; +} + +export interface DatetimepickerIcons { + time?: string; + date?: string; + up?: string; + down?: string; +} + +export interface DatetimepickerOptions { + weekStart?: number; + todayBtn?: number | boolean; + autoclose?: number | boolean; + todayHighlight?: number | boolean; + startView?: number; + forceParse?: number | boolean; + showMeridian?: boolean | number, + minView?: number; + maxView?: number; + pickDate?: boolean; + pickTime?: boolean; + useMinutes?: boolean; + useSeconds?: boolean; + useCurrent?: boolean; + minuteStepping?: number; + minDate?: moment.Moment | Date | string; + maxDate?: moment.Moment | Date | string; + showToday?: boolean; + collapse?: boolean; + language?: string; + defaultDate?: moment.Moment | Date | string; + disabledDates?: Array; + enabledDates?: Array; + icons?: DatetimepickerIcons; + useStrict?: boolean; + direction?: string; + sideBySide?: boolean; + daysOfWeekDisabled?: Array; + calendarWeeks?: boolean; + format?: string | boolean; + locale?: string; + showTodayButton?: boolean; + viewMode?: string; + inline?: boolean; + toolbarPlacement?: string; + showClear?: boolean; + ignoreReadonly?: boolean; +} + +export interface Datetimepicker { + date(date: moment.Moment | Date | string): void; + date(): moment.Moment; + minDate(date: moment.Moment | Date | string): void; + minDate(): moment.Moment | boolean; + maxDate(date: moment.Moment | Date | string): void; + maxDate(): moment.Moment | boolean; + show(): void; + disable(): void; + enable(): void; + destroy(): void; + toggle(): void; +} + +declare global { + interface JQuery { + datetimepicker(): JQuery; + datetimepicker(options: DatetimepickerOptions): JQuery; + + off(events: "dp.change", selector?: string, handler?: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + off(events: "dp.change", handler: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + + on(events: "dp.change", selector: string, data: any, handler?: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + on(events: "dp.change", selector: string, handler: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + on(events: 'dp.change', handler: (eventObject: DatetimepickerChangeEventObject) => any): JQuery; + + off(events: "dp.show", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + off(events: "dp.show", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + + on(events: "dp.show", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: "dp.show", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: 'dp.show', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; + + off(events: "dp.hide", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + off(events: "dp.hide", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + + on(events: "dp.hide", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: "dp.hide", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: 'dp.hide', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; + + off(events: "dp.error", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + off(events: "dp.error", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + + on(events: "dp.error", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: "dp.error", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: 'dp.error', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; + + data(key: 'DateTimePicker'): Datetimepicker; + } +} diff --git a/types/zui/boostrap.datetimepicker/package.json b/types/zui/boostrap.datetimepicker/package.json new file mode 100644 index 0000000000..4c6d24a445 --- /dev/null +++ b/types/zui/boostrap.datetimepicker/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "moment": ">=2.14.0" + } +} \ No newline at end of file diff --git a/types/zui/boostrap.datetimepicker/tsconfig.json b/types/zui/boostrap.datetimepicker/tsconfig.json new file mode 100644 index 0000000000..c81098be9e --- /dev/null +++ b/types/zui/boostrap.datetimepicker/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../../", + "typeRoots": [ + "../../" + ], + "types": [], + "paths": { + "bootstrap.v3.datetimepicker": [ + "bootstrap.v3.datetimepicker/v3" + ] + }, + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts" + ] +} \ No newline at end of file diff --git a/types/zui/bootstrap.d.ts b/types/zui/bootstrap.d.ts new file mode 100644 index 0000000000..3976b53886 --- /dev/null +++ b/types/zui/bootstrap.d.ts @@ -0,0 +1,126 @@ +// Type definitions for Bootstrap 3.3.5 +// Project: http://twitter.github.com/bootstrap/ +// Definitions by: Boris Yankov +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +interface ModalOptions { + backdrop?: boolean | string; + keyboard?: boolean; + show?: boolean; + remote?: string; +} + +interface ModalOptionsBackdropString { + backdrop?: string; // for "static" + keyboard?: boolean; + show?: boolean; + remote?: string; +} + +interface ScrollSpyOptions { + offset?: number; + target?: string; +} + +interface TooltipOptions { + animation?: boolean; + html?: boolean; + placement?: string | Function; + selector?: string; + title?: string | Function; + trigger?: string; + template?: string; + delay?: number | Object; + container?: string | boolean; + viewport?: string | Function | Object; +} + +interface PopoverOptions { + animation?: boolean; + html?: boolean; + placement?: string | Function; + selector?: string; + trigger?: string; + title?: string | Function; + template?: string; + content?: any; + delay?: number | Object; + container?: string | boolean; + viewport?: string | Function | Object; +} + +interface CollapseOptions { + parent?: any; + toggle?: boolean; +} + +interface CarouselOptions { + interval?: number; + pause?: string; + wrap?: boolean; + keyboard?: boolean; +} + +interface TypeaheadOptions { + source?: any; + items?: number; + minLength?: number; + matcher?: (item: any) => boolean; + sorter?: (items: any[]) => any[]; + updater?: (item: any) => any; + highlighter?: (item: any) => string; +} + +interface AffixOptions { + offset?: number | Function | Object; + target?: any; +} + +interface TransitionEventNames { + end: string; +} + +interface JQuery { + modal(options?: ModalOptions): JQuery; + modal(options?: ModalOptionsBackdropString): JQuery; + modal(command: string): JQuery; + + dropdown(): JQuery; + dropdown(command: string): JQuery; + + scrollspy(command: string): JQuery; + scrollspy(options?: ScrollSpyOptions): JQuery; + + tab(): JQuery; + tab(command: string): JQuery; + + tooltip(options?: TooltipOptions): JQuery; + tooltip(command: string, params?: string): JQuery; + + popover(options?: PopoverOptions): JQuery; + popover(command: string): JQuery; + + alert(): JQuery; + alert(command: string): JQuery; + + button(): JQuery; + button(command: string): JQuery; + + collapse(options?: CollapseOptions): JQuery; + collapse(command: string): JQuery; + + carousel(options?: CarouselOptions): JQuery; + carousel(command: string): JQuery; + + typeahead(options?: TypeaheadOptions): JQuery; + + affix(options?: AffixOptions): JQuery; + + emulateTransitionEnd(duration: number): JQuery; +} + +interface JQuerySupport { + transition: boolean | TransitionEventNames; +} + diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts new file mode 100644 index 0000000000..da8e423a85 --- /dev/null +++ b/types/zui/index.d.ts @@ -0,0 +1,33 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// +/// +/// + +/// +/// +/// + +/// + + +/*~ If this module is a UMD module that exposes a global variable 'myLib' when + *~ loaded outside a module loader environment, declare that global here. + *~ Otherwise, delete this declaration. + */ + + +interface ZuiStatic { + //$.zui.messager + messager: Messager; + Messager: MessagerStatic; + + store: StoreStatic; +} +interface JQueryStatic { + zui: ZuiStatic; + +} \ No newline at end of file diff --git a/types/zui/messager.d.ts b/types/zui/messager.d.ts new file mode 100644 index 0000000000..91878a3232 --- /dev/null +++ b/types/zui/messager.d.ts @@ -0,0 +1,45 @@ +declare enum MessagerTypeEnum { + 'default', 'primary', 'success', 'info', 'warning', 'danger', 'important', 'special' +} +interface Action { + name?: string, + icon?: string, + text?: string + html?: string + action?: ActionFunc; +} + +interface ActionFunc { + (): boolean; +} +interface OnActionFunc { + (name: string, action: string, messager: Messager): any +} + +interface MessagerOption { + type?: MessagerTypeEnum | string; + placement?: string, + time?: number; + message?: string, + parent?: string, + icon?: string, + close?: boolean; + fade?: boolean; + scale?: boolean; + actions?: Array; + onAction?: OnActionFunc; + cssClass?: string, + contentClass?: string, + show?: boolean +} +interface Messager { + show(cb?: Function): any; + show(message: string, cb?: Function): any; + + hide(cb?: Function): any; +} +interface MessagerStatic { + new (option?: MessagerOption): Messager; + new (message: string, option?: MessagerOption): Messager; +} +//sdeclare var messager: Messager; diff --git a/types/zui/modal.d.ts b/types/zui/modal.d.ts new file mode 100644 index 0000000000..5f7a903f4f --- /dev/null +++ b/types/zui/modal.d.ts @@ -0,0 +1,19 @@ + +interface ModalOptions { + backdrop?: boolean | string; + keyboard?: boolean; + show?: boolean; + remote?: string; +} + +interface ModalOptionsBackdropString { + backdrop?: string; // for "static" + keyboard?: boolean; + show?: boolean; + remote?: string; +} +interface JQuery { + modal(options?: ModalOptions): JQuery; + modal(options?: ModalOptionsBackdropString): JQuery; + modal(command: string): JQuery; +} \ No newline at end of file diff --git a/types/zui/modal.trigger.d.ts b/types/zui/modal.trigger.d.ts new file mode 100644 index 0000000000..fee8161ce0 --- /dev/null +++ b/types/zui/modal.trigger.d.ts @@ -0,0 +1,50 @@ +interface ModalTriggerOption { + name?: string, + className?: string, + type?: string, + url?: string, + remote?: string, + iframe?: string, + size?: string, + width?: string, + height?: string, + showHeader?: boolean, + title?: string, + icon?: string, + fade?: boolean, + postion?: string, + backdrop?: boolean, + keyboard?: boolean, + moveable?: boolean, + rememberPos?: boolean, + waittime?: number, + loadingIcon?: string, + + show?(): any; + onShow?(): any; + onHide?(): any; + hidden?(): any; + loaded?(): any; + broken?(): any; +} + +interface ModalTrigger { + show(option?: ModalTriggerOption): any; + close(): any; + toggle(option?: ModalTriggerOption): any; + adjustPostion(option?: ModalTriggerOption): any; + +} +interface ModalTriggerStatic { + new (option?: ModalTriggerOption): ModalTrigger +} + +interface JQuery { + modalTrigger(option?: ModalTriggerOption): JQuery //$('#modal').modalTrigger() + data(value: string): JQuery; +} + +interface ZuiStatic { + ModalTrigger: ModalTriggerStatic; + modalTrigger: ModalTrigger; +} \ No newline at end of file diff --git a/types/zui/store.d.ts b/types/zui/store.d.ts new file mode 100644 index 0000000000..3544cbdd60 --- /dev/null +++ b/types/zui/store.d.ts @@ -0,0 +1,25 @@ + +interface StoreStatic { + enable: boolean; + storage: any; + length(): number; + remove(key: string): any; + get(key: string): T; + set(key: string, value?: T): any; + key(index: number): string; + forEach(cb: (key: string, value: T) => any): any; + serialize(value: any): string; + deserialize(value: string): T; + getAll(): T; + removeItem(key: string): any; + getItem(key: string): string; + setItem(key: string, value: any): any; + clear(): void; + + page: any; + pageGet(key: string): any; + pageSet(key: string, value: any): any; + pageRemove(key: string): any; + pageSave(): any; + pageClear(): any; +} \ No newline at end of file diff --git a/types/zui/tsconfig.json b/types/zui/tsconfig.json new file mode 100644 index 0000000000..83e99ace31 --- /dev/null +++ b/types/zui/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "zui-tests.ts" + ] +} diff --git a/types/zui/tslint.json b/types/zui/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/zui/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts new file mode 100644 index 0000000000..51437097a6 --- /dev/null +++ b/types/zui/zui-tests.ts @@ -0,0 +1,176 @@ +/// +new $.zui.Messager(); + +new $.zui.Messager('提示消息:成功', { + type: 'success' // 定义颜色主题 +}).show(); +new $.zui.Messager("message") +let messagarOption: MessagerOption = {}; +new $.zui.Messager(messagarOption) +new $.zui.Messager("message", messagarOption); +$.zui.messager.show("ok"); + +/******** store *****/ +$.zui.store.set('name', 'catouse'); // 使用本地存储设置'name'值为'catouse' +$.zui.store.set('date', { year: 2014, month: 8, day: 6 }); // 将一个对象存储到本地存储 + +console.log($.zui.store.get('name')); // 从本地存储获取'name'的值 +console.log($.zui.store.get('date').year); // 从本地存储获取'date'值的year属性 + +$.zui.store.forEach(function (key, value) { // 遍历所有本地存储的条目 + console.log(value); +}); + +console.log($.zui.store.key(0)); // 获取本地存储第一个条目的名称 + +$.zui.store.remove('name'); // 从本地存储移除‘name’的值 +$.zui.store.clear(); // 清空所有本地存储的条目 + +/* 以下操作的键值仅针对当前页面 */ +$.zui.store.pageSet('name', 'catouse'); // 使用本地存储设置'name'值为'catouse' +$.zui.store.pageSet('date', { year: 2014, month: 8, day: 6 }); // 将一个对象存储到本地存储 + +console.log($.zui.store.pageGet('name')); // 从本地存储获取'name'的值 +console.log($.zui.store.pageGet('date').year); // 从本地存储获取'date'值的year属性 + +$.zui.store.pageRemove('name'); // 从本地存储移除‘name’的值 +$.zui.store.pageClear(); // 清空所有本地存储的条目 + + +/** + * modal + */ +$('#myModal').modal({ + keyboard: false, + show: true +}) + + +/** + * modal trigger + */ + +$('#triggerButton').modalTrigger({ title: '新的标题' }); + +/* 使用触发器对象直接显示 */ +(new $.zui.ModalTrigger({ title: '新的标题' })).show(); +$.zui.modalTrigger.show({ title: '标题' }); + +/** + * tabs + */ +$().tab('show'); +$('#myTabLink').tab('show'); + +/** + * tooltip + */ +$('[data-toggle="tooltip"]').tooltip(); +$('#element').tooltip('show'); +$('#element').tooltip('show', '这是新的工具提示内容'); + + +/** + * popover + */ +// 或者在初始化时指定弹出方向 +$('[data-toggle="popover"]').popover({ + placement: 'bottom' +}); +$('#myPopover').popover('show'); + +/** + * collapse + */ +$('#myCollapseContent').collapse({ + toggle: false +}); +$().collapse('show') + +$('#myCollapseContent').on('hidden.zui.collapse', function () { + console.log('折叠内容已隐藏。'); +}) + +/** + * carousel + */ +$('.carousel').carousel() + +/** + * datetime picker + */ +// 仅选择日期 +$(".form-date").datetimepicker( +{ + language: "zh-CN", + weekStart: 1, + todayBtn: 1, + autoclose: 1, + todayHighlight: 1, + startView: 2, + minView: 2, + forceParse: 0, + format: "yyyy-mm-dd" +}); +// 选择时间 +$(".form-time").datetimepicker({ + language: "zh-CN", + weekStart: 1, + todayBtn: 1, + autoclose: 1, + todayHighlight: 1, + startView: 1, + minView: 0, + maxView: 1, + forceParse: 0, + format: 'hh:ii' +}); +// 选择时间和日期 +$(".form-datetime").datetimepicker( +{ + weekStart: 1, + todayBtn: 1, + autoclose: 1, + todayHighlight: 1, + startView: 2, + forceParse: 0, + showMeridian: 1, + format: "yyyy-mm-dd hh:ii" +}); + +// 仅选择日期 +$(".form-date").datetimepicker( +{ + language: "zh-CN", + weekStart: 1, + todayBtn: 1, + autoclose: 1, + todayHighlight: 1, + startView: 2, + minView: 2, + forceParse: 0, + format: "yyyy-mm-dd" +}); +// 选择时间 +$(".form-time").datetimepicker({ + language: "zh-CN", + weekStart: 1, + todayBtn: 1, + autoclose: 1, + todayHighlight: 1, + startView: 1, + minView: 0, + maxView: 1, + forceParse: 0, + format: 'hh:ii' +}); + +/** + * chosen + */ + +$('select.chosen-select').chosen({ + no_results_text: '没有找到', // 当检索时没有找到匹配项时显示的提示文本 + disable_search_threshold: 10, // 10 个以下的选择项则不显示检索框 + search_contains: true // 从任意位置开始检索 +}); \ No newline at end of file From 816fa90b77b83a4ba0af94d972b1e8fd5e362196 Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 08:26:25 +0800 Subject: [PATCH 02/15] add color.d.ts --- types/zui/color.d.ts | 31 +++++++++++++++++++++++++++++++ types/zui/index.d.ts | 2 +- types/zui/tsconfig.json | 2 +- types/zui/zui-tests.ts | 14 +++++++++++++- 4 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 types/zui/color.d.ts diff --git a/types/zui/color.d.ts b/types/zui/color.d.ts new file mode 100644 index 0000000000..e19e13c3c2 --- /dev/null +++ b/types/zui/color.d.ts @@ -0,0 +1,31 @@ +interface Color { + rgb(rgbaColor?: string): object; + hue(hue: string): string, + darken(percent: number): string; + lighten(percent: number): string; + clone(): Color; + fade(percent: number): any; + toHsl(): object; + luma(): string; + saturate(): string; + contrast(dark: string, light: string, threshold: number): string; + hexStr(): string; + toCssStr(): string; +} + +interface ColorStatic { + new (): Color; + new (hexStr: string): Color; + new (r: number, g: number, b: number): Color; + new (r: number, g: number, b: number, a: number): Color; + new (rgbColorOrRgbaColorOrName: string): Color; + isColor(str: string): boolean; + names: Array; +} +interface ColorSet { + get(name: string): Color; +} +interface ZuiStatic { + Color: ColorStatic; + colorset: ColorSet; +} \ No newline at end of file diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index da8e423a85..4db802ff52 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -12,7 +12,7 @@ /// /// - +/// /*~ If this module is a UMD module that exposes a global variable 'myLib' when *~ loaded outside a module loader environment, declare that global here. diff --git a/types/zui/tsconfig.json b/types/zui/tsconfig.json index 83e99ace31..06fa3ab094 100644 --- a/types/zui/tsconfig.json +++ b/types/zui/tsconfig.json @@ -19,4 +19,4 @@ "index.d.ts", "zui-tests.ts" ] -} +} \ No newline at end of file diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index 51437097a6..9848744732 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -173,4 +173,16 @@ $('select.chosen-select').chosen({ no_results_text: '没有找到', // 当检索时没有找到匹配项时显示的提示文本 disable_search_threshold: 10, // 10 个以下的选择项则不显示检索框 search_contains: true // 从任意位置开始检索 -}); \ No newline at end of file +}); + +/** + * color + */ +// 创建颜色实例 +var myColor = new $.zui.Color('#095823'); + +// 调用实例方法 +var myHsl = myColor.toHsl(); + +var zuiPrimaryColor = $.zui.colorset.get('primary'); +console.log('ZUI primary color is', zuiPrimaryColor.toCssStr()); \ No newline at end of file From 79db06a10ede2c84fcf9c03a6c1fcafe9c3cdedd Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 09:47:13 +0800 Subject: [PATCH 03/15] add draggable --- types/zui/draggable.d.ts | 32 ++++++++++++++ types/zui/index.d.ts | 2 +- types/zui/zui-tests.ts | 95 ++++++++++++++++++++++++---------------- 3 files changed, 90 insertions(+), 39 deletions(-) create mode 100644 types/zui/draggable.d.ts diff --git a/types/zui/draggable.d.ts b/types/zui/draggable.d.ts new file mode 100644 index 0000000000..723c304fc7 --- /dev/null +++ b/types/zui/draggable.d.ts @@ -0,0 +1,32 @@ + +interface Postion { + left: number; + top: number; + width: number; + height: number; +} +interface DraggableEvent { + event?: object; + element?: object; + pos?: Postion; + offset?: object; + smallOffset?: object; + startOffset?: object; + +} +interface DraggableOption { + container?: string, + move?: boolean; + selector?: string, + handle?: string, + mouseButton?: string, + stopPropagation?: boolean, + before?(e?: DraggableEvent): boolean; + drag?(e: DraggableEvent): void; + finish?(e: DraggableEvent): void +} + +interface JQuery { + draggable(command: string): JQuery; + draggable(option: DraggableOption): JQuery; +} \ No newline at end of file diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index 4db802ff52..78ce948431 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -13,7 +13,7 @@ /// /// - +/// /*~ If this module is a UMD module that exposes a global variable 'myLib' when *~ loaded outside a module loader environment, declare that global here. *~ Otherwise, delete this declaration. diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index 9848744732..426a54ce43 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -83,7 +83,7 @@ $('#myPopover').popover('show'); * collapse */ $('#myCollapseContent').collapse({ - toggle: false + toggle: false }); $().collapse('show') @@ -101,22 +101,22 @@ $('.carousel').carousel() */ // 仅选择日期 $(".form-date").datetimepicker( -{ - language: "zh-CN", - weekStart: 1, - todayBtn: 1, - autoclose: 1, - todayHighlight: 1, - startView: 2, - minView: 2, - forceParse: 0, - format: "yyyy-mm-dd" -}); + { + language: "zh-CN", + weekStart: 1, + todayBtn: 1, + autoclose: 1, + todayHighlight: 1, + startView: 2, + minView: 2, + forceParse: 0, + format: "yyyy-mm-dd" + }); // 选择时间 $(".form-time").datetimepicker({ - language: "zh-CN", + language: "zh-CN", weekStart: 1, - todayBtn: 1, + todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 1, @@ -127,35 +127,35 @@ $(".form-time").datetimepicker({ }); // 选择时间和日期 $(".form-datetime").datetimepicker( -{ - weekStart: 1, - todayBtn: 1, - autoclose: 1, - todayHighlight: 1, - startView: 2, - forceParse: 0, - showMeridian: 1, - format: "yyyy-mm-dd hh:ii" -}); + { + weekStart: 1, + todayBtn: 1, + autoclose: 1, + todayHighlight: 1, + startView: 2, + forceParse: 0, + showMeridian: 1, + format: "yyyy-mm-dd hh:ii" + }); // 仅选择日期 $(".form-date").datetimepicker( -{ - language: "zh-CN", - weekStart: 1, - todayBtn: 1, - autoclose: 1, - todayHighlight: 1, - startView: 2, - minView: 2, - forceParse: 0, - format: "yyyy-mm-dd" -}); + { + language: "zh-CN", + weekStart: 1, + todayBtn: 1, + autoclose: 1, + todayHighlight: 1, + startView: 2, + minView: 2, + forceParse: 0, + format: "yyyy-mm-dd" + }); // 选择时间 $(".form-time").datetimepicker({ - language: "zh-CN", + language: "zh-CN", weekStart: 1, - todayBtn: 1, + todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 1, @@ -185,4 +185,23 @@ var myColor = new $.zui.Color('#095823'); var myHsl = myColor.toHsl(); var zuiPrimaryColor = $.zui.colorset.get('primary'); -console.log('ZUI primary color is', zuiPrimaryColor.toCssStr()); \ No newline at end of file +console.log('ZUI primary color is', zuiPrimaryColor.toCssStr()); + +/** + * + */ +let count = 0; +$('#draggableBtn').draggable({ + container: '#draggableBox', + before: function () { + console.log(count++ + ': ' + '[开始] 拖动...\n'); + return true; + }, + drag: function (e: DraggableEvent) { + console.log(count++ + ': ' + '拖动: pos = ' + JSON.stringify(e.pos) + ', offset = ' + JSON.stringify(e.offset) + '\n'); + // console.log('(' + e.pos.left + ', ' + e.pos.top + ')'); + }, + finish: function (e: DraggableEvent) { + console.log(count++ + ': ' + '[完毕]:pos = ' + JSON.stringify(e.pos) + ', offset = ' + JSON.stringify(e.offset) + '\n'); + } +}); \ No newline at end of file From 07170475ac8ad88984f173d2ebc48897ae55783f Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 09:54:47 +0800 Subject: [PATCH 04/15] add droppable --- types/zui/droppable.d.ts | 41 ++++++++++++++++++++++++++++++++++++++++ types/zui/index.d.ts | 3 +++ types/zui/zui-tests.ts | 27 +++++++++++++++++++++++++- 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 types/zui/droppable.d.ts diff --git a/types/zui/droppable.d.ts b/types/zui/droppable.d.ts new file mode 100644 index 0000000000..24fccfd501 --- /dev/null +++ b/types/zui/droppable.d.ts @@ -0,0 +1,41 @@ + +interface Postion { + left: number; + top: number; + width: number; + height: number; +} +interface DroppableEvent { + event?: object; + element?: JQuery; + target?: JQuery; + pos?: Postion; + offset?: object; + smallOffset?: object; + startOffset?: object; + +} +interface DraggableOption { + container?: string, + selector?: string, + handle?: string, + target: JQuery | string, + + flex?: boolean, + deviation?: number, + sensorOffsetX?: number, + sensorOffsetY?: number, + + stopPropagation?: boolean, + before?(e?: DroppableEvent): boolean; + start?(e?: DroppableEvent): void; + drop?(e: DroppableEvent): void; + beforeDrop?(e: DroppableEvent): boolean; + finish?(e: DroppableEvent): void; + always?(e: DroppableEvent): void; +} + +interface JQuery { + droppable(command: string): JQuery; + droppable(option: DraggableOption): JQuery; +} \ No newline at end of file diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index 78ce948431..5e97854f83 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -14,6 +14,9 @@ /// /// /// +/// + + /*~ If this module is a UMD module that exposes a global variable 'myLib' when *~ loaded outside a module loader environment, declare that global here. *~ Otherwise, delete this declaration. diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index 426a54ce43..f407f0f054 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -188,7 +188,7 @@ var zuiPrimaryColor = $.zui.colorset.get('primary'); console.log('ZUI primary color is', zuiPrimaryColor.toCssStr()); /** - * + * draggable */ let count = 0; $('#draggableBtn').draggable({ @@ -204,4 +204,29 @@ $('#draggableBtn').draggable({ finish: function (e: DraggableEvent) { console.log(count++ + ': ' + '[完毕]:pos = ' + JSON.stringify(e.pos) + ', offset = ' + JSON.stringify(e.offset) + '\n'); } +}); + +/** + * droppable + */ +$('#multiDroppableContainer').droppable({ + selector: '.btn-droppable', // 定义允许拖放的元素 + target: '.droppable-target', + start: function () { + $('#multiDroppableContainer .droppable-target').removeClass('panel-warning').removeClass('panel-success').find('.panel-heading').text('拖动到这里吗?'); + }, + drop: function (event: DroppableEvent) { + var msg = '真棒!'; + $('#multiDroppableContainer .droppable-target').removeClass('panel-success').removeClass('panel-warning'); + if (event.target && event.element) { + var elementId = event.element.find('.btn-droppable-id').text(); + event.target.addClass('panel-success').find('.panel-heading').text('成功将【按钮#' + elementId + '】拖到目的地。'); + msg += '成功拖动【按钮#' + elementId + '】到区域 ' + event.target.find('.area-name').text(); + } + $.zui.messager.show(msg); + }, + drag: function (event: DroppableEvent) { + $('#multiDroppableContainer .droppable-target').removeClass('panel-success').removeClass('panel-warning'); + if (event.target) event.target.addClass('panel-warning'); + } }); \ No newline at end of file From 0a93d659eaa9b0048bdc5f3d15743f5f52befb43 Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 10:18:12 +0800 Subject: [PATCH 05/15] add sortable --- types/zui/draggable.d.ts | 3 ++- types/zui/droppable.d.ts | 8 ++++---- types/zui/index.d.ts | 2 +- types/zui/sortable.d.ts | 21 +++++++++++++++++++++ types/zui/zui-tests.ts | 17 ++++++++++++++++- 5 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 types/zui/sortable.d.ts diff --git a/types/zui/draggable.d.ts b/types/zui/draggable.d.ts index 723c304fc7..163d5cfa5d 100644 --- a/types/zui/draggable.d.ts +++ b/types/zui/draggable.d.ts @@ -7,7 +7,8 @@ interface Postion { } interface DraggableEvent { event?: object; - element?: object; + element?: JQuery | object; + target?: JQuery | object; pos?: Postion; offset?: object; smallOffset?: object; diff --git a/types/zui/droppable.d.ts b/types/zui/droppable.d.ts index 24fccfd501..d06c762a6c 100644 --- a/types/zui/droppable.d.ts +++ b/types/zui/droppable.d.ts @@ -15,7 +15,7 @@ interface DroppableEvent { startOffset?: object; } -interface DraggableOption { +interface DroppableOption { container?: string, selector?: string, handle?: string, @@ -26,16 +26,16 @@ interface DraggableOption { sensorOffsetX?: number, sensorOffsetY?: number, - stopPropagation?: boolean, before?(e?: DroppableEvent): boolean; start?(e?: DroppableEvent): void; - drop?(e: DroppableEvent): void; + drag?(e: DroppableEvent): void; beforeDrop?(e: DroppableEvent): boolean; + drop?(e: DroppableEvent): void; finish?(e: DroppableEvent): void; always?(e: DroppableEvent): void; } interface JQuery { droppable(command: string): JQuery; - droppable(option: DraggableOption): JQuery; + droppable(option: DroppableOption): JQuery; } \ No newline at end of file diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index 5e97854f83..e3699d1223 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -15,7 +15,7 @@ /// /// /// - +/// /*~ If this module is a UMD module that exposes a global variable 'myLib' when *~ loaded outside a module loader environment, declare that global here. diff --git a/types/zui/sortable.d.ts b/types/zui/sortable.d.ts new file mode 100644 index 0000000000..4c3fc55bc1 --- /dev/null +++ b/types/zui/sortable.d.ts @@ -0,0 +1,21 @@ +interface SortEvent { + list: Array; + element: JQuery | object; +} + +interface SortableOption { + selector?: string, + trigger?: string, + reverse?: boolean, + dragCssClass?: string, + sortingClass?: string, + mouseButton?: string, + start?(e?: SortEvent): void; + order?(e?: SortEvent): void; + finish?(e?: SortEvent): void; +} + +interface JQuery { + sortable(command?: string): JQuery + sortable(option?: SortableOption): JQuery +} \ No newline at end of file diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index f407f0f054..859b65b4e1 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -229,4 +229,19 @@ $('#multiDroppableContainer').droppable({ $('#multiDroppableContainer .droppable-target').removeClass('panel-success').removeClass('panel-warning'); if (event.target) event.target.addClass('panel-warning'); } -}); \ No newline at end of file +}); + +/** + * sortable + */ +// 定义选项对象 +var options = { + selector: '.sortable-item', + finish: function (e: SortEvent) { + console.log('排序完成:', e); + }, + // 设置更多选项... +}; + +// 初始化时传入选项参数 +$('#sortableList').sortable(options) \ No newline at end of file From 34095176bf60538f886f392b67f5e9f14f55de3d Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 14:33:55 +0800 Subject: [PATCH 06/15] add imagecutter --- types/zui/imagecutter.d.ts | 33 +++++++++++++++++++++++++++++++++ types/zui/index.d.ts | 2 ++ types/zui/selectable.d.ts | 31 +++++++++++++++++++++++++++++++ types/zui/zui-tests.ts | 34 +++++++++++++++++++++++++++++++++- 4 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 types/zui/imagecutter.d.ts create mode 100644 types/zui/selectable.d.ts diff --git a/types/zui/imagecutter.d.ts b/types/zui/imagecutter.d.ts new file mode 100644 index 0000000000..c849a4e61d --- /dev/null +++ b/types/zui/imagecutter.d.ts @@ -0,0 +1,33 @@ +interface ImageCutterOption { + coverColor?: string, + coverOpacity?: number, + defaultWidth?: number, + defaultHeight?: number, + fixedRatio?: boolean, + minWidth?: number, + minHeight?: number, + post?: string, + get?: string +} +interface ImageData { + originWidth: number, + originHeight: number, + scaled: boolean, + scaleHeight: number, + scaleWidth: number, + width: number, + height: number, + left: number, + right: number, + top: number, + bottom: number +} +interface ImageCutter { + resetImage(img: string): any; + getData(): ImageData; +} + +interface JQuery { + imgCutter(option: ImageCutterOption): JQuery; + data(cmd: string): ImageCutter; +} \ No newline at end of file diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index e3699d1223..a9da140191 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -16,6 +16,8 @@ /// /// /// +/// +/// /*~ If this module is a UMD module that exposes a global variable 'myLib' when *~ loaded outside a module loader environment, declare that global here. diff --git a/types/zui/selectable.d.ts b/types/zui/selectable.d.ts new file mode 100644 index 0000000000..92ee5e23ba --- /dev/null +++ b/types/zui/selectable.d.ts @@ -0,0 +1,31 @@ +interface SelectableEvent { + selections: Map; + selected: Array; +} +interface SelectableOption { + selector?: string, + trigger?: string, + rangeStyle?: string|object, + clickBehavior?: string, + mouseButton?: string, + ignoreVal?: number, + + start?(e?: SelectableEvent): boolean; + finish?(e?: SelectableEvent): void; + select?(e?: SelectableEvent): void; + unselect?(e?: SelectableEvent): void; +} + +interface Selectable { + toggle(): any; + toggle(elementOrId: string | object | JQuery): any; + select(): any; + select(elementOrId: string | object | JQuery): any; + unselect(): any; + unselect(elementOrId: string | object | JQuery): any; +} + +interface JQuery { + selectable(option?: SelectableOption): JQuery; + +} \ No newline at end of file diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index 859b65b4e1..fefd533c47 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -244,4 +244,36 @@ var options = { }; // 初始化时传入选项参数 -$('#sortableList').sortable(options) \ No newline at end of file +$('#sortableList').sortable(options) + + +/** + * selectable + */ + +$('#selectable').selectable({ + selector: 'div', // #selectable 内的所有 div 都可以进行选中 + rangeStyle: { + border: '1px solid red' // 拖选范围指示矩形边框设置为红色 + }, + finish: function (data: SelectableEvent) { // 选择结束时的回调函数 + // 所有元素的选中或非选中状态 + console.log(data.selections); + + // 所有已选中的元素 ID 值的数组 + console.log(data.selected); + } +}); + +/** + * image cutter + */ + +// 获取 imgCutter 实例 +var myImgCutter = $('#imgCutter').data('zui.imgCutter'); + +// 调用 resetImg 方法 +myImgCutter.resetImage('http://zui.sexy/docs/img/img1.jpg'); + +// 调用 getData 方法 +var myImgCutterData = myImgCutter.getData(); \ No newline at end of file From f1965f5eba6d370b5167263b8fb7d7df38d06cc8 Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 15:45:50 +0800 Subject: [PATCH 07/15] add datatable --- types/zui/datatable.d.ts | 80 ++++++++++++++++++++++++++++++++++++++++ types/zui/index.d.ts | 2 + types/zui/treemenu.d.ts | 43 +++++++++++++++++++++ types/zui/zui-tests.ts | 51 ++++++++++++++++++++++++- 4 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 types/zui/datatable.d.ts create mode 100644 types/zui/treemenu.d.ts diff --git a/types/zui/datatable.d.ts b/types/zui/datatable.d.ts new file mode 100644 index 0000000000..15734e1e48 --- /dev/null +++ b/types/zui/datatable.d.ts @@ -0,0 +1,80 @@ +interface Col { + width?: number, + text?: string, + type?: string, + flex?: boolean, + colClass?: string, + sort?: string, + ignore?: boolean +} +interface Row { + id?: string, + checked?: boolean, + cssClass?: string, + css?: string, + data?: Array +} +interface DataTableData { + rows: Array, + cols: Array +} +interface AfterLoadEvent { + data: DataTableData; +} +interface SortEvent { + sorter: { + index: number, + sortUp: boolean, + } +} +interface SizeChangeEvent { + changes: { + change: string, + oldWidth: number, + newWidth: number, + colIndex: number, + } +} +interface ChecksChangeEvent { + checks: { + checkedAll: boolean, + checks: Array + } +} +interface DataTableOption { + checkable?: boolean, + checkByClickRow?: boolean, + checkedClass?: string, + storage?: boolean, + sortable?: boolean, + fixedHeader?: boolean, + fixedHeaderOffset?: number, + fixedLeftWidth?: string, + fixedRightWidth?: string, + flexHeadDrag?: boolean, + scrollPos?: string, + rowHover?: boolean, + colHover?: boolean, + fixCellHeight?: boolean, + minColWidth?: number, + minFixedLeftWidth?: number, + minFixedRightWidth?: number, + minFlexAreaWidth?: number + selectable?: boolean | object, + + afterLoad?(event: AfterLoadEvent): void; + ready?(): void; + sort?(event: SortEvent): void; + sizeChanged?(event: SizeChangeEvent): void; + checksChanged?(event: ChecksChangeEvent): void; +} + +interface DataTable { + checks: { checkedAll: boolean, checks: Array } +} + +interface JQuery { + datatable(option?: DataTableOption): JQuery; + datatable(command: string, option?: DataTableOption): JQuery; + datatable(command: string, data: DataTableData): JQuery; +} \ No newline at end of file diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index a9da140191..2bd66ea5e1 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -18,6 +18,8 @@ /// /// /// +/// +/// /*~ If this module is a UMD module that exposes a global variable 'myLib' when *~ loaded outside a module loader environment, declare that global here. diff --git a/types/zui/treemenu.d.ts b/types/zui/treemenu.d.ts new file mode 100644 index 0000000000..3512efe8ae --- /dev/null +++ b/types/zui/treemenu.d.ts @@ -0,0 +1,43 @@ +interface TreeNode { + title?: string, + url?: string, + html?: string, + children?: Array; + open?: boolean, + id?: string +} +interface TreeMenuOption { + animate?: boolean, + initialState?: string, + data?: Array + itemCreator?(li: JQuery | object, item: TreeNode): any, + itemWrapper?: boolean +} + +interface TreeMenu { + expand(): void; + expand(params: JQuery): void; + expand(params: JQuery, disableAnimate: boolean): void; + + collapse(): void; + collapse(params: JQuery): void; + collapse(params: JQuery, disableAnimate: boolean): void; + + toggle(): void; + toggle(params: JQuery): void; + toggle(params: JQuery, disableAnimate: boolean): void; + + show(): void; + show(params: JQuery): void; + show(params: JQuery, disableAnimate: boolean): void; + + add(element: JQuery, items: Array, expand?: boolean, disabledAnimate?: boolean): void; + toData($ul?: JQuery, filter?: string): object; + + reload(data: Array):void; + remove(): void; + empty(): void; +} +interface JQuery { + tree(option?: TreeMenuOption): JQuery +} \ No newline at end of file diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index fefd533c47..12ce598c51 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -276,4 +276,53 @@ var myImgCutter = $('#imgCutter').data('zui.imgCutter'); myImgCutter.resetImage('http://zui.sexy/docs/img/img1.jpg'); // 调用 getData 方法 -var myImgCutterData = myImgCutter.getData(); \ No newline at end of file +var myImgCutterData = myImgCutter.getData(); + +/** + * treemenu + */ +var myTreeData = [{ + title: '水果', + url: 'http://zui.sexy', + open: true, + children: [ + { title: '橘子' }, + { + title: '瓜', + children: [ + { title: '西瓜' }, + { title: '黄瓜' } + ] + } + ] +}, { + title: '坚果', + children: [ + { title: '向日葵' }, + { title: '瓜子' } + ] +}, { + title: '蔬菜' +}]; + +$('#myTree').tree({ data: myTreeData }); + + +/** + * datatable + */ +$('table.datatable').datatable({ sortable: true }); +// 使用data参数更新数据: +$('table.datatable').datatable('load', { + cols: [ + { width: 80, text: '#', type: 'number', flex: false, colClass: 'text-center' }, + { width: 160, text: '时间', type: 'date', flex: false, sort: 'down' }, + { width: 80, text: '名称', type: 'string', flex: true, colClass: '' } + ], + rows: [ + { checked: false, data: [1, '2016-01-18 11:09:36', '新的名称示例1'] }, + { checked: false, data: [2, '2016-01-22 12:06:16', '新的名称示例2'] }, + // 更多数据 + ] +}); + From 23cdb472bbfd69f4494a810878c040e58e3d249b Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 17:17:06 +0800 Subject: [PATCH 08/15] add uploader --- types/zui/index.d.ts | 1 + types/zui/uploader.d.ts | 148 ++++++++++++++++++++++++++++++++++++++++ types/zui/zui-tests.ts | 11 +++ 3 files changed, 160 insertions(+) create mode 100644 types/zui/uploader.d.ts diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index 2bd66ea5e1..21c4dfe1a8 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -20,6 +20,7 @@ /// /// /// +/// /*~ If this module is a UMD module that exposes a global variable 'myLib' when *~ loaded outside a module loader environment, declare that global here. diff --git a/types/zui/uploader.d.ts b/types/zui/uploader.d.ts new file mode 100644 index 0000000000..18ebfb1127 --- /dev/null +++ b/types/zui/uploader.d.ts @@ -0,0 +1,148 @@ +interface UploaderOption { + drop_element?: string, + browse_button?: string, + url: string, + qiniu?: object, + filters?: { + mime_type: Array<{ + title?: string, + extensions?: string + }>, + max_file_size?: string, + prevent_duplicates?: string + }, + fileList?: string, + fileTemplate?: string, + fileFormater?($file: JQuery, file: FileObj, status: STATUS): void; + fileIconCreator?(fileType: string, file: FileObj, uploader: Uploader): void; + staticFiles?: Array<{ + id?: string, + name?: string, + type?: string, + size?: string, + origSize?: string, + lastModifiedDate?: Date + }>; + rename?: boolean, + renameExtension?: boolean, + renameByClick?: boolean, + autoUpload?: boolean, + browseByClickList?: boolean, + dropPlaceholder?: boolean, + previewImageIcon?: boolean, + sendFileName?: boolean, + sendFileId?: boolean, + responseHandler?: boolean | Function, + limitFilesCount?: boolean | number, + deleteConfirm?: boolean | string, + removeUploaded?: boolean, + statusCreator?(total: UploadProgress, state: STATUS, uploader: Uploader): void; + previewImageSize?: { width: number, height: number }, + uploadedMessage?: boolean, + deleteActionOnDone?: boolean, + renameActionOnDone?: boolean, + headers?: object, + multipart?: boolean, + multipart_params?: object | Function, + max_retries?: number, + chunk_size?: string, + resize?: { + width?: number, + height?: number, + crop?: boolean, + quuality?: number, + preserve_headers?: boolean + }, + multi_selection?: boolean, + unique_names?: boolean, + runtimes?: string, + file_data_name?: string, + flash_swf_url?: string, + silverlight_xap_url?: string, + lang?: string, + + onInit?(): void, + onFilesAdded?(fiels: Array): void; + onUploadProgress?(file: FileObj): void; + onFileUploaded?(file: FileObj, responseObject: ResponseObject): void + onUploadComplete?(files: Array): void, + onFilesRemoved?(files: Array): void, + onChunkUploaded?(file: FileObj, responseObject: ResponseObject): void, + onUploadFile?(file: FileObj): void, + onBeforeUpload?(file: FileObj): void, + onStateChanged?(status: STATUS): void, + onQueueChanged?(): void, + onError?(error: { error: ERRORS, message: string, file: FileObj }): void +} +interface ResponseObject { + response?: string, + responseHeaders?: object, + status?: number, + offset?: number, + total?: number +} +declare enum STATUS { + STOPPED = 1, STARTED = 2, QUEUED = 1, UPLOADING = 2, FAILED = 3, DONE = 4 +} +interface FileObj { + id?: string, + name?: string, + type?: string, + ext?: string, + isImage?: boolean, + previewImage?: string, + size?: number, + origSize?: number, + loaded?: number, + percent?: number, + status?: STATUS, + lastModifiedDate?: Date, + getNative(): File, + destroy(): void +} +interface UploadProgress { + size?: number, + loaded?: number, + uploaded?: number, + failed?: number, + queued?: number, + percent?: number, + bytesPerSec?: number +} +declare enum ERRORS { + GENERIC_ERROR = -100, + HTTP_ERROR = -200, + IO_ERROR = -300, + SECURITY_ERROR = -400, + INIT_ERROR = -500, + FILE_SIZE_ERROR = -600, + FILE_EXTENSION_ERROR = -601, + FILE_DUPLICATE_ERROR = -602, + IMAGE_FORMAT_ERROR = -700, + IMAGE_MEMORY_ERROR = -701, + IMAGE_DIMENSIONS_ERROR = -702 +} +interface Uploader { + showMessage(message: string, type: string, time?: number): void; + hideMessage(): void; + start(): void, + stop(): void, + getState(): STATUS, + isStarted(): boolean, + isStopped(): boolean, + getFiles(): Array; + getTotal(): UploadProgress, + disableBrowse(disable: boolean): void, + getFile(id: string): FileObj, + showFile(file: FileObj | Array): void; + removeFile(file: FileObj): void; + destroy(): void, + showStatus(): void +} +interface UplaoderStatic { + +} +interface JQuery { + uploader(option: UploaderOption): JQuery; + +} \ No newline at end of file diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index 12ce598c51..ea90bd89af 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -326,3 +326,14 @@ $('table.datatable').datatable('load', { ] }); + +/** + * uplaoder + */ +$('#myUploader').uploader({ + url: '...', + // ..., + onUploadFile: function(file:FileObj) { + console.log('上传成功', file); + } +}); \ No newline at end of file From aae9945f3075cf08d37183e68803e27b5f8b23b2 Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 17:30:27 +0800 Subject: [PATCH 09/15] change packagename --- types/zui/boostrap.datetimepicker/index.d.ts | 7 +++---- types/zui/bootstrap.d.ts | 8 ++++---- types/zui/color.d.ts | 5 +++++ types/zui/datatable.d.ts | 5 +++++ types/zui/draggable.d.ts | 4 ++++ types/zui/droppable.d.ts | 4 ++++ types/zui/imagecutter.d.ts | 5 +++++ types/zui/messager.d.ts | 5 +++++ types/zui/modal.d.ts | 4 ++++ types/zui/modal.trigger.d.ts | 5 +++++ types/zui/selectable.d.ts | 5 +++++ types/zui/sortable.d.ts | 5 +++++ types/zui/store.d.ts | 4 ++++ types/zui/treemenu.d.ts | 5 +++++ types/zui/uploader.d.ts | 5 +++++ 15 files changed, 68 insertions(+), 8 deletions(-) diff --git a/types/zui/boostrap.datetimepicker/index.d.ts b/types/zui/boostrap.datetimepicker/index.d.ts index 129d77491a..9f53c1eee9 100644 --- a/types/zui/boostrap.datetimepicker/index.d.ts +++ b/types/zui/boostrap.datetimepicker/index.d.ts @@ -1,8 +1,7 @@ -// Type definitions for Bootstrap datetimepicker v3 3.x -// Project: http://eonasdan.github.io/bootstrap-datetimepicker -// Definitions by: Jesica N. Fera +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.3 /** * bootstrap-datetimepicker.js 3.0.0 Copyright (c) 2014 Jonathan Peterson diff --git a/types/zui/bootstrap.d.ts b/types/zui/bootstrap.d.ts index 3976b53886..62f680e5b3 100644 --- a/types/zui/bootstrap.d.ts +++ b/types/zui/bootstrap.d.ts @@ -1,8 +1,8 @@ -// Type definitions for Bootstrap 3.3.5 -// Project: http://twitter.github.com/bootstrap/ -// Definitions by: Boris Yankov +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.3 + interface ModalOptions { backdrop?: boolean | string; diff --git a/types/zui/color.d.ts b/types/zui/color.d.ts index e19e13c3c2..712577f86f 100644 --- a/types/zui/color.d.ts +++ b/types/zui/color.d.ts @@ -1,3 +1,8 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + interface Color { rgb(rgbaColor?: string): object; hue(hue: string): string, diff --git a/types/zui/datatable.d.ts b/types/zui/datatable.d.ts index 15734e1e48..76d271f458 100644 --- a/types/zui/datatable.d.ts +++ b/types/zui/datatable.d.ts @@ -1,3 +1,8 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + interface Col { width?: number, text?: string, diff --git a/types/zui/draggable.d.ts b/types/zui/draggable.d.ts index 163d5cfa5d..24c6eeae9d 100644 --- a/types/zui/draggable.d.ts +++ b/types/zui/draggable.d.ts @@ -1,3 +1,7 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped interface Postion { left: number; diff --git a/types/zui/droppable.d.ts b/types/zui/droppable.d.ts index d06c762a6c..792e15eed6 100644 --- a/types/zui/droppable.d.ts +++ b/types/zui/droppable.d.ts @@ -1,3 +1,7 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped interface Postion { left: number; diff --git a/types/zui/imagecutter.d.ts b/types/zui/imagecutter.d.ts index c849a4e61d..64dfc3700a 100644 --- a/types/zui/imagecutter.d.ts +++ b/types/zui/imagecutter.d.ts @@ -1,3 +1,8 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + interface ImageCutterOption { coverColor?: string, coverOpacity?: number, diff --git a/types/zui/messager.d.ts b/types/zui/messager.d.ts index 91878a3232..a7397eff19 100644 --- a/types/zui/messager.d.ts +++ b/types/zui/messager.d.ts @@ -1,3 +1,8 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + declare enum MessagerTypeEnum { 'default', 'primary', 'success', 'info', 'warning', 'danger', 'important', 'special' } diff --git a/types/zui/modal.d.ts b/types/zui/modal.d.ts index 5f7a903f4f..7bc8b22da9 100644 --- a/types/zui/modal.d.ts +++ b/types/zui/modal.d.ts @@ -1,3 +1,7 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped interface ModalOptions { backdrop?: boolean | string; diff --git a/types/zui/modal.trigger.d.ts b/types/zui/modal.trigger.d.ts index fee8161ce0..8cb71d6b29 100644 --- a/types/zui/modal.trigger.d.ts +++ b/types/zui/modal.trigger.d.ts @@ -1,3 +1,8 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + interface ModalTriggerOption { name?: string, className?: string, diff --git a/types/zui/selectable.d.ts b/types/zui/selectable.d.ts index 92ee5e23ba..1cb91ffe8c 100644 --- a/types/zui/selectable.d.ts +++ b/types/zui/selectable.d.ts @@ -1,3 +1,8 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + interface SelectableEvent { selections: Map; selected: Array; diff --git a/types/zui/sortable.d.ts b/types/zui/sortable.d.ts index 4c3fc55bc1..226b445837 100644 --- a/types/zui/sortable.d.ts +++ b/types/zui/sortable.d.ts @@ -1,3 +1,8 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + interface SortEvent { list: Array; element: JQuery | object; diff --git a/types/zui/store.d.ts b/types/zui/store.d.ts index 3544cbdd60..0da80c6420 100644 --- a/types/zui/store.d.ts +++ b/types/zui/store.d.ts @@ -1,3 +1,7 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped interface StoreStatic { enable: boolean; diff --git a/types/zui/treemenu.d.ts b/types/zui/treemenu.d.ts index 3512efe8ae..048752aa56 100644 --- a/types/zui/treemenu.d.ts +++ b/types/zui/treemenu.d.ts @@ -1,3 +1,8 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + interface TreeNode { title?: string, url?: string, diff --git a/types/zui/uploader.d.ts b/types/zui/uploader.d.ts index 18ebfb1127..60a53e4c67 100644 --- a/types/zui/uploader.d.ts +++ b/types/zui/uploader.d.ts @@ -1,3 +1,8 @@ +// Type definitions for zui 1.7 +// Project: http://zui.sexy +// Definitions by: YuanXu +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + interface UploaderOption { drop_element?: string, browse_button?: string, From 3966c184e740276e3fe356b2dc1a6a1b28e44343 Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 17:34:58 +0800 Subject: [PATCH 10/15] refactor: datetimepicker --- .../zui/boostrap.datetimepicker/package.json | 5 ---- .../zui/boostrap.datetimepicker/tsconfig.json | 27 ------------------- ...dex.d.ts => bootstrap.datetimepicker.d.ts} | 0 types/zui/index.d.ts | 2 +- 4 files changed, 1 insertion(+), 33 deletions(-) delete mode 100644 types/zui/boostrap.datetimepicker/package.json delete mode 100644 types/zui/boostrap.datetimepicker/tsconfig.json rename types/zui/{boostrap.datetimepicker/index.d.ts => bootstrap.datetimepicker.d.ts} (100%) diff --git a/types/zui/boostrap.datetimepicker/package.json b/types/zui/boostrap.datetimepicker/package.json deleted file mode 100644 index 4c6d24a445..0000000000 --- a/types/zui/boostrap.datetimepicker/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "moment": ">=2.14.0" - } -} \ No newline at end of file diff --git a/types/zui/boostrap.datetimepicker/tsconfig.json b/types/zui/boostrap.datetimepicker/tsconfig.json deleted file mode 100644 index c81098be9e..0000000000 --- a/types/zui/boostrap.datetimepicker/tsconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "lib": [ - "es6", - "dom" - ], - "noImplicitAny": true, - "noImplicitThis": true, - "strictNullChecks": true, - "baseUrl": "../../", - "typeRoots": [ - "../../" - ], - "types": [], - "paths": { - "bootstrap.v3.datetimepicker": [ - "bootstrap.v3.datetimepicker/v3" - ] - }, - "noEmit": true, - "forceConsistentCasingInFileNames": true - }, - "files": [ - "index.d.ts" - ] -} \ No newline at end of file diff --git a/types/zui/boostrap.datetimepicker/index.d.ts b/types/zui/bootstrap.datetimepicker.d.ts similarity index 100% rename from types/zui/boostrap.datetimepicker/index.d.ts rename to types/zui/bootstrap.datetimepicker.d.ts diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index 21c4dfe1a8..13c2475bab 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -8,7 +8,7 @@ /// /// -/// +/// /// /// From a7a1f127ed5cf022cfa32d81182a5ea1a43bd0ae Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 18:20:38 +0800 Subject: [PATCH 11/15] fix: test error --- types/zui/index.d.ts | 43 ++++++++++-------------- types/zui/modal.d.ts | 23 ------------- types/zui/zui-tests.ts | 74 ++++++++++++++++++++---------------------- 3 files changed, 53 insertions(+), 87 deletions(-) delete mode 100644 types/zui/modal.d.ts diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index 13c2475bab..b8eda21164 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -3,33 +3,27 @@ // Definitions by: YuanXu // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// -/// -/// +/// +/// +/// -/// -/// -/// - -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// - -/*~ If this module is a UMD module that exposes a global variable 'myLib' when - *~ loaded outside a module loader environment, declare that global here. - *~ Otherwise, delete this declaration. - */ +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// interface ZuiStatic { - //$.zui.messager + // $.zui.messager messager: Messager; Messager: MessagerStatic; @@ -37,5 +31,4 @@ interface ZuiStatic { } interface JQueryStatic { zui: ZuiStatic; - -} \ No newline at end of file +} diff --git a/types/zui/modal.d.ts b/types/zui/modal.d.ts deleted file mode 100644 index 7bc8b22da9..0000000000 --- a/types/zui/modal.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface ModalOptions { - backdrop?: boolean | string; - keyboard?: boolean; - show?: boolean; - remote?: string; -} - -interface ModalOptionsBackdropString { - backdrop?: string; // for "static" - keyboard?: boolean; - show?: boolean; - remote?: string; -} -interface JQuery { - modal(options?: ModalOptions): JQuery; - modal(options?: ModalOptionsBackdropString): JQuery; - modal(command: string): JQuery; -} \ No newline at end of file diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index ea90bd89af..bb6bad33b4 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -1,12 +1,12 @@ -/// +/// new $.zui.Messager(); -new $.zui.Messager('提示消息:成功', { +new $.zui.Messager('提示消息:成功', { type: 'success' // 定义颜色主题 }).show(); -new $.zui.Messager("message") -let messagarOption: MessagerOption = {}; -new $.zui.Messager(messagarOption) +new $.zui.Messager("message"); +let messagarOption: MessagerOption = {}; +new $.zui.Messager(messagarOption); new $.zui.Messager("message", messagarOption); $.zui.messager.show("ok"); @@ -17,7 +17,7 @@ $.zui.store.set('date', { year: 2014, month: 8, day: 6 }); // 将一个对象存 console.log($.zui.store.get('name')); // 从本地存储获取'name'的值 console.log($.zui.store.get('date').year); // 从本地存储获取'date'值的year属性 -$.zui.store.forEach(function (key, value) { // 遍历所有本地存储的条目 +$.zui.store.forEach((key: string, value: any) => { // 遍历所有本地存储的条目 console.log(value); }); @@ -36,15 +36,13 @@ console.log($.zui.store.pageGet('date').year); // 从本地存储 $.zui.store.pageRemove('name'); // 从本地存储移除‘name’的值 $.zui.store.pageClear(); // 清空所有本地存储的条目 - /** * modal */ $('#myModal').modal({ keyboard: false, show: true -}) - +}); /** * modal trigger @@ -69,7 +67,6 @@ $('[data-toggle="tooltip"]').tooltip(); $('#element').tooltip('show'); $('#element').tooltip('show', '这是新的工具提示内容'); - /** * popover */ @@ -85,16 +82,16 @@ $('#myPopover').popover('show'); $('#myCollapseContent').collapse({ toggle: false }); -$().collapse('show') +$().collapse('show'); -$('#myCollapseContent').on('hidden.zui.collapse', function () { +$('#myCollapseContent').on('hidden.zui.collapse', () => { console.log('折叠内容已隐藏。'); -}) +}); /** * carousel */ -$('.carousel').carousel() +$('.carousel').carousel(); /** * datetime picker @@ -179,12 +176,12 @@ $('select.chosen-select').chosen({ * color */ // 创建颜色实例 -var myColor = new $.zui.Color('#095823'); +const myColor = new $.zui.Color('#095823'); // 调用实例方法 -var myHsl = myColor.toHsl(); +const myHsl = myColor.toHsl(); -var zuiPrimaryColor = $.zui.colorset.get('primary'); +const zuiPrimaryColor = $.zui.colorset.get('primary'); console.log('ZUI primary color is', zuiPrimaryColor.toCssStr()); /** @@ -193,15 +190,15 @@ console.log('ZUI primary color is', zuiPrimaryColor.toCssStr()); let count = 0; $('#draggableBtn').draggable({ container: '#draggableBox', - before: function () { + before: () => { console.log(count++ + ': ' + '[开始] 拖动...\n'); return true; }, - drag: function (e: DraggableEvent) { + drag: (e: DraggableEvent) => { console.log(count++ + ': ' + '拖动: pos = ' + JSON.stringify(e.pos) + ', offset = ' + JSON.stringify(e.offset) + '\n'); // console.log('(' + e.pos.left + ', ' + e.pos.top + ')'); }, - finish: function (e: DraggableEvent) { + finish: (e: DraggableEvent) => { console.log(count++ + ': ' + '[完毕]:pos = ' + JSON.stringify(e.pos) + ', offset = ' + JSON.stringify(e.offset) + '\n'); } }); @@ -212,20 +209,22 @@ $('#draggableBtn').draggable({ $('#multiDroppableContainer').droppable({ selector: '.btn-droppable', // 定义允许拖放的元素 target: '.droppable-target', - start: function () { + start: () => { $('#multiDroppableContainer .droppable-target').removeClass('panel-warning').removeClass('panel-success').find('.panel-heading').text('拖动到这里吗?'); }, - drop: function (event: DroppableEvent) { - var msg = '真棒!'; + drop: (event: DroppableEvent) => { + $('#multiDroppableContainer .droppable-target').removeClass('panel-success').removeClass('panel-warning'); if (event.target && event.element) { - var elementId = event.element.find('.btn-droppable-id').text(); + const elementId = event.element.find('.btn-droppable-id').text(); + let msg = '真棒!'; event.target.addClass('panel-success').find('.panel-heading').text('成功将【按钮#' + elementId + '】拖到目的地。'); msg += '成功拖动【按钮#' + elementId + '】到区域 ' + event.target.find('.area-name').text(); + + $.zui.messager.show(msg); } - $.zui.messager.show(msg); }, - drag: function (event: DroppableEvent) { + drag: (event: DroppableEvent) => { $('#multiDroppableContainer .droppable-target').removeClass('panel-success').removeClass('panel-warning'); if (event.target) event.target.addClass('panel-warning'); } @@ -235,17 +234,16 @@ $('#multiDroppableContainer').droppable({ * sortable */ // 定义选项对象 -var options = { +const options = { selector: '.sortable-item', - finish: function (e: SortEvent) { + finish: (e: SortEvent) => { console.log('排序完成:', e); }, // 设置更多选项... }; // 初始化时传入选项参数 -$('#sortableList').sortable(options) - +$('#sortableList').sortable(options); /** * selectable @@ -256,7 +254,7 @@ $('#selectable').selectable({ rangeStyle: { border: '1px solid red' // 拖选范围指示矩形边框设置为红色 }, - finish: function (data: SelectableEvent) { // 选择结束时的回调函数 + finish: (data: SelectableEvent) => { // 选择结束时的回调函数 // 所有元素的选中或非选中状态 console.log(data.selections); @@ -270,18 +268,18 @@ $('#selectable').selectable({ */ // 获取 imgCutter 实例 -var myImgCutter = $('#imgCutter').data('zui.imgCutter'); +const myImgCutter = $('#imgCutter').data('zui.imgCutter'); // 调用 resetImg 方法 myImgCutter.resetImage('http://zui.sexy/docs/img/img1.jpg'); // 调用 getData 方法 -var myImgCutterData = myImgCutter.getData(); +const myImgCutterData = myImgCutter.getData(); /** * treemenu */ -var myTreeData = [{ +const myTreeData = [{ title: '水果', url: 'http://zui.sexy', open: true, @@ -307,7 +305,6 @@ var myTreeData = [{ $('#myTree').tree({ data: myTreeData }); - /** * datatable */ @@ -326,14 +323,13 @@ $('table.datatable').datatable('load', { ] }); - /** * uplaoder */ $('#myUploader').uploader({ url: '...', // ..., - onUploadFile: function(file:FileObj) { - console.log('上传成功', file); + onUploadFile: (file: FileObj) => { + console.log('上传成功', file); } -}); \ No newline at end of file +}); From ad6ceb5ab30fba5297c9b449beea174ebf27e1a7 Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 21:48:59 +0800 Subject: [PATCH 12/15] fix test error --- types/zui/tsconfig.json | 3 ++- types/zui/zui-tests.ts | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/types/zui/tsconfig.json b/types/zui/tsconfig.json index 06fa3ab094..88b3a06bc4 100644 --- a/types/zui/tsconfig.json +++ b/types/zui/tsconfig.json @@ -2,7 +2,8 @@ "compilerOptions": { "module": "commonjs", "lib": [ - "es6" + "es6", + "dom" ], "noImplicitAny": true, "noImplicitThis": true, diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index bb6bad33b4..3d5bc14038 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -213,7 +213,6 @@ $('#multiDroppableContainer').droppable({ $('#multiDroppableContainer .droppable-target').removeClass('panel-warning').removeClass('panel-success').find('.panel-heading').text('拖动到这里吗?'); }, drop: (event: DroppableEvent) => { - $('#multiDroppableContainer .droppable-target').removeClass('panel-success').removeClass('panel-warning'); if (event.target && event.element) { const elementId = event.element.find('.btn-droppable-id').text(); From 5472ca9e0e78de7b40fb4f647bf69e1936b9de40 Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 7 Jul 2017 22:30:06 +0800 Subject: [PATCH 13/15] fix compile error --- types/zui/index.d.ts | 3 ++- types/zui/tsconfig.json | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index b8eda21164..c1090625b6 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -2,8 +2,9 @@ // Project: http://zui.sexy // Definitions by: YuanXu // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 -/// +/// /// /// diff --git a/types/zui/tsconfig.json b/types/zui/tsconfig.json index 88b3a06bc4..36f8848110 100644 --- a/types/zui/tsconfig.json +++ b/types/zui/tsconfig.json @@ -5,6 +5,7 @@ "es6", "dom" ], + "target": "es6", "noImplicitAny": true, "noImplicitThis": true, "strictNullChecks": true, From 0d44094c510bd38cff6584be7719d147b8d951cf Mon Sep 17 00:00:00 2001 From: YuanXu Date: Thu, 13 Jul 2017 18:10:52 +0800 Subject: [PATCH 14/15] =?UTF-8?q?=E9=9B=86=E6=88=90=E5=88=B0=E5=8D=95?= =?UTF-8?q?=E4=B8=80=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 + types/zui/bootstrap.d.ts | 126 ---- types/zui/bootstrap.datetimepicker.d.ts | 122 ---- types/zui/color.d.ts | 36 - types/zui/datatable.d.ts | 85 --- types/zui/draggable.d.ts | 37 - types/zui/droppable.d.ts | 45 -- types/zui/imagecutter.d.ts | 38 - types/zui/index.d.ts | 906 +++++++++++++++++++++++- types/zui/messager.d.ts | 50 -- types/zui/modal.trigger.d.ts | 55 -- types/zui/selectable.d.ts | 36 - types/zui/sortable.d.ts | 26 - types/zui/store.d.ts | 29 - types/zui/treemenu.d.ts | 48 -- types/zui/uploader.d.ts | 153 ---- types/zui/zui-tests.ts | 32 +- 17 files changed, 907 insertions(+), 920 deletions(-) delete mode 100644 types/zui/bootstrap.d.ts delete mode 100644 types/zui/bootstrap.datetimepicker.d.ts delete mode 100644 types/zui/color.d.ts delete mode 100644 types/zui/datatable.d.ts delete mode 100644 types/zui/draggable.d.ts delete mode 100644 types/zui/droppable.d.ts delete mode 100644 types/zui/imagecutter.d.ts delete mode 100644 types/zui/messager.d.ts delete mode 100644 types/zui/modal.trigger.d.ts delete mode 100644 types/zui/selectable.d.ts delete mode 100644 types/zui/sortable.d.ts delete mode 100644 types/zui/store.d.ts delete mode 100644 types/zui/treemenu.d.ts delete mode 100644 types/zui/uploader.d.ts diff --git a/package.json b/package.json index c2fef9b679..bc284270cc 100644 --- a/package.json +++ b/package.json @@ -23,5 +23,8 @@ "devDependencies": { "dtslint": "Microsoft/dtslint#production", "types-publisher": "Microsoft/types-publisher#production" + }, + "dependencies": { + "jslint": "^0.10.3" } } diff --git a/types/zui/bootstrap.d.ts b/types/zui/bootstrap.d.ts deleted file mode 100644 index 62f680e5b3..0000000000 --- a/types/zui/bootstrap.d.ts +++ /dev/null @@ -1,126 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - - -interface ModalOptions { - backdrop?: boolean | string; - keyboard?: boolean; - show?: boolean; - remote?: string; -} - -interface ModalOptionsBackdropString { - backdrop?: string; // for "static" - keyboard?: boolean; - show?: boolean; - remote?: string; -} - -interface ScrollSpyOptions { - offset?: number; - target?: string; -} - -interface TooltipOptions { - animation?: boolean; - html?: boolean; - placement?: string | Function; - selector?: string; - title?: string | Function; - trigger?: string; - template?: string; - delay?: number | Object; - container?: string | boolean; - viewport?: string | Function | Object; -} - -interface PopoverOptions { - animation?: boolean; - html?: boolean; - placement?: string | Function; - selector?: string; - trigger?: string; - title?: string | Function; - template?: string; - content?: any; - delay?: number | Object; - container?: string | boolean; - viewport?: string | Function | Object; -} - -interface CollapseOptions { - parent?: any; - toggle?: boolean; -} - -interface CarouselOptions { - interval?: number; - pause?: string; - wrap?: boolean; - keyboard?: boolean; -} - -interface TypeaheadOptions { - source?: any; - items?: number; - minLength?: number; - matcher?: (item: any) => boolean; - sorter?: (items: any[]) => any[]; - updater?: (item: any) => any; - highlighter?: (item: any) => string; -} - -interface AffixOptions { - offset?: number | Function | Object; - target?: any; -} - -interface TransitionEventNames { - end: string; -} - -interface JQuery { - modal(options?: ModalOptions): JQuery; - modal(options?: ModalOptionsBackdropString): JQuery; - modal(command: string): JQuery; - - dropdown(): JQuery; - dropdown(command: string): JQuery; - - scrollspy(command: string): JQuery; - scrollspy(options?: ScrollSpyOptions): JQuery; - - tab(): JQuery; - tab(command: string): JQuery; - - tooltip(options?: TooltipOptions): JQuery; - tooltip(command: string, params?: string): JQuery; - - popover(options?: PopoverOptions): JQuery; - popover(command: string): JQuery; - - alert(): JQuery; - alert(command: string): JQuery; - - button(): JQuery; - button(command: string): JQuery; - - collapse(options?: CollapseOptions): JQuery; - collapse(command: string): JQuery; - - carousel(options?: CarouselOptions): JQuery; - carousel(command: string): JQuery; - - typeahead(options?: TypeaheadOptions): JQuery; - - affix(options?: AffixOptions): JQuery; - - emulateTransitionEnd(duration: number): JQuery; -} - -interface JQuerySupport { - transition: boolean | TransitionEventNames; -} - diff --git a/types/zui/bootstrap.datetimepicker.d.ts b/types/zui/bootstrap.datetimepicker.d.ts deleted file mode 100644 index 9f53c1eee9..0000000000 --- a/types/zui/bootstrap.datetimepicker.d.ts +++ /dev/null @@ -1,122 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -/** - * bootstrap-datetimepicker.js 3.0.0 Copyright (c) 2014 Jonathan Peterson - * Available via the MIT license. - * see: http://eonasdan.github.io/bootstrap-datetimepicker or https://github.com/Eonasdan/bootstrap-datetimepicker for details. - */ - -/// - -import * as moment from 'moment'; - -export as namespace BootstrapV3DatetimePicker; - -export interface DatetimepickerChangeEventObject extends DatetimepickerEventObject { - oldDate: moment.Moment; -} - -export interface DatetimepickerEventObject extends JQueryEventObject { - date: moment.Moment; -} - -export interface DatetimepickerIcons { - time?: string; - date?: string; - up?: string; - down?: string; -} - -export interface DatetimepickerOptions { - weekStart?: number; - todayBtn?: number | boolean; - autoclose?: number | boolean; - todayHighlight?: number | boolean; - startView?: number; - forceParse?: number | boolean; - showMeridian?: boolean | number, - minView?: number; - maxView?: number; - pickDate?: boolean; - pickTime?: boolean; - useMinutes?: boolean; - useSeconds?: boolean; - useCurrent?: boolean; - minuteStepping?: number; - minDate?: moment.Moment | Date | string; - maxDate?: moment.Moment | Date | string; - showToday?: boolean; - collapse?: boolean; - language?: string; - defaultDate?: moment.Moment | Date | string; - disabledDates?: Array; - enabledDates?: Array; - icons?: DatetimepickerIcons; - useStrict?: boolean; - direction?: string; - sideBySide?: boolean; - daysOfWeekDisabled?: Array; - calendarWeeks?: boolean; - format?: string | boolean; - locale?: string; - showTodayButton?: boolean; - viewMode?: string; - inline?: boolean; - toolbarPlacement?: string; - showClear?: boolean; - ignoreReadonly?: boolean; -} - -export interface Datetimepicker { - date(date: moment.Moment | Date | string): void; - date(): moment.Moment; - minDate(date: moment.Moment | Date | string): void; - minDate(): moment.Moment | boolean; - maxDate(date: moment.Moment | Date | string): void; - maxDate(): moment.Moment | boolean; - show(): void; - disable(): void; - enable(): void; - destroy(): void; - toggle(): void; -} - -declare global { - interface JQuery { - datetimepicker(): JQuery; - datetimepicker(options: DatetimepickerOptions): JQuery; - - off(events: "dp.change", selector?: string, handler?: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; - off(events: "dp.change", handler: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; - - on(events: "dp.change", selector: string, data: any, handler?: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; - on(events: "dp.change", selector: string, handler: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; - on(events: 'dp.change', handler: (eventObject: DatetimepickerChangeEventObject) => any): JQuery; - - off(events: "dp.show", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - off(events: "dp.show", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - - on(events: "dp.show", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: "dp.show", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: 'dp.show', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; - - off(events: "dp.hide", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - off(events: "dp.hide", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - - on(events: "dp.hide", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: "dp.hide", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: 'dp.hide', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; - - off(events: "dp.error", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - off(events: "dp.error", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - - on(events: "dp.error", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: "dp.error", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: 'dp.error', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; - - data(key: 'DateTimePicker'): Datetimepicker; - } -} diff --git a/types/zui/color.d.ts b/types/zui/color.d.ts deleted file mode 100644 index 712577f86f..0000000000 --- a/types/zui/color.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface Color { - rgb(rgbaColor?: string): object; - hue(hue: string): string, - darken(percent: number): string; - lighten(percent: number): string; - clone(): Color; - fade(percent: number): any; - toHsl(): object; - luma(): string; - saturate(): string; - contrast(dark: string, light: string, threshold: number): string; - hexStr(): string; - toCssStr(): string; -} - -interface ColorStatic { - new (): Color; - new (hexStr: string): Color; - new (r: number, g: number, b: number): Color; - new (r: number, g: number, b: number, a: number): Color; - new (rgbColorOrRgbaColorOrName: string): Color; - isColor(str: string): boolean; - names: Array; -} -interface ColorSet { - get(name: string): Color; -} -interface ZuiStatic { - Color: ColorStatic; - colorset: ColorSet; -} \ No newline at end of file diff --git a/types/zui/datatable.d.ts b/types/zui/datatable.d.ts deleted file mode 100644 index 76d271f458..0000000000 --- a/types/zui/datatable.d.ts +++ /dev/null @@ -1,85 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface Col { - width?: number, - text?: string, - type?: string, - flex?: boolean, - colClass?: string, - sort?: string, - ignore?: boolean -} -interface Row { - id?: string, - checked?: boolean, - cssClass?: string, - css?: string, - data?: Array -} -interface DataTableData { - rows: Array, - cols: Array -} -interface AfterLoadEvent { - data: DataTableData; -} -interface SortEvent { - sorter: { - index: number, - sortUp: boolean, - } -} -interface SizeChangeEvent { - changes: { - change: string, - oldWidth: number, - newWidth: number, - colIndex: number, - } -} -interface ChecksChangeEvent { - checks: { - checkedAll: boolean, - checks: Array - } -} -interface DataTableOption { - checkable?: boolean, - checkByClickRow?: boolean, - checkedClass?: string, - storage?: boolean, - sortable?: boolean, - fixedHeader?: boolean, - fixedHeaderOffset?: number, - fixedLeftWidth?: string, - fixedRightWidth?: string, - flexHeadDrag?: boolean, - scrollPos?: string, - rowHover?: boolean, - colHover?: boolean, - fixCellHeight?: boolean, - minColWidth?: number, - minFixedLeftWidth?: number, - minFixedRightWidth?: number, - minFlexAreaWidth?: number - selectable?: boolean | object, - - afterLoad?(event: AfterLoadEvent): void; - ready?(): void; - sort?(event: SortEvent): void; - sizeChanged?(event: SizeChangeEvent): void; - checksChanged?(event: ChecksChangeEvent): void; -} - -interface DataTable { - checks: { checkedAll: boolean, checks: Array } -} - -interface JQuery { - datatable(option?: DataTableOption): JQuery; - datatable(command: string, option?: DataTableOption): JQuery; - datatable(command: string, data: DataTableData): JQuery; -} \ No newline at end of file diff --git a/types/zui/draggable.d.ts b/types/zui/draggable.d.ts deleted file mode 100644 index 24c6eeae9d..0000000000 --- a/types/zui/draggable.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface Postion { - left: number; - top: number; - width: number; - height: number; -} -interface DraggableEvent { - event?: object; - element?: JQuery | object; - target?: JQuery | object; - pos?: Postion; - offset?: object; - smallOffset?: object; - startOffset?: object; - -} -interface DraggableOption { - container?: string, - move?: boolean; - selector?: string, - handle?: string, - mouseButton?: string, - stopPropagation?: boolean, - before?(e?: DraggableEvent): boolean; - drag?(e: DraggableEvent): void; - finish?(e: DraggableEvent): void -} - -interface JQuery { - draggable(command: string): JQuery; - draggable(option: DraggableOption): JQuery; -} \ No newline at end of file diff --git a/types/zui/droppable.d.ts b/types/zui/droppable.d.ts deleted file mode 100644 index 792e15eed6..0000000000 --- a/types/zui/droppable.d.ts +++ /dev/null @@ -1,45 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface Postion { - left: number; - top: number; - width: number; - height: number; -} -interface DroppableEvent { - event?: object; - element?: JQuery; - target?: JQuery; - pos?: Postion; - offset?: object; - smallOffset?: object; - startOffset?: object; - -} -interface DroppableOption { - container?: string, - selector?: string, - handle?: string, - target: JQuery | string, - - flex?: boolean, - deviation?: number, - sensorOffsetX?: number, - sensorOffsetY?: number, - - before?(e?: DroppableEvent): boolean; - start?(e?: DroppableEvent): void; - drag?(e: DroppableEvent): void; - beforeDrop?(e: DroppableEvent): boolean; - drop?(e: DroppableEvent): void; - finish?(e: DroppableEvent): void; - always?(e: DroppableEvent): void; -} - -interface JQuery { - droppable(command: string): JQuery; - droppable(option: DroppableOption): JQuery; -} \ No newline at end of file diff --git a/types/zui/imagecutter.d.ts b/types/zui/imagecutter.d.ts deleted file mode 100644 index 64dfc3700a..0000000000 --- a/types/zui/imagecutter.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface ImageCutterOption { - coverColor?: string, - coverOpacity?: number, - defaultWidth?: number, - defaultHeight?: number, - fixedRatio?: boolean, - minWidth?: number, - minHeight?: number, - post?: string, - get?: string -} -interface ImageData { - originWidth: number, - originHeight: number, - scaled: boolean, - scaleHeight: number, - scaleWidth: number, - width: number, - height: number, - left: number, - right: number, - top: number, - bottom: number -} -interface ImageCutter { - resetImage(img: string): any; - getData(): ImageData; -} - -interface JQuery { - imgCutter(option: ImageCutterOption): JQuery; - data(cmd: string): ImageCutter; -} \ No newline at end of file diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index c1090625b6..cc7c5b1a72 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -5,31 +5,901 @@ // TypeScript Version: 2.3 /// -/// -/// -/// -/// -/// +export as namespace zui; -/// -/// -/// -/// -/// -/// -/// -/// -/// -/// -interface ZuiStatic { +/** + * bootstrap + */ +interface ModalOptions { + backdrop?: boolean | string; + keyboard?: boolean; + show?: boolean; + remote?: string; +} + +interface ModalOptionsBackdropString { + backdrop?: string; // for "static" + keyboard?: boolean; + show?: boolean; + remote?: string; +} + +interface ScrollSpyOptions { + offset?: number; + target?: string; +} + +interface TooltipOptions { + animation?: boolean; + html?: boolean; + placement?: string | Function; + selector?: string; + title?: string | Function; + trigger?: string; + template?: string; + delay?: number | Object; + container?: string | boolean; + viewport?: string | Function | Object; +} + +interface PopoverOptions { + animation?: boolean; + html?: boolean; + placement?: string | Function; + selector?: string; + trigger?: string; + title?: string | Function; + template?: string; + content?: any; + delay?: number | Object; + container?: string | boolean; + viewport?: string | Function | Object; +} + +interface CollapseOptions { + parent?: any; + toggle?: boolean; +} + +interface CarouselOptions { + interval?: number; + pause?: string; + wrap?: boolean; + keyboard?: boolean; +} + +interface TypeaheadOptions { + source?: any; + items?: number; + minLength?: number; + matcher?: (item: any) => boolean; + sorter?: (items: any[]) => any[]; + updater?: (item: any) => any; + highlighter?: (item: any) => string; +} + +interface AffixOptions { + offset?: number | Function | Object; + target?: any; +} + +interface TransitionEventNames { + end: string; +} +declare global { + interface JQuery { + modal(options?: ModalOptions): JQuery; + modal(options?: ModalOptionsBackdropString): JQuery; + modal(command: string): JQuery; + + dropdown(): JQuery; + dropdown(command: string): JQuery; + + scrollspy(command: string): JQuery; + scrollspy(options?: ScrollSpyOptions): JQuery; + + tab(): JQuery; + tab(command: string): JQuery; + + tooltip(options?: TooltipOptions): JQuery; + tooltip(command: string, params?: string): JQuery; + + popover(options?: PopoverOptions): JQuery; + popover(command: string): JQuery; + + alert(): JQuery; + alert(command: string): JQuery; + + button(): JQuery; + button(command: string): JQuery; + + collapse(options?: CollapseOptions): JQuery; + collapse(command: string): JQuery; + + carousel(options?: CarouselOptions): JQuery; + carousel(command: string): JQuery; + + typeahead(options?: TypeaheadOptions): JQuery; + + affix(options?: AffixOptions): JQuery; + + emulateTransitionEnd(duration: number): JQuery; + } + + interface JQuerySupport { + transition: boolean | TransitionEventNames; + + } +} + +/** + * store + */ + + +interface StoreStatic { + enable: boolean; + storage: any; + length(): number; + remove(key: string): any; + get(key: string): T; + set(key: string, value?: T): any; + key(index: number): string; + forEach(cb: (key: string, value: T) => any): any; + serialize(value: any): string; + deserialize(value: string): T; + getAll(): T; + removeItem(key: string): any; + getItem(key: string): string; + setItem(key: string, value: any): any; + clear(): void; + + page: any; + pageGet(key: string): any; + pageSet(key: string, value: any): any; + pageRemove(key: string): any; + pageSave(): any; + pageClear(): any; +} + +/** + * messager + */ + + +declare enum MessagerTypeEnum { + 'default', 'primary', 'success', 'info', 'warning', 'danger', 'important', 'special' +} +interface Action { + name?: string, + icon?: string, + text?: string + html?: string + action?: ActionFunc; +} + +interface ActionFunc { + (): boolean; +} +interface OnActionFunc { + (name: string, action: string, messager: Messager): any +} + +interface MessagerOption { + type?: MessagerTypeEnum | string; + placement?: string, + time?: number; + message?: string, + parent?: string, + icon?: string, + close?: boolean; + fade?: boolean; + scale?: boolean; + actions?: Array; + onAction?: OnActionFunc; + cssClass?: string, + contentClass?: string, + show?: boolean +} +interface Messager { + show(cb?: Function): any; + show(message: string, cb?: Function): any; + + hide(cb?: Function): any; +} +interface MessagerStatic { + new(option?: MessagerOption): Messager; + new(message: string, option?: MessagerOption): Messager; +} + +export interface ZuiStatic { // $.zui.messager messager: Messager; Messager: MessagerStatic; store: StoreStatic; } -interface JQueryStatic { - zui: ZuiStatic; + + +/** + * modal trigger + */ + +interface ModalTriggerOption { + name?: string, + className?: string, + type?: string, + url?: string, + remote?: string, + iframe?: string, + size?: string, + width?: string, + height?: string, + showHeader?: boolean, + title?: string, + icon?: string, + fade?: boolean, + postion?: string, + backdrop?: boolean, + keyboard?: boolean, + moveable?: boolean, + rememberPos?: boolean, + waittime?: number, + loadingIcon?: string, + + show?(): any; + onShow?(): any; + onHide?(): any; + hidden?(): any; + loaded?(): any; + broken?(): any; } + +interface ModalTrigger { + show(option?: ModalTriggerOption): any; + close(): any; + toggle(option?: ModalTriggerOption): any; + adjustPostion(option?: ModalTriggerOption): any; + +} +interface ModalTriggerStatic { + new(option?: ModalTriggerOption): ModalTrigger +} +declare global { + interface JQuery { + modalTrigger(option?: ModalTriggerOption): JQuery //$('#modal').modalTrigger() + data(value: string): JQuery; + } +} +interface ZuiStatic { + ModalTrigger: ModalTriggerStatic; + modalTrigger: ModalTrigger; +} + +declare global { + interface JQueryStatic { + zui: ZuiStatic; + } + +} + +/** + * datetime picker + */ + +import * as moment from 'moment'; + +export interface DatetimepickerChangeEventObject extends DatetimepickerEventObject { + oldDate: moment.Moment; +} + +export interface DatetimepickerEventObject extends JQueryEventObject { + date: moment.Moment; +} + +export interface DatetimepickerIcons { + time?: string; + date?: string; + up?: string; + down?: string; +} + +export interface DatetimepickerOptions { + weekStart?: number; + todayBtn?: number | boolean; + autoclose?: number | boolean; + todayHighlight?: number | boolean; + startView?: number; + forceParse?: number | boolean; + showMeridian?: boolean | number, + minView?: number; + maxView?: number; + pickDate?: boolean; + pickTime?: boolean; + useMinutes?: boolean; + useSeconds?: boolean; + useCurrent?: boolean; + minuteStepping?: number; + minDate?: moment.Moment | Date | string; + maxDate?: moment.Moment | Date | string; + showToday?: boolean; + collapse?: boolean; + language?: string; + defaultDate?: moment.Moment | Date | string; + disabledDates?: Array; + enabledDates?: Array; + icons?: DatetimepickerIcons; + useStrict?: boolean; + direction?: string; + sideBySide?: boolean; + daysOfWeekDisabled?: Array; + calendarWeeks?: boolean; + format?: string | boolean; + locale?: string; + showTodayButton?: boolean; + viewMode?: string; + inline?: boolean; + toolbarPlacement?: string; + showClear?: boolean; + ignoreReadonly?: boolean; +} + +export interface Datetimepicker { + date(date: moment.Moment | Date | string): void; + date(): moment.Moment; + minDate(date: moment.Moment | Date | string): void; + minDate(): moment.Moment | boolean; + maxDate(date: moment.Moment | Date | string): void; + maxDate(): moment.Moment | boolean; + show(): void; + disable(): void; + enable(): void; + destroy(): void; + toggle(): void; +} + +declare global { + interface JQuery { + datetimepicker(): JQuery; + datetimepicker(options: DatetimepickerOptions): JQuery; + + off(events: "dp.change", selector?: string, handler?: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + off(events: "dp.change", handler: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + + on(events: "dp.change", selector: string, data: any, handler?: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + on(events: "dp.change", selector: string, handler: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + on(events: 'dp.change', handler: (eventObject: DatetimepickerChangeEventObject) => any): JQuery; + + off(events: "dp.show", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + off(events: "dp.show", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + + on(events: "dp.show", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: "dp.show", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: 'dp.show', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; + + off(events: "dp.hide", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + off(events: "dp.hide", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + + on(events: "dp.hide", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: "dp.hide", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: 'dp.hide', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; + + off(events: "dp.error", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + off(events: "dp.error", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + + on(events: "dp.error", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: "dp.error", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + on(events: 'dp.error', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; + + data(key: 'DateTimePicker'): Datetimepicker; + } +} + +/** + * color + */ + +interface Color { + rgb(rgbaColor?: string): object; + hue(hue: string): string, + darken(percent: number): string; + lighten(percent: number): string; + clone(): Color; + fade(percent: number): any; + toHsl(): object; + luma(): string; + saturate(): string; + contrast(dark: string, light: string, threshold: number): string; + hexStr(): string; + toCssStr(): string; +} + +interface ColorStatic { + new(): Color; + new(hexStr: string): Color; + new(r: number, g: number, b: number): Color; + new(r: number, g: number, b: number, a: number): Color; + new(rgbColorOrRgbaColorOrName: string): Color; + isColor(str: string): boolean; + names: Array; +} +interface ColorSet { + get(name: string): Color; +} +interface ZuiStatic { + Color: ColorStatic; + colorset: ColorSet; +} + +/** + * draggable + */ + +interface Postion { + left: number; + top: number; + width: number; + height: number; +} +interface DraggableEvent { + event?: object; + element?: JQuery | object; + target?: JQuery | object; + pos?: Postion; + offset?: object; + smallOffset?: object; + startOffset?: object; + +} +interface DraggableOption { + container?: string, + move?: boolean; + selector?: string, + handle?: string, + mouseButton?: string, + stopPropagation?: boolean, + before?(e?: DraggableEvent): boolean; + drag?(e: DraggableEvent): void; + finish?(e: DraggableEvent): void +} +declare global { + interface JQuery { + draggable(command: string): JQuery; + draggable(option: DraggableOption): JQuery; + } +} + +/** + * droppable + */ + +interface Postion { + left: number; + top: number; + width: number; + height: number; +} +interface DroppableEvent { + event?: object; + element?: JQuery; + target?: JQuery; + pos?: Postion; + offset?: object; + smallOffset?: object; + startOffset?: object; + +} +interface DroppableOption { + container?: string, + selector?: string, + handle?: string, + target: JQuery | string, + + flex?: boolean, + deviation?: number, + sensorOffsetX?: number, + sensorOffsetY?: number, + + before?(e?: DroppableEvent): boolean; + start?(e?: DroppableEvent): void; + drag?(e: DroppableEvent): void; + beforeDrop?(e: DroppableEvent): boolean; + drop?(e: DroppableEvent): void; + finish?(e: DroppableEvent): void; + always?(e: DroppableEvent): void; +} +declare global { + interface JQuery { + droppable(command: string): JQuery; + droppable(option: DroppableOption): JQuery; + } +} +/** + * sortable + */ + + +interface SortEvent { + list: Array; + element: JQuery | object; +} + +interface SortableOption { + selector?: string, + trigger?: string, + reverse?: boolean, + dragCssClass?: string, + sortingClass?: string, + mouseButton?: string, + start?(e?: SortEvent): void; + order?(e?: SortEvent): void; + finish?(e?: SortEvent): void; +} +declare global { + interface JQuery { + sortable(command?: string): JQuery + sortable(option?: SortableOption): JQuery + } +} + +/** + * selectable + */ + +interface SelectableEvent { + selections: Map; + selected: Array; +} +interface SelectableOption { + selector?: string, + trigger?: string, + rangeStyle?: string | object, + clickBehavior?: string, + mouseButton?: string, + ignoreVal?: number, + + start?(e?: SelectableEvent): boolean; + finish?(e?: SelectableEvent): void; + select?(e?: SelectableEvent): void; + unselect?(e?: SelectableEvent): void; +} + +interface Selectable { + toggle(): any; + toggle(elementOrId: string | object | JQuery): any; + select(): any; + select(elementOrId: string | object | JQuery): any; + unselect(): any; + unselect(elementOrId: string | object | JQuery): any; +} +declare global { + interface JQuery { + selectable(option?: SelectableOption): JQuery; + + } +} +/** + * image cutter + */ + + +interface ImageCutterOption { + coverColor?: string, + coverOpacity?: number, + defaultWidth?: number, + defaultHeight?: number, + fixedRatio?: boolean, + minWidth?: number, + minHeight?: number, + post?: string, + get?: string +} +interface ImageData { + originWidth: number, + originHeight: number, + scaled: boolean, + scaleHeight: number, + scaleWidth: number, + width: number, + height: number, + left: number, + right: number, + top: number, + bottom: number +} +interface ImageCutter { + resetImage(img: string): any; + getData(): ImageData; +} +declare global { + interface JQuery { + imgCutter(option: ImageCutterOption): JQuery; + data(cmd: string): ImageCutter; + } +} + +/** + * treeview + */ + +interface TreeNode { + title?: string, + url?: string, + html?: string, + children?: Array; + open?: boolean, + id?: string +} +interface TreeMenuOption { + animate?: boolean, + initialState?: string, + data?: Array + itemCreator?(li: JQuery | object, item: TreeNode): any, + itemWrapper?: boolean +} + +interface TreeMenu { + expand(): void; + expand(params: JQuery): void; + expand(params: JQuery, disableAnimate: boolean): void; + + collapse(): void; + collapse(params: JQuery): void; + collapse(params: JQuery, disableAnimate: boolean): void; + + toggle(): void; + toggle(params: JQuery): void; + toggle(params: JQuery, disableAnimate: boolean): void; + + show(): void; + show(params: JQuery): void; + show(params: JQuery, disableAnimate: boolean): void; + + add(element: JQuery, items: Array, expand?: boolean, disabledAnimate?: boolean): void; + toData($ul?: JQuery, filter?: string): object; + + reload(data: Array): void; + remove(): void; + empty(): void; +} +declare global { + interface JQuery { + tree(option?: TreeMenuOption): JQuery + } +} + +interface Col { + width?: number, + text?: string, + type?: string, + flex?: boolean, + colClass?: string, + sort?: string, + ignore?: boolean +} +interface Row { + id?: string, + checked?: boolean, + cssClass?: string, + css?: string, + data?: Array +} +interface DataTableData { + rows: Array, + cols: Array +} +interface AfterLoadEvent { + data: DataTableData; +} +interface SortEvent { + sorter: { + index: number, + sortUp: boolean, + } +} +interface SizeChangeEvent { + changes: { + change: string, + oldWidth: number, + newWidth: number, + colIndex: number, + } +} +interface ChecksChangeEvent { + checks: { + checkedAll: boolean, + checks: Array + } +} +interface DataTableOption { + checkable?: boolean, + checkByClickRow?: boolean, + checkedClass?: string, + storage?: boolean, + sortable?: boolean, + fixedHeader?: boolean, + fixedHeaderOffset?: number, + fixedLeftWidth?: string, + fixedRightWidth?: string, + flexHeadDrag?: boolean, + scrollPos?: string, + rowHover?: boolean, + colHover?: boolean, + fixCellHeight?: boolean, + minColWidth?: number, + minFixedLeftWidth?: number, + minFixedRightWidth?: number, + minFlexAreaWidth?: number + selectable?: boolean | object, + + afterLoad?(event: AfterLoadEvent): void; + ready?(): void; + sort?(event: SortEvent): void; + sizeChanged?(event: SizeChangeEvent): void; + checksChanged?(event: ChecksChangeEvent): void; +} + +interface DataTable { + checks: { checkedAll: boolean, checks: Array } +} +declare global { + interface JQuery { + datatable(option?: DataTableOption): JQuery; + datatable(command: string, option?: DataTableOption): JQuery; + datatable(command: string, data: DataTableData): JQuery; + } +} + +/** + * uploader + */ + + +interface UploaderOption { + drop_element?: string, + browse_button?: string, + url: string, + qiniu?: object, + filters?: { + mime_type: Array<{ + title?: string, + extensions?: string + }>, + max_file_size?: string, + prevent_duplicates?: string + }, + fileList?: string, + fileTemplate?: string, + fileFormater?($file: JQuery, file: FileObj, status: STATUS): void; + fileIconCreator?(fileType: string, file: FileObj, uploader: Uploader): void; + staticFiles?: Array<{ + id?: string, + name?: string, + type?: string, + size?: string, + origSize?: string, + lastModifiedDate?: Date + }>; + rename?: boolean, + renameExtension?: boolean, + renameByClick?: boolean, + autoUpload?: boolean, + browseByClickList?: boolean, + dropPlaceholder?: boolean, + previewImageIcon?: boolean, + sendFileName?: boolean, + sendFileId?: boolean, + responseHandler?: boolean | Function, + limitFilesCount?: boolean | number, + deleteConfirm?: boolean | string, + removeUploaded?: boolean, + statusCreator?(total: UploadProgress, state: STATUS, uploader: Uploader): void; + previewImageSize?: { width: number, height: number }, + uploadedMessage?: boolean, + deleteActionOnDone?: boolean, + renameActionOnDone?: boolean, + headers?: object, + multipart?: boolean, + multipart_params?: object | Function, + max_retries?: number, + chunk_size?: string, + resize?: { + width?: number, + height?: number, + crop?: boolean, + quuality?: number, + preserve_headers?: boolean + }, + multi_selection?: boolean, + unique_names?: boolean, + runtimes?: string, + file_data_name?: string, + flash_swf_url?: string, + silverlight_xap_url?: string, + lang?: string, + + onInit?(): void, + onFilesAdded?(fiels: Array): void; + onUploadProgress?(file: FileObj): void; + onFileUploaded?(file: FileObj, responseObject: ResponseObject): void + onUploadComplete?(files: Array): void, + onFilesRemoved?(files: Array): void, + onChunkUploaded?(file: FileObj, responseObject: ResponseObject): void, + onUploadFile?(file: FileObj): void, + onBeforeUpload?(file: FileObj): void, + onStateChanged?(status: STATUS): void, + onQueueChanged?(): void, + onError?(error: { error: ERRORS, message: string, file: FileObj }): void +} +interface ResponseObject { + response?: string, + responseHeaders?: object, + status?: number, + offset?: number, + total?: number +} +declare enum STATUS { + STOPPED = 1, STARTED = 2, QUEUED = 1, UPLOADING = 2, FAILED = 3, DONE = 4 +} +interface FileObj { + id?: string, + name?: string, + type?: string, + ext?: string, + isImage?: boolean, + previewImage?: string, + size?: number, + origSize?: number, + loaded?: number, + percent?: number, + status?: STATUS, + lastModifiedDate?: Date, + getNative(): File, + destroy(): void +} +interface UploadProgress { + size?: number, + loaded?: number, + uploaded?: number, + failed?: number, + queued?: number, + percent?: number, + bytesPerSec?: number +} +declare enum ERRORS { + GENERIC_ERROR = -100, + HTTP_ERROR = -200, + IO_ERROR = -300, + SECURITY_ERROR = -400, + INIT_ERROR = -500, + FILE_SIZE_ERROR = -600, + FILE_EXTENSION_ERROR = -601, + FILE_DUPLICATE_ERROR = -602, + IMAGE_FORMAT_ERROR = -700, + IMAGE_MEMORY_ERROR = -701, + IMAGE_DIMENSIONS_ERROR = -702 +} +interface Uploader { + showMessage(message: string, type: string, time?: number): void; + hideMessage(): void; + start(): void, + stop(): void, + getState(): STATUS, + isStarted(): boolean, + isStopped(): boolean, + getFiles(): Array; + getTotal(): UploadProgress, + disableBrowse(disable: boolean): void, + getFile(id: string): FileObj, + showFile(file: FileObj | Array): void; + removeFile(file: FileObj): void; + destroy(): void, + showStatus(): void +} +declare global { + interface JQuery { + uploader(option: UploaderOption): JQuery; + } +} \ No newline at end of file diff --git a/types/zui/messager.d.ts b/types/zui/messager.d.ts deleted file mode 100644 index a7397eff19..0000000000 --- a/types/zui/messager.d.ts +++ /dev/null @@ -1,50 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -declare enum MessagerTypeEnum { - 'default', 'primary', 'success', 'info', 'warning', 'danger', 'important', 'special' -} -interface Action { - name?: string, - icon?: string, - text?: string - html?: string - action?: ActionFunc; -} - -interface ActionFunc { - (): boolean; -} -interface OnActionFunc { - (name: string, action: string, messager: Messager): any -} - -interface MessagerOption { - type?: MessagerTypeEnum | string; - placement?: string, - time?: number; - message?: string, - parent?: string, - icon?: string, - close?: boolean; - fade?: boolean; - scale?: boolean; - actions?: Array; - onAction?: OnActionFunc; - cssClass?: string, - contentClass?: string, - show?: boolean -} -interface Messager { - show(cb?: Function): any; - show(message: string, cb?: Function): any; - - hide(cb?: Function): any; -} -interface MessagerStatic { - new (option?: MessagerOption): Messager; - new (message: string, option?: MessagerOption): Messager; -} -//sdeclare var messager: Messager; diff --git a/types/zui/modal.trigger.d.ts b/types/zui/modal.trigger.d.ts deleted file mode 100644 index 8cb71d6b29..0000000000 --- a/types/zui/modal.trigger.d.ts +++ /dev/null @@ -1,55 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface ModalTriggerOption { - name?: string, - className?: string, - type?: string, - url?: string, - remote?: string, - iframe?: string, - size?: string, - width?: string, - height?: string, - showHeader?: boolean, - title?: string, - icon?: string, - fade?: boolean, - postion?: string, - backdrop?: boolean, - keyboard?: boolean, - moveable?: boolean, - rememberPos?: boolean, - waittime?: number, - loadingIcon?: string, - - show?(): any; - onShow?(): any; - onHide?(): any; - hidden?(): any; - loaded?(): any; - broken?(): any; -} - -interface ModalTrigger { - show(option?: ModalTriggerOption): any; - close(): any; - toggle(option?: ModalTriggerOption): any; - adjustPostion(option?: ModalTriggerOption): any; - -} -interface ModalTriggerStatic { - new (option?: ModalTriggerOption): ModalTrigger -} - -interface JQuery { - modalTrigger(option?: ModalTriggerOption): JQuery //$('#modal').modalTrigger() - data(value: string): JQuery; -} - -interface ZuiStatic { - ModalTrigger: ModalTriggerStatic; - modalTrigger: ModalTrigger; -} \ No newline at end of file diff --git a/types/zui/selectable.d.ts b/types/zui/selectable.d.ts deleted file mode 100644 index 1cb91ffe8c..0000000000 --- a/types/zui/selectable.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface SelectableEvent { - selections: Map; - selected: Array; -} -interface SelectableOption { - selector?: string, - trigger?: string, - rangeStyle?: string|object, - clickBehavior?: string, - mouseButton?: string, - ignoreVal?: number, - - start?(e?: SelectableEvent): boolean; - finish?(e?: SelectableEvent): void; - select?(e?: SelectableEvent): void; - unselect?(e?: SelectableEvent): void; -} - -interface Selectable { - toggle(): any; - toggle(elementOrId: string | object | JQuery): any; - select(): any; - select(elementOrId: string | object | JQuery): any; - unselect(): any; - unselect(elementOrId: string | object | JQuery): any; -} - -interface JQuery { - selectable(option?: SelectableOption): JQuery; - -} \ No newline at end of file diff --git a/types/zui/sortable.d.ts b/types/zui/sortable.d.ts deleted file mode 100644 index 226b445837..0000000000 --- a/types/zui/sortable.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface SortEvent { - list: Array; - element: JQuery | object; -} - -interface SortableOption { - selector?: string, - trigger?: string, - reverse?: boolean, - dragCssClass?: string, - sortingClass?: string, - mouseButton?: string, - start?(e?: SortEvent): void; - order?(e?: SortEvent): void; - finish?(e?: SortEvent): void; -} - -interface JQuery { - sortable(command?: string): JQuery - sortable(option?: SortableOption): JQuery -} \ No newline at end of file diff --git a/types/zui/store.d.ts b/types/zui/store.d.ts deleted file mode 100644 index 0da80c6420..0000000000 --- a/types/zui/store.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface StoreStatic { - enable: boolean; - storage: any; - length(): number; - remove(key: string): any; - get(key: string): T; - set(key: string, value?: T): any; - key(index: number): string; - forEach(cb: (key: string, value: T) => any): any; - serialize(value: any): string; - deserialize(value: string): T; - getAll(): T; - removeItem(key: string): any; - getItem(key: string): string; - setItem(key: string, value: any): any; - clear(): void; - - page: any; - pageGet(key: string): any; - pageSet(key: string, value: any): any; - pageRemove(key: string): any; - pageSave(): any; - pageClear(): any; -} \ No newline at end of file diff --git a/types/zui/treemenu.d.ts b/types/zui/treemenu.d.ts deleted file mode 100644 index 048752aa56..0000000000 --- a/types/zui/treemenu.d.ts +++ /dev/null @@ -1,48 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface TreeNode { - title?: string, - url?: string, - html?: string, - children?: Array; - open?: boolean, - id?: string -} -interface TreeMenuOption { - animate?: boolean, - initialState?: string, - data?: Array - itemCreator?(li: JQuery | object, item: TreeNode): any, - itemWrapper?: boolean -} - -interface TreeMenu { - expand(): void; - expand(params: JQuery): void; - expand(params: JQuery, disableAnimate: boolean): void; - - collapse(): void; - collapse(params: JQuery): void; - collapse(params: JQuery, disableAnimate: boolean): void; - - toggle(): void; - toggle(params: JQuery): void; - toggle(params: JQuery, disableAnimate: boolean): void; - - show(): void; - show(params: JQuery): void; - show(params: JQuery, disableAnimate: boolean): void; - - add(element: JQuery, items: Array, expand?: boolean, disabledAnimate?: boolean): void; - toData($ul?: JQuery, filter?: string): object; - - reload(data: Array):void; - remove(): void; - empty(): void; -} -interface JQuery { - tree(option?: TreeMenuOption): JQuery -} \ No newline at end of file diff --git a/types/zui/uploader.d.ts b/types/zui/uploader.d.ts deleted file mode 100644 index 60a53e4c67..0000000000 --- a/types/zui/uploader.d.ts +++ /dev/null @@ -1,153 +0,0 @@ -// Type definitions for zui 1.7 -// Project: http://zui.sexy -// Definitions by: YuanXu -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -interface UploaderOption { - drop_element?: string, - browse_button?: string, - url: string, - qiniu?: object, - filters?: { - mime_type: Array<{ - title?: string, - extensions?: string - }>, - max_file_size?: string, - prevent_duplicates?: string - }, - fileList?: string, - fileTemplate?: string, - fileFormater?($file: JQuery, file: FileObj, status: STATUS): void; - fileIconCreator?(fileType: string, file: FileObj, uploader: Uploader): void; - staticFiles?: Array<{ - id?: string, - name?: string, - type?: string, - size?: string, - origSize?: string, - lastModifiedDate?: Date - }>; - rename?: boolean, - renameExtension?: boolean, - renameByClick?: boolean, - autoUpload?: boolean, - browseByClickList?: boolean, - dropPlaceholder?: boolean, - previewImageIcon?: boolean, - sendFileName?: boolean, - sendFileId?: boolean, - responseHandler?: boolean | Function, - limitFilesCount?: boolean | number, - deleteConfirm?: boolean | string, - removeUploaded?: boolean, - statusCreator?(total: UploadProgress, state: STATUS, uploader: Uploader): void; - previewImageSize?: { width: number, height: number }, - uploadedMessage?: boolean, - deleteActionOnDone?: boolean, - renameActionOnDone?: boolean, - headers?: object, - multipart?: boolean, - multipart_params?: object | Function, - max_retries?: number, - chunk_size?: string, - resize?: { - width?: number, - height?: number, - crop?: boolean, - quuality?: number, - preserve_headers?: boolean - }, - multi_selection?: boolean, - unique_names?: boolean, - runtimes?: string, - file_data_name?: string, - flash_swf_url?: string, - silverlight_xap_url?: string, - lang?: string, - - onInit?(): void, - onFilesAdded?(fiels: Array): void; - onUploadProgress?(file: FileObj): void; - onFileUploaded?(file: FileObj, responseObject: ResponseObject): void - onUploadComplete?(files: Array): void, - onFilesRemoved?(files: Array): void, - onChunkUploaded?(file: FileObj, responseObject: ResponseObject): void, - onUploadFile?(file: FileObj): void, - onBeforeUpload?(file: FileObj): void, - onStateChanged?(status: STATUS): void, - onQueueChanged?(): void, - onError?(error: { error: ERRORS, message: string, file: FileObj }): void -} -interface ResponseObject { - response?: string, - responseHeaders?: object, - status?: number, - offset?: number, - total?: number -} -declare enum STATUS { - STOPPED = 1, STARTED = 2, QUEUED = 1, UPLOADING = 2, FAILED = 3, DONE = 4 -} -interface FileObj { - id?: string, - name?: string, - type?: string, - ext?: string, - isImage?: boolean, - previewImage?: string, - size?: number, - origSize?: number, - loaded?: number, - percent?: number, - status?: STATUS, - lastModifiedDate?: Date, - getNative(): File, - destroy(): void -} -interface UploadProgress { - size?: number, - loaded?: number, - uploaded?: number, - failed?: number, - queued?: number, - percent?: number, - bytesPerSec?: number -} -declare enum ERRORS { - GENERIC_ERROR = -100, - HTTP_ERROR = -200, - IO_ERROR = -300, - SECURITY_ERROR = -400, - INIT_ERROR = -500, - FILE_SIZE_ERROR = -600, - FILE_EXTENSION_ERROR = -601, - FILE_DUPLICATE_ERROR = -602, - IMAGE_FORMAT_ERROR = -700, - IMAGE_MEMORY_ERROR = -701, - IMAGE_DIMENSIONS_ERROR = -702 -} -interface Uploader { - showMessage(message: string, type: string, time?: number): void; - hideMessage(): void; - start(): void, - stop(): void, - getState(): STATUS, - isStarted(): boolean, - isStopped(): boolean, - getFiles(): Array; - getTotal(): UploadProgress, - disableBrowse(disable: boolean): void, - getFile(id: string): FileObj, - showFile(file: FileObj | Array): void; - removeFile(file: FileObj): void; - destroy(): void, - showStatus(): void -} -interface UplaoderStatic { - -} -interface JQuery { - uploader(option: UploaderOption): JQuery; - -} \ No newline at end of file diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index 3d5bc14038..9cb7c15a65 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -5,7 +5,7 @@ new $.zui.Messager('提示消息:成功', { type: 'success' // 定义颜色主题 }).show(); new $.zui.Messager("message"); -let messagarOption: MessagerOption = {}; +let messagarOption: zui.MessagerOption = {}; new $.zui.Messager(messagarOption); new $.zui.Messager("message", messagarOption); $.zui.messager.show("ok"); @@ -162,15 +162,15 @@ $(".form-time").datetimepicker({ format: 'hh:ii' }); -/** - * chosen - */ +// /** +// * chosen +// */ -$('select.chosen-select').chosen({ - no_results_text: '没有找到', // 当检索时没有找到匹配项时显示的提示文本 - disable_search_threshold: 10, // 10 个以下的选择项则不显示检索框 - search_contains: true // 从任意位置开始检索 -}); +// $('select.chosen-select').chosen({ +// no_results_text: '没有找到', // 当检索时没有找到匹配项时显示的提示文本 +// disable_search_threshold: 10, // 10 个以下的选择项则不显示检索框 +// search_contains: true // 从任意位置开始检索 +// }); /** * color @@ -194,11 +194,11 @@ $('#draggableBtn').draggable({ console.log(count++ + ': ' + '[开始] 拖动...\n'); return true; }, - drag: (e: DraggableEvent) => { + drag: (e: zui.DraggableEvent) => { console.log(count++ + ': ' + '拖动: pos = ' + JSON.stringify(e.pos) + ', offset = ' + JSON.stringify(e.offset) + '\n'); // console.log('(' + e.pos.left + ', ' + e.pos.top + ')'); }, - finish: (e: DraggableEvent) => { + finish: (e: zui.DraggableEvent) => { console.log(count++ + ': ' + '[完毕]:pos = ' + JSON.stringify(e.pos) + ', offset = ' + JSON.stringify(e.offset) + '\n'); } }); @@ -212,7 +212,7 @@ $('#multiDroppableContainer').droppable({ start: () => { $('#multiDroppableContainer .droppable-target').removeClass('panel-warning').removeClass('panel-success').find('.panel-heading').text('拖动到这里吗?'); }, - drop: (event: DroppableEvent) => { + drop: (event: zui.DroppableEvent) => { $('#multiDroppableContainer .droppable-target').removeClass('panel-success').removeClass('panel-warning'); if (event.target && event.element) { const elementId = event.element.find('.btn-droppable-id').text(); @@ -223,7 +223,7 @@ $('#multiDroppableContainer').droppable({ $.zui.messager.show(msg); } }, - drag: (event: DroppableEvent) => { + drag: (event: zui.DroppableEvent) => { $('#multiDroppableContainer .droppable-target').removeClass('panel-success').removeClass('panel-warning'); if (event.target) event.target.addClass('panel-warning'); } @@ -235,7 +235,7 @@ $('#multiDroppableContainer').droppable({ // 定义选项对象 const options = { selector: '.sortable-item', - finish: (e: SortEvent) => { + finish: (e: zui.SortEvent) => { console.log('排序完成:', e); }, // 设置更多选项... @@ -253,7 +253,7 @@ $('#selectable').selectable({ rangeStyle: { border: '1px solid red' // 拖选范围指示矩形边框设置为红色 }, - finish: (data: SelectableEvent) => { // 选择结束时的回调函数 + finish: (data: zui.SelectableEvent) => { // 选择结束时的回调函数 // 所有元素的选中或非选中状态 console.log(data.selections); @@ -328,7 +328,7 @@ $('table.datatable').datatable('load', { $('#myUploader').uploader({ url: '...', // ..., - onUploadFile: (file: FileObj) => { + onUploadFile: (file: zui.FileObj) => { console.log('上传成功', file); } }); From 24a19044ad937b1eef8c1574b6d0151fea1da63d Mon Sep 17 00:00:00 2001 From: YuanXu Date: Fri, 14 Jul 2017 17:05:13 +0800 Subject: [PATCH 15/15] fix: compile error --- types/zui/index.d.ts | 945 +++++++++++++++++++---------------------- types/zui/package.json | 5 + types/zui/zui-tests.ts | 17 +- 3 files changed, 455 insertions(+), 512 deletions(-) create mode 100644 types/zui/package.json diff --git a/types/zui/index.d.ts b/types/zui/index.d.ts index cc7c5b1a72..62f553ae7f 100644 --- a/types/zui/index.d.ts +++ b/types/zui/index.d.ts @@ -6,11 +6,9 @@ /// -export as namespace zui; - - +type CallBack = () => void; /** - * bootstrap + * bootstrap */ interface ModalOptions { backdrop?: boolean | string; @@ -34,28 +32,28 @@ interface ScrollSpyOptions { interface TooltipOptions { animation?: boolean; html?: boolean; - placement?: string | Function; + placement?: string | CallBack; selector?: string; - title?: string | Function; + title?: string | CallBack; trigger?: string; template?: string; - delay?: number | Object; + delay?: number | object; container?: string | boolean; - viewport?: string | Function | Object; + viewport?: string | CallBack | object; } interface PopoverOptions { animation?: boolean; html?: boolean; - placement?: string | Function; + placement?: string | CallBack; selector?: string; trigger?: string; - title?: string | Function; + title?: string | CallBack; template?: string; content?: any; - delay?: number | Object; + delay?: number | object; container?: string | boolean; - viewport?: string | Function | Object; + viewport?: string | CallBack | object; } interface CollapseOptions { @@ -74,71 +72,165 @@ interface TypeaheadOptions { source?: any; items?: number; minLength?: number; - matcher?: (item: any) => boolean; - sorter?: (items: any[]) => any[]; - updater?: (item: any) => any; - highlighter?: (item: any) => string; + matcher?(item: any): boolean; + sorter?(items: any[]): any[]; + updater?(item: any): any; + highlighter?(item: any): string; } interface AffixOptions { - offset?: number | Function | Object; + offset?: number | CallBack | object; target?: any; } interface TransitionEventNames { end: string; } -declare global { - interface JQuery { - modal(options?: ModalOptions): JQuery; - modal(options?: ModalOptionsBackdropString): JQuery; - modal(command: string): JQuery; - dropdown(): JQuery; - dropdown(command: string): JQuery; +interface JQuery { + modal(options?: ModalOptions | ModalOptionsBackdropString): JQuery; + modal(command: string): JQuery; - scrollspy(command: string): JQuery; - scrollspy(options?: ScrollSpyOptions): JQuery; + dropdown(command?: string): JQuery; - tab(): JQuery; - tab(command: string): JQuery; + scrollspy(options?: ScrollSpyOptions | string): JQuery; - tooltip(options?: TooltipOptions): JQuery; - tooltip(command: string, params?: string): JQuery; + tab(command?: string): JQuery; - popover(options?: PopoverOptions): JQuery; - popover(command: string): JQuery; + tooltip(options?: TooltipOptions): JQuery; + tooltip(command: string, params?: string): JQuery; - alert(): JQuery; - alert(command: string): JQuery; + popover(options?: PopoverOptions | string): JQuery; - button(): JQuery; - button(command: string): JQuery; + alert(command?: string): JQuery; - collapse(options?: CollapseOptions): JQuery; - collapse(command: string): JQuery; + button(command?: string): JQuery; - carousel(options?: CarouselOptions): JQuery; - carousel(command: string): JQuery; + collapse(options?: CollapseOptions | string): JQuery; - typeahead(options?: TypeaheadOptions): JQuery; + carousel(options?: CarouselOptions | string): JQuery; - affix(options?: AffixOptions): JQuery; + typeahead(options?: TypeaheadOptions): JQuery; - emulateTransitionEnd(duration: number): JQuery; - } + affix(options?: AffixOptions): JQuery; - interface JQuerySupport { - transition: boolean | TransitionEventNames; + emulateTransitionEnd(duration: number): JQuery; +} - } +interface JQuerySupport { + transition: boolean | TransitionEventNames; +} + +/** + * datetime picker + */ + +interface DatetimepickerChangeEventObject extends DatetimepickerEventObject { + oldDate: any; +} + +interface DatetimepickerEventObject extends JQueryEventObject { + date: any; +} + +interface DatetimepickerIcons { + time?: string; + date?: string; + up?: string; + down?: string; +} + +interface DatetimepickerOptions { + weekStart?: number; + todayBtn?: number | boolean; + autoclose?: number | boolean; + todayHighlight?: number | boolean; + startView?: number; + forceParse?: number | boolean; + showMeridian?: boolean | number; + minView?: number; + maxView?: number; + pickDate?: boolean; + pickTime?: boolean; + useMinutes?: boolean; + useSeconds?: boolean; + useCurrent?: boolean; + minuteStepping?: number; + minDate?: Date | string | any; + maxDate?: Date | string | any; + showToday?: boolean; + collapse?: boolean; + language?: string; + defaultDate?: Date | string | any; + disabledDates?: Array; + enabledDates?: Array; + icons?: DatetimepickerIcons; + useStrict?: boolean; + direction?: string; + sideBySide?: boolean; + daysOfWeekDisabled?: number[]; + calendarWeeks?: boolean; + format?: string | boolean; + locale?: string; + showTodayButton?: boolean; + viewMode?: string; + inline?: boolean; + toolbarPlacement?: string; + showClear?: boolean; + ignoreReadonly?: boolean; +} + +interface Datetimepicker { + date(date: Date | string | object): void; + date(): object; + minDate(date: Date | string | object): void; + minDate(): boolean | object; + maxDate(date: Date | string | object): void; + maxDate(): boolean | object; + show(): void; + disable(): void; + enable(): void; + destroy(): void; + toggle(): void; +} + +interface JQuery { + datetimepicker(options?: DatetimepickerOptions): JQuery; + + // off(events: "dp.change", selector?: string, handler?: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + // off(events: "dp.change", handler: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + + // on(events: "dp.change", selector: string, data: any, handler?: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + // on(events: "dp.change", selector: string, handler: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; + // on(events: 'dp.change', handler: (eventObject: DatetimepickerChangeEventObject) => any): JQuery; + + // off(events: "dp.show", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + // off(events: "dp.show", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + + // on(events: "dp.show", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + // on(events: "dp.show", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + // on(events: 'dp.show', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; + + // off(events: "dp.hide", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + // off(events: "dp.hide", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + + // on(events: "dp.hide", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + // on(events: "dp.hide", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + // on(events: 'dp.hide', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; + + // off(events: "dp.error", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + // off(events: "dp.error", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + + // on(events: "dp.error", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; + // on(events: "dp.error", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; + // on(events: 'dp.error', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; + + data(key: 'DateTimePicker'): Datetimepicker; } /** * store */ - - interface StoreStatic { enable: boolean; storage: any; @@ -167,54 +259,49 @@ interface StoreStatic { /** * messager */ - - declare enum MessagerTypeEnum { 'default', 'primary', 'success', 'info', 'warning', 'danger', 'important', 'special' } interface Action { - name?: string, - icon?: string, - text?: string - html?: string + name?: string; + icon?: string; + text?: string; + html?: string; action?: ActionFunc; } -interface ActionFunc { - (): boolean; -} -interface OnActionFunc { - (name: string, action: string, messager: Messager): any -} +type ActionFunc = () => boolean; + +type OnActionFunc = (name: string, action: string, messager: Messager) => any; interface MessagerOption { type?: MessagerTypeEnum | string; - placement?: string, + placement?: string; time?: number; - message?: string, - parent?: string, - icon?: string, + message?: string; + parent?: string; + icon?: string; close?: boolean; fade?: boolean; scale?: boolean; - actions?: Array; + actions?: Action[]; onAction?: OnActionFunc; - cssClass?: string, - contentClass?: string, - show?: boolean + cssClass?: string; + contentClass?: string; + show?: boolean; } interface Messager { - show(cb?: Function): any; - show(message: string, cb?: Function): any; + show(cb?: CallBack): any; + show(message: string, cb?: CallBack): any; - hide(cb?: Function): any; + hide(cb?: CallBack): any; } interface MessagerStatic { new(option?: MessagerOption): Messager; new(message: string, option?: MessagerOption): Messager; } -export interface ZuiStatic { +interface ZuiStatic { // $.zui.messager messager: Messager; Messager: MessagerStatic; @@ -222,32 +309,30 @@ export interface ZuiStatic { store: StoreStatic; } - /** * modal trigger */ - interface ModalTriggerOption { - name?: string, - className?: string, - type?: string, - url?: string, - remote?: string, - iframe?: string, - size?: string, - width?: string, - height?: string, - showHeader?: boolean, - title?: string, - icon?: string, - fade?: boolean, - postion?: string, - backdrop?: boolean, - keyboard?: boolean, - moveable?: boolean, - rememberPos?: boolean, - waittime?: number, - loadingIcon?: string, + name?: string; + className?: string; + type?: string; + url?: string; + remote?: string; + iframe?: string; + size?: string; + width?: string; + height?: string; + showHeader?: boolean; + title?: string; + icon?: string; + fade?: boolean; + postion?: string; + backdrop?: boolean; + keyboard?: boolean; + moveable?: boolean; + rememberPos?: boolean; + waittime?: number; + loadingIcon?: string; show?(): any; onShow?(): any; @@ -262,139 +347,23 @@ interface ModalTrigger { close(): any; toggle(option?: ModalTriggerOption): any; adjustPostion(option?: ModalTriggerOption): any; - } interface ModalTriggerStatic { - new(option?: ModalTriggerOption): ModalTrigger + new(option?: ModalTriggerOption): ModalTrigger; } -declare global { - interface JQuery { - modalTrigger(option?: ModalTriggerOption): JQuery //$('#modal').modalTrigger() - data(value: string): JQuery; - } + +interface JQuery { + modalTrigger(option?: ModalTriggerOption): JQuery; // $('#modal').modalTrigger() + data(value: string): JQuery; } + interface ZuiStatic { ModalTrigger: ModalTriggerStatic; modalTrigger: ModalTrigger; } -declare global { - interface JQueryStatic { - zui: ZuiStatic; - } - -} - -/** - * datetime picker - */ - -import * as moment from 'moment'; - -export interface DatetimepickerChangeEventObject extends DatetimepickerEventObject { - oldDate: moment.Moment; -} - -export interface DatetimepickerEventObject extends JQueryEventObject { - date: moment.Moment; -} - -export interface DatetimepickerIcons { - time?: string; - date?: string; - up?: string; - down?: string; -} - -export interface DatetimepickerOptions { - weekStart?: number; - todayBtn?: number | boolean; - autoclose?: number | boolean; - todayHighlight?: number | boolean; - startView?: number; - forceParse?: number | boolean; - showMeridian?: boolean | number, - minView?: number; - maxView?: number; - pickDate?: boolean; - pickTime?: boolean; - useMinutes?: boolean; - useSeconds?: boolean; - useCurrent?: boolean; - minuteStepping?: number; - minDate?: moment.Moment | Date | string; - maxDate?: moment.Moment | Date | string; - showToday?: boolean; - collapse?: boolean; - language?: string; - defaultDate?: moment.Moment | Date | string; - disabledDates?: Array; - enabledDates?: Array; - icons?: DatetimepickerIcons; - useStrict?: boolean; - direction?: string; - sideBySide?: boolean; - daysOfWeekDisabled?: Array; - calendarWeeks?: boolean; - format?: string | boolean; - locale?: string; - showTodayButton?: boolean; - viewMode?: string; - inline?: boolean; - toolbarPlacement?: string; - showClear?: boolean; - ignoreReadonly?: boolean; -} - -export interface Datetimepicker { - date(date: moment.Moment | Date | string): void; - date(): moment.Moment; - minDate(date: moment.Moment | Date | string): void; - minDate(): moment.Moment | boolean; - maxDate(date: moment.Moment | Date | string): void; - maxDate(): moment.Moment | boolean; - show(): void; - disable(): void; - enable(): void; - destroy(): void; - toggle(): void; -} - -declare global { - interface JQuery { - datetimepicker(): JQuery; - datetimepicker(options: DatetimepickerOptions): JQuery; - - off(events: "dp.change", selector?: string, handler?: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; - off(events: "dp.change", handler: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; - - on(events: "dp.change", selector: string, data: any, handler?: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; - on(events: "dp.change", selector: string, handler: (eventobject: DatetimepickerChangeEventObject) => any): JQuery; - on(events: 'dp.change', handler: (eventObject: DatetimepickerChangeEventObject) => any): JQuery; - - off(events: "dp.show", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - off(events: "dp.show", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - - on(events: "dp.show", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: "dp.show", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: 'dp.show', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; - - off(events: "dp.hide", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - off(events: "dp.hide", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - - on(events: "dp.hide", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: "dp.hide", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: 'dp.hide', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; - - off(events: "dp.error", selector?: string, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - off(events: "dp.error", handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - - on(events: "dp.error", selector: string, data: any, handler?: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: "dp.error", selector: string, handler: (eventobject: DatetimepickerEventObject) => any): JQuery; - on(events: 'dp.error', handler: (eventObject: DatetimepickerEventObject) => any): JQuery; - - data(key: 'DateTimePicker'): Datetimepicker; - } +interface JQueryStatic { + zui: ZuiStatic; } /** @@ -403,7 +372,7 @@ declare global { interface Color { rgb(rgbaColor?: string): object; - hue(hue: string): string, + hue(hue: string): string; darken(percent: number): string; lighten(percent: number): string; clone(): Color; @@ -417,13 +386,10 @@ interface Color { } interface ColorStatic { - new(): Color; - new(hexStr: string): Color; - new(r: number, g: number, b: number): Color; - new(r: number, g: number, b: number, a: number): Color; - new(rgbColorOrRgbaColorOrName: string): Color; + new(r: number, g: number, b: number, a?: number): Color; + new(hexStrOrrgbColorOrRgbaColorOrName?: string): Color; isColor(str: string): boolean; - names: Array; + names: string[]; } interface ColorSet { get(name: string): Color; @@ -451,28 +417,24 @@ interface DraggableEvent { offset?: object; smallOffset?: object; startOffset?: object; - } interface DraggableOption { - container?: string, + container?: string; move?: boolean; - selector?: string, - handle?: string, - mouseButton?: string, - stopPropagation?: boolean, + selector?: string; + handle?: string; + mouseButton?: string; + stopPropagation?: boolean; before?(e?: DraggableEvent): boolean; drag?(e: DraggableEvent): void; - finish?(e: DraggableEvent): void + finish?(e: DraggableEvent): void; } -declare global { - interface JQuery { - draggable(command: string): JQuery; - draggable(option: DraggableOption): JQuery; - } +interface JQuery { + draggable(option: DraggableOption | string): JQuery; } /** - * droppable + * droppable */ interface Postion { @@ -481,6 +443,7 @@ interface Postion { width: number; height: number; } + interface DroppableEvent { event?: object; element?: JQuery; @@ -489,18 +452,18 @@ interface DroppableEvent { offset?: object; smallOffset?: object; startOffset?: object; - } -interface DroppableOption { - container?: string, - selector?: string, - handle?: string, - target: JQuery | string, - flex?: boolean, - deviation?: number, - sensorOffsetX?: number, - sensorOffsetY?: number, +interface DroppableOption { + container?: string; + selector?: string; + handle?: string; + target: JQuery | string; + + flex?: boolean; + deviation?: number; + sensorOffsetX?: number; + sensorOffsetY?: number; before?(e?: DroppableEvent): boolean; start?(e?: DroppableEvent): void; @@ -510,55 +473,49 @@ interface DroppableOption { finish?(e: DroppableEvent): void; always?(e: DroppableEvent): void; } -declare global { - interface JQuery { - droppable(command: string): JQuery; - droppable(option: DroppableOption): JQuery; - } +interface JQuery { + droppable(option: DroppableOption | string): JQuery; } + /** * sortable */ - -interface SortEvent { +interface SortEvent extends Event { list: Array; element: JQuery | object; } interface SortableOption { - selector?: string, - trigger?: string, - reverse?: boolean, - dragCssClass?: string, - sortingClass?: string, - mouseButton?: string, + selector?: string; + trigger?: string; + reverse?: boolean; + dragCssClass?: string; + sortingClass?: string; + mouseButton?: string; start?(e?: SortEvent): void; order?(e?: SortEvent): void; finish?(e?: SortEvent): void; } -declare global { - interface JQuery { - sortable(command?: string): JQuery - sortable(option?: SortableOption): JQuery - } +interface JQuery { + sortable(option?: SortableOption | string): JQuery; } /** * selectable */ -interface SelectableEvent { +interface SelectableEvent extends Event { selections: Map; - selected: Array; + selected: number[]; } interface SelectableOption { - selector?: string, - trigger?: string, - rangeStyle?: string | object, - clickBehavior?: string, - mouseButton?: string, - ignoreVal?: number, + selector?: string; + trigger?: string; + rangeStyle?: string | object; + clickBehavior?: string; + mouseButton?: string; + ignoreVal?: number; start?(e?: SelectableEvent): boolean; finish?(e?: SelectableEvent): void; @@ -567,57 +524,50 @@ interface SelectableOption { } interface Selectable { - toggle(): any; - toggle(elementOrId: string | object | JQuery): any; - select(): any; - select(elementOrId: string | object | JQuery): any; - unselect(): any; - unselect(elementOrId: string | object | JQuery): any; + toggle(elementOrId?: string | object | JQuery): any; + select(elementOrId?: string | object | JQuery): any; + unselect(elementOrId?: string | object | JQuery): any; +} +interface JQuery { + selectable(option?: SelectableOption): JQuery; } -declare global { - interface JQuery { - selectable(option?: SelectableOption): JQuery; - } -} /** * image cutter */ - interface ImageCutterOption { - coverColor?: string, - coverOpacity?: number, - defaultWidth?: number, - defaultHeight?: number, - fixedRatio?: boolean, - minWidth?: number, - minHeight?: number, - post?: string, - get?: string + coverColor?: string; + coverOpacity?: number; + defaultWidth?: number; + defaultHeight?: number; + fixedRatio?: boolean; + minWidth?: number; + minHeight?: number; + post?: string; + get?: string; } interface ImageData { - originWidth: number, - originHeight: number, - scaled: boolean, - scaleHeight: number, - scaleWidth: number, - width: number, - height: number, - left: number, - right: number, - top: number, - bottom: number + originWidth: number; + originHeight: number; + scaled: boolean; + scaleHeight: number; + scaleWidth: number; + // width: number; + // height: number; + left: number; + right: number; + top: number; + bottom: number; } interface ImageCutter { resetImage(img: string): any; getData(): ImageData; } -declare global { - interface JQuery { - imgCutter(option: ImageCutterOption): JQuery; - data(cmd: string): ImageCutter; - } + +interface JQuery { + imgCutter(option: ImageCutterOption): JQuery; + data(cmd: string): ImageCutter; } /** @@ -625,114 +575,105 @@ declare global { */ interface TreeNode { - title?: string, - url?: string, - html?: string, - children?: Array; - open?: boolean, - id?: string + title?: string; + url?: string; + html?: string; + children?: TreeNode[]; + open?: boolean; + id?: string; } interface TreeMenuOption { - animate?: boolean, - initialState?: string, - data?: Array - itemCreator?(li: JQuery | object, item: TreeNode): any, - itemWrapper?: boolean + animate?: boolean; + initialState?: string; + data?: TreeNode[]; + itemCreator?(li: JQuery | object, item: TreeNode): any; + itemWrapper?: boolean; } interface TreeMenu { - expand(): void; - expand(params: JQuery): void; - expand(params: JQuery, disableAnimate: boolean): void; + expand(params?: JQuery, disableAnimate?: boolean): void; - collapse(): void; - collapse(params: JQuery): void; - collapse(params: JQuery, disableAnimate: boolean): void; + collapse(params?: JQuery, disableAnimate?: boolean): void; - toggle(): void; - toggle(params: JQuery): void; - toggle(params: JQuery, disableAnimate: boolean): void; + toggle(params?: JQuery, disableAnimate?: boolean): void; - show(): void; - show(params: JQuery): void; - show(params: JQuery, disableAnimate: boolean): void; + show(params?: JQuery, disableAnimate?: boolean): void; - add(element: JQuery, items: Array, expand?: boolean, disabledAnimate?: boolean): void; + add(element: JQuery, items: TreeNode[], expand?: boolean, disabledAnimate?: boolean): void; toData($ul?: JQuery, filter?: string): object; - reload(data: Array): void; + reload(data: TreeNode[]): void; remove(): void; empty(): void; } -declare global { - interface JQuery { - tree(option?: TreeMenuOption): JQuery - } + +interface JQuery { + tree(option?: TreeMenuOption): JQuery; } -interface Col { - width?: number, - text?: string, - type?: string, - flex?: boolean, - colClass?: string, - sort?: string, - ignore?: boolean +interface Column { + width?: number; + text?: string; + type?: string; + flex?: boolean; + colClass?: string; + sort?: string; + ignore?: boolean; } interface Row { - id?: string, - checked?: boolean, - cssClass?: string, - css?: string, - data?: Array + id?: string; + checked?: boolean; + cssClass?: string; + css?: string; + data?: [number, string, string]; } interface DataTableData { - rows: Array, - cols: Array + rows: Row[]; + cols: Column[]; } -interface AfterLoadEvent { +interface AfterLoadEvent extends Event { data: DataTableData; } -interface SortEvent { +interface SortEvent extends Event { sorter: { - index: number, - sortUp: boolean, - } + index: number; + sortUp: boolean; + }; } -interface SizeChangeEvent { +interface SizeChangeEvent extends Event { changes: { - change: string, - oldWidth: number, - newWidth: number, - colIndex: number, - } + change: string; + oldWidth: number; + newWidth: number; + colIndex: number; + }; } -interface ChecksChangeEvent { +interface ChecksChangeEvent extends Event { checks: { - checkedAll: boolean, - checks: Array - } + checkedAll: boolean; + checks: number[]; + }; } interface DataTableOption { - checkable?: boolean, - checkByClickRow?: boolean, - checkedClass?: string, - storage?: boolean, - sortable?: boolean, - fixedHeader?: boolean, - fixedHeaderOffset?: number, - fixedLeftWidth?: string, - fixedRightWidth?: string, - flexHeadDrag?: boolean, - scrollPos?: string, - rowHover?: boolean, - colHover?: boolean, - fixCellHeight?: boolean, - minColWidth?: number, - minFixedLeftWidth?: number, - minFixedRightWidth?: number, - minFlexAreaWidth?: number - selectable?: boolean | object, + checkable?: boolean; + checkByClickRow?: boolean; + checkedClass?: string; + storage?: boolean; + sortable?: boolean; + fixedHeader?: boolean; + fixedHeaderOffset?: number; + fixedLeftWidth?: string; + fixedRightWidth?: string; + flexHeadDrag?: boolean; + scrollPos?: string; + rowHover?: boolean; + colHover?: boolean; + fixCellHeight?: boolean; + minColWidth?: number; + minFixedLeftWidth?: number; + minFixedRightWidth?: number; + minFlexAreaWidth?: number; + selectable?: boolean | object; afterLoad?(event: AfterLoadEvent): void; ready?(): void; @@ -742,131 +683,128 @@ interface DataTableOption { } interface DataTable { - checks: { checkedAll: boolean, checks: Array } + checks: { checkedAll: boolean, checks: number[] }; } -declare global { - interface JQuery { - datatable(option?: DataTableOption): JQuery; - datatable(command: string, option?: DataTableOption): JQuery; - datatable(command: string, data: DataTableData): JQuery; - } + +interface JQuery { + datatable(option?: DataTableOption): JQuery; + datatable(command: string, optionOrData: DataTableOption | DataTableData): JQuery; } /** * uploader */ - interface UploaderOption { - drop_element?: string, - browse_button?: string, - url: string, - qiniu?: object, + drop_element?: string; + browse_button?: string; + url: string; + qiniu?: object; filters?: { mime_type: Array<{ - title?: string, - extensions?: string + title?: string; + extensions?: string; }>, - max_file_size?: string, - prevent_duplicates?: string - }, - fileList?: string, - fileTemplate?: string, + max_file_size?: string; + prevent_duplicates?: string; + }; + fileList?: string; + fileTemplate?: string; fileFormater?($file: JQuery, file: FileObj, status: STATUS): void; fileIconCreator?(fileType: string, file: FileObj, uploader: Uploader): void; staticFiles?: Array<{ - id?: string, - name?: string, - type?: string, - size?: string, - origSize?: string, - lastModifiedDate?: Date + id?: string; + name?: string; + type?: string; + size?: string; + origSize?: string; + lastModifiedDate?: Date; }>; - rename?: boolean, - renameExtension?: boolean, - renameByClick?: boolean, - autoUpload?: boolean, - browseByClickList?: boolean, - dropPlaceholder?: boolean, - previewImageIcon?: boolean, - sendFileName?: boolean, - sendFileId?: boolean, - responseHandler?: boolean | Function, - limitFilesCount?: boolean | number, - deleteConfirm?: boolean | string, - removeUploaded?: boolean, + rename?: boolean; + renameExtension?: boolean; + renameByClick?: boolean; + autoUpload?: boolean; + browseByClickList?: boolean; + dropPlaceholder?: boolean; + previewImageIcon?: boolean; + sendFileName?: boolean; + sendFileId?: boolean; + responseHandler?: boolean | CallBack; + limitFilesCount?: boolean | number; + deleteConfirm?: boolean | string; + removeUploaded?: boolean; statusCreator?(total: UploadProgress, state: STATUS, uploader: Uploader): void; - previewImageSize?: { width: number, height: number }, - uploadedMessage?: boolean, - deleteActionOnDone?: boolean, - renameActionOnDone?: boolean, - headers?: object, - multipart?: boolean, - multipart_params?: object | Function, - max_retries?: number, - chunk_size?: string, + previewImageSize?: { width: number, height: number }; + uploadedMessage?: boolean; + deleteActionOnDone?: boolean; + renameActionOnDone?: boolean; + headers?: object; + multipart?: boolean; + multipart_params?: object | CallBack; + max_retries?: number; + chunk_size?: string; resize?: { - width?: number, - height?: number, - crop?: boolean, - quuality?: number, - preserve_headers?: boolean - }, - multi_selection?: boolean, - unique_names?: boolean, - runtimes?: string, - file_data_name?: string, - flash_swf_url?: string, - silverlight_xap_url?: string, - lang?: string, + width?: number; + height?: number; + crop?: boolean; + quuality?: number; + preserve_headers?: boolean; + }; + multi_selection?: boolean; + unique_names?: boolean; + runtimes?: string; + file_data_name?: string; + flash_swf_url?: string; + silverlight_xap_url?: string; + lang?: string; - onInit?(): void, - onFilesAdded?(fiels: Array): void; + onInit?(): void; + onFilesAdded?(fiels: FileObj[]): void; onUploadProgress?(file: FileObj): void; - onFileUploaded?(file: FileObj, responseObject: ResponseObject): void - onUploadComplete?(files: Array): void, - onFilesRemoved?(files: Array): void, - onChunkUploaded?(file: FileObj, responseObject: ResponseObject): void, - onUploadFile?(file: FileObj): void, - onBeforeUpload?(file: FileObj): void, - onStateChanged?(status: STATUS): void, - onQueueChanged?(): void, - onError?(error: { error: ERRORS, message: string, file: FileObj }): void + onFileUploaded?(file: FileObj, responseObject: ResponseObject): void; + onUploadComplete?(files: FileObj[]): void; + onFilesRemoved?(files: FileObj[]): void; + onChunkUploaded?(file: FileObj, responseObject: ResponseObject): void; + onUploadFile?(file: FileObj): void; + onBeforeUpload?(file: FileObj): void; + onStateChanged?(status: STATUS): void; + onQueueChanged?(): void; + onError?(error: { error: ERRORS, message: string, file: FileObj }): void; } interface ResponseObject { - response?: string, - responseHeaders?: object, - status?: number, - offset?: number, - total?: number + response?: string; + responseHeaders?: object; + status?: number; + offset?: number; + total?: number; } declare enum STATUS { STOPPED = 1, STARTED = 2, QUEUED = 1, UPLOADING = 2, FAILED = 3, DONE = 4 } interface FileObj { - id?: string, - name?: string, - type?: string, - ext?: string, - isImage?: boolean, - previewImage?: string, - size?: number, - origSize?: number, - loaded?: number, - percent?: number, - status?: STATUS, - lastModifiedDate?: Date, - getNative(): File, - destroy(): void + id?: string; + name?: string; + type?: string; + ext?: string; + isImage?: boolean; + previewImage?: string; + size?: number; + origSize?: number; + loaded?: number; + percent?: number; + status?: STATUS; + lastModifiedDate?: Date; + getNative(): File; + destroy(): void; } interface UploadProgress { - size?: number, - loaded?: number, - uploaded?: number, - failed?: number, - queued?: number, - percent?: number, - bytesPerSec?: number + size?: number; + loaded?: number; + uploaded?: number; + failed?: number; + queued?: number; + percent?: number; + bytesPerSec?: number; } declare enum ERRORS { GENERIC_ERROR = -100, @@ -884,22 +822,21 @@ declare enum ERRORS { interface Uploader { showMessage(message: string, type: string, time?: number): void; hideMessage(): void; - start(): void, - stop(): void, - getState(): STATUS, - isStarted(): boolean, - isStopped(): boolean, - getFiles(): Array; - getTotal(): UploadProgress, - disableBrowse(disable: boolean): void, - getFile(id: string): FileObj, - showFile(file: FileObj | Array): void; + start(): void; + stop(): void; + getState(): STATUS; + isStarted(): boolean; + isStopped(): boolean; + getFiles(): FileObj[]; + getTotal(): UploadProgress; + disableBrowse(disable: boolean): void; + getFile(id: string): FileObj; + showFile(file: FileObj | FileObj[]): void; removeFile(file: FileObj): void; - destroy(): void, - showStatus(): void + destroy(): void; + showStatus(): void; +} + +interface JQuery { + uploader(option: UploaderOption): JQuery; } -declare global { - interface JQuery { - uploader(option: UploaderOption): JQuery; - } -} \ No newline at end of file diff --git a/types/zui/package.json b/types/zui/package.json new file mode 100644 index 0000000000..d33ff913ce --- /dev/null +++ b/types/zui/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "moment": ">=2.14.0" + } +} diff --git a/types/zui/zui-tests.ts b/types/zui/zui-tests.ts index 9cb7c15a65..cccc6e3109 100644 --- a/types/zui/zui-tests.ts +++ b/types/zui/zui-tests.ts @@ -1,11 +1,12 @@ /// + new $.zui.Messager(); new $.zui.Messager('提示消息:成功', { type: 'success' // 定义颜色主题 }).show(); new $.zui.Messager("message"); -let messagarOption: zui.MessagerOption = {}; +let messagarOption: MessagerOption = {}; new $.zui.Messager(messagarOption); new $.zui.Messager("message", messagarOption); $.zui.messager.show("ok"); @@ -194,11 +195,11 @@ $('#draggableBtn').draggable({ console.log(count++ + ': ' + '[开始] 拖动...\n'); return true; }, - drag: (e: zui.DraggableEvent) => { + drag: (e: DraggableEvent) => { console.log(count++ + ': ' + '拖动: pos = ' + JSON.stringify(e.pos) + ', offset = ' + JSON.stringify(e.offset) + '\n'); // console.log('(' + e.pos.left + ', ' + e.pos.top + ')'); }, - finish: (e: zui.DraggableEvent) => { + finish: (e: DraggableEvent) => { console.log(count++ + ': ' + '[完毕]:pos = ' + JSON.stringify(e.pos) + ', offset = ' + JSON.stringify(e.offset) + '\n'); } }); @@ -212,7 +213,7 @@ $('#multiDroppableContainer').droppable({ start: () => { $('#multiDroppableContainer .droppable-target').removeClass('panel-warning').removeClass('panel-success').find('.panel-heading').text('拖动到这里吗?'); }, - drop: (event: zui.DroppableEvent) => { + drop: (event: DroppableEvent) => { $('#multiDroppableContainer .droppable-target').removeClass('panel-success').removeClass('panel-warning'); if (event.target && event.element) { const elementId = event.element.find('.btn-droppable-id').text(); @@ -223,7 +224,7 @@ $('#multiDroppableContainer').droppable({ $.zui.messager.show(msg); } }, - drag: (event: zui.DroppableEvent) => { + drag: (event: DroppableEvent) => { $('#multiDroppableContainer .droppable-target').removeClass('panel-success').removeClass('panel-warning'); if (event.target) event.target.addClass('panel-warning'); } @@ -235,7 +236,7 @@ $('#multiDroppableContainer').droppable({ // 定义选项对象 const options = { selector: '.sortable-item', - finish: (e: zui.SortEvent) => { + finish: (e: SortEvent) => { console.log('排序完成:', e); }, // 设置更多选项... @@ -253,7 +254,7 @@ $('#selectable').selectable({ rangeStyle: { border: '1px solid red' // 拖选范围指示矩形边框设置为红色 }, - finish: (data: zui.SelectableEvent) => { // 选择结束时的回调函数 + finish: (data: SelectableEvent) => { // 选择结束时的回调函数 // 所有元素的选中或非选中状态 console.log(data.selections); @@ -328,7 +329,7 @@ $('table.datatable').datatable('load', { $('#myUploader').uploader({ url: '...', // ..., - onUploadFile: (file: zui.FileObj) => { + onUploadFile: (file: FileObj) => { console.log('上传成功', file); } });