| @@ -39,7 +39,9 typescript { | |||||
| 39 | 
             | 
        39 | |||
| 40 | configureTsTest { | 
             | 
        40 | configureTsTest { | |
| 41 | compilerOptions { | 
             | 
        41 | compilerOptions { | |
| 42 | 
            
                    types = ["../main/typings/dojo/modules","../main/typings/dijit/modules"] | 
        
             | 
        42 | types = ["../main/typings/dojo/modules","../main/typings/dijit/modules"] | |
| 
             | 
        43 | module = "ESNext" | |||
| 
             | 
        44 | it.target = "ESNext" | |||
| 43 | } | 
             | 
        45 | } | |
| 44 | } | 
             | 
        46 | } | |
| 45 | 
             | 
        47 | |||
| @@ -549,6 +549,10 declare namespace dijit { | |||||
| 549 | onClose(): boolean; | 
             | 
        549 | onClose(): boolean; | |
| 550 | } | 
             | 
        550 | } | |
| 551 | 
             | 
        551 | |||
| 
             | 
        552 | type Props<T> = { | |||
| 
             | 
        553 | [k in Exclude<keyof T, keyof object>] : T[k] extends (...args: any) => any ? never: k; | |||
| 
             | 
        554 | }[ keyof T]; | |||
| 
             | 
        555 | ||||
| 552 | interface _WidgetBase { | 
             | 
        556 | interface _WidgetBase { | |
| 553 | /** | 
             | 
        557 | /** | |
| 554 | * Used across all instances a hash to cache attribute names and their getter | 
             | 
        558 | * Used across all instances a hash to cache attribute names and their getter | |
| @@ -569,7 +573,7 declare namespace dijit { | |||||
| 569 | */ | 
             | 
        573 | */ | |
| 570 | _changeAttrValue(name: string, value: any): this; | 
             | 
        574 | _changeAttrValue(name: string, value: any): this; | |
| 571 | 
             | 
        575 | |||
| 572 | 
            
                    get<K extends keyof this | 
        
             | 
        576 | get<K extends keyof this>(name: K): this[K]; | |
| 573 | 
             | 
        577 | |||
| 574 | /** | 
             | 
        578 | /** | |
| 575 | * Helper function to set new value for specified property, and call handlers | 
             | 
        579 | * Helper function to set new value for specified property, and call handlers | |
| @@ -591,15 +595,15 declare namespace dijit { | |||||
| 591 | /** | 
             | 
        595 | /** | |
| 592 | * Set a property on a Stateful instance | 
             | 
        596 | * Set a property on a Stateful instance | |
| 593 | */ | 
             | 
        597 | */ | |
| 594 | 
            
                    set<K extends keyof this | 
        
             | 
        598 | set<K extends keyof this>(name: K, value: this[K]): this; | |
| 595 | 
            
                    set<K extends  | 
        
             | 
        599 | set<K extends keyof this, V extends this[K] & any[]>(name: K, ...values: V): this; | |
| 596 | 
            
                    set(values:  | 
        
             | 
        600 | set<K extends keyof this>(values: {[p in K]: this[p]}): this; | |
| 597 | 
             | 
        601 | |||
| 598 | /** | 
             | 
        602 | /** | |
| 599 | * Watches a property for changes | 
             | 
        603 | * Watches a property for changes | |
| 600 | */ | 
             | 
        604 | */ | |
| 601 | watch(callback: <K extends keyof any>(prop: K, oldValue: any, newValue: any) => void): dojo.WatchHandle; | 
             | 
        605 | watch(callback: <K extends keyof any>(prop: K, oldValue: any, newValue: any) => void): dojo.WatchHandle; | |
| 602 | 
            
                    watch<K extends  | 
        
             | 
        606 | watch<K extends Props<this>>(name: K, callback: (prop: K, oldValue: this[K], newValue: this[K]) => void): dojo.WatchHandle; | |
| 603 | } | 
             | 
        607 | } | |
| 604 | 
             | 
        608 | |||
| 605 | type EventInitArgs<T extends Event> = { | 
             | 
        609 | type EventInitArgs<T extends Event> = { | |
| @@ -8,7 +8,7 declare namespace dijit { | |||||
| 8 | [prop: string]: any; | 
             | 
        8 | [prop: string]: any; | |
| 9 | } | 
             | 
        9 | } | |
| 10 | 
             | 
        10 | |||
| 11 | interface ConstrainedValueFunction<V, C extends Constraints, T> { | 
             | 
        11 | interface ConstrainedValueFunction<V = any, C extends Constraints = Constraints, T = any> { | |
| 12 | /** | 
             | 
        12 | /** | |
| 13 | * Returns a value that has been constrained by the constraints | 
             | 
        13 | * Returns a value that has been constrained by the constraints | |
| 14 | * @param value The value to constrain | 
             | 
        14 | * @param value The value to constrain | |
| @@ -18,7 +18,7 declare namespace dijit { | |||||
| 18 | (value: V, constraints: C): T; | 
             | 
        18 | (value: V, constraints: C): T; | |
| 19 | } | 
             | 
        19 | } | |
| 20 | 
             | 
        20 | |||
| 21 | interface ConstrainedValidFunction<C extends Constraints> { | 
             | 
        21 | interface ConstrainedValidFunction<C extends Constraints = Constraints> { | |
| 22 | /** | 
             | 
        22 | /** | |
| 23 | * Returns true if the value is valid based on the constraints, otherwise | 
             | 
        23 | * Returns true if the value is valid based on the constraints, otherwise | |
| 24 | * returns false. | 
             | 
        24 | * returns false. | |
| @@ -29,7 +29,7 declare namespace dijit { | |||||
| 29 | (value: any, constraints: C): boolean; | 
             | 
        29 | (value: any, constraints: C): boolean; | |
| 30 | } | 
             | 
        30 | } | |
| 31 | 
             | 
        31 | |||
| 32 | interface ConstraintsToRegExpString<C extends Constraints> { | 
             | 
        32 | interface ConstraintsToRegExpString<C extends Constraints = Constraints> { | |
| 33 | /** | 
             | 
        33 | /** | |
| 34 | * Takes a set of constraints and returns a RegExpString that can be used | 
             | 
        34 | * Takes a set of constraints and returns a RegExpString that can be used | |
| 35 | * to match values against | 
             | 
        35 | * to match values against | |
| @@ -46,7 +46,7 declare namespace dijit { | |||||
| 46 | /* dijit/form/_AutoCompleterMixin */ | 
             | 
        46 | /* dijit/form/_AutoCompleterMixin */ | |
| 47 | 
             | 
        47 | |||
| 48 | /* tslint:disable:class-name */ | 
             | 
        48 | /* tslint:disable:class-name */ | |
| 49 | interface _AutoCompleterMixin<T extends Object, Q extends dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions> extends _SearchMixin<T, Q, O> { | 
             | 
        49 | interface _AutoCompleterMixin<T extends Object = any, Q extends dojo.store.api.BaseQueryType = dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions = dojo.store.api.QueryOptions> extends _SearchMixin<T, Q, O> { | |
| 50 | /** | 
             | 
        50 | /** | |
| 51 | * This is the item returned by the dojo/store/api/Store implementation that | 
             | 
        51 | * This is the item returned by the dojo/store/api/Store implementation that | |
| 52 | * provides the data for this ComboBox, it's the currently selected item. | 
             | 
        52 | * provides the data for this ComboBox, it's the currently selected item. | |
| @@ -179,7 +179,7 declare namespace dijit { | |||||
| 179 | 
             | 
        179 | |||
| 180 | /* dijit/form/_ComboBoxMenu */ | 
             | 
        180 | /* dijit/form/_ComboBoxMenu */ | |
| 181 | 
             | 
        181 | |||
| 182 | interface _ComboBoxMenu<T> extends _WidgetBase, _TemplatedMixin, _ListMouseMixin, _ComboBoxMenuMixin<T> { | 
             | 
        182 | interface _ComboBoxMenu<T = any> extends _WidgetBase, _TemplatedMixin, _ListMouseMixin, _ComboBoxMenuMixin<T> { | |
| 183 | templateString: string; | 
             | 
        183 | templateString: string; | |
| 184 | baseClass: string; | 
             | 
        184 | baseClass: string; | |
| 185 | 
             | 
        185 | |||
| @@ -219,12 +219,12 declare namespace dijit { | |||||
| 219 | } | 
             | 
        219 | } | |
| 220 | 
             | 
        220 | |||
| 221 | interface _ComboBoxMenuConstructor extends _WidgetBaseConstructor<_ComboBoxMenu<any>> { | 
             | 
        221 | interface _ComboBoxMenuConstructor extends _WidgetBaseConstructor<_ComboBoxMenu<any>> { | |
| 222 | new <T>(params: Object, srcNodeRef: dojo.NodeOrString): _ComboBoxMenu<T>; | 
             | 
        222 | new <T = any>(params: Object, srcNodeRef: dojo.NodeOrString): _ComboBoxMenu<T>; | |
| 223 | } | 
             | 
        223 | } | |
| 224 | 
             | 
        224 | |||
| 225 | /* dijit/form/_ComboBoxMenuMixin */ | 
             | 
        225 | /* dijit/form/_ComboBoxMenuMixin */ | |
| 226 | 
             | 
        226 | |||
| 227 | interface _ComboBoxMenuMixin<T> { | 
             | 
        227 | interface _ComboBoxMenuMixin<T = any> { | |
| 228 | /** | 
             | 
        228 | /** | |
| 229 | * Holds "next" and "previous" text for paging buttons on drop down | 
             | 
        229 | * Holds "next" and "previous" text for paging buttons on drop down | |
| 230 | */ | 
             | 
        230 | */ | |
| @@ -468,7 +468,7 declare namespace dijit { | |||||
| 468 | disabled?: boolean; | 
             | 
        468 | disabled?: boolean; | |
| 469 | } | 
             | 
        469 | } | |
| 470 | 
             | 
        470 | |||
| 471 | interface _FormSelectWidget<T extends Object, Q extends dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions> extends _FormValueWidget { | 
             | 
        471 | interface _FormSelectWidget<T extends Object, Q extends dojo.store.api.BaseQueryType = dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions = dojo.store.api.QueryOptions> extends _FormValueWidget { | |
| 472 | /** | 
             | 
        472 | /** | |
| 473 | * Whether or not we are multi-valued | 
             | 
        473 | * Whether or not we are multi-valued | |
| 474 | */ | 
             | 
        474 | */ | |
| @@ -862,7 +862,7 declare namespace dijit { | |||||
| 862 | 
             | 
        862 | |||
| 863 | /* dijit/form/_SearchMixin */ | 
             | 
        863 | /* dijit/form/_SearchMixin */ | |
| 864 | 
             | 
        864 | |||
| 865 | interface _SearchMixin<T extends Object, Q extends dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions> { | 
             | 
        865 | interface _SearchMixin<T extends Object, Q extends dojo.store.api.BaseQueryType = dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions = dojo.store.api.QueryOptions> { | |
| 866 | /** | 
             | 
        866 | /** | |
| 867 | * Argument to data provider. | 
             | 
        867 | * Argument to data provider. | |
| 868 | * Specifies maximum number of search results to return per query | 
             | 
        868 | * Specifies maximum number of search results to return per query | |
| @@ -1006,7 +1006,7 declare namespace dijit { | |||||
| 1006 | 
             | 
        1006 | |||
| 1007 | /* dijit/form/_TextBoxMixin */ | 
             | 
        1007 | /* dijit/form/_TextBoxMixin */ | |
| 1008 | 
             | 
        1008 | |||
| 1009 | interface _TextBoxMixin<C extends Constraints> { | 
             | 
        1009 | interface _TextBoxMixin<C extends Constraints = Constraints> { | |
| 1010 | /** | 
             | 
        1010 | /** | |
| 1011 | * Removes leading and trailing whitespace if true. Default is false. | 
             | 
        1011 | * Removes leading and trailing whitespace if true. Default is false. | |
| 1012 | */ | 
             | 
        1012 | */ | |
| @@ -1163,18 +1163,18 declare namespace dijit { | |||||
| 1163 | 
             | 
        1163 | |||
| 1164 | /* dijit/form/ComboBox */ | 
             | 
        1164 | /* dijit/form/ComboBox */ | |
| 1165 | 
             | 
        1165 | |||
| 1166 | interface ComboBox<T extends Object, Q extends dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions, C extends Constraints> extends ValidationTextBox<C>, ComboBoxMixin<T, Q, O> { | 
             | 
        1166 | interface ComboBox<T extends Object = any, Q extends dojo.store.api.BaseQueryType = dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions = dojo.store.api.QueryOptions, C extends Constraints = Constraints> extends ValidationTextBox<C>, ComboBoxMixin<T, Q, O> { | |
| 1167 | // set(name: string, value: any): this; | 
             | 
        1167 | // set(name: string, value: any): this; | |
| 1168 | // set(values: Object): this; | 
             | 
        1168 | // set(values: Object): this; | |
| 1169 | } | 
             | 
        1169 | } | |
| 1170 | 
             | 
        1170 | |||
| 1171 | 
            
            		interface ComboBoxConstructor extends _WidgetBaseConstructor<ComboBox<any | 
        
             | 
        1171 | interface ComboBoxConstructor extends _WidgetBaseConstructor<ComboBox<any>> { | |
| 1172 | new <T extends Object, Q extends dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions, C extends Constraints>(params: Object, srcNodeRef: dojo.NodeOrString): ComboBox<T, Q, O, C>; | 
             | 
        1172 | new <T extends Object = any, Q extends dojo.store.api.BaseQueryType = dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions = dojo.store.api.QueryOptions, C extends Constraints = Constraints>(params: Object, srcNodeRef: dojo.NodeOrString): ComboBox<T, Q, O, C>; | |
| 1173 | } | 
             | 
        1173 | } | |
| 1174 | 
             | 
        1174 | |||
| 1175 | /* dijit/form/ComboBoxMixin */ | 
             | 
        1175 | /* dijit/form/ComboBoxMixin */ | |
| 1176 | 
             | 
        1176 | |||
| 1177 | interface ComboBoxMixin<T extends Object, Q extends dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions> extends _HasDropDown<_ComboBoxMenu<T>>, _AutoCompleterMixin<T, Q, O> { | 
             | 
        1177 | interface ComboBoxMixin<T extends Object = any, Q extends dojo.store.api.BaseQueryType = dojo.store.api.BaseQueryType, O extends dojo.store.api.QueryOptions = dojo.store.api.QueryOptions> extends _HasDropDown<_ComboBoxMenu<T>>, _AutoCompleterMixin<T, Q, O> { | |
| 1178 | 
             | 
        1178 | |||
| 1179 | /** | 
             | 
        1179 | /** | |
| 1180 | * Dropdown widget class used to select a date/time. | 
             | 
        1180 | * Dropdown widget class used to select a date/time. | |
| @@ -1204,7 +1204,7 declare namespace dijit { | |||||
| 1204 | buildRendering(): void; | 
             | 
        1204 | buildRendering(): void; | |
| 1205 | } | 
             | 
        1205 | } | |
| 1206 | 
             | 
        1206 | |||
| 1207 | interface ComboBoxMixinConstructor<T, U extends dojo.store.api.BaseQueryType, V> extends _WidgetBaseConstructor<ComboBoxMixin<T, U, V>> { } | 
             | 
        1207 | interface ComboBoxMixinConstructor<T = any, U extends dojo.store.api.BaseQueryType = dojo.store.api.BaseQueryType, V = any> extends _WidgetBaseConstructor<ComboBoxMixin<T, U, V>> { } | |
| 1208 | 
             | 
        1208 | |||
| 1209 | /* dijit/form/CurrencyTextBox */ | 
             | 
        1209 | /* dijit/form/CurrencyTextBox */ | |
| 1210 | 
             | 
        1210 | |||
| @@ -1840,7 +1840,7 declare namespace dijit { | |||||
| 1840 | (isFocused?: boolean): boolean; | 
             | 
        1840 | (isFocused?: boolean): boolean; | |
| 1841 | } | 
             | 
        1841 | } | |
| 1842 | 
             | 
        1842 | |||
| 1843 | interface ValidationTextBox<C extends Constraints> extends TextBox { | 
             | 
        1843 | interface ValidationTextBox<C extends Constraints = Constraints> extends TextBox { | |
| 1844 | templateString: string; | 
             | 
        1844 | templateString: string; | |
| 1845 | required: boolean; | 
             | 
        1845 | required: boolean; | |
| 1846 | promptMessage: string; | 
             | 
        1846 | promptMessage: string; | |
| @@ -204,7 +204,7 declare namespace dijit { | |||||
| 204 | * Note that the initialization parameter / argument to set("content", ... | 
             | 
        204 | * Note that the initialization parameter / argument to set("content", ... | |
| 205 | * can be a String, DomNode, Nodelist, or _Widget. | 
             | 
        205 | * can be a String, DomNode, Nodelist, or _Widget. | |
| 206 | */ | 
             | 
        206 | */ | |
| 207 | content: dojo.ContentSetterContent | dijit._Widget; | 
             | 
        207 | content: any; | |
| 208 | 
             | 
        208 | |||
| 209 | /** | 
             | 
        209 | /** | |
| 210 | * Extract visible content from inside of `<body> .... </body>` | 
             | 
        210 | * Extract visible content from inside of `<body> .... </body>` | |
| @@ -283,7 +283,7 declare module 'dijit/form/ComboBox' { | |||||
| 283 | } | 
             | 
        283 | } | |
| 284 | 
             | 
        284 | |||
| 285 | declare module 'dijit/form/ComboBoxMixin' { | 
             | 
        285 | declare module 'dijit/form/ComboBoxMixin' { | |
| 286 | type ComboBoxMixin<T, U extends dojo.store.api.BaseQueryType, V> = dijit.form.ComboBoxMixin<T, U, V>; | 
             | 
        286 | type ComboBoxMixin<T = any, U extends dojo.store.api.BaseQueryType = dojo.store.api.BaseQueryType, V = any> = dijit.form.ComboBoxMixin<T, U, V>; | |
| 287 | const ComboBoxMixin: dijit.form.ComboBoxConstructor; | 
             | 
        287 | const ComboBoxMixin: dijit.form.ComboBoxConstructor; | |
| 288 | export = ComboBoxMixin; | 
             | 
        288 | export = ComboBoxMixin; | |
| 289 | } | 
             | 
        289 | } | |
| @@ -343,7 +343,7 declare module 'dijit/form/HorizontalSli | |||||
| 343 | } | 
             | 
        343 | } | |
| 344 | 
             | 
        344 | |||
| 345 | declare module 'dijit/form/MappedTextBox' { | 
             | 
        345 | declare module 'dijit/form/MappedTextBox' { | |
| 346 | type MappedTextBox<C extends dijit.form.Constraints> = dijit.form.MappedTextBox<C>; | 
             | 
        346 | type MappedTextBox<C extends dijit.form.Constraints = dijit.form.Constraints> = dijit.form.MappedTextBox<C>; | |
| 347 | const MappedTextBox: dijit.form.MappedTextBoxConstructor; | 
             | 
        347 | const MappedTextBox: dijit.form.MappedTextBoxConstructor; | |
| 348 | export = MappedTextBox; | 
             | 
        348 | export = MappedTextBox; | |
| 349 | } | 
             | 
        349 | } | |
| @@ -373,7 +373,7 declare module 'dijit/form/RangeBoundTex | |||||
| 373 | } | 
             | 
        373 | } | |
| 374 | 
             | 
        374 | |||
| 375 | declare module 'dijit/form/Select' { | 
             | 
        375 | declare module 'dijit/form/Select' { | |
| 376 | type Select<T, Q extends dojo.store.api.BaseQueryType, O, U extends dijit._WidgetBase> = dijit.form.Select<T, Q, O, U>; | 
             | 
        376 | type Select<T, Q extends dojo.store.api.BaseQueryType = dojo.store.api.BaseQueryType, O = any, U extends dijit._WidgetBase = dijit._WidgetBase> = dijit.form.Select<T, Q, O, U>; | |
| 377 | const Select: dijit.form.SelectConstructor; | 
             | 
        377 | const Select: dijit.form.SelectConstructor; | |
| 378 | export = Select; | 
             | 
        378 | export = Select; | |
| 379 | } | 
             | 
        379 | } | |
| @@ -403,7 +403,7 declare module 'dijit/form/ToggleButton' | |||||
| 403 | } | 
             | 
        403 | } | |
| 404 | 
             | 
        404 | |||
| 405 | declare module 'dijit/form/ValidationTextBox' { | 
             | 
        405 | declare module 'dijit/form/ValidationTextBox' { | |
| 406 | type ValidationTextBox<C extends dijit.form.Constraints> = dijit.form.ValidationTextBox<C>; | 
             | 
        406 | type ValidationTextBox<C extends dijit.form.Constraints = dijit.form.Constraints> = dijit.form.ValidationTextBox<C>; | |
| 407 | const ValidationTextBox: dijit.form.ValidationTextBoxConstructor; | 
             | 
        407 | const ValidationTextBox: dijit.form.ValidationTextBoxConstructor; | |
| 408 | export = ValidationTextBox; | 
             | 
        408 | export = ValidationTextBox; | |
| 409 | } | 
             | 
        409 | } | |
| @@ -14,14 +14,32 interface ScheduleWidgetEvents { | |||||
| 14 | }; | 
             | 
        14 | }; | |
| 15 | } | 
             | 
        15 | } | |
| 16 | 
             | 
        16 | |||
| 17 | 
            
             | 
        
             | 
        17 | class ScheduleWidget extends _WidgetBase<ScheduleWidgetAttrs, ScheduleWidgetEvents> { | |
| 18 | data: string[]; | 
             | 
        18 | data: string[]; | |
| 
             | 
        19 | ||||
| 
             | 
        20 | _onClick() { | |||
| 
             | 
        21 | this.set("data", "", ""); | |||
| 
             | 
        22 | ||||
| 
             | 
        23 | const t = this.get("title"); | |||
| 
             | 
        24 | this.set({ | |||
| 
             | 
        25 | data: ["",""] | |||
| 
             | 
        26 | }); | |||
| 
             | 
        27 | } | |||
| 
             | 
        28 | ||||
| 
             | 
        29 | render(){ | |||
| 
             | 
        30 | watch(this, "title", v => String(v) ); | |||
| 
             | 
        31 | } | |||
| 19 | } | 
             | 
        32 | } | |
| 20 | 
             | 
        33 | |||
| 21 | const w = new ScheduleWidget({title: "Year schedule", data: ["a", "b"] }); | 
             | 
        34 | const w = new ScheduleWidget({title: "Year schedule", data: ["a", "b"] }); | |
| 22 | 
             | 
        35 | |||
| 23 | w.get("data"); | 
             | 
        36 | w.get("data"); | |
| 24 | 
             | 
        37 | |||
| 
             | 
        38 | w.set("data", "a","b"); | |||
| 
             | 
        39 | w.set({ | |||
| 
             | 
        40 | data: ["a", "b"] | |||
| 
             | 
        41 | }); | |||
| 
             | 
        42 | ||||
| 25 | w.watch((p, o, n) => [p,o,n]); | 
             | 
        43 | w.watch((p, o, n) => [p,o,n]); | |
| 26 | 
             | 
        44 | |||
| 27 | w.watch("data", (p, o, n) => [p,o,n]); | 
             | 
        45 | w.watch("data", (p, o, n) => [p,o,n]); | |
        
        General Comments 0
    
    
  
  
                      You need to be logged in to leave comments.
                      Login now
                    
                