@decaf-ts/ui-decorators 0.5.26 → 0.5.28

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 (82) hide show
  1. package/LICENSE.md +173 -17
  2. package/README.md +24 -6
  3. package/dist/ui-decorators.cjs +2 -1550
  4. package/dist/ui-decorators.cjs.map +1 -0
  5. package/dist/ui-decorators.js +2 -0
  6. package/dist/ui-decorators.js.map +1 -0
  7. package/lib/esm/index.d.ts +1 -1
  8. package/lib/esm/index.js +2 -2
  9. package/lib/esm/index.js.map +1 -0
  10. package/lib/esm/model/Renderable.js +1 -1
  11. package/lib/esm/model/Renderable.js.map +1 -0
  12. package/lib/esm/model/decorators.d.ts +94 -12
  13. package/lib/esm/model/decorators.js +111 -15
  14. package/lib/esm/model/decorators.js.map +1 -0
  15. package/lib/esm/model/index.js +1 -1
  16. package/lib/esm/model/index.js.map +1 -0
  17. package/lib/esm/model/model.js +1 -1
  18. package/lib/esm/model/model.js.map +1 -0
  19. package/lib/esm/model/overrides.js +1 -1
  20. package/lib/esm/model/overrides.js.map +1 -0
  21. package/lib/esm/ui/Rendering.d.ts +1 -1
  22. package/lib/esm/ui/Rendering.js +8 -7
  23. package/lib/esm/ui/Rendering.js.map +1 -0
  24. package/lib/esm/ui/constants.d.ts +4 -3
  25. package/lib/esm/ui/constants.js +5 -4
  26. package/lib/esm/ui/constants.js.map +1 -0
  27. package/lib/esm/ui/decorators.d.ts +76 -13
  28. package/lib/esm/ui/decorators.js +81 -16
  29. package/lib/esm/ui/decorators.js.map +1 -0
  30. package/lib/esm/ui/errors.js +1 -1
  31. package/lib/esm/ui/errors.js.map +1 -0
  32. package/lib/esm/ui/handlers.js +1 -1
  33. package/lib/esm/ui/handlers.js.map +1 -0
  34. package/lib/esm/ui/index.js +1 -1
  35. package/lib/esm/ui/index.js.map +1 -0
  36. package/lib/esm/ui/interfaces.d.ts +31 -0
  37. package/lib/esm/ui/interfaces.js +1 -1
  38. package/lib/esm/ui/interfaces.js.map +1 -0
  39. package/lib/esm/ui/types.d.ts +8 -6
  40. package/lib/esm/ui/types.js +1 -1
  41. package/lib/esm/ui/types.js.map +1 -0
  42. package/lib/esm/ui/utils.js +1 -1
  43. package/lib/esm/ui/utils.js.map +1 -0
  44. package/lib/index.cjs +2 -2
  45. package/lib/index.d.ts +1 -1
  46. package/lib/index.js.map +1 -0
  47. package/lib/model/Renderable.cjs +1 -1
  48. package/lib/model/Renderable.js.map +1 -0
  49. package/lib/model/decorators.cjs +113 -16
  50. package/lib/model/decorators.d.ts +94 -12
  51. package/lib/model/decorators.js.map +1 -0
  52. package/lib/model/index.cjs +1 -1
  53. package/lib/model/index.js.map +1 -0
  54. package/lib/model/model.cjs +1 -1
  55. package/lib/model/model.js.map +1 -0
  56. package/lib/model/overrides.cjs +1 -1
  57. package/lib/model/overrides.js.map +1 -0
  58. package/lib/ui/Rendering.cjs +8 -7
  59. package/lib/ui/Rendering.d.ts +1 -1
  60. package/lib/ui/Rendering.js.map +1 -0
  61. package/lib/ui/constants.cjs +5 -4
  62. package/lib/ui/constants.d.ts +4 -3
  63. package/lib/ui/constants.js.map +1 -0
  64. package/lib/ui/decorators.cjs +83 -17
  65. package/lib/ui/decorators.d.ts +76 -13
  66. package/lib/ui/decorators.js.map +1 -0
  67. package/lib/ui/errors.cjs +1 -1
  68. package/lib/ui/errors.js.map +1 -0
  69. package/lib/ui/handlers.cjs +1 -1
  70. package/lib/ui/handlers.js.map +1 -0
  71. package/lib/ui/index.cjs +1 -1
  72. package/lib/ui/index.js.map +1 -0
  73. package/lib/ui/interfaces.cjs +1 -1
  74. package/lib/ui/interfaces.d.ts +31 -0
  75. package/lib/ui/interfaces.js.map +1 -0
  76. package/lib/ui/types.cjs +1 -1
  77. package/lib/ui/types.d.ts +8 -6
  78. package/lib/ui/types.js.map +1 -0
  79. package/lib/ui/utils.cjs +1 -1
  80. package/lib/ui/utils.js.map +1 -0
  81. package/package.json +24 -51
  82. package/dist/ui-decorators.esm.cjs +0 -1519
@@ -33,7 +33,7 @@ var UIMediaBreakPoints;
33
33
  * @property {string} NAME - Key for name attribute
34
34
  * @property {string} NAME_PREFIX - Prefix for input names
35
35
  * @property {string} CUSTOM_PROPS - Key for custom validation properties
36
- * @property {string} UILISTITEM - Key for list item metadata
36
+ * @property {string} UILISTMODEL - Key for list item metadata
37
37
  * @property {string} UILISTPROP - Key for list property metadata
38
38
  * @property {string} TYPE - Key for type metadata
39
39
  * @property {string} SUB_TYPE - Key for subtype metadata
@@ -73,16 +73,17 @@ exports.UIKeys = {
73
73
  NAME: "name",
74
74
  NAME_PREFIX: "input-",
75
75
  CUSTOM_PROPS: "customValidationProps",
76
- UILISTITEM: "uilistitem",
76
+ UILISTMODEL: "uilistmodel",
77
77
  UILISTPROP: "listprop",
78
78
  UILAYOUT: "uilayout",
79
- UILAYOUTITEM: "uilayoutitem",
79
+ UILAYOUTPROP: "uilayoutprop",
80
80
  HANDLERS: "handlers",
81
81
  TYPE: "type",
82
82
  SUB_TYPE: "subtype",
83
83
  HIDDEN: "hidden",
84
84
  FORMAT: "format",
85
85
  ORDER: "order",
86
+ PAGE: "page",
86
87
  READ_ONLY: "readonly",
87
88
  REQUIRED: decorator_validation_1.ValidationKeys.REQUIRED,
88
89
  MIN: decorator_validation_1.ValidationKeys.MIN,
@@ -253,4 +254,4 @@ exports.HTML5CheckTypes = [
253
254
  exports.HTML5InputTypes.CHECKBOX,
254
255
  exports.HTML5InputTypes.RADIO,
255
256
  ];
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VpL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7R0FPRzs7O0FBRUgseUVBc0J3QztBQUl4QyxJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIsaUNBQVcsQ0FBQTtJQUNYLGtDQUFZLENBQUE7SUFDWixpQ0FBVyxDQUFBO0lBQ1gsbUNBQWEsQ0FBQTtBQUNmLENBQUMsRUFMVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQUs3QjtBQUFBLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q0c7QUFDVSxRQUFBLE1BQU0sR0FBRztJQUNwQixPQUFPLEVBQUUsR0FBRyxnQ0FBUyxDQUFDLE9BQU8sTUFBTTtJQUNuQyxPQUFPLEVBQUUsU0FBUztJQUNsQixXQUFXLEVBQUUsYUFBYTtJQUMxQixPQUFPLEVBQUUsU0FBUztJQUNsQixJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE1BQU07SUFDWixXQUFXLEVBQUUsUUFBUTtJQUNyQixZQUFZLEVBQUUsdUJBQXVCO0lBRXJDLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFlBQVksRUFBRSxjQUFjO0lBQzVCLFFBQVEsRUFBRSxVQUFVO0lBRXBCLElBQUksRUFBRSxNQUFNO0lBQ1osUUFBUSxFQUFFLFNBQVM7SUFFbkIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLE9BQU87SUFFZCxTQUFTLEVBQUUsVUFBVTtJQUNyQixRQUFRLEVBQUUscUNBQWMsQ0FBQyxRQUFRO0lBQ2pDLEdBQUcsRUFBRSxxQ0FBYyxDQUFDLEdBQUc7SUFDdkIsVUFBVSxFQUFFLHFDQUFjLENBQUMs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UTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osUUFBUSxFQUFFLFVBQVU7SUFDcEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixHQUFHLEVBQUUsY0FBTSxDQUFDLEdBQUc7SUFDZixJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUM7QUFFRjs7Ozs7Ozs7OztHQVVHO0FBQ1UsUUFBQSxlQUFlLEdBQUc7SUFDN0IsdUJBQWUsQ0FBQyxRQUFRO0lBQ3hCLHVCQUFlLENBQUMsS0FBSztDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uc3RhbnRzIGFuZCBlbnVtcyBmb3IgVUkgcmVuZGVyaW5nIGFuZCB2YWxpZGF0aW9uXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGtleXMsIG1hcHBpbmdzLCBhbmQgSFRNTDUgaW5wdXQgdHlwZXMgZm9yIFVJIGNvbXBvbmVudHNcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGNvbnN0YW50cyB1c2VkIHRocm91Z2hvdXQgdGhlIFVJIGRlY29yYXRvcnMgbGlicmFyeSBmb3JcbiAqIHJlbmRlcmluZywgdmFsaWRhdGlvbiwgYW5kIEhUTUwgZWxlbWVudCBnZW5lcmF0aW9uLlxuICogQG1vZHVsZSB1aS9jb25zdGFudHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5cbmltcG9ydCB7XG4gIENvbnN0cnVjdG9yLFxuICBEYXRlVmFsaWRhdG9yLFxuICBEaWZmVmFsaWRhdG9yLFxuICBFbWFpbFZhbGlkYXRvcixcbiAgRXF1YWxzVmFsaWRhdG9yLFxuICBHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3IsXG4gIEdyZWF0ZXJUaGFuVmFsaWRhdG9yLFxuICBMZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3IsXG4gIExlc3NUaGFuVmFsaWRhdG9yLFxuICBNYXhMZW5ndGhWYWxpZGF0b3IsXG4gIE1heFZhbGlkYXRvcixcbiAgTWluTGVuZ3RoVmFsaWRhdG9yLFxuICBNaW5WYWxpZGF0b3IsXG4gIE1vZGVsS2V5cyxcbiAgUGFzc3dvcmRWYWxpZGF0b3IsXG4gIFBhdHRlcm5WYWxpZGF0b3IsXG4gIFJlcXVpcmVkVmFsaWRhdG9yLFxuICBTdGVwVmFsaWRhdG9yLFxuICBVUkxWYWxpZGF0b3IsXG4gIFZhbGlkYXRpb25LZXlzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcblxuXG5cbmV4cG9ydCBlbnVtIFVJTWVkaWFCcmVha1BvaW50cyAge1xuICBTTUFMTCA9ICdzJyxcbiAgTUVESVVNID0gJ20nLFxuICBMQVJHRSA9ICdsJyxcbiAgWExBUkdFID0gJ3hsJyxcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEtleSBjb25zdGFudHMgdXNlZCBmb3IgVUkgbWV0YWRhdGEgYW5kIHJlbmRlcmluZ1xuICogQHN1bW1hcnkgQ29sbGVjdGlvbiBvZiBzdHJpbmcgY29uc3RhbnRzIHVzZWQgYXMga2V5cyBmb3IgVUktcmVsYXRlZCBtZXRhZGF0YVxuICogVGhlc2Uga2V5cyBhcmUgdXNlZCB0aHJvdWdob3V0IHRoZSBsaWJyYXJ5IHRvIHN0b3JlIGFuZCByZXRyaWV2ZSBtZXRhZGF0YSByZWxhdGVkIHRvXG4gKiBVSSBtb2RlbHMsIGVsZW1lbnRzLCBwcm9wZXJ0aWVzLCBhbmQgdmFsaWRhdGlvbiBydWxlcy5cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBVSUtleXNUeXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVGTEVDVCAtIEJhc2UgcmVmbGVjdGlvbiBrZXkgZm9yIFVJIG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVUlNT0RFTCAtIEtleSBmb3IgVUkgbW9kZWwgbWV0YWRhdGFcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRU5ERVJFRF9CWSAtIEtleSBmb3Igc3BlY2lmeWluZyByZW5kZXJpbmcgZW5naW5lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRUxFTUVOVCAtIEtleSBmb3IgZWxlbWVudCBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBST1AgLSBLZXkgZm9yIHByb3BlcnR5IG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTkFNRSAtIEtleSBmb3IgbmFtZSBhdHRyaWJ1dGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBOQU1FX1BSRUZJWCAtIFByZWZpeCBmb3IgaW5wdXQgbmFtZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDVVNUT01fUFJPUFMgLSBLZXkgZm9yIGN1c3RvbSB2YWxpZGF0aW9uIHByb3BlcnRpZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBVSUxJU1RJVEVNIC0gS2V5IGZvciBsaXN0IGl0ZW0gbWV0YWRhdGFcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBVSUxJU1RQUk9QIC0gS2V5IGZvciBsaXN0IHByb3BlcnR5IG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVFlQRSAtIEtleSBmb3IgdHlwZSBtZXRhZGF0YVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFNVQl9UWVBFIC0gS2V5IGZvciBzdWJ0eXBlIG1ldGFkYXRhXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSElEREVOIC0gS2V5IGZvciBoaWRkZW4gYXR0cmlidXRlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRk9STUFUIC0gS2V5IGZvciBmb3JtYXQgbWV0YWRhdGFcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRUFEX09OTFkgLSBLZXkgZm9yIHJlYWRvbmx5IGF0dHJpYnV0ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFUVVJUkVEIC0gS2V5IGZvciByZXF1aXJlZCB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUlOIC0gS2V5IGZvciBtaW5pbXVtIHZhbHVlIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNSU5fTEVOR1RIIC0gS2V5IGZvciBtaW5pbXVtIGxlbmd0aCB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUFYIC0gS2V5IGZvciBtYXhpbXVtIHZhbHVlIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNQVhfTEVOR1RIIC0gS2V5IGZvciBtYXhpbXVtIGxlbmd0aCB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUEFUVEVSTiAtIEtleSBmb3IgcGF0dGVybiB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVVJMIC0gS2V5IGZvciBVUkwgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFNURVAgLSBLZXkgZm9yIHN0ZXAgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IERBVEUgLSBLZXkgZm9yIGRhdGUgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IEVNQUlMIC0gS2V5IGZvciBlbWFpbCB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUEFTU1dPUkQgLSBLZXkgZm9yIHBhc3N3b3JkIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFUVVBTFMgLSBLZXkgZm9yIGVxdWFsaXR5IHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBESUZGIC0gS2V5IGZvciBkaWZmZXJlbmNlIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBMRVNTX1RIQU4gLSBLZXkgZm9yIGxlc3MgdGhhbiB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTEVTU19USEFOX09SX0VRVUFMIC0gS2V5IGZvciBsZXNzIHRoYW4gb3IgZXF1YWwgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IEdSRUFURVJfVEhBTiAtIEtleSBmb3IgZ3JlYXRlciB0aGFuIHZhbGlkYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBHUkVBVEVSX1RIQU5fT1JfRVFVQUwgLSBLZXkgZm9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB2YWxpZGF0aW9uXG4gKlxuICogQGNvbnN0IFVJS2V5c1xuICogQHR5cGUge1VJS2V5c1R5cGV9XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgVUlLZXlzID0ge1xuICBSRUZMRUNUOiBgJHtNb2RlbEtleXMuUkVGTEVDVH0udWkuYCxcbiAgVUlNT0RFTDogXCJ1aW1vZGVsXCIsXG4gIFJFTkRFUkVEX0JZOiBcInJlbmRlcmVkLWJ5XCIsXG4gIEVMRU1FTlQ6IFwiZWxlbWVudFwiLFxuICBQUk9QOiBcInByb3BcIixcbiAgQ0hJTEQ6IFwiY2hpbGRcIixcbiAgTkFNRTogXCJuYW1lXCIsXG4gIE5BTUVfUFJFRklYOiBcImlucHV0LVwiLFxuICBDVVNUT01fUFJPUFM6IFwiY3VzdG9tVmFsaWRhdGlvblByb3BzXCIsXG5cbiAgVUlMSVNUSVRFTTogXCJ1aWxpc3RpdGVtXCIsXG4gIFVJTElTVFBST1A6IFwibGlzdHByb3BcIixcbiAgVUlMQVlPVVQ6IFwidWlsYXlvdXRcIixcbiAgVUlMQVlPVVRJVEVNOiBcInVpbGF5b3V0aXRlbVwiLFxuICBIQU5ETEVSUzogXCJoYW5kbGVyc1wiLFxuXG4gIFRZUEU6IFwidHlwZVwiLFxuICBTVUJfVFlQRTogXCJzdWJ0eXBlXCIsXG5cbiAgSElEREVOOiBcImhpZGRlblwiLFxuICBGT1JNQVQ6IFwiZm9ybWF0XCIsXG4gIE9SREVSOiBcIm9yZGVyXCIsXG5cbiAgUkVBRF9PTkxZOiBcInJlYWRvbmx5XCIsXG4gIFJFUVVJUkVEOiBWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRCxcbiAgTUlOOiBWYWxpZGF0aW9uS2V5cy5NSU4sXG4gIE1JTl9MRU5HVEg6IFZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEgsXG4gIE1BWDogVmFsaWRhdGlvbktleXMuTUFYLFxuICBNQVhfTEVOR1RIOiBWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RILFxuICBQQVRURVJOOiBWYWxpZGF0aW9uS2V5cy5QQVRURVJOLFxuICBVUkw6IFZhbGlkYXRpb25LZXlzLlVSTCxcbiAgU1RFUDogVmFsaWRhdGlvbktleXMuU1RFUCxcbiAgREFURTogVmFsaWRhdGlvbktleXMuREFURSxcbiAgRU1BSUw6IFZhbGlkYXRpb25LZXlzLkVNQUlMLFxuICBQQVNTV09SRDogVmFsaWRhdGlvbktleXMuUEFTU1dPUkQsXG4gIEVRVUFMUzogVmFsaWRhdGlvbktleXMuRVFVQUxTLFxuICBESUZGOiBWYWxpZGF0aW9uS2V5cy5ESUZGLFxuICBMRVNTX1RIQU46IFZhbGlkYXRpb25LZXlzLkxFU1NfVEhBTixcbiAgTEVTU19USEFOX09SX0VRVUFMOiBWYWxpZGF0aW9uS2V5cy5MRVNTX1RIQU5fT1JfRVFVQUwsXG4gIEdSRUFURVJfVEhBTjogVmFsaWRhdGlvbktleXMuR1JFQVRFUl9USEFOLFxuICBHUkVBVEVSX1RIQU5fT1JfRVFVQUw6IFZhbGlkYXRpb25LZXlzLkdSRUFURVJfVEhBTl9PUl9FUVVBTCxcbn07XG5cblxuXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE1hcHBpbmcgb2YgaW5wdXQgdHlwZXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyB2YWxpZGF0b3JzXG4gKiBAc3VtbWFyeSBNYXBzIHNwZWNpYWwgaW5wdXQgdHlwZXMgdG8gdGhlaXIgdmFsaWRhdG9yIGNsYXNzZXNcbiAqIFRoaXMgY29uc3RhbnQgbWFwcyBpbnB1dCB0eXBlcyBsaWtlIGVtYWlsLCBVUkwsIGRhdGUsIGFuZCBwYXNzd29yZCB0byB0aGVpclxuICogY29ycmVzcG9uZGluZyB2YWxpZGF0b3IgY2xhc3NlcyBmcm9tIHRoZSBkZWNvcmF0b3ItdmFsaWRhdGlvbiBsaWJyYXJ5LlxuICpcbiAqIEB0eXBlZGVmIHtPYmplY3QuPHN0cmluZywgQ29uc3RydWN0b3I8VmFsaWRhdG9yPj59IFZhbGlkYXRhYmxlQnlUeXBlTWFwXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPEVtYWlsVmFsaWRhdG9yPn0gZW1haWwgLSBWYWxpZGF0b3IgZm9yIGVtYWlsIGlucHV0c1xuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxVUkxWYWxpZGF0b3I+fSB1cmwgLSBWYWxpZGF0b3IgZm9yIFVSTCBpbnB1dHNcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8RGF0ZVZhbGlkYXRvcj59IGRhdGUgLSBWYWxpZGF0b3IgZm9yIGRhdGUgaW5wdXRzXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPFBhc3N3b3JkVmFsaWRhdG9yPn0gcGFzc3dvcmQgLSBWYWxpZGF0b3IgZm9yIHBhc3N3b3JkIGlucHV0c1xuICpcbiAqIEBjb25zdCBWYWxpZGF0YWJsZUJ5VHlwZVxuICogQHR5cGUge1ZhbGlkYXRhYmxlQnlUeXBlTWFwfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFZhbGlkYXRhYmxlQnlUeXBlOiBSZWNvcmQ8c3RyaW5nLCBDb25zdHJ1Y3RvcjxWYWxpZGF0b3I+PiA9IHtcbiAgW1VJS2V5cy5FTUFJTF06IEVtYWlsVmFsaWRhdG9yLFxuICBbVUlLZXlzLlVSTF06IFVSTFZhbGlkYXRvcixcbiAgW1VJS2V5cy5EQVRFXTogRGF0ZVZhbGlkYXRvcixcbiAgW1VJS2V5cy5QQVNTV09SRF06IFBhc3N3b3JkVmFsaWRhdG9yLFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWFwcGluZyBvZiB2YWxpZGF0aW9uIGF0dHJpYnV0ZXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyB2YWxpZGF0b3JzXG4gKiBAc3VtbWFyeSBNYXBzIEhUTUwgdmFsaWRhdGlvbiBhdHRyaWJ1dGVzIHRvIHRoZWlyIHZhbGlkYXRvciBjbGFzc2VzXG4gKiBUaGlzIGNvbnN0YW50IG1hcHMgSFRNTCB2YWxpZGF0aW9uIGF0dHJpYnV0ZXMgbGlrZSByZXF1aXJlZCwgbWluLCBtYXgsIHBhdHRlcm4sIGV0Yy5cbiAqIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgdmFsaWRhdG9yIGNsYXNzZXMgZnJvbSB0aGUgZGVjb3JhdG9yLXZhbGlkYXRpb24gbGlicmFyeS5cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0LjxzdHJpbmcsIENvbnN0cnVjdG9yPFZhbGlkYXRvcj4+fSBWYWxpZGF0YWJsZUJ5QXR0cmlidXRlTWFwXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPFJlcXVpcmVkVmFsaWRhdG9yPn0gcmVxdWlyZWQgLSBWYWxpZGF0b3IgZm9yIHJlcXVpcmVkIGZpZWxkc1xuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxNaW5WYWxpZGF0b3I+fSBtaW4gLSBWYWxpZGF0b3IgZm9yIG1pbmltdW0gdmFsdWVcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8TWF4VmFsaWRhdG9yPn0gbWF4IC0gVmFsaWRhdG9yIGZvciBtYXhpbXVtIHZhbHVlXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPFN0ZXBWYWxpZGF0b3I+fSBzdGVwIC0gVmFsaWRhdG9yIGZvciBzdGVwIHZhbHVlXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPE1pbkxlbmd0aFZhbGlkYXRvcj59IG1pbmxlbmd0aCAtIFZhbGlkYXRvciBmb3IgbWluaW11bSBsZW5ndGhcbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8TWF4TGVuZ3RoVmFsaWRhdG9yPn0gbWF4bGVuZ3RoIC0gVmFsaWRhdG9yIGZvciBtYXhpbXVtIGxlbmd0aFxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxQYXR0ZXJuVmFsaWRhdG9yPn0gcGF0dGVybiAtIFZhbGlkYXRvciBmb3IgcmVnZXggcGF0dGVyblxuICogQHByb3BlcnR5IHtDb25zdHJ1Y3RvcjxFcXVhbHNWYWxpZGF0b3I+fSBlcXVhbHMgLSBWYWxpZGF0b3IgZm9yIGVxdWFsaXR5XG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPERpZmZWYWxpZGF0b3I+fSBkaWZmIC0gVmFsaWRhdG9yIGZvciBkaWZmZXJlbmNlXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPExlc3NUaGFuVmFsaWRhdG9yPn0gbGVzc3RoYW4gLSBWYWxpZGF0b3IgZm9yIGxlc3MgdGhhbiBjb21wYXJpc29uXG4gKiBAcHJvcGVydHkge0NvbnN0cnVjdG9yPExlc3NUaGFuT3JFcXVhbFZhbGlkYXRvcj59IGxlc3N0aGFub3JlcXVhbCAtIFZhbGlkYXRvciBmb3IgbGVzcyB0aGFuIG9yIGVxdWFsIGNvbXBhcmlzb25cbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8R3JlYXRlclRoYW5WYWxpZGF0b3I+fSBncmVhdGVydGhhbiAtIFZhbGlkYXRvciBmb3IgZ3JlYXRlciB0aGFuIGNvbXBhcmlzb25cbiAqIEBwcm9wZXJ0eSB7Q29uc3RydWN0b3I8R3JlYXRlclRoYW5PckVxdWFsVmFsaWRhdG9yPn0gZ3JlYXRlcnRoYW5vcmVxdWFsIC0gVmFsaWRhdG9yIGZvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgY29tcGFyaXNvblxuICpcbiAqIEBjb25zdCBWYWxpZGF0YWJsZUJ5QXR0cmlidXRlXG4gKiBAdHlwZSB7VmFsaWRhdGFibGVCeUF0dHJpYnV0ZU1hcH1cbiAqIEByZWFkb25seVxuICogQG1lbWJlck9mIG1vZHVsZTp1aS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBWYWxpZGF0YWJsZUJ5QXR0cmlidXRlOiBSZWNvcmQ8c3RyaW5nLCBDb25zdHJ1Y3RvcjxWYWxpZGF0b3I+PiA9IHtcbiAgW1VJS2V5cy5SRVFVSVJFRF06IFJlcXVpcmVkVmFsaWRhdG9yLFxuICBbVUlLZXlzLk1JTl06IE1pblZhbGlkYXRvcixcbiAgW1VJS2V5cy5NQVhdOiBNYXhWYWxpZGF0b3IsXG4gIFtVSUtleXMuU1RFUF06IFN0ZXBWYWxpZGF0b3IsXG4gIFtVSUtleXMuTUlOX0xFTkdUSF06IE1pbkxlbmd0aFZhbGlkYXRvcixcbiAgW1VJS2V5cy5NQVhfTEVOR1RIXTogTWF4TGVuZ3RoVmFsaWRhdG9yLFxuICBbVUlLZXlzLlBBVFRFUk5dOiBQYXR0ZXJuVmFsaWRhdG9yLFxuICBbVUlLZXlzLkVRVUFMU106IEVxdWFsc1ZhbGlkYXRvcixcbiAgW1VJS2V5cy5ESUZGXTogRGlmZlZhbGlkYXRvcixcbiAgW1VJS2V5cy5MRVNTX1RIQU5dOiBMZXNzVGhhblZhbGlkYXRvcixcbiAgW1VJS2V5cy5MRVNTX1RIQU5fT1JfRVFVQUxdOiBMZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3IsXG4gIFtVSUtleXMuR1JFQVRFUl9USEFOXTogR3JlYXRlclRoYW5WYWxpZGF0b3IsXG4gIFtVSUtleXMuR1JFQVRFUl9USEFOX09SX0VRVUFMXTogR3JlYXRlclRoYW5PckVxdWFsVmFsaWRhdG9yLFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU3RhbmRhcmQgZGF0ZSBmb3JtYXQgc3RyaW5nIGZvciBIVE1MNSBkYXRlIGlucHV0c1xuICogQHN1bW1hcnkgRm9ybWF0IHN0cmluZyBmb3IgSFRNTDUgZGF0ZSBpbnB1dHMgKHl5eXktTU0tZGQpXG4gKiBUaGlzIGNvbnN0YW50IGRlZmluZXMgdGhlIHN0YW5kYXJkIGRhdGUgZm9ybWF0IHN0cmluZyB1c2VkIGZvciBIVE1MNSBkYXRlIGlucHV0cy5cbiAqXG4gKiBAY29uc3QgSFRNTDVEYXRlRm9ybWF0XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHJlYWRvbmx5XG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEhUTUw1RGF0ZUZvcm1hdCA9IFwieXl5eS1NTS1kZFwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb2xsZWN0aW9uIG9mIEhUTUw1IGlucHV0IHR5cGUgdmFsdWVzXG4gKiBAc3VtbWFyeSBNYXBzIGlucHV0IHR5cGUgY29uc3RhbnRzIHRvIHRoZWlyIEhUTUwgYXR0cmlidXRlIHZhbHVlc1xuICogVGhpcyBjb25zdGFudCBwcm92aWRlcyBhIG1hcHBpbmcgb2YgaW5wdXQgdHlwZSBjb25zdGFudHMgdG8gdGhlaXIgY29ycmVzcG9uZGluZ1xuICogSFRNTCBhdHRyaWJ1dGUgdmFsdWVzIGZvciB1c2UgaW4gZm9ybSBlbGVtZW50cy5cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBIVE1MNUlucHV0VHlwZXNNYXBcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBCVVRUT04gLSBCdXR0b24gaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IENIRUNLQk9YIC0gQ2hlY2tib3ggaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IENPTE9SIC0gQ29sb3IgcGlja2VyIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBEQVRFIC0gRGF0ZSBwaWNrZXIgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IERBVEVUSU1FX0xPQ0FMIC0gTG9jYWwgZGF0ZXRpbWUgcGlja2VyIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFTUFJTCAtIEVtYWlsIGlucHV0IHR5cGUgd2l0aCB2YWxpZGF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRklMRSAtIEZpbGUgdXBsb2FkIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBISURERU4gLSBIaWRkZW4gaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IElNQUdFIC0gSW1hZ2UgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1PTlRIIC0gTW9udGggcGlja2VyIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBOVU1CRVIgLSBOdW1lcmljIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBQQVNTV09SRCAtIFBhc3N3b3JkIGlucHV0IHR5cGUgd2l0aCBtYXNrZWQgdGV4dFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJBRElPIC0gUmFkaW8gYnV0dG9uIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSQU5HRSAtIFJhbmdlIHNsaWRlciBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVTRVQgLSBGb3JtIHJlc2V0IGJ1dHRvbiBpbnB1dCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gU0VBUkNIIC0gU2VhcmNoIGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTVUJNSVQgLSBGb3JtIHN1Ym1pdCBidXR0b24gaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRFTCAtIFRlbGVwaG9uZSBudW1iZXIgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRFWFQgLSBCYXNpYyB0ZXh0IGlucHV0IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBUSU1FIC0gVGltZSBwaWNrZXIgaW5wdXQgdHlwZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFVSTCAtIFVSTCBpbnB1dCB0eXBlIHdpdGggdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFdFRUsgLSBXZWVrIHBpY2tlciBpbnB1dCB0eXBlXG4gKlxuICogQGNvbnN0IEhUTUw1SW5wdXRUeXBlc1xuICogQHR5cGUge0hUTUw1SW5wdXRUeXBlc01hcH1cbiAqIEByZWFkb25seVxuICogQG1lbWJlck9mIG1vZHVsZTp1aS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBIVE1MNUlucHV0VHlwZXMgPSB7XG4gIEJVVFRPTjogXCJidXR0b25cIixcbiAgQ0hFQ0tCT1g6IFwiY2hlY2tib3hcIixcbiAgQ09MT1I6IFwiY29sb3JcIixcbiAgREFURTogVUlLZXlzLkRBVEUsXG4gIERBVEVUSU1FX0xPQ0FMOiBcImRhdGV0aW1lLWxvY2FsXCIsXG4gIEVNQUlMOiBVSUtleXMuRU1BSUwsXG4gIEZJTEU6IFwiZmlsZVwiLFxuICBISURERU46IFwiaGlkZGVuXCIsXG4gIElNQUdFOiBcImltYWdlXCIsXG4gIE1PTlRIOiBcIm1vbnRoXCIsXG4gIE5VTUJFUjogXCJudW1iZXJcIixcbiAgUEFTU1dPUkQ6IFVJS2V5cy5QQVNTV09SRCxcbiAgUkFESU86IFwicmFkaW9cIixcbiAgUkFOR0U6IFwicmFuZ2VcIixcbiAgUkVTRVQ6IFwicmVzZXRcIixcbiAgU0VBUkNIOiBcInNlYXJjaFwiLFxuICBTVUJNSVQ6IFwic3VibWl0XCIsXG4gIFRFTDogXCJ0ZWxcIixcbiAgVEVYVDogXCJ0ZXh0XCIsXG4gIFRFWFRBUkVBOiAndGV4dGFyZWEnLFxuICBTRUxFQ1Q6ICdzZWxlY3QnLFxuICBUSU1FOiBcInRpbWVcIixcbiAgVVJMOiBVSUtleXMuVVJMLFxuICBXRUVLOiBcIndlZWtcIixcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIEhUTUw1IGlucHV0IHR5cGVzIHRoYXQgdXNlIGNoZWNrYm94ZXNcbiAqIEBzdW1tYXJ5IExpc3Qgb2YgaW5wdXQgdHlwZXMgdGhhdCByZXByZXNlbnQgY2hlY2thYmxlIGNvbnRyb2xzXG4gKiBUaGlzIGNvbnN0YW50IGRlZmluZXMgYW4gYXJyYXkgb2YgSFRNTDUgaW5wdXQgdHlwZXMgdGhhdCByZXByZXNlbnRcbiAqIGNoZWNrYWJsZSBjb250cm9scyAoY2hlY2tib3ggYW5kIHJhZGlvKS5cbiAqXG4gKiBAY29uc3QgSFRNTDVDaGVja1R5cGVzXG4gKiBAdHlwZSB7c3RyaW5nW119XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgY29uc3QgSFRNTDVDaGVja1R5cGVzID0gW1xuICBIVE1MNUlucHV0VHlwZXMuQ0hFQ0tCT1gsXG4gIEhUTUw1SW5wdXRUeXBlcy5SQURJTyxcbl07XG4iXX0=
257
+ //# sourceMappingURL=constants.js.map
@@ -28,7 +28,7 @@ export declare enum UIMediaBreakPoints {
28
28
  * @property {string} NAME - Key for name attribute
29
29
  * @property {string} NAME_PREFIX - Prefix for input names
30
30
  * @property {string} CUSTOM_PROPS - Key for custom validation properties
31
- * @property {string} UILISTITEM - Key for list item metadata
31
+ * @property {string} UILISTMODEL - Key for list item metadata
32
32
  * @property {string} UILISTPROP - Key for list property metadata
33
33
  * @property {string} TYPE - Key for type metadata
34
34
  * @property {string} SUB_TYPE - Key for subtype metadata
@@ -68,16 +68,17 @@ export declare const UIKeys: {
68
68
  NAME: string;
69
69
  NAME_PREFIX: string;
70
70
  CUSTOM_PROPS: string;
71
- UILISTITEM: string;
71
+ UILISTMODEL: string;
72
72
  UILISTPROP: string;
73
73
  UILAYOUT: string;
74
- UILAYOUTITEM: string;
74
+ UILAYOUTPROP: string;
75
75
  HANDLERS: string;
76
76
  TYPE: string;
77
77
  SUB_TYPE: string;
78
78
  HIDDEN: string;
79
79
  FORMAT: string;
80
80
  ORDER: string;
81
+ PAGE: string;
81
82
  READ_ONLY: string;
82
83
  REQUIRED: "required";
83
84
  MIN: "min";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/ui/constants.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,8 @@ exports.uielement = uielement;
7
7
  exports.uiprop = uiprop;
8
8
  exports.uichild = uichild;
9
9
  exports.uilistprop = uilistprop;
10
- exports.uilayoutitem = uilayoutitem;
10
+ exports.uilayoutprop = uilayoutprop;
11
+ exports.uipageprop = uipageprop;
11
12
  require("reflect-metadata");
12
13
  const constants_1 = require("./constants.cjs");
13
14
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
@@ -296,7 +297,7 @@ function uichild(clazz, tag, props = {}, isArray = false, serialize = false) {
296
297
  * @description Decorator that maps a model property to a list item component
297
298
  * @summary Specifies how a property should be rendered in a list context
298
299
  * This decorator allows you to define how a model property containing a list
299
- * should be rendered. It requires the class to be decorated with @uilistitem.
300
+ * should be rendered. It requires the class to be decorated with @uilistmodel.
300
301
  *
301
302
  * @param {string} [propName] The name of the property to pass to the list component (defaults to the property key)
302
303
  * @param {Record<string, any>} [props] Additional properties to pass to the list container
@@ -317,7 +318,7 @@ function uichild(clazz, tag, props = {}, isArray = false, serialize = false) {
317
318
  * items: TodoItem[];
318
319
  * }
319
320
  *
320
- * @uilistitem('li', { class: 'todo-item' })
321
+ * @uilistmodel('li', { class: 'todo-item' })
321
322
  * class TodoItem extends Model {
322
323
  * @attribute()
323
324
  * text: string;
@@ -338,7 +339,7 @@ function uichild(clazz, tag, props = {}, isArray = false, serialize = false) {
338
339
  * RenderingEngine->>Model: Get list prop metadata
339
340
  * Model->>RenderingEngine: Return prop name and container props
340
341
  * RenderingEngine->>ListContainer: Create container with props
341
- * RenderingEngine->>ListItems: Render each item using @uilistitem
342
+ * RenderingEngine->>ListItems: Render each item using @uilistmodel
342
343
  * ListContainer->>RenderingEngine: Return rendered list
343
344
  */
344
345
  function uilistprop(propName = undefined, props) {
@@ -362,52 +363,117 @@ function uilistprop(propName = undefined, props) {
362
363
  * @param {Record<string, any>} [props={}] Additional properties to pass to the layout item
363
364
  * @return {Function} A property decorator function
364
365
  *
365
- * @function uilayoutitem
366
+ * @function uilayoutprop
366
367
  * @category Property Decorators
367
368
  *
368
369
  * @example
369
370
  * // Position properties in a grid layout
370
- * @uimodel('user-form')
371
+ * @uilayout('user-form', 2, 3) // 2 columns, 3 rows
372
+ * @model()
371
373
  * class UserForm {
372
374
  * @attribute()
373
- * @uilayoutitem(1, 1) // First column, first row
375
+ * @uilayoutprop(1, 1) // One column, first row
374
376
  * firstName: string;
375
377
  *
376
378
  * @attribute()
377
- * @uilayoutitem(2, 1) // Second column, first row
379
+ * @uilayoutprop(2, 1) // One column, first row
378
380
  * lastName: string;
379
381
  *
380
382
  * @attribute()
381
- * @uilayoutitem(1, 2, { colspan: 2 }) // First column, second row, spans 2 columns
383
+ * @uilayoutprop(1, 2) // One column, second row
382
384
  * email: string;
383
385
  *
384
386
  * @attribute()
385
- * @uilayoutitem(1, 3, { class: 'full-width' }) // First column, third row with custom class
387
+ * @uilayoutprop(2, 3) // All columns, third row
386
388
  * bio: string;
387
389
  * }
388
390
  *
389
391
  * @mermaid
390
392
  * sequenceDiagram
391
393
  * participant Model
392
- * participant uilayoutitem
394
+ * participant uilayoutprop
393
395
  * participant RenderingEngine
394
396
  * participant LayoutContainer
395
- * Model->>uilayoutitem: Apply to property
396
- * uilayoutitem->>Model: Add layout item metadata
397
+ * Model->>uilayoutprop: Apply to property
398
+ * uilayoutprop->>Model: Add layout item metadata
397
399
  * RenderingEngine->>Model: Get layout item metadata
398
400
  * Model->>RenderingEngine: Return column, row, and props
399
401
  * RenderingEngine->>LayoutContainer: Position element at grid coordinates
400
402
  * LayoutContainer->>RenderingEngine: Return positioned element
401
403
  */
402
- function uilayoutitem(col, row = 1, props = {}) {
404
+ function uilayoutprop(col = 1, row = 1) {
403
405
  return (target, propertyKey) => {
404
406
  const metadata = {
405
407
  name: propertyKey,
406
408
  col,
407
409
  row,
408
- props: Object.assign({}, props, { row: row ?? 1, col: col ?? 1 }),
410
+ props: Object.assign({}, { row: row ?? 1, col: col ?? 1 }),
409
411
  };
410
- (0, decorator_validation_1.propMetadata)(Rendering_1.RenderingEngine.key(constants_1.UIKeys.UILAYOUTITEM), metadata)(target, propertyKey);
412
+ (0, decorator_validation_1.propMetadata)(Rendering_1.RenderingEngine.key(constants_1.UIKeys.UILAYOUTPROP), metadata)(target, propertyKey);
411
413
  };
412
414
  }
413
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91aS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0RBLHdCQUtDO0FBZ0NELDBCQUtDO0FBc0NELHdCQU9DO0FBNENELDhCQW1CQztBQTZDRCx3QkFjQztBQXdERCwwQkFxQkM7QUFtREQsZ0NBY0M7QUFtREQsb0NBaUJDO0FBbmRELDRCQUEwQjtBQUMxQiwrQ0FBcUM7QUFDckMseUVBQThEO0FBUTlELCtDQUE4QztBQUM5QywyREFBd0Q7QUFFeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0c7QUFDSCxTQUFnQixNQUFNLENBQUMsR0FBRyxVQUErQjtJQUN2RCxPQUFPLElBQUEsbUNBQVksRUFDakIsMkJBQWUsQ0FBQyxHQUFHLENBQUMsa0JBQU0sQ0FBQyxNQUFNLENBQUMsRUFDbEMsVUFBVSxDQUNYLENBQUM7QUFDSixDQUFDO0FBR0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Qkc7QUFDSCxTQUFnQixPQUFPLENBQUMsUUFBZ0IsQ0FBQztJQUN2QyxPQUFPLElBQUEsbUNBQVksRUFDakIsMkJBQWUsQ0FBQyxHQUFHLENBQUMsa0JBQU0sQ0FBQyxLQUFLLENBQUMsRUFDakMsS0FBSyxDQUNOLENBQUM7QUFDSixDQUFDO0FBR0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0c7QUFDSCxTQUFnQixNQUFNO0lBQ3BCLE9BQU8sTUFBTSxDQUNYLDZCQUFhLENBQUMsTUFBTSxFQUNwQiw2QkFBYSxDQUFDLElBQUksRUFDbEIsNkJBQWEsQ0FBQyxNQUFNLEVBQ3BCLDZCQUFhLENBQUMsTUFBTSxDQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlDRztBQUNILFNBQWdCLFNBQVMsQ0FDdkIsR0FBVyxFQUNYLEtB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnREc7QUFDSCxTQUFnQixZQUFZLENBQzFCLEdBQVcsRUFDWCxNQUFjLENBQUMsRUFDZixRQUE2QixFQUFFO0lBRS9CLE9BQU8sQ0FBQyxNQUFXLEVBQUUsV0FBbUIsRUFBRSxFQUFFO1FBQzFDLE1BQU0sUUFBUSxHQUF5QjtZQUNyQyxJQUFJLEVBQUcsV0FBVztZQUNsQixHQUFHO1lBQ0gsR0FBRztZQUNILEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBQyxDQUFDO1NBQ2hFLENBQUM7UUFDRixJQUFBLG1DQUFZLEVBQUMsMkJBQWUsQ0FBQyxHQUFHLENBQUMsa0JBQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FDOUQsTUFBTSxFQUNOLFdBQVcsQ0FDWixDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcbmltcG9ydCB7IFVJS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgcHJvcE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHtcbiAgQ3J1ZE9wZXJhdGlvbktleXMsXG4gIFVJRWxlbWVudE1ldGFkYXRhLFxuICBVSUxheW91dEl0ZW1NZXRhZGF0YSxcbiAgVUlMaXN0UHJvcE1ldGFkYXRhLFxuICBVSVByb3BNZXRhZGF0YSxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IFJlbmRlcmluZ0VuZ2luZSB9IGZyb20gXCIuL1JlbmRlcmluZ1wiO1xuaW1wb3J0IHsgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBoaWRlcyBhIHByb3BlcnR5IGR1cmluZyBzcGVjaWZpYyBDUlVEIG9wZXJhdGlvbnNcbiAqIEBzdW1tYXJ5IENvbnRyb2xzIHByb3BlcnR5IHZpc2liaWxpdHkgYmFzZWQgb24gb3BlcmF0aW9uIHR5cGVcbiAqIFRoaXMgZGVjb3JhdG9yIGFsbG93cyB5b3UgdG8gc3BlY2lmeSB3aGljaCBDUlVEIG9wZXJhdGlvbnMgc2hvdWxkIGhpZGUgYSBwcm9wZXJ0eVxuICogaW4gdGhlIFVJLiBUaGUgcHJvcGVydHkgd2lsbCBvbmx5IGJlIHZpc2libGUgZHVyaW5nIG9wZXJhdGlvbnMgbm90IHNwZWNpZmllZC5cbiAqXG4gKiBAcGFyYW0gb3BlcmF0aW9ucyAtIFRoZSBDUlVEIG9wZXJhdGlvbnMgZHVyaW5nIHdoaWNoIHRoZSBwcm9wZXJ0eSBzaG91bGQgYmUgaGlkZGVuXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gaGlkZU9uXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBIaWRlIHRoZSBwYXNzd29yZCBmaWVsZCBkdXJpbmcgUkVBRCBvcGVyYXRpb25zXG4gKiBjbGFzcyBVc2VyIHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQGhpZGVPbihPcGVyYXRpb25LZXlzLlJFQUQpXG4gKiAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gKiB9XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBNb2RlbFxuICogICBwYXJ0aWNpcGFudCBoaWRlT25cbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIHBhcnRpY2lwYW50IFVJXG4gKiAgIE1vZGVsLT4+aGlkZU9uOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICBoaWRlT24tPj5Nb2RlbDogQWRkIGhpZGRlbiBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogQ2hlY2sgaWYgcHJvcGVydHkgc2hvdWxkIGJlIGhpZGRlblxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIGhpZGRlbiBvcGVyYXRpb25zXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PlVJOiBSZW5kZXIgb3IgaGlkZSBiYXNlZCBvbiBjdXJyZW50IG9wZXJhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gaGlkZU9uKC4uLm9wZXJhdGlvbnM6IENydWRPcGVyYXRpb25LZXlzW10pIHtcbiAgcmV0dXJuIHByb3BNZXRhZGF0YTxDcnVkT3BlcmF0aW9uS2V5c1tdPihcbiAgICBSZW5kZXJpbmdFbmdpbmUua2V5KFVJS2V5cy5ISURERU4pLFxuICAgIG9wZXJhdGlvbnNcbiAgKTtcbn1cblxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBzZXRzIHRoZSBvcmRlciBvZiBhIFVJIGVsZW1lbnRcbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgcmVuZGVyaW5nIG9yZGVyIGZvciBVSSBjb21wb25lbnRzXG4gKiBUaGlzIGRlY29yYXRvciBhcHBsaWVzIG1ldGFkYXRhIHRvIHRoZSBwcm9wZXJ0eSBvciBjbGFzcywgaW5kaWNhdGluZyBpdHMgb3JkZXIgaW4gdGhlIFVJIHJlbmRlcmluZyBzZXF1ZW5jZS5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gW29yZGVyPTFdIFRoZSBvcmRlciB2YWx1ZSBmb3IgdGhlIFVJIGVsZW1lbnQgKGRlZmF1bHQgaXMgMSlcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IG9yIGNsYXNzIGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiB1aW9yZGVyXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBTZXQgb3JkZXIgZm9yIGEgZmllbGRcbiAqIEB1aW9yZGVyKDIpXG4gKiBmaWVsZE5hbWU6IHN0cmluZztcbiAqXG4gKiAvLyBTZXQgb3JkZXIgZm9yIGEgY2xhc3NcbiAqIEB1aW9yZGVyKDEpXG4gKiBjbGFzcyBVc2VyUHJvZmlsZSB7IC4uLiB9XG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBTeXN0ZW1cbiAqICAgcGFydGljaXBhbnQgdWlvcmRlclxuICogICBwYXJ0aWNpcGFudCBwcm9wZXJ0eVxuICogICBTeXN0ZW0tPj51aW9yZGVyOmRvKHByb3BlcnR5KVxuICogICB1aW9yZGVyLT4+cHJvcGVydHk6IHNldHMgb3JkZXIgbWV0YWRhdGFcbiAqICAgdWlvcmRlci0+PlN5c3RlbTogcmV0dXJucyBkZWNvcmF0ZWQgcHJvcGVydHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVpb3JkZXIob3JkZXI6IG51bWJlciA9IDEpIHtcbiAgcmV0dXJuIHByb3BNZXRhZGF0YTxudW1iZXI+KFxuICAgIFJlbmRlcmluZ0VuZ2luZS5rZXkoVUlLZXlzLk9SREVSKSxcbiAgICBvcmRlclxuICApO1xufVxuXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IGNvbXBsZXRlbHkgaGlkZXMgYSBwcm9wZXJ0eSBpbiBhbGwgVUkgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgTWFrZXMgYSBwcm9wZXJ0eSBpbnZpc2libGUgaW4gYWxsIENSVUQgb3BlcmF0aW9uc1xuICogVGhpcyBkZWNvcmF0b3IgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCBoaWRlT24gdGhhdCBoaWRlcyBhIHByb3BlcnR5XG4gKiBkdXJpbmcgYWxsIENSVUQgb3BlcmF0aW9ucyAoQ1JFQVRFLCBSRUFELCBVUERBVEUsIERFTEVURSkuXG4gKlxuICogQHJldHVybiB7RnVuY3Rpb259IEEgcHJvcGVydHkgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKlxuICogQGZ1bmN0aW9uIGhpZGRlblxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29tcGxldGVseSBoaWRlIHRoZSBpbnRlcm5hbElkIGZpZWxkIGluIHRoZSBVSVxuICogY2xhc3MgUHJvZHVjdCB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBuYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQGhpZGRlbigpXG4gKiAgIGludGVybmFsSWQ6IHN0cmluZztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IGhpZGRlblxuICogICBwYXJ0aWNpcGFudCBoaWRlT25cbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIE1vZGVsLT4+aGlkZGVuOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICBoaWRkZW4tPj5oaWRlT246IENhbGwgd2l0aCBhbGwgb3BlcmF0aW9uc1xuICogICBoaWRlT24tPj5Nb2RlbDogQWRkIGhpZGRlbiBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogQ2hlY2sgaWYgcHJvcGVydHkgc2hvdWxkIGJlIGhpZGRlblxuICogICBNb2RlbC0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIGFsbCBvcGVyYXRpb25zXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PlVJOiBBbHdheXMgaGlkZSBwcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGlkZGVuKCkge1xuICByZXR1cm4gaGlkZU9uKFxuICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICBPcGVyYXRpb25LZXlzLkRFTEVURVxuICApO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBzcGVjaWZpZXMgaG93IGEgcHJvcGVydHkgc2hvdWxkIGJlIHJlbmRlcmVkIGFzIGEgVUkgZWxlbWVudFxuICogQHN1bW1hcnkgTWFwcyBhIG1vZGVsIHByb3BlcnR5IHRvIGEgc3BlY2lmaWMgVUkgZWxlbWVudCB3aXRoIGN1c3RvbSBwcm9wZXJ0aWVzXG4gKiBUaGlzIGRlY29yYXRvciBhbGxvd3MgeW91IHRvIGRlZmluZSB3aGljaCBIVE1MIGVsZW1lbnQgb3IgY29tcG9uZW50IHNob3VsZCBiZSB1c2VkXG4gKiB0byByZW5kZXIgYSBzcGVjaWZpYyBwcm9wZXJ0eSwgYWxvbmcgd2l0aCBhbnkgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhhdCBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIEhUTUwgZWxlbWVudCBvciBjb21wb25lbnQgdGFnIG5hbWUgdG8gdXNlIGZvciByZW5kZXJpbmdcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3Byb3BzXSBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGUgZWxlbWVudFxuICogQHBhcmFtIHtib29sZWFufSBbc2VyaWFsaXplPWZhbHNlXSBXaGV0aGVyIHRoZSBwcm9wZXJ0eSBzaG91bGQgYmUgc2VyaWFsaXplZFxuICogQHJldHVybiB7RnVuY3Rpb259IEEgcHJvcGVydHkgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKlxuICogQGZ1bmN0aW9uIHVpZWxlbWVudFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUmVuZGVyIGEgcHJvcGVydHkgYXMgYSB0ZXh0IGlucHV0XG4gKiBjbGFzcyBMb2dpbkZvcm0ge1xuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpZWxlbWVudCgnaW5wdXQnLCB7IHR5cGU6ICd0ZXh0JywgcGxhY2Vob2xkZXI6ICdFbnRlciB1c2VybmFtZScgfSlcbiAqICAgdXNlcm5hbWU6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWllbGVtZW50KCdpbnB1dCcsIHsgdHlwZTogJ3Bhc3N3b3JkJywgcGxhY2Vob2xkZXI6ICdFbnRlciBwYXNzd29yZCcgfSlcbiAqICAgcGFzc3dvcmQ6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWllbGVtZW50KCdidXR0b24nLCB7IGNsYXNzOiAnYnRuLXByaW1hcnknIH0pXG4gKiAgIHN1Ym1pdDogc3RyaW5nID0gJ0xvZ2luJztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpZWxlbWVudFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgVUlcbiAqICAgTW9kZWwtPj51aWVsZW1lbnQ6IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIHVpZWxlbWVudC0+Pk1vZGVsOiBBZGQgZWxlbWVudCBtZXRhZGF0YVxuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Nb2RlbDogR2V0IGVsZW1lbnQgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiB0YWcgYW5kIHByb3BzXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PlVJOiBSZW5kZXIgd2l0aCBzcGVjaWZpZWQgZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gdWllbGVtZW50KFxuICB0YWc6IHN0cmluZyxcbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICBzZXJpYWxpemU6IGJvb2xlYW4gPSBmYWxzZVxuKSB7XG4gIHJldHVybiAob3JpZ2luYWw6IGFueSwgcHJvcGVydHlLZXk/OiBhbnkpID0+IHtcbiAgICBjb25zdCBtZXRhZGF0YTogVUlFbGVtZW50TWV0YWRhdGEgPSB7XG4gICAgICB0YWc6IHRhZyxcbiAgICAgIHNlcmlhbGl6ZTogc2VyaWFsaXplLFxuICAgICAgcHJvcHM6IE9iamVjdC5hc3NpZ24oe30sIHByb3BzIHx8IHt9LCB7XG4gICAgICAgIG5hbWU6IHByb3BlcnR5S2V5LFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIHJldHVybiBwcm9wTWV0YWRhdGEoUmVuZGVyaW5nRW5naW5lLmtleShVSUtleXMuRUxFTUVOVCksIG1ldGFkYXRhKShcbiAgICAgIG9yaWdpbmFsLFxuICAgICAgcHJvcGVydHlLZXlcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBtYXBzIGEgbW9kZWwgcHJvcGVydHkgdG8gYSBVSSBjb21wb25lbnQgcHJvcGVydHlcbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyBob3cgYSBwcm9wZXJ0eSBzaG91bGQgYmUgcGFzc2VkIHRvIGEgVUkgY29tcG9uZW50XG4gKiBUaGlzIGRlY29yYXRvciBhbGxvd3MgeW91IHRvIGRlZmluZSBob3cgYSBtb2RlbCBwcm9wZXJ0eSBzaG91bGQgYmUgbWFwcGVkIHRvXG4gKiBhIHByb3BlcnR5IG9mIHRoZSBVSSBjb21wb25lbnQgd2hlbiByZW5kZXJpbmcuIEl0IHJlcXVpcmVzIHRoZSBjbGFzcyB0byBiZVxuICogZGVjb3JhdGVkIHdpdGggQHVpbW9kZWwuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFtwcm9wTmFtZV0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHBhc3MgdG8gdGhlIGNvbXBvbmVudCAoZGVmYXVsdHMgdG8gdGhlIHByb3BlcnR5IGtleSlcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3N0cmluZ2lmeT1mYWxzZV0gV2hldGhlciB0byBzdHJpbmdpZnkgdGhlIHByb3BlcnR5IHZhbHVlXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBwcm9wZXJ0eSBkZWNvcmF0b3IgZnVuY3Rpb25cbiAqXG4gKiBAZnVuY3Rpb24gdWlwcm9wXG4gKiBAY2F0ZWdvcnkgUHJvcGVydHkgRGVjb3JhdG9yc1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNYXAgbW9kZWwgcHJvcGVydGllcyB0byBjb21wb25lbnQgcHJvcGVydGllc1xuICogQHVpbW9kZWwoJ3VzZXItcHJvZmlsZScpXG4gKiBjbGFzcyBVc2VyUHJvZmlsZSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlwcm9wKCkgLy8gV2lsbCBiZSBwYXNzZWQgYXMgJ2Z1bGxOYW1lJyB0byB0aGUgY29tcG9uZW50XG4gKiAgIGZ1bGxOYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpcHJvcCgndXNlckVtYWlsJykgLy8gV2lsbCBiZSBwYXNzZWQgYXMgJ3VzZXJFbWFpbCcgdG8gdGhlIGNvbXBvbmVudFxuICogICBlbWFpbDogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aXByb3AoJ3VzZXJEYXRhJywgdHJ1ZSkgLy8gV2lsbCBiZSBwYXNzZWQgYXMgc3RyaW5naWZpZWQgSlNPTlxuICogICB1c2VyRGF0YTogUmVjb3JkPHN0cmluZywgYW55PjtcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpcHJvcFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgQ29tcG9uZW50XG4gKiAgIE1vZGVsLT4+dWlwcm9wOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aXByb3AtPj5Nb2RlbDogQWRkIHByb3AgbWV0YWRhdGFcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TW9kZWw6IEdldCBwcm9wIG1ldGFkYXRhXG4gKiAgIE1vZGVsLT4+UmVuZGVyaW5nRW5naW5lOiBSZXR1cm4gcHJvcCBuYW1lIGFuZCBzdHJpbmdpZnkgZmxhZ1xuICogICBSZW5kZXJpbmdFbmdpbmUtPj5Db21wb25lbnQ6IFBhc3MgcHJvcGVydHkgd2l0aCBzcGVjaWZpZWQgbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdWlwcm9wKFxuICBwcm9wTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBzdHJpbmdpZnk6IGJvb2xlYW4gPSBmYWxzZVxuKSB7XG4gIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBtZXRhZGF0YTogVUlQcm9wTWV0YWRhdGEgPSB7XG4gICAgICBuYW1lOiBwcm9wTmFtZSB8fCBwcm9wZXJ0eUtleSxcbiAgICAgIHN0cmluZ2lmeTogc3RyaW5naWZ5LFxuICAgIH07XG4gICAgcHJvcE1ldGFkYXRhKFJlbmRlcmluZ0VuZ2luZS5rZXkoVUlLZXlzLlBST1ApLCBtZXRhZGF0YSkoXG4gICAgICB0YXJnZXQsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IG1hcHMgYSBuZXN0ZWQgbW9kZWwgcHJvcGVydHkgdG8gYSBVSSBjb21wb25lbnQgcHJvcGVydHkuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGhvdyBhIHBhcmVudCBjb21wb25lbnQgc2hvdWxkIHJlbmRlciB0aGUgY2hpbGQgbW9kZWwgd2hlbiBuZXN0ZWQuXG4gKlxuICogVGhpcyBkZWNvcmF0b3IgaXMgdXNlZCB0byBkZWNvcmF0ZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5lc3RlZCBtb2RlbHMuXG4gKiBXaGVuIGFwcGxpZWQsIGl0IGFsbG93cyBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IHRhZyBvZiB0aGUgY2hpbGQgbW9kZWwgd2l0aCB0aGUgcHJvdmlkZWQgb25lLFxuICogZW5hYmxpbmcgZGlmZmVyZW50IHJlbmRlcmluZyBiZWhhdmlvciB3aGVuIHRoZSBtb2RlbCBhY3RzIGFzIGEgY2hpbGQgKG5lc3RlZClcbiAqIGNvbXBhcmVkIHRvIHdoZW4gaXQgaXMgcmVuZGVyZWQgYXMgdGhlIHBhcmVudCBtb2RlbC5cbiAqXG4gKiBJdCByZXF1aXJlcyB0aGUgY2xhc3MgdG8gYmUgZGVjb3JhdGVkIHdpdGggYEB1aW1vZGVsYC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gY2xhenogVGhlIG1vZGVsIGNsYXNzIG5hbWUgdG8gcGFzcyB0byB0aGUgY29tcG9uZW50IChkZWZhdWx0cyB0byB0aGUgcHJvcGVydHkga2V5KS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIEhUTUwgZWxlbWVudCBvciBjb21wb25lbnQgdGFnIG5hbWUgdG8gb3ZlcnJpZGUgdGhlIFVJIHRhZyBvZiB0aGUgbmVzdGVkIG1vZGVsXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFtwcm9wc10gQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRvIHBhc3MgdG8gdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3NlcmlhbGl6ZT1mYWxzZV0gV2hldGhlciB0aGUgcHJvcGVydHkgc2hvdWxkIGJlIHNlcmlhbGl6ZWRcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvbi5cbiAqXG4gKiBAZnVuY3Rpb24gdWljaGlsZFxuICogQGNhdGVnb3J5IFByb3BlcnR5IERlY29yYXRvcnNcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTWFwIGEgbmVzdGVkIG1vZGVsIHRvIGEgY29tcG9uZW50IHByb3BlcnR5IHdpdGggYSBkaWZmZXJlbnQgdGFnIHdoZW4gbmVzdGVkXG4gKiBAdWltb2RlbCgnYWRkcmVzcy1jb21wb25lbnQnKVxuICogY2xhc3MgQWRkcmVzcyB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBzdHJlZXQ6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBjaXR5OiBzdHJpbmc7XG4gKiB9XG4gKlxuICogQHVpbW9kZWwoJ3VzZXItcHJvZmlsZScpXG4gKiBjbGFzcyBVc2VyUHJvZmlsZSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWljaGlsZChBZGRyZXNzLm5hbWUsICdhZGRyZXNzLWNoaWxkLWNvbXBvbmVudCcpXG4gKiAgIGFkZHJlc3M6IEFkZHJlc3M7XG4gKiB9XG4gKlxuICogLy8gSW4gdGhpcyBleGFtcGxlLCB0aGUgQWRkcmVzcyBtb2RlbCBoYXMgdGhlIGRlZmF1bHQgdGFnICdhZGRyZXNzLWNvbXBvbmVudCcgd2hlbiByZW5kZXJlZCBhcyBhIHJvb3QgY29tcG9uZW50LFxuICogLy8gYnV0IHdoZW4gdXNlZCBpbnNpZGUgVXNlclByb2ZpbGUsIGl0IGlzIHJlbmRlcmVkIHdpdGggdGhlIG92ZXJyaWRkZW4gdGFnICdhZGRyZXNzLWNoaWxkLWNvbXBvbmVudCdcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpY2hpbGRcbiAqICAgcGFydGljaXBhbnQgUmVuZGVyaW5nRW5naW5lXG4gKiAgIHBhcnRpY2lwYW50IENvbXBvbmVudFxuICogICBNb2RlbC0+PnVpY2hpbGQ6IEFwcGx5IHRvIHByb3BlcnR5XG4gKiAgIHVpY2hpbGQtPj5Nb2RlbDogQWRkIGNoaWxkIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBHZXQgY2hpbGQgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiBwcm9wIG5hbWUsIHN0cmluZ2lmeSBmbGFnLCBhbmQgY2hpbGQgdGFnIG92ZXJyaWRlXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PkNvbXBvbmVudDogUGFzcyBwcm9wZXJ0eSB3aXRoIHNwZWNpZmllZCBuYW1lIGFuZCByZW5kZXIgd2l0aCBvdmVycmlkZGVuIHRhZyBpZiBuZXN0ZWRcbiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gdWljaGlsZChcbiAgY2xheno6IHN0cmluZyxcbiAgdGFnOiBzdHJpbmcsXG4gIHByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4gIGlzQXJyYXk6IGJvb2xlYW4gPSBmYWxzZSxcbiAgc2VyaWFsaXplOiBib29sZWFuID0gZmFsc2Vcbikge1xuICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgbWV0YWRhdGE6IFVJRWxlbWVudE1ldGFkYXRhID0ge1xuICAgICAgdGFnOiB0YWcsXG4gICAgICBzZXJpYWxpemU6IHNlcmlhbGl6ZSxcbiAgICAgIHByb3BzOiBPYmplY3QuYXNzaWduKHt9LCBwcm9wcyB8fCB7fSwge1xuICAgICAgICBuYW1lOiBjbGF6eiB8fCBwcm9wZXJ0eUtleSxcbiAgICAgIH0sIGlzQXJyYXkgPyB7Y3VzdG9tVHlwZXM6IFtBcnJheS5uYW1lXSwgbXVsdGlwbGU6IHRydWV9IDoge211bHRpcGxlOiBwcm9wcz8ubXVsdGlwbGUgfHwgZmFsc2V9KSxcbiAgICB9O1xuXG4gICAgcHJvcE1ldGFkYXRhKFJlbmRlcmluZ0VuZ2luZS5rZXkoVUlLZXlzLkNISUxEKSwgbWV0YWRhdGEpKFxuICAgICAgdGFyZ2V0LFxuICAgICAgcHJvcGVydHlLZXlcbiAgICApO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWNvcmF0b3IgdGhhdCBtYXBzIGEgbW9kZWwgcHJvcGVydHkgdG8gYSBsaXN0IGl0ZW0gY29tcG9uZW50XG4gKiBAc3VtbWFyeSBTcGVjaWZpZXMgaG93IGEgcHJvcGVydHkgc2hvdWxkIGJlIHJlbmRlcmVkIGluIGEgbGlzdCBjb250ZXh0XG4gKiBUaGlzIGRlY29yYXRvciBhbGxvd3MgeW91IHRvIGRlZmluZSBob3cgYSBtb2RlbCBwcm9wZXJ0eSBjb250YWluaW5nIGEgbGlzdFxuICogc2hvdWxkIGJlIHJlbmRlcmVkLiBJdCByZXF1aXJlcyB0aGUgY2xhc3MgdG8gYmUgZGVjb3JhdGVkIHdpdGggQHVpbGlzdGl0ZW0uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFtwcm9wTmFtZV0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHBhc3MgdG8gdGhlIGxpc3QgY29tcG9uZW50IChkZWZhdWx0cyB0byB0aGUgcHJvcGVydHkga2V5KVxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbcHJvcHNdIEFkZGl0aW9uYWwgcHJvcGVydGllcyB0byBwYXNzIHRvIHRoZSBsaXN0IGNvbnRhaW5lclxuICogQHJldHVybiB7RnVuY3Rpb259IEEgcHJvcGVydHkgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKlxuICogQGZ1bmN0aW9uIHVpbGlzdHByb3BcbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIERlZmluZSBhIGxpc3QgcHJvcGVydHkgd2l0aCBjdXN0b20gcmVuZGVyaW5nXG4gKiBAdWltb2RlbCgndG9kby1saXN0JylcbiAqIGNsYXNzIFRvZG9MaXN0IHtcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIHRpdGxlOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGlzdHByb3AoJ2l0ZW1zJywgeyBjbGFzczogJ3RvZG8taXRlbXMtY29udGFpbmVyJyB9KVxuICogICBpdGVtczogVG9kb0l0ZW1bXTtcbiAqIH1cbiAqXG4gKiBAdWlsaXN0aXRlbSgnbGknLCB7IGNsYXNzOiAndG9kby1pdGVtJyB9KVxuICogY2xhc3MgVG9kb0l0ZW0gZXh0ZW5kcyBNb2RlbCB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICB0ZXh0OiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgY29tcGxldGVkOiBib29sZWFuO1xuICogfVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgTW9kZWxcbiAqICAgcGFydGljaXBhbnQgdWlsaXN0cHJvcFxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgTGlzdENvbnRhaW5lclxuICogICBwYXJ0aWNpcGFudCBMaXN0SXRlbXNcbiAqICAgTW9kZWwtPj51aWxpc3Rwcm9wOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aWxpc3Rwcm9wLT4+TW9kZWw6IEFkZCBsaXN0IHByb3AgbWV0YWRhdGFcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TW9kZWw6IEdldCBsaXN0IHByb3AgbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiBwcm9wIG5hbWUgYW5kIGNvbnRhaW5lciBwcm9wc1xuICogICBSZW5kZXJpbmdFbmdpbmUtPj5MaXN0Q29udGFpbmVyOiBDcmVhdGUgY29udGFpbmVyIHdpdGggcHJvcHNcbiAqICAgUmVuZGVyaW5nRW5naW5lLT4+TGlzdEl0ZW1zOiBSZW5kZXIgZWFjaCBpdGVtIHVzaW5nIEB1aWxpc3RpdGVtXG4gKiAgIExpc3RDb250YWluZXItPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiByZW5kZXJlZCBsaXN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1aWxpc3Rwcm9wKFxuICBwcm9wTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT5cbikge1xuICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgbWV0YWRhdGE6IFBhcnRpYWw8VUlMaXN0UHJvcE1ldGFkYXRhPiA9IHtcbiAgICAgIG5hbWU6IHByb3BOYW1lIHx8IHByb3BlcnR5S2V5LFxuICAgICAgcHJvcHM6IHByb3BzIHx8IHt9LFxuICAgIH07XG4gICAgcHJvcE1ldGFkYXRhKFJlbmRlcmluZ0VuZ2luZS5rZXkoVUlLZXlzLlVJTElTVFBST1ApLCBtZXRhZGF0YSkoXG4gICAgICB0YXJnZXQsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlY29yYXRvciB0aGF0IHBvc2l0aW9ucyBhIHByb3BlcnR5IGluIGEgc3BlY2lmaWMgZ3JpZCBsYXlvdXQgcG9zaXRpb25cbiAqIEBzdW1tYXJ5IFNwZWNpZmllcyB0aGUgY29sdW1uIGFuZCByb3cgcG9zaXRpb24gZm9yIGEgcHJvcGVydHkgaW4gYSBVSSBsYXlvdXQgZ3JpZFxuICogVGhpcyBkZWNvcmF0b3IgYWxsb3dzIHlvdSB0byBkZWZpbmUgdGhlIHNwZWNpZmljIHBvc2l0aW9uIG9mIGEgcHJvcGVydHkgd2l0aGluXG4gKiBhIGdyaWQtYmFzZWQgbGF5b3V0IHN5c3RlbS4gSXQgc3BlY2lmaWVzIHdoaWNoIGNvbHVtbiBhbmQgcm93IHRoZSBwcm9wZXJ0eVxuICogc2hvdWxkIG9jY3VweSB3aGVuIHJlbmRlcmVkIGluIHRoZSBVSS5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gY29sIFRoZSBjb2x1bW4gcG9zaXRpb24gaW4gdGhlIGdyaWQgbGF5b3V0XG4gKiBAcGFyYW0ge251bWJlcn0gW3Jvdz0xXSBUaGUgcm93IHBvc2l0aW9uIGluIHRoZSBncmlkIGxheW91dCAoZGVmYXVsdHMgdG8gMSlcbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gW3Byb3BzPXt9XSBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdG8gcGFzcyB0byB0aGUgbGF5b3V0IGl0ZW1cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIHByb3BlcnR5IGRlY29yYXRvciBmdW5jdGlvblxuICpcbiAqIEBmdW5jdGlvbiB1aWxheW91dGl0ZW1cbiAqIEBjYXRlZ29yeSBQcm9wZXJ0eSBEZWNvcmF0b3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFBvc2l0aW9uIHByb3BlcnRpZXMgaW4gYSBncmlkIGxheW91dFxuICogQHVpbW9kZWwoJ3VzZXItZm9ybScpXG4gKiBjbGFzcyBVc2VyRm9ybSB7XG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlsYXlvdXRpdGVtKDEsIDEpIC8vIEZpcnN0IGNvbHVtbiwgZmlyc3Qgcm93XG4gKiAgIGZpcnN0TmFtZTogc3RyaW5nO1xuICpcbiAqICAgQGF0dHJpYnV0ZSgpXG4gKiAgIEB1aWxheW91dGl0ZW0oMiwgMSkgLy8gU2Vjb25kIGNvbHVtbiwgZmlyc3Qgcm93XG4gKiAgIGxhc3ROYW1lOiBzdHJpbmc7XG4gKlxuICogICBAYXR0cmlidXRlKClcbiAqICAgQHVpbGF5b3V0aXRlbSgxLCAyLCB7IGNvbHNwYW46IDIgfSkgLy8gRmlyc3QgY29sdW1uLCBzZWNvbmQgcm93LCBzcGFucyAyIGNvbHVtbnNcbiAqICAgZW1haWw6IHN0cmluZztcbiAqXG4gKiAgIEBhdHRyaWJ1dGUoKVxuICogICBAdWlsYXlvdXRpdGVtKDEsIDMsIHsgY2xhc3M6ICdmdWxsLXdpZHRoJyB9KSAvLyBGaXJzdCBjb2x1bW4sIHRoaXJkIHJvdyB3aXRoIGN1c3RvbSBjbGFzc1xuICogICBiaW86IHN0cmluZztcbiAqIH1cbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IE1vZGVsXG4gKiAgIHBhcnRpY2lwYW50IHVpbGF5b3V0aXRlbVxuICogICBwYXJ0aWNpcGFudCBSZW5kZXJpbmdFbmdpbmVcbiAqICAgcGFydGljaXBhbnQgTGF5b3V0Q29udGFpbmVyXG4gKiAgIE1vZGVsLT4+dWlsYXlvdXRpdGVtOiBBcHBseSB0byBwcm9wZXJ0eVxuICogICB1aWxheW91dGl0ZW0tPj5Nb2RlbDogQWRkIGxheW91dCBpdGVtIG1ldGFkYXRhXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+Pk1vZGVsOiBHZXQgbGF5b3V0IGl0ZW0gbWV0YWRhdGFcbiAqICAgTW9kZWwtPj5SZW5kZXJpbmdFbmdpbmU6IFJldHVybiBjb2x1bW4sIHJvdywgYW5kIHByb3BzXG4gKiAgIFJlbmRlcmluZ0VuZ2luZS0+PkxheW91dENvbnRhaW5lcjogUG9zaXRpb24gZWxlbWVudCBhdCBncmlkIGNvb3JkaW5hdGVzXG4gKiAgIExheW91dENvbnRhaW5lci0+PlJlbmRlcmluZ0VuZ2luZTogUmV0dXJuIHBvc2l0aW9uZWQgZWxlbWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gdWlsYXlvdXRpdGVtKFxuICBjb2w6IG51bWJlcixcbiAgcm93OiBudW1iZXIgPSAxLFxuICBwcm9wczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LFxuKSB7XG4gIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBtZXRhZGF0YTogVUlMYXlvdXRJdGVtTWV0YWRhdGEgPSB7XG4gICAgICBuYW1lOiAgcHJvcGVydHlLZXksXG4gICAgICBjb2wsXG4gICAgICByb3csXG4gICAgICBwcm9wczogT2JqZWN0LmFzc2lnbih7fSwgcHJvcHMsIHtyb3c6IHJvdyA/PyAxLCBjb2w6IGNvbCA/PyAxfSksXG4gICAgfTsgIFxuICAgIHByb3BNZXRhZGF0YShSZW5kZXJpbmdFbmdpbmUua2V5KFVJS2V5cy5VSUxBWU9VVElURU0pLCBtZXRhZGF0YSkoXG4gICAgICB0YXJnZXQsXG4gICAgICBwcm9wZXJ0eUtleVxuICAgICk7XG4gIH07XG59XG4iXX0=
415
+ /**
416
+ * @description Decorator that assigns a property to a specific page in multi-page forms
417
+ * @summary Specifies which page a property should appear on in paginated UI layouts
418
+ * This decorator applies metadata to the property, indicating which page number it belongs to
419
+ * in a multi-page form or wizard. Properties with the same page number are grouped together
420
+ * and rendered on the same page. This is typically used in conjunction with @uisteppedmodel to
421
+ * organize large forms into manageable sections.
422
+ *
423
+ * @param {number} [page=1] The page number where the property should appear (default is 1)
424
+ * @return {Function} A property decorator function
425
+ *
426
+ * @function uipageprop
427
+ * @category Property Decorators
428
+ *
429
+ * @example
430
+ * // Create a multi-step registration form with page-based layout
431
+ * @uisteppedmodel('registration-form', 2, true)
432
+ * @model()
433
+ * class RegistrationForm {
434
+ * // Page 1: Personal Information
435
+ * @attribute()
436
+ * @uipageprop(1)
437
+ * firstName: string;
438
+ *
439
+ * @attribute()
440
+ * @uipageprop(1)
441
+ * lastName: string;
442
+ *
443
+ * @attribute()
444
+ * @uipageprop(1)
445
+ * dateOfBirth: Date;
446
+ *
447
+ * // Page 2: Contact Information
448
+ * @attribute()
449
+ * @uipageprop(2)
450
+ * email: string;
451
+ *
452
+ * @attribute()
453
+ * @uipageprop(2)
454
+ * phone: string;
455
+ *
456
+ * // Page 3: Confirmation
457
+ * @attribute()
458
+ * @uipageprop(3)
459
+ * acceptTerms: boolean;
460
+ * }
461
+ *
462
+ * @mermaid
463
+ * sequenceDiagram
464
+ * participant Model
465
+ * participant uipageprop
466
+ * participant RenderingEngine
467
+ * participant PaginationController
468
+ * participant UI
469
+ * Model->>uipageprop: Apply to property
470
+ * uipageprop->>Model: Add page metadata
471
+ * RenderingEngine->>Model: Get page metadata
472
+ * Model->>RenderingEngine: Return page number
473
+ * RenderingEngine->>PaginationController: Group properties by page
474
+ * PaginationController->>UI: Render current page properties
475
+ */
476
+ function uipageprop(page = 1) {
477
+ return (0, decorator_validation_1.propMetadata)(Rendering_1.RenderingEngine.key(constants_1.UIKeys.PAGE), page);
478
+ }
479
+ //# sourceMappingURL=decorators.js.map
@@ -247,7 +247,7 @@ export declare function uichild(clazz: string, tag: string, props?: Record<strin
247
247
  * @description Decorator that maps a model property to a list item component
248
248
  * @summary Specifies how a property should be rendered in a list context
249
249
  * This decorator allows you to define how a model property containing a list
250
- * should be rendered. It requires the class to be decorated with @uilistitem.
250
+ * should be rendered. It requires the class to be decorated with @uilistmodel.
251
251
  *
252
252
  * @param {string} [propName] The name of the property to pass to the list component (defaults to the property key)
253
253
  * @param {Record<string, any>} [props] Additional properties to pass to the list container
@@ -268,7 +268,7 @@ export declare function uichild(clazz: string, tag: string, props?: Record<strin
268
268
  * items: TodoItem[];
269
269
  * }
270
270
  *
271
- * @uilistitem('li', { class: 'todo-item' })
271
+ * @uilistmodel('li', { class: 'todo-item' })
272
272
  * class TodoItem extends Model {
273
273
  * @attribute()
274
274
  * text: string;
@@ -289,7 +289,7 @@ export declare function uichild(clazz: string, tag: string, props?: Record<strin
289
289
  * RenderingEngine->>Model: Get list prop metadata
290
290
  * Model->>RenderingEngine: Return prop name and container props
291
291
  * RenderingEngine->>ListContainer: Create container with props
292
- * RenderingEngine->>ListItems: Render each item using @uilistitem
292
+ * RenderingEngine->>ListItems: Render each item using @uilistmodel
293
293
  * ListContainer->>RenderingEngine: Return rendered list
294
294
  */
295
295
  export declare function uilistprop(propName?: string | undefined, props?: Record<string, any>): (target: any, propertyKey: string) => void;
@@ -305,41 +305,104 @@ export declare function uilistprop(propName?: string | undefined, props?: Record
305
305
  * @param {Record<string, any>} [props={}] Additional properties to pass to the layout item
306
306
  * @return {Function} A property decorator function
307
307
  *
308
- * @function uilayoutitem
308
+ * @function uilayoutprop
309
309
  * @category Property Decorators
310
310
  *
311
311
  * @example
312
312
  * // Position properties in a grid layout
313
- * @uimodel('user-form')
313
+ * @uilayout('user-form', 2, 3) // 2 columns, 3 rows
314
+ * @model()
314
315
  * class UserForm {
315
316
  * @attribute()
316
- * @uilayoutitem(1, 1) // First column, first row
317
+ * @uilayoutprop(1, 1) // One column, first row
317
318
  * firstName: string;
318
319
  *
319
320
  * @attribute()
320
- * @uilayoutitem(2, 1) // Second column, first row
321
+ * @uilayoutprop(2, 1) // One column, first row
321
322
  * lastName: string;
322
323
  *
323
324
  * @attribute()
324
- * @uilayoutitem(1, 2, { colspan: 2 }) // First column, second row, spans 2 columns
325
+ * @uilayoutprop(1, 2) // One column, second row
325
326
  * email: string;
326
327
  *
327
328
  * @attribute()
328
- * @uilayoutitem(1, 3, { class: 'full-width' }) // First column, third row with custom class
329
+ * @uilayoutprop(2, 3) // All columns, third row
329
330
  * bio: string;
330
331
  * }
331
332
  *
332
333
  * @mermaid
333
334
  * sequenceDiagram
334
335
  * participant Model
335
- * participant uilayoutitem
336
+ * participant uilayoutprop
336
337
  * participant RenderingEngine
337
338
  * participant LayoutContainer
338
- * Model->>uilayoutitem: Apply to property
339
- * uilayoutitem->>Model: Add layout item metadata
339
+ * Model->>uilayoutprop: Apply to property
340
+ * uilayoutprop->>Model: Add layout item metadata
340
341
  * RenderingEngine->>Model: Get layout item metadata
341
342
  * Model->>RenderingEngine: Return column, row, and props
342
343
  * RenderingEngine->>LayoutContainer: Position element at grid coordinates
343
344
  * LayoutContainer->>RenderingEngine: Return positioned element
344
345
  */
345
- export declare function uilayoutitem(col: number, row?: number, props?: Record<string, any>): (target: any, propertyKey: string) => void;
346
+ export declare function uilayoutprop(col?: number, row?: number): (target: any, propertyKey: string) => void;
347
+ /**
348
+ * @description Decorator that assigns a property to a specific page in multi-page forms
349
+ * @summary Specifies which page a property should appear on in paginated UI layouts
350
+ * This decorator applies metadata to the property, indicating which page number it belongs to
351
+ * in a multi-page form or wizard. Properties with the same page number are grouped together
352
+ * and rendered on the same page. This is typically used in conjunction with @uisteppedmodel to
353
+ * organize large forms into manageable sections.
354
+ *
355
+ * @param {number} [page=1] The page number where the property should appear (default is 1)
356
+ * @return {Function} A property decorator function
357
+ *
358
+ * @function uipageprop
359
+ * @category Property Decorators
360
+ *
361
+ * @example
362
+ * // Create a multi-step registration form with page-based layout
363
+ * @uisteppedmodel('registration-form', 2, true)
364
+ * @model()
365
+ * class RegistrationForm {
366
+ * // Page 1: Personal Information
367
+ * @attribute()
368
+ * @uipageprop(1)
369
+ * firstName: string;
370
+ *
371
+ * @attribute()
372
+ * @uipageprop(1)
373
+ * lastName: string;
374
+ *
375
+ * @attribute()
376
+ * @uipageprop(1)
377
+ * dateOfBirth: Date;
378
+ *
379
+ * // Page 2: Contact Information
380
+ * @attribute()
381
+ * @uipageprop(2)
382
+ * email: string;
383
+ *
384
+ * @attribute()
385
+ * @uipageprop(2)
386
+ * phone: string;
387
+ *
388
+ * // Page 3: Confirmation
389
+ * @attribute()
390
+ * @uipageprop(3)
391
+ * acceptTerms: boolean;
392
+ * }
393
+ *
394
+ * @mermaid
395
+ * sequenceDiagram
396
+ * participant Model
397
+ * participant uipageprop
398
+ * participant RenderingEngine
399
+ * participant PaginationController
400
+ * participant UI
401
+ * Model->>uipageprop: Apply to property
402
+ * uipageprop->>Model: Add page metadata
403
+ * RenderingEngine->>Model: Get page metadata
404
+ * Model->>RenderingEngine: Return page number
405
+ * RenderingEngine->>PaginationController: Group properties by page
406
+ * PaginationController->>UI: Render current page properties
407
+ */
408
+ export declare function uipageprop(page?: number): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/ui/decorators.ts"],"names":[],"mappings":"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"}
package/lib/ui/errors.cjs CHANGED
@@ -36,4 +36,4 @@ class RenderingError extends db_decorators_1.InternalError {
36
36
  }
37
37
  }
38
38
  exports.RenderingError = RenderingError;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VpL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBd0Q7QUFFeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFhLGNBQWUsU0FBUSw2QkFBYTtJQUMvQzs7OztPQUlHO0lBQ0gsWUFBWSxHQUFtQjtRQUM3QixLQUFLLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFURCx3Q0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXJyb3IgdGhyb3duIHdoZW4gYSByZW5kZXJpbmcgb3BlcmF0aW9uIGZhaWxzXG4gKiBAc3VtbWFyeSBTcGVjaWFsaXplZCBlcnJvciBmb3IgcmVuZGVyaW5nIGZhaWx1cmVzIGluIFVJIGNvbXBvbmVudHNcbiAqIFRoaXMgZXJyb3IgaXMgdGhyb3duIHdoZW4gdGhlIHJlbmRlcmluZyBlbmdpbmUgZW5jb3VudGVycyBhbiBlcnJvciB3aGlsZVxuICogYXR0ZW1wdGluZyB0byByZW5kZXIgYSBVSSBjb21wb25lbnQgb3IgbW9kZWwuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd8RXJyb3J9IG1zZyBUaGUgZXJyb3IgbWVzc2FnZSBvciBvcmlnaW5hbCBlcnJvclxuICpcbiAqIEBjbGFzcyBSZW5kZXJpbmdFcnJvclxuICogQGV4dGVuZHMgQmFzZUVycm9yXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFRocm93aW5nIGEgcmVuZGVyaW5nIGVycm9yXG4gKiB0cnkge1xuICogICAvLyBSZW5kZXJpbmcgY29kZSB0aGF0IG1pZ2h0IGZhaWxcbiAqICAgaWYgKCFjb21wb25lbnQuY2FuUmVuZGVyKCkpIHtcbiAqICAgICB0aHJvdyBuZXcgUmVuZGVyaW5nRXJyb3IoJ0NvbXBvbmVudCBjYW5ub3QgYmUgcmVuZGVyZWQnKTtcbiAqICAgfVxuICogfSBjYXRjaCAoZXJyb3IpIHtcbiAqICAgY29uc29sZS5lcnJvcignUmVuZGVyaW5nIGZhaWxlZDonLCBlcnJvci5tZXNzYWdlKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGNsYXNzIFJlbmRlcmluZ0Vycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBSZW5kZXJpbmdFcnJvciBpbnN0YW5jZVxuICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyB0aGUgZXJyb3Igd2l0aCBhIG1lc3NhZ2Ugb3Igb3JpZ2luYWwgZXJyb3JcbiAgICogQHBhcmFtIHtzdHJpbmd8RXJyb3J9IG1zZyBUaGUgZXJyb3IgbWVzc2FnZSBvciBvcmlnaW5hbCBlcnJvclxuICAgKi9cbiAgY29uc3RydWN0b3IobXNnOiBzdHJpbmcgfCBFcnJvcikge1xuICAgIHN1cGVyKG1zZywgUmVuZGVyaW5nRXJyb3IubmFtZSk7XG4gIH1cbn1cbiJdfQ==
39
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ui/errors.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,cAAe,SAAQ,6BAAa;IAC/C;;;;OAIG;IACH,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF;AATD,wCASC"}
@@ -19,4 +19,4 @@ class EventHandler {
19
19
  constructor() { }
20
20
  }
21
21
  exports.EventHandler = EventHandler;
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdWkvaGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7Ozs7R0FPRztBQUNILE1BQWEsWUFBWTtJQUN2Qjs7Ozs7T0FLRztJQUNILGdCQUFlLENBQUM7Q0FDakI7QUFSRCxvQ0FRQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIENsYXNzIHJlcHJlc2VudGluZyBhbiBldmVudCBoYW5kbGVyXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgZm9yIGhhbmRsaW5nIGV2ZW50cyBpbiB0aGUgVUkgZGVjb3JhdG9ycyBzeXN0ZW1cbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBmb3VuZGF0aW9uIGZvciBtYW5hZ2luZyBhbmQgcHJvY2Vzc2luZyBldmVudHMgdGhhdCBvY2N1clxuICogd2l0aGluIHRoZSBVSSBjb21wb25lbnRzIGdlbmVyYXRlZCBieSB0aGUgZGVjb3JhdG9ycy5cbiAqIEBjbGFzcyBFdmVudEhhbmRsZXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9ycy91aVxuICovXG5leHBvcnQgY2xhc3MgRXZlbnRIYW5kbGVyIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEV2ZW50SGFuZGxlclxuICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyBhIG5ldyBFdmVudEhhbmRsZXIgb2JqZWN0XG4gICAqIFRoaXMgY29uc3RydWN0b3IgY3VycmVudGx5IGRvZXNuJ3QgdGFrZSBhbnkgcGFyYW1ldGVycywgYnV0IGl0IGNhbiBiZVxuICAgKiBleHRlbmRlZCBpbiB0aGUgZnV0dXJlIHRvIGFjY2VwdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgaWYgbmVlZGVkLlxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7fVxufSJdfQ==
22
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/ui/handlers.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,MAAa,YAAY;IACvB;;;;;OAKG;IACH,gBAAe,CAAC;CACjB;AARD,oCAQC"}
package/lib/ui/index.cjs CHANGED
@@ -22,4 +22,4 @@ __exportStar(require("./Rendering.cjs"), exports);
22
22
  __exportStar(require("./types.cjs"), exports);
23
23
  __exportStar(require("./handlers.cjs"), exports);
24
24
  __exportStar(require("./utils.cjs"), exports);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdWkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUE0QjtBQUM1QixtREFBNkI7QUFDN0IsK0NBQXlCO0FBQ3pCLG1EQUE2QjtBQUM3QixrREFBNEI7QUFDNUIsOENBQXdCO0FBQ3hCLGlEQUEyQjtBQUMzQiw4Q0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW50ZXJmYWNlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vUmVuZGVyaW5nXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vaGFuZGxlcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG4iXX0=
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,mDAA6B;AAC7B,+CAAyB;AACzB,mDAA6B;AAC7B,kDAA4B;AAC5B,8CAAwB;AACxB,iDAA2B;AAC3B,8CAAwB"}
@@ -8,4 +8,4 @@
8
8
  * @memberOf module:ui-decorators
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91aS9pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlcyBmb3IgVUkgZm9ybSBjb21wb25lbnRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGludGVyZmFjZXMgZm9yIGZvcm0gZmllbGRzIHdpdGggQ1JVRCBvcGVyYXRpb25zXG4gKiBUaGlzIG1vZHVsZSBjb250YWlucyBpbnRlcmZhY2VzIHRoYXQgZXh0ZW5kIGJhc2ljIGZpZWxkIHByb3BlcnRpZXMgd2l0aFxuICogQ1JVRCBvcGVyYXRpb24gaW5mb3JtYXRpb24gZm9yIGZvcm0gZ2VuZXJhdGlvbi5cbiAqIEBtb2R1bGUgdWkvaW50ZXJmYWNlc1xuICogQG1lbWJlck9mIG1vZHVsZTp1aS1kZWNvcmF0b3JzXG4gKi9cblxuaW1wb3J0IHsgRmllbGRQcm9wZXJ0aWVzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IENydWRPcGVyYXRpb25zIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZvcm0gZmllbGQgaW50ZXJmYWNlIHdpdGggQ1JVRCBvcGVyYXRpb24gaW5mb3JtYXRpb25cbiAqIEBzdW1tYXJ5IEV4dGVuZHMgYmFzaWMgZmllbGQgcHJvcGVydGllcyB3aXRoIGEgc3BlY2lmaWMgQ1JVRCBvcGVyYXRpb25cbiAqIFRoaXMgaW50ZXJmYWNlIHJlcHJlc2VudHMgYSBmb3JtIGZpZWxkIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWNcbiAqIENSVUQgb3BlcmF0aW9uIChDcmVhdGUsIFJlYWQsIFVwZGF0ZSwgRGVsZXRlKS4gSXQgY29tYmluZXMgYWxsIHRoZSBzdGFuZGFyZFxuICogZmllbGQgcHJvcGVydGllcyB3aXRoIGFuIG9wZXJhdGlvbiBwcm9wZXJ0eS5cbiAqXG4gKiBAaW50ZXJmYWNlIENydWRGb3JtRmllbGRcbiAqIEBleHRlbmRzIEZpZWxkUHJvcGVydGllc1xuICogQG1lbWJlck9mIG1vZHVsZTp1aS1kZWNvcmF0b3JzXG4gKlxuICogQHByb3BlcnR5IHtDcnVkT3BlcmF0aW9uc30gb3BlcmF0aW9uIC0gVGhlIENSVUQgb3BlcmF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpZWxkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3J1ZEZvcm1GaWVsZCBleHRlbmRzIEZpZWxkUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIENSVUQgb3BlcmF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpZWxkXG4gICAqIEBzdW1tYXJ5IFNwZWNpZmllcyB3aGljaCBvcGVyYXRpb24gKENyZWF0ZSwgUmVhZCwgVXBkYXRlLCBEZWxldGUpIHRoaXMgZmllbGQgaXMgZm9yXG4gICAqL1xuICBvcGVyYXRpb246IENydWRPcGVyYXRpb25zO1xufVxuIl19
11
+ //# sourceMappingURL=interfaces.js.map
@@ -28,3 +28,34 @@ export interface CrudFormField extends FieldProperties {
28
28
  */
29
29
  operation: CrudOperations;
30
30
  }
31
+ /**
32
+ * @description Interface for defining a page/step in a multi-step form or wizard
33
+ * @summary Provides metadata for individual pages in stepped model forms
34
+ * This interface represents a single page or step in a multi-step form workflow.
35
+ * It allows defining optional title and description metadata for each page,
36
+ * which can be used to display step indicators, progress bars, or navigation labels.
37
+ * Used in conjunction with the @uisteppedmodel decorator.
38
+ *
39
+ * @interface ISteppedModelPage
40
+ * @memberOf module:ui-decorators
41
+ *
42
+ * @property {string} [title] - Optional title for the page/step (e.g., "Personal Information")
43
+ * @property {string} [description] - Optional description providing additional context for the page
44
+ *
45
+ * @example
46
+ * // Define pages for a multi-step wizard
47
+ * const wizardPages: ISteppedModelPage[] = [
48
+ * { title: 'Personal Info', description: 'Enter your basic details' },
49
+ * { title: 'Contact', description: 'Provide your contact information' },
50
+ * { title: 'Review', description: 'Review and confirm your information' }
51
+ * ];
52
+ *
53
+ * @uisteppedmodel('div', wizardPages, true)
54
+ * class RegistrationWizard extends Model {
55
+ * // Properties with @uipageprop decorators
56
+ * }
57
+ */
58
+ export interface ISteppedModelPage {
59
+ title?: string;
60
+ description?: string;
61
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/ui/interfaces.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG"}
package/lib/ui/types.cjs CHANGED
@@ -9,4 +9,4 @@
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  const constants_1 = require("./constants.cjs");
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdWkvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7O0dBT0c7O0FBR0gsK0NBQXlEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gVHlwZSBkZWZpbml0aW9ucyBmb3IgVUkgY29tcG9uZW50cyBhbmQgcmVuZGVyaW5nXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHR5cGVzIGFuZCBpbnRlcmZhY2VzIHVzZWQgdGhyb3VnaG91dCB0aGUgVUkgZGVjb3JhdG9ycyBsaWJyYXJ5XG4gKiBUaGlzIG1vZHVsZSBjb250YWlucyB0eXBlIGRlZmluaXRpb25zIGZvciBmaWVsZCBwcm9wZXJ0aWVzLCBVSSBtZXRhZGF0YSxcbiAqIGFuZCBvdGhlciBzdHJ1Y3R1cmVzIHVzZWQgaW4gcmVuZGVyaW5nIFVJIGNvbXBvbmVudHMuXG4gKiBAbW9kdWxlIHVpL3R5cGVzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuXG5pbXBvcnQgeyBPcGVyYXRpb25LZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBVSUtleXMsIFVJTWVkaWFCcmVha1BvaW50cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIGRlZmluaW5nIGEgVUkgZmllbGQgb3IgY29tcG9uZW50XG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgcmVuZGVyYWJsZSBVSSBlbGVtZW50IHdpdGggcHJvcGVydGllcyBhbmQgY2hpbGRyZW5cbiAqIFRoaXMgaW50ZXJmYWNlIGRlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBhIFVJIGZpZWxkIG9yIGNvbXBvbmVudCwgaW5jbHVkaW5nXG4gKiBpdHMgdGFnIG5hbWUsIHByb3BlcnRpZXMsIGFuZCBvcHRpb25hbCBjaGlsZHJlbiBlbGVtZW50cy5cbiAqXG4gKiBAaW50ZXJmYWNlIEZpZWxkRGVmaW5pdGlvblxuICogQHRlbXBsYXRlIFQgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHR5cGUgKGRlZmF1bHRzIHRvIHZvaWQpXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGFnIC0gVGhlIEhUTUwgZWxlbWVudCBvciBjb21wb25lbnQgdGFnIG5hbWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcmVuZGVyZXJJZF0gLSBPcHRpb25hbCBJRCBvZiB0aGUgcmVuZGVyZXIgdG8gdXNlXG4gKiBAcHJvcGVydHkgcHJvcHMgLSBDb21iaW5lZCBwcm9wZXJ0aWVzIGZvciB0aGUgZmllbGRcbiAqIEBwcm9wZXJ0eSB7RmllbGREZWZpbml0aW9uW119IFtjaGlsZHJlbl0gLSBPcHRpb25hbCBjaGlsZCBlbGVtZW50c1xuICogQHByb3BlcnR5IHtVSUxpc3RJdGVtRWxlbWVudE1ldGFkYXRhfSBbaXRlbV0gLSBPcHRpb25hbCBsaXN0IGl0ZW0gbWV0YWRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZERlZmluaXRpb248VCA9IHZvaWQ+IHtcbiAgdGFnOiBzdHJpbmc7XG4gIHJlbmRlcmVySWQ/OiBzdHJpbmc7XG4gIHByb3BzOiBUICYgRmllbGRQcm9wZXJ0aWVzO1xuICBjaGlsZHJlbj86IEZpZWxkRGVmaW5pdGlvbjxUPltdO1xuICBpdGVtPzogVUlMaXN0SXRlbUVsZW1lbnRNZXRhZGF0YTtcbiAgY29sPzogbnVtYmVyIHwgc3RyaW5nW107XG4gIHJvdz86IG51bWJlciB8IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIGZpZWxkIHByb3BlcnRpZXMgaW5jbHVkaW5nIHZhbGlkYXRpb25cbiAqIEBzdW1tYXJ5IERlZmluZXMgY29tbW9uIHByb3BlcnRpZXMgYW5kIHZhbGlkYXRpb24gcnVsZXMgZm9yIFVJIGZpZWxkc1xuICogVGhpcyBpbnRlcmZhY2UgZGVmaW5lcyB0aGUgc3RhbmRhcmQgcHJvcGVydGllcyB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvXG4gKiBVSSBmaWVsZHMsIGluY2x1ZGluZyBiYXNpYyBhdHRyaWJ1dGVzIGFuZCB2YWxpZGF0aW9uIHJ1bGVzLlxuICpcbiAqIEBpbnRlcmZhY2UgRmllbGRQcm9wZXJ0aWVzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBmaWVsZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBhdGggLSBUaGUgZnVsbCBoaWVyYXJjaGljYWwgcGF0aCBvZiB0aGUgZmllbGRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjaGlsZE9mIC0gVGhlIHBhcmVudCBwYXRoIG9mIHRoZSBpbW1lZGlhdGUgcGFyZW50IGZpZWxkLCBpZiBuZXN0ZWRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0eXBlIC0gVGhlIHR5cGUgb2YgdGhlIGZpZWxkIChlLmcuLCAndGV4dCcsICdudW1iZXInKVxuICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfERhdGV9IHZhbHVlIC0gVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGZpZWxkXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtoaWRkZW5dIC0gV2hldGhlciB0aGUgZmllbGQgaXMgaGlkZGVuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtkaXNhYmxlZF0gLSBXaGV0aGVyIHRoZSBmaWVsZCBpcyBkaXNhYmxlZFxuICogQHByb3BlcnR5IHtib29sZWFufSBbcmVxdWlyZWRdIC0gV2hldGhlciB0aGUgZmllbGQgaXMgcmVxdWlyZWRcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3JlYWRvbmx5XSAtIFdoZXRoZXIgdGhlIGZpZWxkIGlzIHJlYWQtb25seVxuICogQHByb3BlcnR5IHtudW1iZXJ9IFttYXhMZW5ndGhdIC0gTWF4aW11bSBsZW5ndGggZm9yIHRleHQgZmllbGRzXG4gKiBAcHJvcGVydHkge251bWJlcn0gW21pbkxlbmd0aF0gLSBNaW5pbXVtIGxlbmd0aCBmb3IgdGV4dCBmaWVsZHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfERhdGV9IFttYXhdIC0gTWF4aW11bSB2YWx1ZSBmb3IgbnVtZXJpYyBvciBkYXRlIGZpZWxkc1xuICogQHByb3BlcnR5IHtudW1iZXJ8RGF0ZX0gW21pbl0gLSBNaW5pbXVtIHZhbHVlIGZvciBudW1lcmljIG9yIGRhdGUgZmllbGRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3BhdHRlcm5dIC0gUmVnZXggcGF0dGVybiBmb3IgdmFsaWRhdGlvblxuICogQHByb3BlcnR5IHtudW1iZXJ9IFtzdGVwXSAtIFN0ZXAgdmFsdWUgZm9yIG51bWVyaWMgZmllbGRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2Zvcm1hdF0gLSBGb3JtYXQgc3RyaW5nIGZvciBkYXRlIGZpZWxkc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFtlcXVhbHNdIC0gRmllbGQgbXVzdCBlcXVhbCB0aGUgdmFsdWUgb2YgdGhpcyBmaWVsZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtkaWZmXSAtIEZpZWxkIG11c3QgZGlmZmVyIGZyb20gdGhlIHZhbHVlIG9mIHRoaXMgZmllbGRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbbGVzc1RoYW5dIC0gRmllbGQgbXVzdCBiZSBsZXNzIHRoYW4gdGhpcyBmaWVsZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtsZXNzVGhhbk9yRXF1YWxdIC0gRmllbGQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhpcyBmaWVsZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtncmVhdGVyVGhhbl0gLSBGaWVsZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB0aGlzIGZpZWxkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2dyZWF0ZXJUaGFuT3JFcXVhbF0gLSBGaWVsZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGlzIGZpZWxkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRQcm9wZXJ0aWVzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGNoaWxkT2Y/OiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IERhdGUgfCBzdHJpbmdbXSB8IG51bWJlcltdIHwgRGF0ZVtdO1xuICBoaWRkZW4/OiBib29sZWFuIHwgQ3J1ZE9wZXJhdGlvbktleXNbXTtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAvLyBWYWxpZGF0aW9uXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHk/OiBib29sZWFuO1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyIHwgRGF0ZTtcbiAgbWluPzogbnVtYmVyIHwgRGF0ZTtcbiAgcGF0dGVybj86IHN0cmluZztcbiAgc3RlcD86IG51bWJlcjtcbiAgZm9ybWF0Pzogc3RyaW5nO1xuICBwaz86IHN0cmluZztcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xuICBjdXN0b21UeXBlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBvcHRpb25zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXTtcbiAgcGFnZXM/OiBudW1iZXI7IFxuICBwYWdlPzogbnVtYmVyOyBcbiAgW1VJS2V5cy5FUVVBTFNdPzogc3RyaW5nO1xuICBbVUlLZXlzLkRJRkZdPzogc3RyaW5nO1xuICBbVUlLZXlzLkxFU1NfVEhBTl0/OiBzdHJpbmc7XG4gIFtVSUtleXMuTEVTU19USEFOX09SX0VRVUFMXT86IHN0cmluZztcbiAgW1VJS2V5cy5HUkVBVEVSX1RIQU5dPzogc3RyaW5nO1xuICBbVUlLZXlzLkdSRUFURVJfVEhBTl9PUl9FUVVBTF0/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgVUlFbGVtZW50TWV0YWRhdGFcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSUVsZW1lbnRNZXRhZGF0YSA9IHtcbiAgdGFnOiBzdHJpbmc7XG4gIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgc2VyaWFsaXplPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYgVUlFbGVtZW50TWV0YWRhdGFcbiAqIEBtZW1iZXJPZiB1aS1kZWNvcmF0b3JzLnVpLmRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IHR5cGUgVUlNb2RlbE1ldGFkYXRhID0gT21pdDxVSUVsZW1lbnRNZXRhZGF0YSwgXCJzZXJpYWxpemVcIj47XG5cbi8qKlxuICogQHR5cGVkZWYgVUlQcm9wTWV0YWRhdGFcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSVByb3BNZXRhZGF0YSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBzdHJpbmdpZnk6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIENydWRPcGVyYXRpb25LZXlzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IHR5cGUgQ3J1ZE9wZXJhdGlvbktleXMgPVxuICB8IE9wZXJhdGlvbktleXMuQ1JFQVRFXG4gIHwgT3BlcmF0aW9uS2V5cy5SRUFEXG4gIHwgT3BlcmF0aW9uS2V5cy5VUERBVEVcbiAgfCBPcGVyYXRpb25LZXlzLkRFTEVURTtcblxuLyoqXG4gKiBAdHlwZWRlZiBVSUxpc3RQcm9wTWV0YWRhdGFcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSUxpc3RQcm9wTWV0YWRhdGEgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT47XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIFVJTGlzdEl0ZW1Nb2RlbE1ldGFkYXRhXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnVpLWRlY29yYXRvcnNcbiAqL1xuZXhwb3J0IHR5cGUgVUlMaXN0SXRlbU1vZGVsTWV0YWRhdGEgPSB7XG4gIGl0ZW06IFVJTGlzdEl0ZW1FbGVtZW50TWV0YWRhdGE7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIFVJTGlzdEl0ZW1FbGVtZW50TWV0YWRhdGFcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSUxpc3RJdGVtRWxlbWVudE1ldGFkYXRhID0ge1xuICB0YWc6IHN0cmluZztcbiAgcHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBtYXBwZXI/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufTtcblxuXG4vKipcbiAqIEB0eXBlZGVmIFVJTGF5b3V0TWV0YWRhdGFcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSUxheW91dE1ldGFkYXRhID0ge1xuICBwcm9wczoge1xuICAgIGNvbHM/OiBudW1iZXIgfCBzdHJpbmdbXTtcbiAgICByb3dzPzogbnVtYmVyO1xuICAgIHByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgfVxufVxuXG4vKipcbiAqIEB0eXBlZGVmIFVJQ2xhc3NNZXRhZGF0YVxuICogQG1lbWJlck9mIG1vZHVsZTp1aS1kZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIFVJQ2xhc3NNZXRhZGF0YSA9IFVJTGF5b3V0TWV0YWRhdGEgfCBVSU1vZGVsTWV0YWRhdGEgfCBVSUxpc3RJdGVtTW9kZWxNZXRhZGF0YTtcblxuLyoqXG4gKiBAdHlwZWRlZiBVSUxheW91dEl0ZW1NZXRhZGF0YVxuICogQG1lbWJlck9mIHVpLWRlY29yYXRvcnMudWkuZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSUxheW91dEl0ZW1NZXRhZGF0YSA9e1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBjb2w6IG51bWJlciB8IHN0cmluZ1tdO1xuICByb3c6IG51bWJlciB8IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiBVSU1lZGlhQnJlYWtQb2ludHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6dWktZGVjb3JhdG9yc1xuICovXG5leHBvcnQgdHlwZSBVSU1lZGlhQnJlYWtQb2ludHNUeXBlID0gXG4gIFVJTWVkaWFCcmVha1BvaW50cy5TTUFMTCB8IFxuICBVSU1lZGlhQnJlYWtQb2ludHMuTUVESVVNIHwgXG4gIFVJTWVkaWFCcmVha1BvaW50cy5MQVJHRSB8XG4gIFVJTWVkaWFCcmVha1BvaW50cy5YTEFSR0U7Il19
12
+ //# sourceMappingURL=types.js.map