@decaf-ts/ui-decorators 0.5.9 → 0.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/LICENSE.md +21 -157
  2. package/README.md +422 -12
  3. package/dist/ui-decorators.cjs +609 -55
  4. package/dist/ui-decorators.esm.cjs +607 -56
  5. package/lib/esm/index.d.ts +7 -3
  6. package/lib/esm/index.js +8 -4
  7. package/lib/esm/model/Renderable.d.ts +15 -0
  8. package/lib/esm/model/Renderable.js +1 -1
  9. package/lib/esm/model/decorators.d.ts +93 -14
  10. package/lib/esm/model/decorators.js +102 -16
  11. package/lib/esm/model/index.d.ts +0 -4
  12. package/lib/esm/model/index.js +1 -5
  13. package/lib/esm/model/model.d.ts +156 -50
  14. package/lib/esm/model/model.js +1 -1
  15. package/lib/esm/model/overrides.d.ts +8 -0
  16. package/lib/esm/model/overrides.js +19 -1
  17. package/lib/esm/ui/Rendering.js +43 -8
  18. package/lib/esm/ui/constants.d.ts +149 -4
  19. package/lib/esm/ui/constants.js +150 -5
  20. package/lib/esm/ui/decorators.d.ts +229 -21
  21. package/lib/esm/ui/decorators.js +242 -25
  22. package/lib/esm/ui/errors.d.ts +28 -0
  23. package/lib/esm/ui/errors.js +29 -1
  24. package/lib/esm/ui/handlers.d.ts +17 -0
  25. package/lib/esm/ui/handlers.js +18 -0
  26. package/lib/esm/ui/index.d.ts +1 -4
  27. package/lib/esm/ui/index.js +2 -5
  28. package/lib/esm/ui/interfaces.d.ts +25 -0
  29. package/lib/esm/ui/interfaces.js +9 -1
  30. package/lib/esm/ui/types.d.ts +63 -5
  31. package/lib/esm/ui/types.js +9 -1
  32. package/lib/esm/ui/utils.d.ts +1 -1
  33. package/lib/esm/ui/utils.js +2 -2
  34. package/lib/index.cjs +8 -4
  35. package/lib/index.d.ts +7 -3
  36. package/lib/model/Renderable.cjs +1 -1
  37. package/lib/model/Renderable.d.ts +15 -0
  38. package/lib/model/decorators.cjs +103 -16
  39. package/lib/model/decorators.d.ts +93 -14
  40. package/lib/model/index.cjs +1 -5
  41. package/lib/model/index.d.ts +0 -4
  42. package/lib/model/model.cjs +1 -1
  43. package/lib/model/model.d.ts +156 -50
  44. package/lib/model/overrides.cjs +19 -1
  45. package/lib/model/overrides.d.ts +8 -0
  46. package/lib/ui/Rendering.cjs +43 -8
  47. package/lib/ui/constants.cjs +150 -5
  48. package/lib/ui/constants.d.ts +149 -4
  49. package/lib/ui/decorators.cjs +243 -25
  50. package/lib/ui/decorators.d.ts +229 -21
  51. package/lib/ui/errors.cjs +29 -1
  52. package/lib/ui/errors.d.ts +28 -0
  53. package/lib/ui/handlers.cjs +22 -0
  54. package/lib/ui/handlers.d.ts +17 -0
  55. package/lib/ui/index.cjs +2 -5
  56. package/lib/ui/index.d.ts +1 -4
  57. package/lib/ui/interfaces.cjs +9 -1
  58. package/lib/ui/interfaces.d.ts +25 -0
  59. package/lib/ui/types.cjs +9 -1
  60. package/lib/ui/types.d.ts +63 -5
  61. package/lib/ui/utils.cjs +2 -2
  62. package/lib/ui/utils.d.ts +1 -1
  63. package/package.json +2 -2
@@ -1,12 +1,16 @@
1
1
  /**
2
+ * @description UI decorators module for TypeScript applications
3
+ * @summary A collection of decorators and utilities for building UI components in TypeScript applications.
4
+ * This module exports functionality from both the model and UI submodules, providing decorators for
5
+ * rendering, component definition, and UI state management.
2
6
  * @module ui-decorators
3
7
  */
4
8
  export * from "./model";
5
9
  export * from "./ui";
6
10
  /**
7
- * @summary stores the current package version
8
- * @description this is how you should document a constant
11
+ * @description Current package version string
12
+ * @summary Stores the current package version for reference
9
13
  * @const VERSION
10
14
  * @memberOf module:ui-decorators
11
15
  */
12
- export declare const VERSION = "0.5.9";
16
+ export declare const VERSION = "0.5.11";
package/lib/esm/index.js CHANGED
@@ -1,13 +1,17 @@
1
1
  /**
2
+ * @description UI decorators module for TypeScript applications
3
+ * @summary A collection of decorators and utilities for building UI components in TypeScript applications.
4
+ * This module exports functionality from both the model and UI submodules, providing decorators for
5
+ * rendering, component definition, and UI state management.
2
6
  * @module ui-decorators
3
7
  */
4
8
  export * from "./model";
5
9
  export * from "./ui";
6
10
  /**
7
- * @summary stores the current package version
8
- * @description this is how you should document a constant
11
+ * @description Current package version string
12
+ * @summary Stores the current package version for reference
9
13
  * @const VERSION
10
14
  * @memberOf module:ui-decorators
11
15
  */
12
- export const VERSION = "0.5.9";
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLE1BQU0sQ0FBQztBQUVyQjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgdWktZGVjb3JhdG9yc1xuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91aVwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IHN0b3JlcyB0aGUgY3VycmVudCBwYWNrYWdlIHZlcnNpb25cbiAqIEBkZXNjcmlwdGlvbiB0aGlzIGlzIGhvdyB5b3Ugc2hvdWxkIGRvY3VtZW50IGEgY29uc3RhbnRcbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG4iXX0=
16
+ export const VERSION = "0.5.11";
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxNQUFNLENBQUM7QUFFckI7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gVUkgZGVjb3JhdG9ycyBtb2R1bGUgZm9yIFR5cGVTY3JpcHQgYXBwbGljYXRpb25zXG4gKiBAc3VtbWFyeSBBIGNvbGxlY3Rpb24gb2YgZGVjb3JhdG9ycyBhbmQgdXRpbGl0aWVzIGZvciBidWlsZGluZyBVSSBjb21wb25lbnRzIGluIFR5cGVTY3JpcHQgYXBwbGljYXRpb25zLlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBmdW5jdGlvbmFsaXR5IGZyb20gYm90aCB0aGUgbW9kZWwgYW5kIFVJIHN1Ym1vZHVsZXMsIHByb3ZpZGluZyBkZWNvcmF0b3JzIGZvclxuICogcmVuZGVyaW5nLCBjb21wb25lbnQgZGVmaW5pdGlvbiwgYW5kIFVJIHN0YXRlIG1hbmFnZW1lbnQuXG4gKiBAbW9kdWxlIHVpLWRlY29yYXRvcnNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdWlcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ3VycmVudCBwYWNrYWdlIHZlcnNpb24gc3RyaW5nXG4gKiBAc3VtbWFyeSBTdG9yZXMgdGhlIGN1cnJlbnQgcGFja2FnZSB2ZXJzaW9uIGZvciByZWZlcmVuY2VcbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBcIiMjVkVSU0lPTiMjXCI7XG4iXX0=
@@ -1,3 +1,18 @@
1
+ /**
2
+ * @description Interface for objects that can be rendered
3
+ * @summary Defines the contract for objects that can be rendered to a specific output format
4
+ * This interface provides a generic render method that can transform the implementing object
5
+ * into any desired output format.
6
+ * @interface Renderable
7
+ * @memberOf module:ui-decorators/model
8
+ */
1
9
  export interface Renderable {
10
+ /**
11
+ * @description Renders the object to a specific output format
12
+ * @summary Transforms the object into the desired output representation
13
+ * @template R The return type of the render operation
14
+ * @param {any[]} args Additional arguments needed for rendering
15
+ * @return {R} The rendered output in the specified format
16
+ */
2
17
  render<R>(...args: any[]): R;
3
18
  }
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVuZGVyYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9SZW5kZXJhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFJlbmRlcmFibGUge1xuICByZW5kZXI8Uj4oLi4uYXJnczogYW55W10pOiBSO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVuZGVyYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9SZW5kZXJhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIG9iamVjdHMgdGhhdCBjYW4gYmUgcmVuZGVyZWRcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGNvbnRyYWN0IGZvciBvYmplY3RzIHRoYXQgY2FuIGJlIHJlbmRlcmVkIHRvIGEgc3BlY2lmaWMgb3V0cHV0IGZvcm1hdFxuICogVGhpcyBpbnRlcmZhY2UgcHJvdmlkZXMgYSBnZW5lcmljIHJlbmRlciBtZXRob2QgdGhhdCBjYW4gdHJhbnNmb3JtIHRoZSBpbXBsZW1lbnRpbmcgb2JqZWN0XG4gKiBpbnRvIGFueSBkZXNpcmVkIG91dHB1dCBmb3JtYXQuXG4gKiBAaW50ZXJmYWNlIFJlbmRlcmFibGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9ycy9tb2RlbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlcmFibGUge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlbmRlcnMgdGhlIG9iamVjdCB0byBhIHNwZWNpZmljIG91dHB1dCBmb3JtYXRcbiAgICogQHN1bW1hcnkgVHJhbnNmb3JtcyB0aGUgb2JqZWN0IGludG8gdGhlIGRlc2lyZWQgb3V0cHV0IHJlcHJlc2VudGF0aW9uXG4gICAqIEB0ZW1wbGF0ZSBSIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgcmVuZGVyIG9wZXJhdGlvblxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzIEFkZGl0aW9uYWwgYXJndW1lbnRzIG5lZWRlZCBmb3IgcmVuZGVyaW5nXG4gICAqIEByZXR1cm4ge1J9IFRoZSByZW5kZXJlZCBvdXRwdXQgaW4gdGhlIHNwZWNpZmllZCBmb3JtYXRcbiAgICovXG4gIHJlbmRlcjxSPiguLi5hcmdzOiBhbnlbXSk6IFI7XG59XG4iXX0=
@@ -1,11 +1,33 @@
1
1
  /**
2
- * Tags the model as a uimodel, giving it the 'render' method
2
+ * @description Decorator that tags a class as a UI model
3
+ * @summary Adds rendering capabilities to a model class by providing a render method
4
+ * This decorator applies metadata to the class that enables it to be rendered by the UI rendering engine.
5
+ * The model will be rendered with the specified tag and properties.
3
6
  *
4
- * @param {string} [tag] optional param. will render the provided elment wrapping the attribute uielements
5
- * @param {{}} [props] optional param. Attributes to be passed to the tag element
6
- * @param {function(any): void} [instanceCallback] optional callback returning the instance after creation for additional logic
7
+ * @param {string} [tag] The HTML tag to use when rendering this model (defaults to class name)
8
+ * @param {Record<string, any>} [props] Additional properties to pass to the rendered element
9
+ * @return {Function} A class decorator function
7
10
  *
8
- * @decorator uimodel
11
+ * @function uimodel
12
+ * @category Class Decorators
13
+ *
14
+ * @example
15
+ * // Basic usage with default tag (class name)
16
+ * @uimodel()
17
+ * class UserProfile extends Model {
18
+ * @attribute()
19
+ * name: string;
20
+ *
21
+ * @attribute()
22
+ * email: string;
23
+ * }
24
+ *
25
+ * // Usage with custom tag and properties
26
+ * @uimodel('div', { class: 'user-card' })
27
+ * class UserCard extends Model {
28
+ * @attribute()
29
+ * username: string;
30
+ * }
9
31
  *
10
32
  * @mermaid
11
33
  * sequenceDiagram
@@ -18,28 +40,85 @@
18
40
  * constructor->>uimodel: returns instance
19
41
  * uimodel->>instance: adds the render method
20
42
  * uimodel->>System: returns UIModel instance
21
- *
22
- * @category Decorators
23
43
  */
24
44
  export declare function uimodel(tag?: string, props?: Record<string, any>): (original: any, propertyKey?: any) => void;
45
+ /**
46
+ * @description Decorator that specifies which rendering engine to use for a model
47
+ * @summary Associates a model with a specific rendering engine implementation
48
+ * This decorator allows you to override the default rendering engine for a specific model class,
49
+ * enabling different rendering strategies for different models.
50
+ *
51
+ * @param {string} engine The name of the rendering engine to use
52
+ * @return {Function} A class decorator function
53
+ *
54
+ * @function renderedBy
55
+ * @category Class Decorators
56
+ *
57
+ * @example
58
+ * // Specify a custom rendering engine for a model
59
+ * @uimodel()
60
+ * @renderedBy('react')
61
+ * class ReactComponent extends Model {
62
+ * @attribute()
63
+ * title: string;
64
+ * }
65
+ *
66
+ * @mermaid
67
+ * sequenceDiagram
68
+ * participant System
69
+ * participant renderedBy
70
+ * participant Model
71
+ * participant RenderingEngine
72
+ * System->>renderedBy: apply to Model
73
+ * renderedBy->>Model: adds engine metadata
74
+ * Model->>RenderingEngine: uses specified engine
75
+ * RenderingEngine->>System: renders with custom engine
76
+ */
25
77
  export declare function renderedBy(engine: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
26
78
  /**
27
- * Tags the model as a list item for UI rendering, specifying how it should be rendered in list contexts
79
+ * @description Decorator that tags a model as a list item for UI rendering
80
+ * @summary Specifies how a model should be rendered when displayed in a list context
81
+ * This decorator applies metadata to the class that enables it to be rendered as a list item
82
+ * by the UI rendering engine. The model will be rendered with the specified tag and properties
83
+ * when it appears in a list.
28
84
  *
29
- * @param {string} [tag] optional param. will render the provided element as the list item container
30
- * @param {{}} [props] optional param. Attributes to be passed to the tag element
85
+ * @param {string} [tag] The HTML tag to use when rendering this model as a list item (defaults to class name)
86
+ * @param {Record<string, any>} [props] Additional properties to pass to the rendered list item element
87
+ * @return {Function} A class decorator function
31
88
  *
32
- * @decorator uilistitem
89
+ * @function uilistitem
90
+ * @category Class Decorators
91
+ *
92
+ * @example
93
+ * // Basic usage with default tag (class name)
94
+ * @uimodel()
95
+ * @uilistitem()
96
+ * class TodoItem extends Model {
97
+ * @attribute()
98
+ * title: string;
99
+ *
100
+ * @attribute()
101
+ * completed: boolean;
102
+ * }
103
+ *
104
+ * // Usage with custom tag and properties
105
+ * @uimodel()
106
+ * @uilistitem('li', { class: 'list-group-item' })
107
+ * class ListItem extends Model {
108
+ * @attribute()
109
+ * text: string;
110
+ * }
33
111
  *
34
112
  * @mermaid
35
113
  * sequenceDiagram
36
114
  * participant System
37
115
  * participant uilistitem
38
116
  * participant Model
117
+ * participant RenderingEngine
39
118
  * System->>uilistitem: apply to Model
40
119
  * uilistitem->>Model: adds list item metadata
41
- * Model->>System: returns Model with list item rendering capabilities
42
- *
43
- * @category Decorators
120
+ * Model->>RenderingEngine: uses list item metadata when in list context
121
+ * RenderingEngine->>System: renders with list item styling
44
122
  */
45
123
  export declare function uilistitem(tag?: string, props?: Record<string, any>): (original: any, propertyKey?: any) => void;
124
+ export declare function uihandlers(props?: Record<string, any>): (original: any) => void;
@@ -2,13 +2,35 @@ import { UIKeys } from "../ui/constants";
2
2
  import { apply, metadata } from "@decaf-ts/reflection";
3
3
  import { RenderingEngine } from "../ui/Rendering";
4
4
  /**
5
- * Tags the model as a uimodel, giving it the 'render' method
5
+ * @description Decorator that tags a class as a UI model
6
+ * @summary Adds rendering capabilities to a model class by providing a render method
7
+ * This decorator applies metadata to the class that enables it to be rendered by the UI rendering engine.
8
+ * The model will be rendered with the specified tag and properties.
6
9
  *
7
- * @param {string} [tag] optional param. will render the provided elment wrapping the attribute uielements
8
- * @param {{}} [props] optional param. Attributes to be passed to the tag element
9
- * @param {function(any): void} [instanceCallback] optional callback returning the instance after creation for additional logic
10
+ * @param {string} [tag] The HTML tag to use when rendering this model (defaults to class name)
11
+ * @param {Record<string, any>} [props] Additional properties to pass to the rendered element
12
+ * @return {Function} A class decorator function
10
13
  *
11
- * @decorator uimodel
14
+ * @function uimodel
15
+ * @category Class Decorators
16
+ *
17
+ * @example
18
+ * // Basic usage with default tag (class name)
19
+ * @uimodel()
20
+ * class UserProfile extends Model {
21
+ * @attribute()
22
+ * name: string;
23
+ *
24
+ * @attribute()
25
+ * email: string;
26
+ * }
27
+ *
28
+ * // Usage with custom tag and properties
29
+ * @uimodel('div', { class: 'user-card' })
30
+ * class UserCard extends Model {
31
+ * @attribute()
32
+ * username: string;
33
+ * }
12
34
  *
13
35
  * @mermaid
14
36
  * sequenceDiagram
@@ -21,8 +43,6 @@ import { RenderingEngine } from "../ui/Rendering";
21
43
  * constructor->>uimodel: returns instance
22
44
  * uimodel->>instance: adds the render method
23
45
  * uimodel->>System: returns UIModel instance
24
- *
25
- * @category Decorators
26
46
  */
27
47
  export function uimodel(tag, props) {
28
48
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -34,27 +54,85 @@ export function uimodel(tag, props) {
34
54
  return metadata(RenderingEngine.key(UIKeys.UIMODEL), meta)(original);
35
55
  };
36
56
  }
57
+ /**
58
+ * @description Decorator that specifies which rendering engine to use for a model
59
+ * @summary Associates a model with a specific rendering engine implementation
60
+ * This decorator allows you to override the default rendering engine for a specific model class,
61
+ * enabling different rendering strategies for different models.
62
+ *
63
+ * @param {string} engine The name of the rendering engine to use
64
+ * @return {Function} A class decorator function
65
+ *
66
+ * @function renderedBy
67
+ * @category Class Decorators
68
+ *
69
+ * @example
70
+ * // Specify a custom rendering engine for a model
71
+ * @uimodel()
72
+ * @renderedBy('react')
73
+ * class ReactComponent extends Model {
74
+ * @attribute()
75
+ * title: string;
76
+ * }
77
+ *
78
+ * @mermaid
79
+ * sequenceDiagram
80
+ * participant System
81
+ * participant renderedBy
82
+ * participant Model
83
+ * participant RenderingEngine
84
+ * System->>renderedBy: apply to Model
85
+ * renderedBy->>Model: adds engine metadata
86
+ * Model->>RenderingEngine: uses specified engine
87
+ * RenderingEngine->>System: renders with custom engine
88
+ */
37
89
  export function renderedBy(engine) {
38
90
  return apply(metadata(RenderingEngine.key(UIKeys.RENDERED_BY), engine));
39
91
  }
40
92
  /**
41
- * Tags the model as a list item for UI rendering, specifying how it should be rendered in list contexts
93
+ * @description Decorator that tags a model as a list item for UI rendering
94
+ * @summary Specifies how a model should be rendered when displayed in a list context
95
+ * This decorator applies metadata to the class that enables it to be rendered as a list item
96
+ * by the UI rendering engine. The model will be rendered with the specified tag and properties
97
+ * when it appears in a list.
98
+ *
99
+ * @param {string} [tag] The HTML tag to use when rendering this model as a list item (defaults to class name)
100
+ * @param {Record<string, any>} [props] Additional properties to pass to the rendered list item element
101
+ * @return {Function} A class decorator function
102
+ *
103
+ * @function uilistitem
104
+ * @category Class Decorators
105
+ *
106
+ * @example
107
+ * // Basic usage with default tag (class name)
108
+ * @uimodel()
109
+ * @uilistitem()
110
+ * class TodoItem extends Model {
111
+ * @attribute()
112
+ * title: string;
42
113
  *
43
- * @param {string} [tag] optional param. will render the provided element as the list item container
44
- * @param {{}} [props] optional param. Attributes to be passed to the tag element
114
+ * @attribute()
115
+ * completed: boolean;
116
+ * }
45
117
  *
46
- * @decorator uilistitem
118
+ * // Usage with custom tag and properties
119
+ * @uimodel()
120
+ * @uilistitem('li', { class: 'list-group-item' })
121
+ * class ListItem extends Model {
122
+ * @attribute()
123
+ * text: string;
124
+ * }
47
125
  *
48
126
  * @mermaid
49
127
  * sequenceDiagram
50
128
  * participant System
51
129
  * participant uilistitem
52
130
  * participant Model
131
+ * participant RenderingEngine
53
132
  * System->>uilistitem: apply to Model
54
133
  * uilistitem->>Model: adds list item metadata
55
- * Model->>System: returns Model with list item rendering capabilities
56
- *
57
- * @category Decorators
134
+ * Model->>RenderingEngine: uses list item metadata when in list context
135
+ * RenderingEngine->>System: renders with list item styling
58
136
  */
59
137
  export function uilistitem(tag, props) {
60
138
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -63,9 +141,17 @@ export function uilistitem(tag, props) {
63
141
  item: {
64
142
  tag: tag || original.name,
65
143
  props: props,
66
- }
144
+ },
67
145
  };
68
146
  return metadata(RenderingEngine.key(UIKeys.UILISTITEM), meta)(original);
69
147
  };
70
148
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBWSxFQUFFLEtBQTJCO0lBQy9ELDZEQUE2RDtJQUM3RCxPQUFPLENBQUMsUUFBYSxFQUFFLFdBQWlCLEVBQUUsRUFBRTtRQUMxQyxNQUFNLElBQUksR0FBb0I7WUFDNUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSTtZQUN6QixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFjO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFZLEVBQUcsS0FBMkI7SUFDbkUsNkRBQTZEO0lBQzdELE9BQU8sQ0FBQyxRQUFhLEVBQUUsV0FBaUIsRUFBRSxFQUFFO1FBQzFDLE1BQU0sSUFBSSxHQUE0QjtZQUNwQyxJQUFJLEVBQUU7Z0JBQ0osR0FBRyxFQUFFLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSTtnQkFDekIsS0FBSyxFQUFFLEtBQUs7YUFDYjtTQUVGLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRSxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVUlLZXlzIH0gZnJvbSBcIi4uL3VpL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgYXBwbHksIG1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBSZW5kZXJpbmdFbmdpbmUgfSBmcm9tIFwiLi4vdWkvUmVuZGVyaW5nXCI7XG5pbXBvcnQgeyBVSUxpc3RJdGVtTW9kZWxNZXRhZGF0YSwgVUlNb2RlbE1ldGFkYXRhIH0gZnJvbSBcIi4uL3VpL3R5cGVzXCI7XG5cbi8qKlxuICogVGFncyB0aGUgbW9kZWwgYXMgYSB1aW1vZGVsLCBnaXZpbmcgaXQgdGhlICdyZW5kZXInIG1ldGhvZFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbdGFnXSBvcHRpb25hbCBwYXJhbS4gd2lsbCByZW5kZXIgdGhlIHByb3ZpZGVkIGVsbWVudCB3cmFwcGluZyB0aGUgYXR0cmlidXRlIHVpZWxlbWVudHNcbiAqIEBwYXJhbSB7e319IFtwcm9wc10gb3B0aW9uYWwgcGFyYW0uIEF0dHJpYnV0ZXMgdG8gYmUgcGFzc2VkIHRvIHRoZSB0YWcgZWxlbWVudFxuICogQHBhcmFtIHtmdW5jdGlvbihhbnkpOiB2b2lkfSBbaW5zdGFuY2VDYWxsYmFja10gb3B0aW9uYWwgY2FsbGJhY2sgcmV0dXJuaW5nIHRoZSBpbnN0YW5jZSBhZnRlciBjcmVhdGlvbiBmb3IgYWRkaXRpb25hbCBsb2dpY1xuICpcbiAqIEBkZWNvcmF0b3IgdWltb2RlbFxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgU3lzdGVtXG4gKiAgIHBhcnRpY2lwYW50IHVpbW9kZWxcbiAqICAgcGFydGljaXBhbnQgY29uc3RydWN0b3JcbiAqICAgcGFydGljaXBhbnQgaW5zdGFuY2VcbiAqICAgU3lzdGVtLT4+dWltb2RlbDpkbyhjb25zdHJ1Y3RvcilcbiAqICAgdWltb2RlbC0+PmNvbnN0cnVjdG9yOiBFeGVjdXRlcyB0aGUgY29uc3RydWN0b3JcbiAqICAgY29uc3RydWN0b3ItPj51aW1vZGVsOiByZXR1cm5zIGluc3RhbmNlXG4gKiAgIHVpbW9kZWwtPj5pbnN0YW5jZTogYWRkcyB0aGUgcmVuZGVyIG1ldGhvZFxuICogICB1aW1vZGVsLT4+U3lzdGVtOiByZXR1cm5zIFVJTW9kZWwgaW5zdGFuY2VcbiAqXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdWltb2RlbCh0YWc/OiBzdHJpbmcsIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHJldHVybiAob3JpZ2luYWw6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpID0+IHtcbiAgICBjb25zdCBtZXRhOiBVSU1vZGVsTWV0YWRhdGEgPSB7XG4gICAgICB0YWc6IHRhZyB8fCBvcmlnaW5hbC5uYW1lLFxuICAgICAgcHJvcHM6IHByb3BzLFxuICAgIH07XG4gICAgcmV0dXJuIG1ldGFkYXRhKFJlbmRlcmluZ0VuZ2luZS5rZXkoVUlLZXlzLlVJTU9ERUwpLCBtZXRhKShvcmlnaW5hbCk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJlZEJ5KGVuZ2luZTogc3RyaW5nKSB7XG4gIHJldHVybiBhcHBseShtZXRhZGF0YShSZW5kZXJpbmdFbmdpbmUua2V5KFVJS2V5cy5SRU5ERVJFRF9CWSksIGVuZ2luZSkpO1xufVxuXG4vKipcbiAqIFRhZ3MgdGhlIG1vZGVsIGFzIGEgbGlzdCBpdGVtIGZvciBVSSByZW5kZXJpbmcsIHNwZWNpZnlpbmcgaG93IGl0IHNob3VsZCBiZSByZW5kZXJlZCBpbiBsaXN0IGNvbnRleHRzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFt0YWddIG9wdGlvbmFsIHBhcmFtLiB3aWxsIHJlbmRlciB0aGUgcHJvdmlkZWQgZWxlbWVudCBhcyB0aGUgbGlzdCBpdGVtIGNvbnRhaW5lclxuICogQHBhcmFtIHt7fX0gW3Byb3BzXSBvcHRpb25hbCBwYXJhbS4gQXR0cmlidXRlcyB0byBiZSBwYXNzZWQgdG8gdGhlIHRhZyBlbGVtZW50XG4gKlxuICogQGRlY29yYXRvciB1aWxpc3RpdGVtXG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBTeXN0ZW1cbiAqICAgcGFydGljaXBhbnQgdWlsaXN0aXRlbVxuICogICBwYXJ0aWNpcGFudCBNb2RlbFxuICogICBTeXN0ZW0tPj51aWxpc3RpdGVtOiBhcHBseSB0byBNb2RlbFxuICogICB1aWxpc3RpdGVtLT4+TW9kZWw6IGFkZHMgbGlzdCBpdGVtIG1ldGFkYXRhXG4gKiAgIE1vZGVsLT4+U3lzdGVtOiByZXR1cm5zIE1vZGVsIHdpdGggbGlzdCBpdGVtIHJlbmRlcmluZyBjYXBhYmlsaXRpZXNcbiAqXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdWlsaXN0aXRlbSh0YWc/OiBzdHJpbmcsICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICByZXR1cm4gKG9yaWdpbmFsOiBhbnksIHByb3BlcnR5S2V5PzogYW55KSA9PiB7XG4gICAgY29uc3QgbWV0YTogVUlMaXN0SXRlbU1vZGVsTWV0YWRhdGEgPSB7IFxuICAgICAgaXRlbToge1xuICAgICAgICB0YWc6IHRhZyB8fCBvcmlnaW5hbC5uYW1lLFxuICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICB9IFxuICAgICAgXG4gICAgfTtcbiAgICByZXR1cm4gbWV0YWRhdGEoUmVuZGVyaW5nRW5naW5lLmtleShVSUtleXMuVUlMSVNUSVRFTSksIG1ldGEpKG9yaWdpbmFsKTtcbiAgfTtcbn0iXX0=
149
+ export function uihandlers(props) {
150
+ return (original) => {
151
+ const meta = {
152
+ handlers: props
153
+ };
154
+ return metadata(RenderingEngine.key(UIKeys.HANDLERS), meta)(original);
155
+ };
156
+ }
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RlbC9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMENHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFZLEVBQUUsS0FBMkI7SUFDL0QsNkRBQTZEO0lBQzdELE9BQU8sQ0FBQyxRQUFhLEVBQUUsV0FBaUIsRUFBRSxFQUFFO1FBQzFDLE1BQU0sSUFBSSxHQUFvQjtZQUM1QixHQUFHLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJO1lBQ3pCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBYztJQUN2QyxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNENHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxHQUFZLEVBQUUsS0FBMkI7SUFDbEUsNkRBQTZEO0lBQzdELE9BQU8sQ0FBQyxRQUFhLEVBQUUsV0FBaUIsRUFBRSxFQUFFO1FBQzFDLE1BQU0sSUFBSSxHQUE0QjtZQUNwQyxJQUFJLEVBQUU7Z0JBQ0osR0FBRyxFQUFFLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSTtnQkFDekIsS0FBSyxFQUFFLEtBQUs7YUFDYjtTQUNGLENBQUM7UUFDRixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRSxDQUFDLENBQUM7QUFDSixDQUFDO0FBR0QsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUEyQjtJQUNwRCxPQUFPLENBQUMsUUFBYSxFQUFFLEVBQUU7UUFDdkIsTUFBTSxJQUFJLEdBQUc7WUFDWCxRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDO1FBQ0YsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVJS2V5cyB9IGZyb20gXCIuLi91aS9jb25zdGFudHNcIjtcbmltcG9ydCB7IGFwcGx5LCBtZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuaW1wb3J0IHsgUmVuZGVyaW5nRW5naW5lIH0gZnJvbSBcIi4uL3VpL1JlbmRlcmluZ1wiO1xuaW1wb3J0IHsgVUlMaXN0SXRlbU1vZGVsTWV0YWRhdGEsIFVJTW9kZWxNZXRhZGF0YSB9IGZyb20gXCIuLi91aS90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCB0YWdzIGEgY2xhc3MgYXMgYSBVSSBtb2RlbFxuICogQHN1bW1hcnkgQWRkcyByZW5kZXJpbmcgY2FwYWJpbGl0aWVzIHRvIGEgbW9kZWwgY2xhc3MgYnkgcHJvdmlkaW5nIGEgcmVuZGVyIG1ldGhvZFxuICogVGhpcyBkZWNvcmF0b3IgYXBwbGllcyBtZXRhZGF0YSB0byB0aGUgY2xhc3MgdGhhdCBlbmFibGVzIGl0IHRvIGJlIHJlbmRlcmVkIGJ5IHRoZSBVSSByZW5kZXJpbmcgZW5naW5lLlxuICogVGhlIG1vZGVsIHdpbGwgYmUgcmVuZGVyZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHRhZyBhbmQgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW3RhZ10gVGhlIEhUTUwgdGFnIHRvIHVzZSB3aGVuIHJlbmRlcmluZyB0aGlzIG1vZGVsIChkZWZhdWx0cyB0byBjbGFzcyBuYW1lKVxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbcHJvcHNdIEFkZGl0aW9uYWwgcHJvcGVydGllcyB0byBwYXNzIHRvIHRoZSByZW5kZXJlZCBlbGVtZW50XG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBjbGFzcyBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWltb2RlbFxuICogQGNhdGVnb3J5IENsYXNzIERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgdXNhZ2Ugd2l0aCBkZWZhdWx0IHRhZyAoY2xhc3MgbmFtZSlcbiAqIEB1aW1vZGVsKClcbiAqIGNsYXNzIFVzZXJQcm9maWxlIGV4dGVuZHMgTW9kZWwge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgbmFtZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIGVtYWlsOiBzdHJpbmc7XG4gKiB9XG4gKlxuICogLy8gVXNhZ2Ugd2l0aCBjdXN0b20gdGFnIGFuZCBwcm9wZXJ0aWVzXG4gKiBAdWltb2RlbCgnZGl2JywgeyBjbGFzczogJ3VzZXItY2FyZCcgfSlcbiAqIGNsYXNzIFVzZXJDYXJkIGV4dGVuZHMgTW9kZWwge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgdXNlcm5hbWU6IHN0cmluZztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFN5c3RlbVxuICogICBwYXJ0aWNpcGFudCB1aW1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IGNvbnN0cnVjdG9yXG4gKiAgIHBhcnRpY2lwYW50IGluc3RhbmNlXG4gKiAgIFN5c3RlbS0+PnVpbW9kZWw6ZG8oY29uc3RydWN0b3IpXG4gKiAgIHVpbW9kZWwtPj5jb25zdHJ1Y3RvcjogRXhlY3V0ZXMgdGhlIGNvbnN0cnVjdG9yXG4gKiAgIGNvbnN0cnVjdG9yLT4+dWltb2RlbDogcmV0dXJucyBpbnN0YW5jZVxuICogICB1aW1vZGVsLT4+aW5zdGFuY2U6IGFkZHMgdGhlIHJlbmRlciBtZXRob2RcbiAqICAgdWltb2RlbC0+PlN5c3RlbTogcmV0dXJucyBVSU1vZGVsIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aW1vZGVsKHRhZz86IHN0cmluZywgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcmV0dXJuIChvcmlnaW5hbDogYW55LCBwcm9wZXJ0eUtleT86IGFueSkgPT4ge1xuICAgIGNvbnN0IG1ldGE6IFVJTW9kZWxNZXRhZGF0YSA9IHtcbiAgICAgIHRhZzogdGFnIHx8IG9yaWdpbmFsLm5hbWUsXG4gICAgICBwcm9wczogcHJvcHMsXG4gICAgfTtcbiAgICByZXR1cm4gbWV0YWRhdGEoUmVuZGVyaW5nRW5naW5lLmtleShVSUtleXMuVUlNT0RFTCksIG1ldGEpKG9yaWdpbmFsKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgc3BlY2lmaWVzIHdoaWNoIHJlbmRlcmluZyBlbmdpbmUgdG8gdXNlIGZvciBhIG1vZGVsXG4gKiBAc3VtbWFyeSBBc3NvY2lhdGVzIGEgbW9kZWwgd2l0aCBhIHNwZWNpZmljIHJlbmRlcmluZyBlbmdpbmUgaW1wbGVtZW50YXRpb25cbiAqIFRoaXMgZGVjb3JhdG9yIGFsbG93cyB5b3UgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcmVuZGVyaW5nIGVuZ2luZSBmb3IgYSBzcGVjaWZpYyBtb2RlbCBjbGFzcyxcbiAqIGVuYWJsaW5nIGRpZmZlcmVudCByZW5kZXJpbmcgc3RyYXRlZ2llcyBmb3IgZGlmZmVyZW50IG1vZGVscy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZW5naW5lIFRoZSBuYW1lIG9mIHRoZSByZW5kZXJpbmcgZW5naW5lIHRvIHVzZVxuICogQHJldHVybiB7RnVuY3Rpb259IEEgY2xhc3MgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKlxuICogQGZ1bmN0aW9uIHJlbmRlcmVkQnlcbiAqIEBjYXRlZ29yeSBDbGFzcyBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFNwZWNpZnkgYSBjdXN0b20gcmVuZGVyaW5nIGVuZ2luZSBmb3IgYSBtb2RlbFxuICogQHVpbW9kZWwoKVxuICogQHJlbmRlcmVkQnkoJ3JlYWN0JylcbiAqIGNsYXNzIFJlYWN0Q29tcG9uZW50IGV4dGVuZHMgTW9kZWwge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgdGl0bGU6IHN0cmluZztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFN5c3RlbVxuICogICBwYXJ0aWNpcGFudCByZW5kZXJlZEJ5XG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBTeXN0ZW0tPj5yZW5kZXJlZEJ5OiBhcHBseSB0byBNb2RlbFxuICogICByZW5kZXJlZEJ5LT4+TW9kZWw6IGFkZHMgZW5naW5lIG1ldGFkYXRhXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiB1c2VzIHNwZWNpZmllZCBlbmdpbmVcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+U3lzdGVtOiByZW5kZXJzIHdpdGggY3VzdG9tIGVuZ2luZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyZWRCeShlbmdpbmU6IHN0cmluZykge1xuICByZXR1cm4gYXBwbHkobWV0YWRhdGEoUmVuZGVyaW5nRW5naW5lLmtleShVSUtleXMuUkVOREVSRURfQlkpLCBlbmdpbmUpKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVjb3JhdG9yIHRoYXQgdGFncyBhIG1vZGVsIGFzIGEgbGlzdCBpdGVtIGZvciBVSSByZW5kZXJpbmdcbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyBob3cgYSBtb2RlbCBzaG91bGQgYmUgcmVuZGVyZWQgd2hlbiBkaXNwbGF5ZWQgaW4gYSBsaXN0IGNvbnRleHRcbiAqIFRoaXMgZGVjb3JhdG9yIGFwcGxpZXMgbWV0YWRhdGEgdG8gdGhlIGNsYXNzIHRoYXQgZW5hYmxlcyBpdCB0byBiZSByZW5kZXJlZCBhcyBhIGxpc3QgaXRlbVxuICogYnkgdGhlIFVJIHJlbmRlcmluZyBlbmdpbmUuIFRoZSBtb2RlbCB3aWxsIGJlIHJlbmRlcmVkIHdpdGggdGhlIHNwZWNpZmllZCB0YWcgYW5kIHByb3BlcnRpZXNcbiAqIHdoZW4gaXQgYXBwZWFycyBpbiBhIGxpc3QuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFt0YWddIFRoZSBIVE1MIHRhZyB0byB1c2Ugd2hlbiByZW5kZXJpbmcgdGhpcyBtb2RlbCBhcyBhIGxpc3QgaXRlbSAoZGVmYXVsdHMgdG8gY2xhc3MgbmFtZSlcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3Byb3BzXSBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGUgcmVuZGVyZWQgbGlzdCBpdGVtIGVsZW1lbnRcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIGNsYXNzIGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiB1aWxpc3RpdGVtXG4gKiBAY2F0ZWdvcnkgQ2xhc3MgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBCYXNpYyB1c2FnZSB3aXRoIGRlZmF1bHQgdGFnIChjbGFzcyBuYW1lKVxuICogQHVpbW9kZWwoKVxuICogQHVpbGlzdGl0ZW0oKVxuICogY2xhc3MgVG9kb0l0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICB0aXRsZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIGNvbXBsZXRlZDogYm9vbGVhbjtcbiAqIH1cbiAqXG4gKiAvLyBVc2FnZSB3aXRoIGN1c3RvbSB0YWcgYW5kIHByb3BlcnRpZXNcbiAqIEB1aW1vZGVsKClcbiAqIEB1aWxpc3RpdGVtKCdsaScsIHsgY2xhc3M6ICdsaXN0LWdyb3VwLWl0ZW0nIH0pXG4gKiBjbGFzcyBMaXN0SXRlbSBleHRlbmRzIE1vZGVsIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIHRleHQ6IHN0cmluZztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IFN5c3RlbVxuICogICBwYXJ0aWNpcGFudCB1aWxpc3RpdGVtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IFJlbmRlcmluZ0VuZ2luZVxuICogICBTeXN0ZW0tPj51aWxpc3RpdGVtOiBhcHBseSB0byBNb2RlbFxuICogICB1aWxpc3RpdGVtLT4+TW9kZWw6IGFkZHMgbGlzdCBpdGVtIG1ldGFkYXRhXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiB1c2VzIGxpc3QgaXRlbSBtZXRhZGF0YSB3aGVuIGluIGxpc3QgY29udGV4dFxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5TeXN0ZW06IHJlbmRlcnMgd2l0aCBsaXN0IGl0ZW0gc3R5bGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gdWlsaXN0aXRlbSh0YWc/OiBzdHJpbmcsIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHJldHVybiAob3JpZ2luYWw6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpID0+IHtcbiAgICBjb25zdCBtZXRhOiBVSUxpc3RJdGVtTW9kZWxNZXRhZGF0YSA9IHtcbiAgICAgIGl0ZW06IHtcbiAgICAgICAgdGFnOiB0YWcgfHwgb3JpZ2luYWwubmFtZSxcbiAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBtZXRhZGF0YShSZW5kZXJpbmdFbmdpbmUua2V5KFVJS2V5cy5VSUxJU1RJVEVNKSwgbWV0YSkob3JpZ2luYWwpO1xuICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiB1aWhhbmRsZXJzKHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICByZXR1cm4gKG9yaWdpbmFsOiBhbnkpID0+IHtcbiAgICBjb25zdCBtZXRhID0ge1xuICAgICAgaGFuZGxlcnM6IHByb3BzXG4gICAgfTtcbiAgICByZXR1cm4gbWV0YWRhdGEoUmVuZGVyaW5nRW5naW5lLmtleShVSUtleXMuSEFORExFUlMpLCBtZXRhKShvcmlnaW5hbCk7XG4gIH07XG59Il19
@@ -1,7 +1,3 @@
1
- /**
2
- * @namespace model
3
- * @memberOf ui-decorators
4
- */
5
1
  import "./model";
6
2
  export * from "./decorators";
7
3
  export * from "./overrides";
@@ -1,9 +1,5 @@
1
- /**
2
- * @namespace model
3
- * @memberOf ui-decorators
4
- */
5
1
  import "./model";
6
2
  export * from "./decorators";
7
3
  export * from "./overrides";
8
4
  export * from "./Renderable";
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxTQUFTLENBQUM7QUFFakIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBuYW1lc3BhY2UgbW9kZWxcbiAqIEBtZW1iZXJPZiB1aS1kZWNvcmF0b3JzXG4gKi9cblxuaW1wb3J0IFwiLi9tb2RlbFwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vdmVycmlkZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JlbmRlcmFibGVcIjtcbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxTQUFTLENBQUM7QUFFakIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCIuL21vZGVsXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL292ZXJyaWRlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vUmVuZGVyYWJsZVwiO1xuIl19