@decaf-ts/for-angular 0.0.4 → 0.0.5

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 (85) hide show
  1. package/LICENSE.md +646 -144
  2. package/README.md +37 -242
  3. package/dist/lib/README.md +92 -0
  4. package/dist/lib/assets/i18n/en.json +131 -0
  5. package/dist/lib/assets/images/angular-logo.svg +45 -0
  6. package/dist/lib/assets/images/decaf-logo-black.svg +22 -0
  7. package/dist/lib/assets/images/decaf-logo-lw.svg +50 -0
  8. package/dist/lib/assets/images/decaf-logo-white.svg +22 -0
  9. package/dist/lib/assets/images/decaf-logo.svg +54 -0
  10. package/dist/lib/components/component-renderer/component-renderer.component.d.ts +267 -0
  11. package/dist/lib/components/crud-field/crud-field.component.d.ts +447 -0
  12. package/dist/{for-angular/components/decaf-crud-form → lib/components/crud-form}/constants.d.ts +0 -0
  13. package/dist/lib/components/crud-form/crud-form.component.d.ts +102 -0
  14. package/dist/{for-angular/components/decaf-crud-form → lib/components/crud-form}/types.d.ts +0 -0
  15. package/dist/lib/components/model-renderer/model-renderer.component.d.ts +97 -0
  16. package/dist/lib/engine/DynamicModule.d.ts +17 -0
  17. package/dist/{for-angular → lib}/engine/NgxCrudFormField.d.ts +22 -14
  18. package/dist/lib/engine/NgxFormService.d.ts +167 -0
  19. package/dist/lib/engine/NgxRenderingEngine.d.ts +128 -0
  20. package/dist/lib/engine/NgxRenderingEngine2.d.ts +251 -0
  21. package/dist/lib/engine/ValidatorFactory.d.ts +15 -0
  22. package/dist/lib/engine/constants.d.ts +151 -0
  23. package/dist/lib/engine/decorators.d.ts +25 -0
  24. package/dist/lib/engine/index.d.ts +15 -0
  25. package/dist/lib/engine/types.d.ts +293 -0
  26. package/dist/lib/esm2022/components/component-renderer/component-renderer.component.mjs +309 -0
  27. package/dist/lib/esm2022/components/crud-field/crud-field.component.mjs +288 -0
  28. package/dist/lib/esm2022/components/crud-form/constants.mjs +14 -0
  29. package/dist/lib/esm2022/components/crud-form/crud-form.component.mjs +140 -0
  30. package/dist/lib/esm2022/components/crud-form/types.mjs +2 -0
  31. package/dist/lib/esm2022/components/model-renderer/model-renderer.component.mjs +137 -0
  32. package/dist/{for-angular → lib}/esm2022/decaf-ts-for-angular.mjs +0 -0
  33. package/dist/lib/esm2022/engine/DynamicModule.mjs +18 -0
  34. package/dist/lib/esm2022/engine/NgxCrudFormField.mjs +117 -0
  35. package/dist/lib/esm2022/engine/NgxFormService.mjs +315 -0
  36. package/dist/lib/esm2022/engine/NgxRenderingEngine.mjs +194 -0
  37. package/dist/lib/esm2022/engine/NgxRenderingEngine2.mjs +333 -0
  38. package/dist/lib/esm2022/engine/ValidatorFactory.mjs +102 -0
  39. package/dist/lib/esm2022/engine/constants.mjs +160 -0
  40. package/dist/lib/esm2022/engine/decorators.mjs +38 -0
  41. package/dist/lib/esm2022/engine/index.mjs +16 -0
  42. package/dist/lib/esm2022/engine/types.mjs +2 -0
  43. package/dist/lib/esm2022/for-angular.module.mjs +118 -0
  44. package/dist/lib/esm2022/interfaces.mjs +2 -0
  45. package/dist/lib/esm2022/public-apis.mjs +13 -0
  46. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs +2138 -0
  47. package/dist/lib/fesm2022/decaf-ts-for-angular.mjs.map +1 -0
  48. package/dist/lib/for-angular.module.d.ts +44 -0
  49. package/dist/{for-angular → lib}/index.d.ts +0 -0
  50. package/dist/lib/interfaces.d.ts +28 -0
  51. package/dist/lib/public-apis.d.ts +12 -0
  52. package/package.json +73 -26
  53. package/dist/for-angular/README.md +0 -297
  54. package/dist/for-angular/assets/i18n/en.json +0 -21
  55. package/dist/for-angular/components/decaf-crud-field/decaf-crud-field.component.d.ts +0 -49
  56. package/dist/for-angular/components/decaf-crud-form/decaf-crud-form.component.d.ts +0 -28
  57. package/dist/for-angular/components/decaf-model-renderer/decaf-model-renderer.component.d.ts +0 -20
  58. package/dist/for-angular/engine/DynamicModule.d.ts +0 -2
  59. package/dist/for-angular/engine/NgxFormService.d.ts +0 -119
  60. package/dist/for-angular/engine/NgxRenderingEngine.d.ts +0 -18
  61. package/dist/for-angular/engine/ValidatorFactory.d.ts +0 -4
  62. package/dist/for-angular/engine/constants.d.ts +0 -13
  63. package/dist/for-angular/engine/decorators.d.ts +0 -1
  64. package/dist/for-angular/engine/index.d.ts +0 -5
  65. package/dist/for-angular/engine/types.d.ts +0 -44
  66. package/dist/for-angular/esm2022/components/decaf-crud-field/decaf-crud-field.component.mjs +0 -129
  67. package/dist/for-angular/esm2022/components/decaf-crud-form/constants.mjs +0 -14
  68. package/dist/for-angular/esm2022/components/decaf-crud-form/decaf-crud-form.component.mjs +0 -80
  69. package/dist/for-angular/esm2022/components/decaf-crud-form/types.mjs +0 -2
  70. package/dist/for-angular/esm2022/components/decaf-model-renderer/decaf-model-renderer.component.mjs +0 -47
  71. package/dist/for-angular/esm2022/engine/DynamicModule.mjs +0 -3
  72. package/dist/for-angular/esm2022/engine/NgxCrudFormField.mjs +0 -115
  73. package/dist/for-angular/esm2022/engine/NgxFormService.mjs +0 -235
  74. package/dist/for-angular/esm2022/engine/NgxRenderingEngine.mjs +0 -84
  75. package/dist/for-angular/esm2022/engine/ValidatorFactory.mjs +0 -48
  76. package/dist/for-angular/esm2022/engine/constants.mjs +0 -15
  77. package/dist/for-angular/esm2022/engine/decorators.mjs +0 -14
  78. package/dist/for-angular/esm2022/engine/index.mjs +0 -6
  79. package/dist/for-angular/esm2022/engine/types.mjs +0 -2
  80. package/dist/for-angular/esm2022/interfaces.mjs +0 -2
  81. package/dist/for-angular/esm2022/public-apis.mjs +0 -6
  82. package/dist/for-angular/fesm2022/decaf-ts-for-angular.mjs +0 -759
  83. package/dist/for-angular/fesm2022/decaf-ts-for-angular.mjs.map +0 -1
  84. package/dist/for-angular/interfaces.d.ts +0 -8
  85. package/dist/for-angular/public-apis.d.ts +0 -5
@@ -0,0 +1,160 @@
1
+ import { UIKeys } from '@decaf-ts/ui-decorators';
2
+ import { VALIDATION_PARENT_KEY } from '@decaf-ts/decorator-validation';
3
+ /**
4
+ * @description Angular engine key constants
5
+ * @summary Contains key strings used by the Angular rendering engine for reflection,
6
+ * dynamic component creation, and other engine operations.
7
+ * @typedef {Object} AngularEngineKeys
8
+ * @property {string} REFLECT - Prefix for reflection metadata keys
9
+ * @property {string} DYNAMIC - Key for dynamic component identification
10
+ * @property {string} ANNOTATIONS - Key for component annotations
11
+ * @property {string} ECMP - Key for embedded components
12
+ * @property {string} NG_REFLECT - Prefix for Angular reflection attributes
13
+ * @property {string} RENDERED - Prefix for rendered component markers
14
+ * @property {string} MAPPER - Key for property mappers
15
+ * @property {string} CHILDREN - Key for child components
16
+ * @property {string} LISTABLE - Key for listable components
17
+ * @property {string} RENDER - Key for renderable components
18
+ * @property {string} RENDERED_ID - Template for rendered component IDs
19
+ * @property {string} PARENT - Key for comparison decorators and validators
20
+ * @const AngularEngineKeys
21
+ * @memberOf module:engine
22
+ */
23
+ export const AngularEngineKeys = {
24
+ REFLECT: `${UIKeys.REFLECT}.angular.`,
25
+ DYNAMIC: 'dynamic-component',
26
+ ANNOTATIONS: '__annotations__',
27
+ ECMP: 'ecmp',
28
+ NG_REFLECT: 'ng-reflect-',
29
+ RENDERED: 'rendered-as-',
30
+ MAPPER: 'mapper',
31
+ CHILDREN: 'children',
32
+ LISTABLE: 'listable',
33
+ RENDER: 'render',
34
+ RENDERED_ID: 'rendered-as-{0}',
35
+ PARENT: '_parent',
36
+ VALIDATION_PARENT_KEY: VALIDATION_PARENT_KEY
37
+ };
38
+ /**
39
+ * @description Form validation state constants
40
+ * @summary Contains constants representing the possible validation states of a form.
41
+ * These are used to check and handle form validation throughout the application.
42
+ * @typedef {Object} FormConstants
43
+ * @property {string} VALID - Constant representing a valid form state
44
+ * @property {string} INVALID - Constant representing an invalid form state
45
+ * @const FormConstants
46
+ * @memberOf module:engine
47
+ */
48
+ export const FormConstants = {
49
+ VALID: 'VALID',
50
+ INVALID: 'INVALID',
51
+ };
52
+ /**
53
+ * @description Event name constants
54
+ * @summary Enum containing constants for event names used throughout the application.
55
+ * These are used to standardize event naming and handling.
56
+ * @enum {string}
57
+ * @readonly
58
+ * @property {string} BACK_BUTTON_NAVIGATION - Event fired when back button navigation ends
59
+ * @property {string} REFRESH_EVENT - Event fired when a refresh action occurs
60
+ * @property {string} CLICK_EVENT - Event fired when a click action occurs
61
+ * @property {string} SUBMIT_EVENT - Event fired when a form submission occurs
62
+ * @memberOf module:engine
63
+ */
64
+ export var EventConstants;
65
+ (function (EventConstants) {
66
+ EventConstants["BACK_BUTTON_NAVIGATION"] = "backButtonNavigationEndEvent";
67
+ EventConstants["REFRESH_EVENT"] = "RefreshEvent";
68
+ EventConstants["CLICK_EVENT"] = "ClickEvent";
69
+ EventConstants["SUBMIT_EVENT"] = "SubmitEvent";
70
+ })(EventConstants || (EventConstants = {}));
71
+ /**
72
+ * @description Logger level constants
73
+ * @summary Enum defining the logging levels used in the application's logging system.
74
+ * Lower values represent more verbose logging, while higher values represent more critical logs.
75
+ * @enum {number}
76
+ * @readonly
77
+ * @property {number} ALL - Log everything (most verbose)
78
+ * @property {number} DEBUG - Log debug information
79
+ * @property {number} INFO - Log informational messages
80
+ * @property {number} WARN - Log warnings
81
+ * @property {number} ERROR - Log errors
82
+ * @property {number} CRITICAL - Log critical errors (least verbose)
83
+ * @memberOf module:engine
84
+ */
85
+ export var LoggerLevels;
86
+ (function (LoggerLevels) {
87
+ LoggerLevels[LoggerLevels["ALL"] = 0] = "ALL";
88
+ LoggerLevels[LoggerLevels["DEBUG"] = 1] = "DEBUG";
89
+ LoggerLevels[LoggerLevels["INFO"] = 2] = "INFO";
90
+ LoggerLevels[LoggerLevels["WARN"] = 3] = "WARN";
91
+ LoggerLevels[LoggerLevels["ERROR"] = 4] = "ERROR";
92
+ LoggerLevels[LoggerLevels["CRITICAL"] = 5] = "CRITICAL";
93
+ })(LoggerLevels || (LoggerLevels = {}));
94
+ ;
95
+ /**
96
+ * @description Route direction constants
97
+ * @summary Enum defining the possible navigation directions in the application.
98
+ * Used for controlling navigation flow and animation directions.
99
+ * @enum {string}
100
+ * @readonly
101
+ * @property {string} BACK - Navigate back to the previous page
102
+ * @property {string} FORWARD - Navigate forward to the next page
103
+ * @property {string} ROOT - Navigate to the root/home page
104
+ * @memberOf module:engine
105
+ */
106
+ export var RouteDirections;
107
+ (function (RouteDirections) {
108
+ RouteDirections["BACK"] = "back";
109
+ RouteDirections["FORWARD"] = "forward";
110
+ RouteDirections["ROOT"] = "root";
111
+ })(RouteDirections || (RouteDirections = {}));
112
+ /**
113
+ * @description Component tag name constants
114
+ * @summary Enum defining the tag names for custom components used in the application.
115
+ * These tag names are used for component registration and rendering.
116
+ * @enum {string}
117
+ * @readonly
118
+ * @property {string} LIST_ITEM - Tag name for list item component
119
+ * @property {string} LIST_INFINITE - Tag name for infinite scrolling list component
120
+ * @property {string} LIST_PAGINATED - Tag name for paginated list component
121
+ * @memberOf module:engine
122
+ */
123
+ export var ComponentsTagNames;
124
+ (function (ComponentsTagNames) {
125
+ ComponentsTagNames["LIST_ITEM"] = "ngx-decaf-list-item";
126
+ ComponentsTagNames["LIST_INFINITE"] = "ngx-decaf-list-infinite";
127
+ ComponentsTagNames["LIST_PAGINATED"] = "ngx-decaf-list-paginated";
128
+ })(ComponentsTagNames || (ComponentsTagNames = {}));
129
+ /**
130
+ * @description Base component property name constants
131
+ * @summary Enum defining the standard property names used by base components in the application.
132
+ * These property names are used for consistent property access across components.
133
+ * @enum {string}
134
+ * @readonly
135
+ * @property {string} MODEL - Property name for the component's data model
136
+ * @property {string} LOCALE - Property name for localization settings
137
+ * @property {string} PK - Property name for primary key
138
+ * @property {string} ITEMS - Property name for collection items
139
+ * @property {string} ROUTE - Property name for routing information
140
+ * @property {string} OPERATIONS - Property name for available operations
141
+ * @property {string} UID - Property name for unique identifier
142
+ * @property {string} TRANSLATABLE - Property name for translation flag
143
+ * @property {string} MAPPER - Property name for property mapper
144
+ * @property {string} INITIALIZED - Property name for initialization state
145
+ * @memberOf module:engine
146
+ */
147
+ export var BaseComponentProps;
148
+ (function (BaseComponentProps) {
149
+ BaseComponentProps["MODEL"] = "model";
150
+ BaseComponentProps["LOCALE"] = "locale";
151
+ BaseComponentProps["PK"] = "pk";
152
+ BaseComponentProps["ITEMS"] = "items";
153
+ BaseComponentProps["ROUTE"] = "route";
154
+ BaseComponentProps["OPERATIONS"] = "operations";
155
+ BaseComponentProps["UID"] = "uid";
156
+ BaseComponentProps["TRANSLATABLE"] = "translatable";
157
+ BaseComponentProps["MAPPER"] = "mapper";
158
+ BaseComponentProps["INITIALIZED"] = "initialized";
159
+ })(BaseComponentProps || (BaseComponentProps = {}));
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLFdBQVc7SUFDckMsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixXQUFXLEVBQUUsaUJBQWlCO0lBQzlCLElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLGFBQWE7SUFDekIsUUFBUSxFQUFFLGNBQWM7SUFDeEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsTUFBTSxFQUFFLFFBQVE7SUFDaEIsV0FBVyxFQUFFLGlCQUFpQjtJQUM5QixNQUFNLEVBQUUsU0FBUztJQUNqQixxQkFBcUIsRUFBRSxxQkFBcUI7Q0FDN0MsQ0FBQztBQUVGOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxTQUFTO0NBQ25CLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDeEIseUVBQXVELENBQUE7SUFDdkQsZ0RBQThCLENBQUE7SUFDOUIsNENBQTBCLENBQUE7SUFDMUIsOENBQTRCLENBQUE7QUFDOUIsQ0FBQyxFQUxXLGNBQWMsS0FBZCxjQUFjLFFBS3pCO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sQ0FBTixJQUFZLFlBT1g7QUFQRCxXQUFZLFlBQVk7SUFDdEIsNkNBQU8sQ0FBQTtJQUNQLGlEQUFTLENBQUE7SUFDVCwrQ0FBUSxDQUFBO0lBQ1IsK0NBQVEsQ0FBQTtJQUNSLGlEQUFTLENBQUE7SUFDVCx1REFBWSxDQUFBO0FBQ2QsQ0FBQyxFQVBXLFlBQVksS0FBWixZQUFZLFFBT3ZCO0FBQUEsQ0FBQztBQUVGOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3pCLGdDQUFhLENBQUE7SUFDYixzQ0FBbUIsQ0FBQTtJQUNuQixnQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBR0Q7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIsdURBQWlDLENBQUE7SUFDakMsK0RBQXlDLENBQUE7SUFDekMsaUVBQTJDLENBQUE7QUFDN0MsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLENBQU4sSUFBWSxrQkFXWDtBQVhELFdBQVksa0JBQWtCO0lBQzVCLHFDQUFlLENBQUE7SUFDZix1Q0FBaUIsQ0FBQTtJQUNqQiwrQkFBUyxDQUFBO0lBQ1QscUNBQWUsQ0FBQTtJQUNmLHFDQUFlLENBQUE7SUFDZiwrQ0FBeUIsQ0FBQTtJQUN6QixpQ0FBVyxDQUFBO0lBQ1gsbURBQTZCLENBQUE7SUFDN0IsdUNBQWlCLENBQUE7SUFDakIsaURBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVhXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFXN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVSUtleXMgfSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBWQUxJREFUSU9OX1BBUkVOVF9LRVkgfSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBbmd1bGFyIGVuZ2luZSBrZXkgY29uc3RhbnRzXG4gKiBAc3VtbWFyeSBDb250YWlucyBrZXkgc3RyaW5ncyB1c2VkIGJ5IHRoZSBBbmd1bGFyIHJlbmRlcmluZyBlbmdpbmUgZm9yIHJlZmxlY3Rpb24sXG4gKiBkeW5hbWljIGNvbXBvbmVudCBjcmVhdGlvbiwgYW5kIG90aGVyIGVuZ2luZSBvcGVyYXRpb25zLlxuICogQHR5cGVkZWYge09iamVjdH0gQW5ndWxhckVuZ2luZUtleXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRUZMRUNUIC0gUHJlZml4IGZvciByZWZsZWN0aW9uIG1ldGFkYXRhIGtleXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBEWU5BTUlDIC0gS2V5IGZvciBkeW5hbWljIGNvbXBvbmVudCBpZGVudGlmaWNhdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IEFOTk9UQVRJT05TIC0gS2V5IGZvciBjb21wb25lbnQgYW5ub3RhdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFQ01QIC0gS2V5IGZvciBlbWJlZGRlZCBjb21wb25lbnRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTkdfUkVGTEVDVCAtIFByZWZpeCBmb3IgQW5ndWxhciByZWZsZWN0aW9uIGF0dHJpYnV0ZXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRU5ERVJFRCAtIFByZWZpeCBmb3IgcmVuZGVyZWQgY29tcG9uZW50IG1hcmtlcnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNQVBQRVIgLSBLZXkgZm9yIHByb3BlcnR5IG1hcHBlcnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBDSElMRFJFTiAtIEtleSBmb3IgY2hpbGQgY29tcG9uZW50c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IExJU1RBQkxFIC0gS2V5IGZvciBsaXN0YWJsZSBjb21wb25lbnRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVOREVSIC0gS2V5IGZvciByZW5kZXJhYmxlIGNvbXBvbmVudHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRU5ERVJFRF9JRCAtIFRlbXBsYXRlIGZvciByZW5kZXJlZCBjb21wb25lbnQgSURzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUEFSRU5UIC0gS2V5IGZvciBjb21wYXJpc29uIGRlY29yYXRvcnMgYW5kIHZhbGlkYXRvcnNcbiAqIEBjb25zdCBBbmd1bGFyRW5naW5lS2V5c1xuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGNvbnN0IEFuZ3VsYXJFbmdpbmVLZXlzID0ge1xuICBSRUZMRUNUOiBgJHtVSUtleXMuUkVGTEVDVH0uYW5ndWxhci5gLFxuICBEWU5BTUlDOiAnZHluYW1pYy1jb21wb25lbnQnLFxuICBBTk5PVEFUSU9OUzogJ19fYW5ub3RhdGlvbnNfXycsXG4gIEVDTVA6ICdlY21wJyxcbiAgTkdfUkVGTEVDVDogJ25nLXJlZmxlY3QtJyxcbiAgUkVOREVSRUQ6ICdyZW5kZXJlZC1hcy0nLFxuICBNQVBQRVI6ICdtYXBwZXInLFxuICBDSElMRFJFTjogJ2NoaWxkcmVuJyxcbiAgTElTVEFCTEU6ICdsaXN0YWJsZScsXG4gIFJFTkRFUjogJ3JlbmRlcicsXG4gIFJFTkRFUkVEX0lEOiAncmVuZGVyZWQtYXMtezB9JyxcbiAgUEFSRU5UOiAnX3BhcmVudCcsXG4gIFZBTElEQVRJT05fUEFSRU5UX0tFWTogVkFMSURBVElPTl9QQVJFTlRfS0VZXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBGb3JtIHZhbGlkYXRpb24gc3RhdGUgY29uc3RhbnRzXG4gKiBAc3VtbWFyeSBDb250YWlucyBjb25zdGFudHMgcmVwcmVzZW50aW5nIHRoZSBwb3NzaWJsZSB2YWxpZGF0aW9uIHN0YXRlcyBvZiBhIGZvcm0uXG4gKiBUaGVzZSBhcmUgdXNlZCB0byBjaGVjayBhbmQgaGFuZGxlIGZvcm0gdmFsaWRhdGlvbiB0aHJvdWdob3V0IHRoZSBhcHBsaWNhdGlvbi5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IEZvcm1Db25zdGFudHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBWQUxJRCAtIENvbnN0YW50IHJlcHJlc2VudGluZyBhIHZhbGlkIGZvcm0gc3RhdGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBJTlZBTElEIC0gQ29uc3RhbnQgcmVwcmVzZW50aW5nIGFuIGludmFsaWQgZm9ybSBzdGF0ZVxuICogQGNvbnN0IEZvcm1Db25zdGFudHNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBjb25zdCBGb3JtQ29uc3RhbnRzID0ge1xuICBWQUxJRDogJ1ZBTElEJyxcbiAgSU5WQUxJRDogJ0lOVkFMSUQnLFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXZlbnQgbmFtZSBjb25zdGFudHNcbiAqIEBzdW1tYXJ5IEVudW0gY29udGFpbmluZyBjb25zdGFudHMgZm9yIGV2ZW50IG5hbWVzIHVzZWQgdGhyb3VnaG91dCB0aGUgYXBwbGljYXRpb24uXG4gKiBUaGVzZSBhcmUgdXNlZCB0byBzdGFuZGFyZGl6ZSBldmVudCBuYW1pbmcgYW5kIGhhbmRsaW5nLlxuICogQGVudW0ge3N0cmluZ31cbiAqIEByZWFkb25seVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEJBQ0tfQlVUVE9OX05BVklHQVRJT04gLSBFdmVudCBmaXJlZCB3aGVuIGJhY2sgYnV0dG9uIG5hdmlnYXRpb24gZW5kc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFRlJFU0hfRVZFTlQgLSBFdmVudCBmaXJlZCB3aGVuIGEgcmVmcmVzaCBhY3Rpb24gb2NjdXJzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQ0xJQ0tfRVZFTlQgLSBFdmVudCBmaXJlZCB3aGVuIGEgY2xpY2sgYWN0aW9uIG9jY3Vyc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFNVQk1JVF9FVkVOVCAtIEV2ZW50IGZpcmVkIHdoZW4gYSBmb3JtIHN1Ym1pc3Npb24gb2NjdXJzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgZW51bSBFdmVudENvbnN0YW50cyB7XG4gIEJBQ0tfQlVUVE9OX05BVklHQVRJT04gPSAnYmFja0J1dHRvbk5hdmlnYXRpb25FbmRFdmVudCcsXG4gIFJFRlJFU0hfRVZFTlQgPSAnUmVmcmVzaEV2ZW50JyxcbiAgQ0xJQ0tfRVZFTlQgPSAnQ2xpY2tFdmVudCcsXG4gIFNVQk1JVF9FVkVOVCA9ICdTdWJtaXRFdmVudCcsXG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIExvZ2dlciBsZXZlbCBjb25zdGFudHNcbiAqIEBzdW1tYXJ5IEVudW0gZGVmaW5pbmcgdGhlIGxvZ2dpbmcgbGV2ZWxzIHVzZWQgaW4gdGhlIGFwcGxpY2F0aW9uJ3MgbG9nZ2luZyBzeXN0ZW0uXG4gKiBMb3dlciB2YWx1ZXMgcmVwcmVzZW50IG1vcmUgdmVyYm9zZSBsb2dnaW5nLCB3aGlsZSBoaWdoZXIgdmFsdWVzIHJlcHJlc2VudCBtb3JlIGNyaXRpY2FsIGxvZ3MuXG4gKiBAZW51bSB7bnVtYmVyfVxuICogQHJlYWRvbmx5XG4gKiBAcHJvcGVydHkge251bWJlcn0gQUxMIC0gTG9nIGV2ZXJ5dGhpbmcgKG1vc3QgdmVyYm9zZSlcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBERUJVRyAtIExvZyBkZWJ1ZyBpbmZvcm1hdGlvblxuICogQHByb3BlcnR5IHtudW1iZXJ9IElORk8gLSBMb2cgaW5mb3JtYXRpb25hbCBtZXNzYWdlc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IFdBUk4gLSBMb2cgd2FybmluZ3NcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBFUlJPUiAtIExvZyBlcnJvcnNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBDUklUSUNBTCAtIExvZyBjcml0aWNhbCBlcnJvcnMgKGxlYXN0IHZlcmJvc2UpXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgZW51bSBMb2dnZXJMZXZlbHMge1xuICBBTEwgPSAwLFxuICBERUJVRyA9IDEsXG4gIElORk8gPSAyLFxuICBXQVJOID0gMyxcbiAgRVJST1IgPSA0LFxuICBDUklUSUNBTCA9IDVcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJvdXRlIGRpcmVjdGlvbiBjb25zdGFudHNcbiAqIEBzdW1tYXJ5IEVudW0gZGVmaW5pbmcgdGhlIHBvc3NpYmxlIG5hdmlnYXRpb24gZGlyZWN0aW9ucyBpbiB0aGUgYXBwbGljYXRpb24uXG4gKiBVc2VkIGZvciBjb250cm9sbGluZyBuYXZpZ2F0aW9uIGZsb3cgYW5kIGFuaW1hdGlvbiBkaXJlY3Rpb25zLlxuICogQGVudW0ge3N0cmluZ31cbiAqIEByZWFkb25seVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEJBQ0sgLSBOYXZpZ2F0ZSBiYWNrIHRvIHRoZSBwcmV2aW91cyBwYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRk9SV0FSRCAtIE5hdmlnYXRlIGZvcndhcmQgdG8gdGhlIG5leHQgcGFnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJPT1QgLSBOYXZpZ2F0ZSB0byB0aGUgcm9vdC9ob21lIHBhZ2VcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBlbnVtIFJvdXRlRGlyZWN0aW9ucyB7XG4gIEJBQ0sgPSAnYmFjaycsXG4gIEZPUldBUkQgPSAnZm9yd2FyZCcsXG4gIFJPT1QgPSAncm9vdCcsXG59XG5cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50IHRhZyBuYW1lIGNvbnN0YW50c1xuICogQHN1bW1hcnkgRW51bSBkZWZpbmluZyB0aGUgdGFnIG5hbWVzIGZvciBjdXN0b20gY29tcG9uZW50cyB1c2VkIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqIFRoZXNlIHRhZyBuYW1lcyBhcmUgdXNlZCBmb3IgY29tcG9uZW50IHJlZ2lzdHJhdGlvbiBhbmQgcmVuZGVyaW5nLlxuICogQGVudW0ge3N0cmluZ31cbiAqIEByZWFkb25seVxuICogQHByb3BlcnR5IHtzdHJpbmd9IExJU1RfSVRFTSAtIFRhZyBuYW1lIGZvciBsaXN0IGl0ZW0gY29tcG9uZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ30gTElTVF9JTkZJTklURSAtIFRhZyBuYW1lIGZvciBpbmZpbml0ZSBzY3JvbGxpbmcgbGlzdCBjb21wb25lbnRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBMSVNUX1BBR0lOQVRFRCAtIFRhZyBuYW1lIGZvciBwYWdpbmF0ZWQgbGlzdCBjb21wb25lbnRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBlbnVtIENvbXBvbmVudHNUYWdOYW1lcyB7XG4gIExJU1RfSVRFTSA9ICduZ3gtZGVjYWYtbGlzdC1pdGVtJyxcbiAgTElTVF9JTkZJTklURSA9ICduZ3gtZGVjYWYtbGlzdC1pbmZpbml0ZScsXG4gIExJU1RfUEFHSU5BVEVEID0gJ25neC1kZWNhZi1saXN0LXBhZ2luYXRlZCcsXG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2UgY29tcG9uZW50IHByb3BlcnR5IG5hbWUgY29uc3RhbnRzXG4gKiBAc3VtbWFyeSBFbnVtIGRlZmluaW5nIHRoZSBzdGFuZGFyZCBwcm9wZXJ0eSBuYW1lcyB1c2VkIGJ5IGJhc2UgY29tcG9uZW50cyBpbiB0aGUgYXBwbGljYXRpb24uXG4gKiBUaGVzZSBwcm9wZXJ0eSBuYW1lcyBhcmUgdXNlZCBmb3IgY29uc2lzdGVudCBwcm9wZXJ0eSBhY2Nlc3MgYWNyb3NzIGNvbXBvbmVudHMuXG4gKiBAZW51bSB7c3RyaW5nfVxuICogQHJlYWRvbmx5XG4gKiBAcHJvcGVydHkge3N0cmluZ30gTU9ERUwgLSBQcm9wZXJ0eSBuYW1lIGZvciB0aGUgY29tcG9uZW50J3MgZGF0YSBtb2RlbFxuICogQHByb3BlcnR5IHtzdHJpbmd9IExPQ0FMRSAtIFByb3BlcnR5IG5hbWUgZm9yIGxvY2FsaXphdGlvbiBzZXR0aW5nc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFBLIC0gUHJvcGVydHkgbmFtZSBmb3IgcHJpbWFyeSBrZXlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBJVEVNUyAtIFByb3BlcnR5IG5hbWUgZm9yIGNvbGxlY3Rpb24gaXRlbXNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBST1VURSAtIFByb3BlcnR5IG5hbWUgZm9yIHJvdXRpbmcgaW5mb3JtYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBPUEVSQVRJT05TIC0gUHJvcGVydHkgbmFtZSBmb3IgYXZhaWxhYmxlIG9wZXJhdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBVSUQgLSBQcm9wZXJ0eSBuYW1lIGZvciB1bmlxdWUgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRSQU5TTEFUQUJMRSAtIFByb3BlcnR5IG5hbWUgZm9yIHRyYW5zbGF0aW9uIGZsYWdcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNQVBQRVIgLSBQcm9wZXJ0eSBuYW1lIGZvciBwcm9wZXJ0eSBtYXBwZXJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBJTklUSUFMSVpFRCAtIFByb3BlcnR5IG5hbWUgZm9yIGluaXRpYWxpemF0aW9uIHN0YXRlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgZW51bSBCYXNlQ29tcG9uZW50UHJvcHMge1xuICBNT0RFTCA9ICdtb2RlbCcsXG4gIExPQ0FMRSA9ICdsb2NhbGUnLFxuICBQSyA9ICdwaycsXG4gIElURU1TID0gJ2l0ZW1zJyxcbiAgUk9VVEUgPSAncm91dGUnLFxuICBPUEVSQVRJT05TID0gJ29wZXJhdGlvbnMnLFxuICBVSUQgPSAndWlkJyxcbiAgVFJBTlNMQVRBQkxFID0gJ3RyYW5zbGF0YWJsZScsXG4gIE1BUFBFUiA9ICdtYXBwZXInLFxuICBJTklUSUFMSVpFRCA9ICdpbml0aWFsaXplZCcsXG59XG5cblxuIl19
@@ -0,0 +1,38 @@
1
+ import { apply, metadata } from '@decaf-ts/reflection';
2
+ import { NgxRenderingEngine2 } from './NgxRenderingEngine2';
3
+ import { AngularEngineKeys } from './constants';
4
+ import { InternalError } from '@decaf-ts/db-decorators';
5
+ import { reflectComponentType } from '@angular/core';
6
+ /**
7
+ * @description Marks an Angular component as dynamically loadable
8
+ * @summary Decorator that registers an Angular component with the NgxRenderingEngine2 for dynamic loading.
9
+ * This decorator must be applied before the @Component decorator to properly extract component metadata.
10
+ * It adds metadata to the component class and registers it with the rendering engine using its selector.
11
+ * @function Dynamic
12
+ * @return {Function} A decorator function that can be applied to Angular component classes
13
+ * @mermaid
14
+ * sequenceDiagram
15
+ * participant C as Component Class
16
+ * participant D as Dynamic Decorator
17
+ * participant R as NgxRenderingEngine2
18
+ * participant M as Angular Metadata
19
+ * C->>D: Apply decorator
20
+ * D->>M: reflectComponentType()
21
+ * M-->>D: Return component metadata
22
+ * alt No metadata found
23
+ * D->>D: Throw InternalError
24
+ * else Metadata found
25
+ * D->>R: registerComponent(selector, constructor)
26
+ * D->>C: Apply metadata
27
+ * end
28
+ * @category Decorators
29
+ */
30
+ export function Dynamic() {
31
+ return apply((original) => {
32
+ const metadata = reflectComponentType(original);
33
+ if (!metadata)
34
+ throw new InternalError(`Could not find Component metadata. @Dynamic decorator must come above @Component`);
35
+ NgxRenderingEngine2.registerComponent(metadata.selector, original);
36
+ }, metadata(NgxRenderingEngine2.key(AngularEngineKeys.DYNAMIC), true));
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUUzRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLFVBQVUsT0FBTztJQUNyQixPQUFPLEtBQUssQ0FDVixDQUFDLFFBQWdCLEVBQUUsRUFBRTtRQUNuQixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxRQUF5QixDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLFFBQVE7WUFDWCxNQUFNLElBQUksYUFBYSxDQUNyQixrRkFBa0YsQ0FDbkYsQ0FBQztRQUVKLG1CQUFtQixDQUFDLGlCQUFpQixDQUNuQyxRQUFRLENBQUMsUUFBUSxFQUNqQixRQUEyQyxDQUM1QyxDQUFDO0lBQ0osQ0FBQyxFQUNELFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQ25FLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXBwbHksIG1ldGFkYXRhIH0gZnJvbSAnQGRlY2FmLXRzL3JlZmxlY3Rpb24nO1xuaW1wb3J0IHsgTmd4UmVuZGVyaW5nRW5naW5lMiB9IGZyb20gJy4vTmd4UmVuZGVyaW5nRW5naW5lMic7XG5pbXBvcnQgeyBBbmd1bGFyRW5naW5lS2V5cyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSAnQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uJztcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tICdAZGVjYWYtdHMvZGItZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyByZWZsZWN0Q29tcG9uZW50VHlwZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNYXJrcyBhbiBBbmd1bGFyIGNvbXBvbmVudCBhcyBkeW5hbWljYWxseSBsb2FkYWJsZVxuICogQHN1bW1hcnkgRGVjb3JhdG9yIHRoYXQgcmVnaXN0ZXJzIGFuIEFuZ3VsYXIgY29tcG9uZW50IHdpdGggdGhlIE5neFJlbmRlcmluZ0VuZ2luZTIgZm9yIGR5bmFtaWMgbG9hZGluZy5cbiAqIFRoaXMgZGVjb3JhdG9yIG11c3QgYmUgYXBwbGllZCBiZWZvcmUgdGhlIEBDb21wb25lbnQgZGVjb3JhdG9yIHRvIHByb3Blcmx5IGV4dHJhY3QgY29tcG9uZW50IG1ldGFkYXRhLlxuICogSXQgYWRkcyBtZXRhZGF0YSB0byB0aGUgY29tcG9uZW50IGNsYXNzIGFuZCByZWdpc3RlcnMgaXQgd2l0aCB0aGUgcmVuZGVyaW5nIGVuZ2luZSB1c2luZyBpdHMgc2VsZWN0b3IuXG4gKiBAZnVuY3Rpb24gRHluYW1pY1xuICogQHJldHVybiB7RnVuY3Rpb259IEEgZGVjb3JhdG9yIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gQW5ndWxhciBjb21wb25lbnQgY2xhc3Nlc1xuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENvbXBvbmVudCBDbGFzc1xuICogICBwYXJ0aWNpcGFudCBEIGFzIER5bmFtaWMgRGVjb3JhdG9yXG4gKiAgIHBhcnRpY2lwYW50IFIgYXMgTmd4UmVuZGVyaW5nRW5naW5lMlxuICogICBwYXJ0aWNpcGFudCBNIGFzIEFuZ3VsYXIgTWV0YWRhdGFcbiAqICAgQy0+PkQ6IEFwcGx5IGRlY29yYXRvclxuICogICBELT4+TTogcmVmbGVjdENvbXBvbmVudFR5cGUoKVxuICogICBNLS0+PkQ6IFJldHVybiBjb21wb25lbnQgbWV0YWRhdGFcbiAqICAgYWx0IE5vIG1ldGFkYXRhIGZvdW5kXG4gKiAgICAgRC0+PkQ6IFRocm93IEludGVybmFsRXJyb3JcbiAqICAgZWxzZSBNZXRhZGF0YSBmb3VuZFxuICogICAgIEQtPj5SOiByZWdpc3RlckNvbXBvbmVudChzZWxlY3RvciwgY29uc3RydWN0b3IpXG4gKiAgICAgRC0+PkM6IEFwcGx5IG1ldGFkYXRhXG4gKiAgIGVuZFxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIER5bmFtaWMoKSB7XG4gIHJldHVybiBhcHBseShcbiAgICAob3JpZ2luYWw6IG9iamVjdCkgPT4ge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSByZWZsZWN0Q29tcG9uZW50VHlwZShvcmlnaW5hbCBhcyBUeXBlPHVua25vd24+KTtcblxuICAgICAgaWYgKCFtZXRhZGF0YSlcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgYENvdWxkIG5vdCBmaW5kIENvbXBvbmVudCBtZXRhZGF0YS4gQER5bmFtaWMgZGVjb3JhdG9yIG11c3QgY29tZSBhYm92ZSBAQ29tcG9uZW50YFxuICAgICAgICApO1xuXG4gICAgICBOZ3hSZW5kZXJpbmdFbmdpbmUyLnJlZ2lzdGVyQ29tcG9uZW50KFxuICAgICAgICBtZXRhZGF0YS5zZWxlY3RvcixcbiAgICAgICAgb3JpZ2luYWwgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3Rvcjx1bmtub3duPlxuICAgICAgKTtcbiAgICB9LFxuICAgIG1ldGFkYXRhKE5neFJlbmRlcmluZ0VuZ2luZTIua2V5KEFuZ3VsYXJFbmdpbmVLZXlzLkRZTkFNSUMpLCB0cnVlKVxuICApO1xufVxuIl19
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @module engine
3
+ * @description Angular rendering engine for Decaf applications
4
+ * @summary The engine module provides core functionality for rendering Angular components
5
+ * in Decaf applications. It includes constants, decorators, rendering engines, and utility types
6
+ * that enable dynamic component creation, property mapping, and component lifecycle management.
7
+ * Key exports include {@link NgxRenderingEngine}, {@link DynamicModule}, and various decorators
8
+ * for component configuration.
9
+ */
10
+ export * from './constants';
11
+ export * from './decorators';
12
+ export * from './DynamicModule';
13
+ export * from './NgxRenderingEngine';
14
+ export * from './NgxRenderingEngine2';
15
+ export * from './types';
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGVuZ2luZVxuICogQGRlc2NyaXB0aW9uIEFuZ3VsYXIgcmVuZGVyaW5nIGVuZ2luZSBmb3IgRGVjYWYgYXBwbGljYXRpb25zXG4gKiBAc3VtbWFyeSBUaGUgZW5naW5lIG1vZHVsZSBwcm92aWRlcyBjb3JlIGZ1bmN0aW9uYWxpdHkgZm9yIHJlbmRlcmluZyBBbmd1bGFyIGNvbXBvbmVudHNcbiAqIGluIERlY2FmIGFwcGxpY2F0aW9ucy4gSXQgaW5jbHVkZXMgY29uc3RhbnRzLCBkZWNvcmF0b3JzLCByZW5kZXJpbmcgZW5naW5lcywgYW5kIHV0aWxpdHkgdHlwZXNcbiAqIHRoYXQgZW5hYmxlIGR5bmFtaWMgY29tcG9uZW50IGNyZWF0aW9uLCBwcm9wZXJ0eSBtYXBwaW5nLCBhbmQgY29tcG9uZW50IGxpZmVjeWNsZSBtYW5hZ2VtZW50LlxuICogS2V5IGV4cG9ydHMgaW5jbHVkZSB7QGxpbmsgTmd4UmVuZGVyaW5nRW5naW5lfSwge0BsaW5rIER5bmFtaWNNb2R1bGV9LCBhbmQgdmFyaW91cyBkZWNvcmF0b3JzXG4gKiBmb3IgY29tcG9uZW50IGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL0R5bmFtaWNNb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9OZ3hSZW5kZXJpbmdFbmdpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9OZ3hSZW5kZXJpbmdFbmdpbmUyJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW9uQ2hlY2tib3gsIElvbklucHV0LCBJb25TZWxlY3QsIElvblRleHRhcmVhIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgVGV4dEZpZWxkVHlwZXMgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkUHJvcGVydGllcyB9IGZyb20gJ0BkZWNhZi10cy91aS1kZWNvcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgS2V5VmFsdWUgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFbGVtZW50IHNpemUgb3B0aW9ucyBmb3IgVUkgY29tcG9uZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgcG9zc2libGUgc2l6ZSB2YWx1ZXMgdGhhdCBjYW4gYmUgYXBwbGllZCB0byBVSSBlbGVtZW50cy5cbiAqIFRoZXNlIHNpemVzIGNvbnRyb2wgdGhlIGRpbWVuc2lvbnMgYW5kIGxheW91dCBiZWhhdmlvciBvZiBjb21wb25lbnRzLlxuICogQHR5cGVkZWYgeygnc21hbGwnfCdtZWRpdW0nfCdsYXJnZSd8J3hsYXJnZSd8JzJ4bGFyZ2UnfCdhdXRvJ3wnZXhwYW5kJ3wnYmxvY2snKX0gRWxlbWVudFNpemVzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBFbGVtZW50U2l6ZXMgPVxuICB8ICdzbWFsbCdcbiAgfCAnbWVkaXVtJ1xuICB8ICdsYXJnZSdcbiAgfCAneGxhcmdlJ1xuICB8ICcyeGxhcmdlJ1xuICB8ICdhdXRvJ1xuICB8ICdleHBhbmQnXG4gIHwgJ2Jsb2NrJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzaWMgcG9zaXRpb24gb3B0aW9ucyBmb3IgVUkgZWxlbWVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHBvc3NpYmxlIHBvc2l0aW9uIHZhbHVlcyB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIFVJIGVsZW1lbnRzLlxuICogVGhlc2UgcG9zaXRpb25zIGNvbnRyb2wgdGhlIGFsaWdubWVudCBhbmQgcGxhY2VtZW50IG9mIGNvbXBvbmVudHMuXG4gKiBAdHlwZWRlZiB7KCdsZWZ0J3wnY2VudGVyJ3wncmlnaHQnfCd0b3AnfCdib3R0b20nKX0gRWxlbWVudFBvc2l0aW9uc1xuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgRWxlbWVudFBvc2l0aW9ucyA9ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEV4dGVuZGVkIHBvc2l0aW9uIG9wdGlvbnMgZm9yIGZsZXggbGF5b3V0c1xuICogQHN1bW1hcnkgRXh0ZW5kcyB0aGUgYmFzaWMgRWxlbWVudFBvc2l0aW9ucyB3aXRoIGFkZGl0aW9uYWwgZmxleC1zcGVjaWZpYyBwb3NpdGlvbiB2YWx1ZXMuXG4gKiBUaGVzZSBwb3NpdGlvbnMgYXJlIHVzZWQgZm9yIGNvbnRyb2xsaW5nIGFsaWdubWVudCBhbmQgZGlzdHJpYnV0aW9uIGluIGZsZXggY29udGFpbmVycy5cbiAqIEB0eXBlZGVmIHsoRWxlbWVudFBvc2l0aW9uc3wnc3RyZXRjaCd8J21pZGRsZSd8J2Fyb3VuZCd8J2JldHdlZW4nKX0gRmxleFBvc2l0aW9uc1xuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgRmxleFBvc2l0aW9ucyA9XG4gIHwgRWxlbWVudFBvc2l0aW9uc1xuICB8ICdzdHJldGNoJ1xuICB8ICdtaWRkbGUnXG4gIHwgJ2Fyb3VuZCdcbiAgfCAnYmV0d2Vlbic7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFVwZGF0ZSBtb2RlIG9wdGlvbnMgZm9yIGZvcm0gZmllbGRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHdoZW4gZm9ybSBmaWVsZCB2YWx1ZXMgc2hvdWxkIGJlIHVwZGF0ZWQgaW4gdGhlIG1vZGVsLlxuICogLSAnY2hhbmdlJzogVXBkYXRlIG9uIGV2ZXJ5IGNoYW5nZSBldmVudFxuICogLSAnYmx1cic6IFVwZGF0ZSB3aGVuIHRoZSBmaWVsZCBsb3NlcyBmb2N1c1xuICogLSAnc3VibWl0JzogVXBkYXRlIG9ubHkgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWRcbiAqIEB0eXBlZGVmIHsoJ2NoYW5nZSd8J2JsdXInfCdzdWJtaXQnKX0gRmllbGRVcGRhdGVNb2RlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBGaWVsZFVwZGF0ZU1vZGUgPSAnY2hhbmdlJyB8ICdibHVyJyB8ICdzdWJtaXQnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNZXRhZGF0YSBzdHJ1Y3R1cmUgZm9yIEFuZ3VsYXIgY29tcG9uZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIG1ldGFkYXRhIGZvciBBbmd1bGFyIGNvbXBvbmVudHMsIGluY2x1ZGluZ1xuICogY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSwgc2VsZWN0b3IsIHN0YW5kYWxvbmUgc3RhdHVzLCBpbXBvcnRzLCB0ZW1wbGF0ZSwgYW5kIHN0eWxlcy5cbiAqIFRoaXMgaXMgdXNlZCBmb3IgcmVmbGVjdGlvbiBhbmQgZHluYW1pYyBjb21wb25lbnQgY3JlYXRpb24uXG4gKiBAaW50ZXJmYWNlIENvbXBvbmVudE1ldGFkYXRhXG4gKiBAcHJvcGVydHkge251bWJlcn0gY2hhbmdlRGV0ZWN0aW9uIC0gVGhlIGNoYW5nZSBkZXRlY3Rpb24gc3RyYXRlZ3kgbnVtYmVyXG4gKiBAcHJvcGVydHkge3N0cmluZ30gc2VsZWN0b3IgLSBUaGUgQ1NTIHNlbGVjdG9yIGZvciB0aGUgY29tcG9uZW50XG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHN0YW5kYWxvbmUgLSBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgc3RhbmRhbG9uZVxuICogQHByb3BlcnR5IGltcG9ydHMgLSBBcnJheSBvZiBpbXBvcnRlZCBtb2R1bGVzL2NvbXBvbmVudHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0ZW1wbGF0ZSAtIFRoZSBIVE1MIHRlbXBsYXRlIGZvciB0aGUgY29tcG9uZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBzdHlsZXMgLSBBcnJheSBvZiBDU1Mgc3R5bGVzIGZvciB0aGUgY29tcG9uZW50XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudE1ldGFkYXRhIHtcbiAgY2hhbmdlRGV0ZWN0aW9uOiBudW1iZXI7XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIHN0YW5kYWxvbmU6IGJvb2xlYW47XG4gIGltcG9ydHM6IChuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bilbXTtcbiAgdGVtcGxhdGU6IHN0cmluZztcbiAgc3R5bGVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3V0cHV0IHN0cnVjdHVyZSBmcm9tIHRoZSBBbmd1bGFyIHJlbmRlcmluZyBlbmdpbmVcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgb3V0cHV0IHByb2R1Y2VkIGJ5IHRoZSBOZ3hSZW5kZXJpbmdFbmdpbmVcbiAqIHdoZW4gcmVuZGVyaW5nIGEgY29tcG9uZW50LiBDb250YWlucyB0aGUgY29tcG9uZW50IHR5cGUsIGlucHV0cywgaW5qZWN0b3IsXG4gKiBjb250ZW50IG5vZGVzLCBhbmQgY2hpbGQgY29tcG9uZW50cy5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IEFuZ3VsYXJEeW5hbWljT3V0cHV0XG4gKiBAcHJvcGVydHkge1R5cGU8dW5rbm93bj59IGNvbXBvbmVudCAtIFRoZSBBbmd1bGFyIGNvbXBvbmVudCB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3JlbmRlcmVySWRdIC0gT3B0aW9uYWwgdW5pcXVlIElEIGZvciB0aGUgcmVuZGVyZWQgY29tcG9uZW50XG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSBbaW5wdXRzXSAtIE9wdGlvbmFsIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoZSBjb21wb25lbnRcbiAqIEBwcm9wZXJ0eSB7SW5qZWN0b3J9IFtpbmplY3Rvcl0gLSBPcHRpb25hbCBBbmd1bGFyIGluamVjdG9yIGZvciBkZXBlbmRlbmN5IGluamVjdGlvblxuICogQHByb3BlcnR5IHtOb2RlW11bXX0gW2NvbnRlbnRdIC0gT3B0aW9uYWwgY29udGVudCBub2RlcyBmb3IgcHJvamVjdGlvblxuICogQHByb3BlcnR5IHtBbmd1bGFyRHluYW1pY091dHB1dFtdfSBbY2hpbGRyZW5dIC0gT3B0aW9uYWwgY2hpbGQgY29tcG9uZW50c1xuICogQHByb3BlcnR5IHtUeXBlPHVua25vd24+fSBbaW5zdGFuY2VdIC0gT3B0aW9uYWwgY29tcG9uZW50IGluc3RhbmNlXG4gKiBAcHJvcGVydHkge0Zvcm1Hcm91cH0gW2Zvcm1Hcm91cF0gLSBPcHRpb25hbCBjb21wb25lbnQgRm9ybUdyb3VwXG4gKiBAcHJvcGVydHkge0Zvcm1Db250cm9sfSBbZm9ybUNvbnRyb2xdIC0gT3B0aW9uYWwgY29tcG9uZW50IEZvcm1Db250cm9sXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJEeW5hbWljT3V0cHV0IHtcbiAgY29tcG9uZW50OiBUeXBlPHVua25vd24+O1xuICByZW5kZXJlcklkPzogc3RyaW5nO1xuICBpbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaW5qZWN0b3I/OiBJbmplY3RvcjtcbiAgY29udGVudD86IE5vZGVbXVtdO1xuICBjaGlsZHJlbj86IEFuZ3VsYXJEeW5hbWljT3V0cHV0W107XG4gIGluc3RhbmNlPzogVHlwZTx1bmtub3duPjtcbiAgZm9ybUdyb3VwPzogRm9ybUdyb3VwO1xuICBmb3JtQ29udHJvbD86IEZvcm1Db250cm9sO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIG1vZGVscyB0aGF0IGNhbiBiZSByZW5kZXJlZFxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgYmFzaWMgc3RydWN0dXJlIGZvciBtb2RlbHMgdGhhdCBjYW4gYmUgcmVuZGVyZWQgYnkgdGhlIGVuZ2luZS5cbiAqIENvbnRhaW5zIGFuIG9wdGlvbmFsIHJlbmRlcmVySWQgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSByZW5kZXJlZCBpbnN0YW5jZS5cbiAqIEBpbnRlcmZhY2UgUmVuZGVyZWRNb2RlbFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZW5kZXJlcklkXSAtIE9wdGlvbmFsIHVuaXF1ZSBJRCBmb3IgdGhlIHJlbmRlcmVkIG1vZGVsIGluc3RhbmNlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlcmVkTW9kZWwge1xuICByZW5kZXJlcklkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBQb3NzaWJsZSBpbnB1dCB0eXBlcyBmb3IgZm9ybSBmaWVsZHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHBvc3NpYmxlIGlucHV0IHR5cGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gZm9ybSBmaWVsZHMuXG4gKiBJbmNsdWRlcyBzdGFuZGFyZCBIVE1MIGlucHV0IHR5cGVzIGxpa2UgY2hlY2tib3gsIHJhZGlvLCBhbmQgc2VsZWN0LFxuICogYXMgd2VsbCBhcyBJb25pYydzIFRleHRGaWVsZFR5cGVzIGFuZCB0ZXh0YXJlYS5cbiAqIEB0eXBlZGVmIHsoJ2NoZWNrYm94J3wncmFkaW8nfCdzZWxlY3QnfFRleHRGaWVsZFR5cGVzfCd0ZXh0YXJlYScpfSBQb3NzaWJsZUlucHV0VHlwZXNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIFBvc3NpYmxlSW5wdXRUeXBlcyA9XG4gIHwgJ2NoZWNrYm94J1xuICB8ICdyYWRpbydcbiAgfCAnc2VsZWN0J1xuICB8IFRleHRGaWVsZFR5cGVzXG4gIHwgJ3RleHRhcmVhJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRmllbGQgZGVmaW5pdGlvbiBmb3IgQW5ndWxhciBjb21wb25lbnRzXG4gKiBAc3VtbWFyeSBBIGNvbXByZWhlbnNpdmUgdHlwZSB0aGF0IGNvbWJpbmVzIHByb3BlcnRpZXMgZnJvbSB2YXJpb3VzIElvbmljIGNvbXBvbmVudHNcbiAqIHRvIGRlZmluZSB0aGUgc3RydWN0dXJlIG9mIGEgZmllbGQgaW4gYW4gQW5ndWxhciBmb3JtLiBJdCBvbWl0cyBjZXJ0YWluIHByb3BlcnRpZXNcbiAqIGZyb20gSW9uSW5wdXQsIHBpY2tzIHNwZWNpZmljIHByb3BlcnRpZXMgZnJvbSBJb25TZWxlY3QsIElvblRleHRhcmVhLCBhbmQgSW9uQ2hlY2tib3gsXG4gKiBhbmQgYWRkcyBjdXN0b20gcHJvcGVydGllcyBsaWtlIHR5cGUgYW5kIGNsYXNzTmFtZS5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IEFuZ3VsYXJGaWVsZERlZmluaXRpb25cbiAqIEBwcm9wZXJ0eSB7UG9zc2libGVJbnB1dFR5cGVzfSB0eXBlIC0gVGhlIHR5cGUgb2YgaW5wdXQgZmllbGRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfHN0cmluZ1tdfSBjbGFzc05hbWUgLSBDU1MgY2xhc3MgbmFtZShzKSBmb3IgdGhlIGZpZWxkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2NhbmNlbFRleHRdIC0gVGV4dCBmb3IgdGhlIGNhbmNlbCBidXR0b24gKGZyb20gSW9uU2VsZWN0KVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtpbnRlcmZhY2VdIC0gSW50ZXJmYWNlIHN0eWxlIGZvciBzZWxlY3QgKGZyb20gSW9uU2VsZWN0KVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtzZWxlY3RlZFRleHRdIC0gVGV4dCBmb3Igc2VsZWN0ZWQgb3B0aW9uIChmcm9tIElvblNlbGVjdClcbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBbaW50ZXJmYWNlT3B0aW9uc10gLSBPcHRpb25zIGZvciB0aGUgaW50ZXJmYWNlIChmcm9tIElvblNlbGVjdClcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbcm93c10gLSBOdW1iZXIgb2Ygcm93cyBmb3IgdGV4dGFyZWEgKGZyb20gSW9uVGV4dGFyZWEpXG4gKiBAcHJvcGVydHkge251bWJlcn0gW2NvbHNdIC0gTnVtYmVyIG9mIGNvbHVtbnMgZm9yIHRleHRhcmVhIChmcm9tIElvblRleHRhcmVhKVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFthbGlnbm1lbnRdIC0gQWxpZ25tZW50IG9mIGNoZWNrYm94IChmcm9tIElvbkNoZWNrYm94KVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtqdXN0aWZ5XSAtIEp1c3RpZmljYXRpb24gb2YgY2hlY2tib3ggKGZyb20gSW9uQ2hlY2tib3gpXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtjaGVja2VkXSAtIFdoZXRoZXIgY2hlY2tib3ggaXMgY2hlY2tlZCAoZnJvbSBJb25DaGVja2JveClcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIEFuZ3VsYXJGaWVsZERlZmluaXRpb24gPSBPbWl0PFxuICBJb25JbnB1dCxcbiAgfCAnaW9uSW5wdXQnXG4gIHwgJ2lvbkZvY3VzJ1xuICB8ICdpb25DaGFuZ2UnXG4gIHwgJ2lvbkJsdXInXG4gIHwgJ2dldElucHV0RWxlbWVudCdcbiAgfCAnc2V0Rm9jdXMnXG4gIHwgJ2xhYmVsJ1xuICB8ICdlbCdcbiAgfCAneidcbiAgfCAndHlwZSdcbj4gJlxuICBQaWNrPFxuICAgIElvblNlbGVjdCxcbiAgICAnY2FuY2VsVGV4dCcgfCAnaW50ZXJmYWNlJyB8ICdzZWxlY3RlZFRleHQnIHwgJ2ludGVyZmFjZU9wdGlvbnMnXG4gID4gJlxuICBQaWNrPElvblRleHRhcmVhLCAncm93cycgfCAnY29scyc+ICZcbiAgUGljazxJb25DaGVja2JveCwgJ2FsaWdubWVudCcgfCAnanVzdGlmeScgfCAnY2hlY2tlZCc+ICYge1xuICB0eXBlOiBQb3NzaWJsZUlucHV0VHlwZXM7XG4gIGNsYXNzTmFtZTogc3RyaW5nIHwgc3RyaW5nW107XG59ICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0cmluZyBvciBib29sZWFuIHJlcHJlc2VudGF0aW9uIG9mIGEgYm9vbGVhbiB2YWx1ZVxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIHZhbHVlIHRoYXQgY2FuIGJlIGVpdGhlciBhIGJvb2xlYW4gb3IgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBib29sZWFuLlxuICogVGhpcyBpcyB1c2VmdWwgZm9yIGhhbmRsaW5nIGF0dHJpYnV0ZSB2YWx1ZXMgdGhhdCBjYW4gYmUgc3BlY2lmaWVkIGFzIGVpdGhlciBzdHJpbmdzIG9yIGJvb2xlYW5zLlxuICogQHR5cGVkZWYgeygndHJ1ZSd8J2ZhbHNlJ3xib29sZWFuKX0gU3RyaW5nT3JCb29sZWFuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBTdHJpbmdPckJvb2xlYW4gPSAndHJ1ZScgfCAnZmFsc2UnIHwgYm9vbGVhbjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3B0aW9uIHR5cGUgZm9yIHNlbGVjdCBpbnB1dHNcbiAqIEBzdW1tYXJ5IEV4dGVuZHMgdGhlIElucHV0T3B0aW9uIGludGVyZmFjZSB3aXRoIGEgc2VsZWN0ZWQgcHJvcGVydHkgdG8gaW5kaWNhdGVcbiAqIHdoZXRoZXIgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZCBieSBkZWZhdWx0LlxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgU2VsZWN0T3B0aW9uID0gSW5wdXRPcHRpb24gJiB7IHNlbGVjdGVkPzogYm9vbGVhbiB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb24gdHlwZSBmb3IgcmFkaW8gaW5wdXRzXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBJbnB1dE9wdGlvbiBpbnRlcmZhY2Ugd2l0aCBhIGNoZWNrZWQgcHJvcGVydHkgdG8gaW5kaWNhdGVcbiAqIHdoZXRoZXIgdGhlIG9wdGlvbiBpcyBjaGVja2VkIGJ5IGRlZmF1bHQuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBSYWRpb09wdGlvbiA9IElucHV0T3B0aW9uICYgeyBjaGVja2VkPzogYm9vbGVhbiB9O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb24gdHlwZSBmb3IgY2hlY2tib3ggaW5wdXRzXG4gKiBAc3VtbWFyeSBBbGlhcyBmb3IgUmFkaW9PcHRpb24sIGFzIGNoZWNrYm94IG9wdGlvbnMgaGF2ZSB0aGUgc2FtZSBzdHJ1Y3R1cmUgYXMgcmFkaW8gb3B0aW9ucy5cbiAqIEB0eXBlZGVmIHtSYWRpb09wdGlvbn0gQ2hlY2tib3hPcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIENoZWNrYm94T3B0aW9uID0gUmFkaW9PcHRpb247XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2Ugb3B0aW9uIHR5cGUgZm9yIGlucHV0IGNvbXBvbmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGNvbW1vbiBzdHJ1Y3R1cmUgZm9yIG9wdGlvbnMgdXNlZCBpbiBzZWxlY3QsIHJhZGlvLCBhbmQgY2hlY2tib3ggaW5wdXRzLlxuICogQ29udGFpbnMgcHJvcGVydGllcyBmb3IgdGhlIGRpc3BsYXkgdGV4dCwgdmFsdWUsIGRpc2FibGVkIHN0YXRlLCBDU1MgY2xhc3MsIGFuZCBpY29uLlxuICogQGludGVyZmFjZSBJbnB1dE9wdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IHRleHQgLSBUaGUgZGlzcGxheSB0ZXh0IGZvciB0aGUgb3B0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ3xudW1iZXJ9IHZhbHVlIC0gVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgb3B0aW9uXG4gKiBAcHJvcGVydHkge1N0cmluZ09yQm9vbGVhbn0gW2Rpc2FibGVkXSAtIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBkaXNhYmxlZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtjbGFzc05hbWVdIC0gQ1NTIGNsYXNzIG5hbWUgZm9yIHN0eWxpbmcgdGhlIG9wdGlvblxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtpY29uXSAtIEljb24gdG8gZGlzcGxheSB3aXRoIHRoZSBvcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRPcHRpb24ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGRpc2FibGVkPzogU3RyaW5nT3JCb29sZWFuO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRhcmdldCBvcHRpb25zIGZvciBIVE1MIGZvcm1zXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBwb3NzaWJsZSB0YXJnZXQgdmFsdWVzIGZvciBIVE1MIGZvcm1zLCBpbmNsdWRpbmcgc3RhbmRhcmQgdGFyZ2V0c1xuICogbGlrZSAnX2JsYW5rJywgJ19zZWxmJywgJ19wYXJlbnQnLCBhbmQgJ190b3AnLCBhcyB3ZWxsIGFzIGN1c3RvbSBzdHJpbmcgdmFsdWVzLlxuICogQHR5cGVkZWYgeygnX2JsYW5rJ3wnX3NlbGYnfCdfcGFyZW50J3wnX3RvcCd8c3RyaW5nKX0gSFRNTEZvcm1UYXJnZXRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIEhUTUxGb3JtVGFyZ2V0ID0gJ19ibGFuaycgfCAnX3NlbGYnIHwgJ19wYXJlbnQnIHwgJ190b3AnIHwgc3RyaW5nO1xuXG4vLyBleHBvcnQgaW50ZXJmYWNlIElMaXN0SXRlbVByb3Age1xuLy8gICByZW5kZXI/OiBzdHJpbmcgfCBib29sZWFuO1xuLy8gICB0cmFuc2xhdGVQcm9wcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuLy8gICBidXR0b24/OiBTdHJpbmdPckJvb2xlYW47XG4vLyAgIGljb24/OiBzdHJpbmc7XG4vLyAgIGljb25TbG90PzogJ3N0YXJ0JyB8ICdlbmQnO1xuLy8gICB0aXRsZT86IHN0cmluZztcbi8vICAgZGVzY3JpdHBpb24/OiBzdHJpbmc7XG4vLyAgIGluZm8/OiBzdHJpbmc7XG4vLyAgIHN1YmluZm8/OiBzdHJpbmc7XG4vLyB9XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgbGlzdCBjb21wb25lbnQgcmVmcmVzaCBldmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBhIHJlZnJlc2ggZXZlbnQgZm9yIGxpc3QgY29tcG9uZW50cy5cbiAqIENvbnRhaW5zIGFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyByZXByZXNlbnRpbmcgdGhlIG5ldyBkYXRhIGZvciB0aGUgbGlzdC5cbiAqIEBpbnRlcmZhY2UgSUxpc3RDb21wb25lbnRSZWZyZXNoRXZlbnRcbiAqIEBwcm9wZXJ0eSB7S2V5VmFsdWVbXX0gZGF0YSAtIEFycmF5IG9mIGtleS12YWx1ZSBwYWlycyByZXByZXNlbnRpbmcgdGhlIG5ldyBkYXRhXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElMaXN0Q29tcG9uZW50UmVmcmVzaEV2ZW50IHtcbiAgZGF0YTogS2V5VmFsdWVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtU2VydmljZUNvbnRyb2wge1xuICBjb250cm9sOiBGb3JtR3JvdXA7XG4gIHByb3BzOiBBbmd1bGFyRmllbGREZWZpbml0aW9uO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUeXBlIGZvciBmb3JtIHNlcnZpY2UgY29udHJvbHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBmb3JtIGNvbnRyb2xzIG1hbmFnZWQgYnkgdGhlIGZvcm0gc2VydmljZS5cbiAqIEl0J3MgYSBuZXN0ZWQgcmVjb3JkIHdoZXJlIHRoZSBvdXRlciBrZXkgaXMgdGhlIGZvcm0gZ3JvdXAgbmFtZSwgdGhlIGlubmVyIGtleVxuICogaXMgdGhlIGNvbnRyb2wgbmFtZSwgYW5kIHRoZSB2YWx1ZSBjb250YWlucyB0aGUgZm9ybSBncm91cCBhbmQgZmllbGQgcHJvcGVydGllcy5cbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB7IGNvbnRyb2w6IEZvcm1Hcm91cDsgcHJvcHM6IEFuZ3VsYXJGaWVsZERlZmluaXRpb24gfT4+fSBGb3JtU2VydmljZUNvbnRyb2xzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBGb3JtU2VydmljZUNvbnRyb2xzID0gUmVjb3JkPFxuICBzdHJpbmcsXG4gIFJlY29yZDxzdHJpbmcsIEZvcm1TZXJ2aWNlQ29udHJvbD5cbj47XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgbW9kZWwgcmVuZGVyIGN1c3RvbSBldmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBjdXN0b20gZXZlbnRzIHRyaWdnZXJlZCBkdXJpbmcgbW9kZWwgcmVuZGVyaW5nLlxuICogQ29udGFpbnMgdGhlIGV2ZW50IGRldGFpbCwgY29tcG9uZW50IG5hbWUsIGFuZCBldmVudCBuYW1lLlxuICogQGludGVyZmFjZSBNb2RlbFJlbmRlckN1c3RvbUV2ZW50XG4gKiBAcHJvcGVydHkge0Jhc2VDdXN0b21FdmVudH0gZGV0YWlsIC0gVGhlIGRldGFpbGVkIGV2ZW50IGluZm9ybWF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsUmVuZGVyQ3VzdG9tRXZlbnQge1xuICBkZXRhaWw6IEJhc2VDdXN0b21FdmVudDtcbiAgY29tcG9uZW50OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciBsaXN0IGl0ZW0gY3VzdG9tIGV2ZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIGN1c3RvbSBldmVudHMgdHJpZ2dlcmVkIGJ5IGxpc3QgaXRlbXMuXG4gKiBFeHRlbmRzIEJhc2VDdXN0b21FdmVudCB3aXRoIGFkZGl0aW9uYWwgcHJvcGVydGllcyBmb3IgdGhlIGFjdGlvbiBhbmQgcHJpbWFyeSBrZXkuXG4gKiBAaW50ZXJmYWNlIExpc3RJdGVtQ3VzdG9tRXZlbnRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhY3Rpb24gLSBUaGUgYWN0aW9uIHBlcmZvcm1lZCBvbiB0aGUgbGlzdCBpdGVtXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3BrXSAtIE9wdGlvbmFsIHByaW1hcnkga2V5IG9mIHRoZSBhZmZlY3RlZCBpdGVtXG4gKiBAcHJvcGVydHkge2FueX0gZGF0YSAtIFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnQgKGluaGVyaXRlZCBmcm9tIEJhc2VDdXN0b21FdmVudClcbiAqIEBwcm9wZXJ0eSB7SFRNTEVsZW1lbnR9IFt0YXJnZXRdIC0gVGhlIHRhcmdldCBlbGVtZW50IChpbmhlcml0ZWQgZnJvbSBCYXNlQ3VzdG9tRXZlbnQpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW25hbWVdIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50IChpbmhlcml0ZWQgZnJvbSBCYXNlQ3VzdG9tRXZlbnQpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnQgKGluaGVyaXRlZCBmcm9tIEJhc2VDdXN0b21FdmVudClcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEl0ZW1DdXN0b21FdmVudCBleHRlbmRzIEJhc2VDdXN0b21FdmVudCB7XG4gIGFjdGlvbjogc3RyaW5nO1xuICBwaz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzZSBpbnRlcmZhY2UgZm9yIGN1c3RvbSBldmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGJhc2Ugc3RydWN0dXJlIGZvciBjdXN0b20gZXZlbnRzIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqIENvbnRhaW5zIHByb3BlcnRpZXMgZm9yIHRoZSBldmVudCBkYXRhLCB0YXJnZXQgZWxlbWVudCwgbmFtZSwgYW5kIGNvbXBvbmVudC5cbiAqIEBpbnRlcmZhY2UgQmFzZUN1c3RvbUV2ZW50XG4gKiBAcHJvcGVydHkge2FueX0gZGF0YSAtIFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnRcbiAqIEBwcm9wZXJ0eSB7SFRNTEVsZW1lbnR9IFt0YXJnZXRdIC0gVGhlIHRhcmdldCBlbGVtZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtuYW1lXSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VDdXN0b21FdmVudCB7XG4gIGRhdGE6IGFueTtcbiAgdGFyZ2V0PzogSFRNTEVsZW1lbnQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGNvbXBvbmVudDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNlIGludGVyZmFjZSBmb3IgY3VzdG9tIGV2ZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgYmFzZSBzdHJ1Y3R1cmUgZm9yIGN1c3RvbSBldmVudHMgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICogQ29udGFpbnMgcHJvcGVydGllcyBmb3IgdGhlIGV2ZW50IGRhdGEsIHRhcmdldCBlbGVtZW50LCBuYW1lLCBhbmQgY29tcG9uZW50LlxuICogQGludGVyZmFjZSBCYXNlQ3VzdG9tRXZlbnRcbiAqIEBwcm9wZXJ0eSB7YW55fSBkYXRhIC0gVGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudFxuICogQHByb3BlcnR5IHtIVE1MRWxlbWVudH0gW3RhcmdldF0gLSBUaGUgdGFyZ2V0IGVsZW1lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ30gW25hbWVdIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIENydWRGb3JtRXZlbnQgPSBCYXNlQ3VzdG9tRXZlbnQgJiB7XG4gIGhhbmRsZXJzPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn07Ly8gZXhwb3J0IHR5cGUgQ3J1ZEZvcm1FdmVudCA9IEJhc2VDdXN0b21FdmVudCAmIHtoYW5kbGVycz86IFJlY29yZDxzdHJpbmcsICguLi5hcmdzOiBhbnlbXSkgPT4gYW55IHwgUHJvbWlzZTxhbnk+Pn1cblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50SW5wdXQgZXh0ZW5kcyBGaWVsZFByb3BlcnRpZXMge1xuICB1cGRhdGVNb2RlPzogRmllbGRVcGRhdGVNb2RlO1xuICBmb3JtR3JvdXA/OiBGb3JtR3JvdXA7XG4gIGZvcm1Db250cm9sPzogRm9ybUNvbnRyb2w7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50Q29uZmlnIHtcbiAgY29tcG9uZW50OiBzdHJpbmc7XG4gIGlucHV0czogQ29tcG9uZW50SW5wdXQ7XG4gIGluamVjdG9yOiBhbnk7XG4gIGNoaWxkcmVuPzogQ29tcG9uZW50Q29uZmlnW107XG59XG5cbmV4cG9ydCB0eXBlIEZvcm1QYXJlbnRHcm91cCA9IFtGb3JtR3JvdXAsICBzdHJpbmddO1xuXG4iXX0=
@@ -0,0 +1,118 @@
1
+ import { NgModule, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IonApp, IonRouterOutlet, IonSplitPane, IonImg, IonContent, IonText, IonButton, IonRouterLink, IonTitle } from '@ionic/angular/standalone';
4
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
+ import { TranslateModule, TranslatePipe } from '@ngx-translate/core';
6
+ import { Logging } from '@decaf-ts/logging';
7
+ import * as i0 from "@angular/core";
8
+ const ComponentsAndModules = [
9
+ IonApp,
10
+ IonRouterOutlet,
11
+ IonSplitPane,
12
+ IonImg,
13
+ IonText,
14
+ IonTitle,
15
+ IonButton,
16
+ IonRouterLink,
17
+ IonContent,
18
+ CommonModule,
19
+ FormsModule,
20
+ ReactiveFormsModule,
21
+ TranslateModule,
22
+ TranslatePipe,
23
+ ];
24
+ const log = Logging.for("for-angular");
25
+ export function getLogger(instance) {
26
+ return log.for(instance);
27
+ }
28
+ /**
29
+ * @description Main Angular module for the Decaf framework
30
+ * @summary The ForAngularModule provides the core functionality for integrating Decaf with Angular applications.
31
+ * It imports and exports common Angular and Ionic components and modules needed for Decaf applications,
32
+ * including form handling, translation support, and Ionic UI components. This module can be imported
33
+ * directly or via the forRoot() method for proper initialization in the application's root module.
34
+ *
35
+ * @class ForAngularModule
36
+ * @example
37
+ * ```typescript
38
+ * // In your app module:
39
+ * @NgModule({
40
+ * imports: [
41
+ * ForAngularModule.forRoot(),
42
+ * // other imports
43
+ * ],
44
+ * // ...
45
+ * })
46
+ * export class AppModule {}
47
+ * ```
48
+ */
49
+ export class ForAngularModule {
50
+ /**
51
+ * @description Creates a module with providers for root module import
52
+ * @summary This static method provides the proper way to import the ForAngularModule in the application's
53
+ * root module. It returns a ModuleWithProviders object that includes the ForAngularModule itself.
54
+ * Using forRoot() ensures that the module and its providers are properly initialized and only
55
+ * instantiated once in the application.
56
+ *
57
+ * @return {ModuleWithProviders<ForAngularModule>} The module with its providers
58
+ */
59
+ static forRoot() {
60
+ return {
61
+ ngModule: ForAngularModule,
62
+ };
63
+ }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
65
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ForAngularModule, imports: [IonApp,
66
+ IonRouterOutlet,
67
+ IonSplitPane,
68
+ IonImg,
69
+ IonText,
70
+ IonTitle,
71
+ IonButton,
72
+ IonRouterLink,
73
+ IonContent,
74
+ CommonModule,
75
+ FormsModule,
76
+ ReactiveFormsModule,
77
+ TranslateModule,
78
+ TranslatePipe], exports: [IonApp,
79
+ IonRouterOutlet,
80
+ IonSplitPane,
81
+ IonImg,
82
+ IonText,
83
+ IonTitle,
84
+ IonButton,
85
+ IonRouterLink,
86
+ IonContent,
87
+ CommonModule,
88
+ FormsModule,
89
+ ReactiveFormsModule,
90
+ TranslateModule,
91
+ TranslatePipe] }); }
92
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForAngularModule, imports: [IonApp,
93
+ IonRouterOutlet,
94
+ IonSplitPane,
95
+ IonImg,
96
+ IonText,
97
+ IonTitle,
98
+ IonButton,
99
+ IonContent,
100
+ CommonModule,
101
+ FormsModule,
102
+ ReactiveFormsModule,
103
+ TranslateModule,
104
+ CommonModule,
105
+ FormsModule,
106
+ ReactiveFormsModule,
107
+ TranslateModule] }); }
108
+ }
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForAngularModule, decorators: [{
110
+ type: NgModule,
111
+ args: [{
112
+ imports: ComponentsAndModules,
113
+ declarations: [],
114
+ exports: ComponentsAndModules,
115
+ schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],
116
+ }]
117
+ }] });
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLWFuZ3VsYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9mb3ItYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBdUIsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUNmLFlBQVksRUFDWixNQUFNLEVBQ04sVUFBVSxFQUNWLE9BQU8sRUFDUCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFFBQVEsRUFDVCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBVSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFcEQsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixNQUFNO0lBQ04sZUFBZTtJQUNmLFlBQVk7SUFDWixNQUFNO0lBQ04sT0FBTztJQUNQLFFBQVE7SUFDUixTQUFTO0lBQ1QsYUFBYTtJQUNiLFVBQVU7SUFDVixZQUFZO0lBQ1osV0FBVztJQUNYLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsYUFBYTtDQUNkLENBQUM7QUFFRixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZDLE1BQU0sVUFBVSxTQUFTLENBQUMsUUFBeUI7SUFDakQsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQWUsQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGdCQUFnQjtTQUMzQixDQUFDO0lBQ0osQ0FBQzsrR0FkVSxnQkFBZ0I7Z0hBQWhCLGdCQUFnQixZQWhEM0IsTUFBTTtZQUNOLGVBQWU7WUFDZixZQUFZO1lBQ1osTUFBTTtZQUNOLE9BQU87WUFDUCxRQUFRO1lBQ1IsU0FBUztZQUNULGFBQWE7WUFDYixVQUFVO1lBQ1YsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGFBQWEsYUFiYixNQUFNO1lBQ04sZUFBZTtZQUNmLFlBQVk7WUFDWixNQUFNO1lBQ04sT0FBTztZQUNQLFFBQVE7WUFDUixTQUFTO1lBQ1QsYUFBYTtZQUNiLFVBQVU7WUFDVixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsYUFBYTtnSEFtQ0YsZ0JBQWdCLFlBaEQzQixNQUFNO1lBQ04sZUFBZTtZQUNmLFlBQVk7WUFDWixNQUFNO1lBQ04sT0FBTztZQUNQLFFBQVE7WUFDUixTQUFTO1lBRVQsVUFBVTtZQUNWLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFIZixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlOzs0RkFvQ0osZ0JBQWdCO2tCQU41QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTW9kdWxlV2l0aFByb3ZpZGVycywgTk9fRVJST1JTX1NDSEVNQX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgSW9uQXBwLFxuICBJb25Sb3V0ZXJPdXRsZXQsXG4gIElvblNwbGl0UGFuZSxcbiAgSW9uSW1nLFxuICBJb25Db250ZW50LFxuICBJb25UZXh0LFxuICBJb25CdXR0b24sXG4gIElvblJvdXRlckxpbmssXG4gIElvblRpdGxlXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IExvZ2dlciwgTG9nZ2luZyB9IGZyb20gJ0BkZWNhZi10cy9sb2dnaW5nJztcblxuY29uc3QgQ29tcG9uZW50c0FuZE1vZHVsZXMgPSBbXG4gIElvbkFwcCxcbiAgSW9uUm91dGVyT3V0bGV0LFxuICBJb25TcGxpdFBhbmUsXG4gIElvbkltZyxcbiAgSW9uVGV4dCxcbiAgSW9uVGl0bGUsXG4gIElvbkJ1dHRvbixcbiAgSW9uUm91dGVyTGluayxcbiAgSW9uQ29udGVudCxcbiAgQ29tbW9uTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVHJhbnNsYXRlTW9kdWxlLFxuICBUcmFuc2xhdGVQaXBlLFxuXTtcblxuY29uc3QgbG9nID0gTG9nZ2luZy5mb3IoXCJmb3ItYW5ndWxhclwiKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2dnZXIoaW5zdGFuY2U6IG9iamVjdCB8IHN0cmluZyk6IExvZ2dlciB7XG4gIHJldHVybiBsb2cuZm9yKGluc3RhbmNlIGFzIGFueSk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE1haW4gQW5ndWxhciBtb2R1bGUgZm9yIHRoZSBEZWNhZiBmcmFtZXdvcmtcbiAqIEBzdW1tYXJ5IFRoZSBGb3JBbmd1bGFyTW9kdWxlIHByb3ZpZGVzIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgZm9yIGludGVncmF0aW5nIERlY2FmIHdpdGggQW5ndWxhciBhcHBsaWNhdGlvbnMuXG4gKiBJdCBpbXBvcnRzIGFuZCBleHBvcnRzIGNvbW1vbiBBbmd1bGFyIGFuZCBJb25pYyBjb21wb25lbnRzIGFuZCBtb2R1bGVzIG5lZWRlZCBmb3IgRGVjYWYgYXBwbGljYXRpb25zLFxuICogaW5jbHVkaW5nIGZvcm0gaGFuZGxpbmcsIHRyYW5zbGF0aW9uIHN1cHBvcnQsIGFuZCBJb25pYyBVSSBjb21wb25lbnRzLiBUaGlzIG1vZHVsZSBjYW4gYmUgaW1wb3J0ZWRcbiAqIGRpcmVjdGx5IG9yIHZpYSB0aGUgZm9yUm9vdCgpIG1ldGhvZCBmb3IgcHJvcGVyIGluaXRpYWxpemF0aW9uIGluIHRoZSBhcHBsaWNhdGlvbidzIHJvb3QgbW9kdWxlLlxuICpcbiAqIEBjbGFzcyBGb3JBbmd1bGFyTW9kdWxlXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4geW91ciBhcHAgbW9kdWxlOlxuICogQE5nTW9kdWxlKHtcbiAqICAgaW1wb3J0czogW1xuICogICAgIEZvckFuZ3VsYXJNb2R1bGUuZm9yUm9vdCgpLFxuICogICAgIC8vIG90aGVyIGltcG9ydHNcbiAqICAgXSxcbiAqICAgLy8gLi4uXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7fVxuICogYGBgXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IENvbXBvbmVudHNBbmRNb2R1bGVzLFxuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBleHBvcnRzOiBDb21wb25lbnRzQW5kTW9kdWxlcyxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5PX0VSUk9SU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JBbmd1bGFyTW9kdWxlIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbW9kdWxlIHdpdGggcHJvdmlkZXJzIGZvciByb290IG1vZHVsZSBpbXBvcnRcbiAgICogQHN1bW1hcnkgVGhpcyBzdGF0aWMgbWV0aG9kIHByb3ZpZGVzIHRoZSBwcm9wZXIgd2F5IHRvIGltcG9ydCB0aGUgRm9yQW5ndWxhck1vZHVsZSBpbiB0aGUgYXBwbGljYXRpb24nc1xuICAgKiByb290IG1vZHVsZS4gSXQgcmV0dXJucyBhIE1vZHVsZVdpdGhQcm92aWRlcnMgb2JqZWN0IHRoYXQgaW5jbHVkZXMgdGhlIEZvckFuZ3VsYXJNb2R1bGUgaXRzZWxmLlxuICAgKiBVc2luZyBmb3JSb290KCkgZW5zdXJlcyB0aGF0IHRoZSBtb2R1bGUgYW5kIGl0cyBwcm92aWRlcnMgYXJlIHByb3Blcmx5IGluaXRpYWxpemVkIGFuZCBvbmx5XG4gICAqIGluc3RhbnRpYXRlZCBvbmNlIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQHJldHVybiB7TW9kdWxlV2l0aFByb3ZpZGVyczxGb3JBbmd1bGFyTW9kdWxlPn0gVGhlIG1vZHVsZSB3aXRoIGl0cyBwcm92aWRlcnNcbiAgICovXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Rm9yQW5ndWxhck1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRm9yQW5ndWxhck1vZHVsZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIGNvbXBvbmVudHMgdGhhdCBob2xkIGFuIEVsZW1lbnRSZWZcbiAqIEBzdW1tYXJ5IERlZmluZXMgYSBjb21wb25lbnQgaG9sZGVyIGludGVyZmFjZSB0aGF0IHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgdW5kZXJseWluZyBET00gZWxlbWVudCB0aHJvdWdoIEVsZW1lbnRSZWZcbiAqIEBpbnRlcmZhY2UgQ29tcG9uZW50SG9sZGVyXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1hbmd1bGFyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50SG9sZGVyIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWZlcmVuY2UgdG8gdGhlIGNvbXBvbmVudCdzIERPTSBlbGVtZW50XG4gICAqIEBwcm9wZXJ0eSB7RWxlbWVudFJlZn0gY29tcG9uZW50IC0gVGhlIEVsZW1lbnRSZWYgaW5zdGFuY2UgcHJvdmlkaW5nIGFjY2VzcyB0byB0aGUgbmF0aXZlIERPTSBlbGVtZW50XG4gICAqL1xuICBjb21wb25lbnQ6IEVsZW1lbnRSZWY7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgZm9ybSBjb21wb25lbnRzIHRoYXQgaG9sZCBib3RoIGFuIEVsZW1lbnRSZWYgYW5kIGEgRm9ybUdyb3VwXG4gKiBAc3VtbWFyeSBFeHRlbmRzIENvbXBvbmVudEhvbGRlciB0byBpbmNsdWRlIGEgRm9ybUdyb3VwIGZvciBmb3JtIGhhbmRsaW5nIGNhcGFiaWxpdGllc1xuICogQGludGVyZmFjZSBGb3JtRWxlbWVudFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItYW5ndWxhclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1FbGVtZW50IGV4dGVuZHMgQ29tcG9uZW50SG9sZGVyIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgQW5ndWxhciBGb3JtR3JvdXAgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZm9ybSBlbGVtZW50XG4gICAqIEBwcm9wZXJ0eSB7Rm9ybUdyb3VwfHVuZGVmaW5lZH0gZm9ybUdyb3VwIC0gVGhlIGZvcm0gZ3JvdXAgaW5zdGFuY2UgZm9yIG1hbmFnaW5nIGZvcm0gY29udHJvbHMgYW5kIHZhbGlkYXRpb25cbiAgICovXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xufVxuIl19
@@ -0,0 +1,13 @@
1
+ import '@decaf-ts/ui-decorators';
2
+ export * from './components/model-renderer/model-renderer.component';
3
+ export * from './components/crud-field/crud-field.component';
4
+ export * from './components/crud-form/crud-form.component';
5
+ export * from './engine';
6
+ /**
7
+ * @description Angular integration for the Decaf framework
8
+ * @summary This module provides Angular components and services for integrating with the Decaf framework.
9
+ * It includes components for rendering models, CRUD operations, and form handling, as well as
10
+ * rendering engines and utility functions to facilitate Angular application development with Decaf.
11
+ * @module for-angular
12
+ */
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3B1YmxpYy1hcGlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8seUJBQXlCLENBQUM7QUFDakMsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxVQUFVLENBQUM7QUFFekI7Ozs7OztHQU1HIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbW9kZWwtcmVuZGVyZXIvbW9kZWwtcmVuZGVyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jcnVkLWZpZWxkL2NydWQtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2VuZ2luZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEFuZ3VsYXIgaW50ZWdyYXRpb24gZm9yIHRoZSBEZWNhZiBmcmFtZXdvcmtcbiAqIEBzdW1tYXJ5IFRoaXMgbW9kdWxlIHByb3ZpZGVzIEFuZ3VsYXIgY29tcG9uZW50cyBhbmQgc2VydmljZXMgZm9yIGludGVncmF0aW5nIHdpdGggdGhlIERlY2FmIGZyYW1ld29yay5cbiAqIEl0IGluY2x1ZGVzIGNvbXBvbmVudHMgZm9yIHJlbmRlcmluZyBtb2RlbHMsIENSVUQgb3BlcmF0aW9ucywgYW5kIGZvcm0gaGFuZGxpbmcsIGFzIHdlbGwgYXNcbiAqIHJlbmRlcmluZyBlbmdpbmVzIGFuZCB1dGlsaXR5IGZ1bmN0aW9ucyB0byBmYWNpbGl0YXRlIEFuZ3VsYXIgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgd2l0aCBEZWNhZi5cbiAqIEBtb2R1bGUgZm9yLWFuZ3VsYXJcbiAqL1xuIl19