@decaf-ts/for-angular 0.0.11 → 0.0.13
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.
- package/package.json +19 -91
- package/LICENSE.md +0 -659
- package/dist/lib/README.md +0 -92
- package/dist/lib/assets/i18n/en.json +0 -140
- package/dist/lib/assets/images/angular-logo.svg +0 -45
- package/dist/lib/assets/images/decaf-logo-black.svg +0 -22
- package/dist/lib/assets/images/decaf-logo-lw.svg +0 -50
- package/dist/lib/assets/images/decaf-logo-white.svg +0 -22
- package/dist/lib/assets/images/decaf-logo.svg +0 -54
- package/dist/lib/components/component-renderer/component-renderer.component.d.ts +0 -276
- package/dist/lib/components/crud-field/crud-field.component.d.ts +0 -445
- package/dist/lib/components/crud-form/constants.d.ts +0 -5
- package/dist/lib/components/crud-form/crud-form.component.d.ts +0 -102
- package/dist/lib/components/crud-form/types.d.ts +0 -17
- package/dist/lib/components/empty-state/empty-state.component.d.ts +0 -301
- package/dist/lib/components/fieldset/fieldset.component.d.ts +0 -199
- package/dist/lib/components/filter/filter.component.d.ts +0 -505
- package/dist/lib/components/for-angular-components.module.d.ts +0 -20
- package/dist/lib/components/index.d.ts +0 -16
- package/dist/lib/components/layout/layout.component.d.ts +0 -133
- package/dist/lib/components/list/constants.d.ts +0 -29
- package/dist/lib/components/list/list.component.d.ts +0 -849
- package/dist/lib/components/list-item/list-item.component.d.ts +0 -390
- package/dist/lib/components/model-renderer/model-renderer.component.d.ts +0 -96
- package/dist/lib/components/pagination/constants.d.ts +0 -7
- package/dist/lib/components/pagination/pagination.component.d.ts +0 -264
- package/dist/lib/components/searchbar/searchbar.component.d.ts +0 -407
- package/dist/lib/directives/collapsable.directive.d.ts +0 -8
- package/dist/lib/directives/index.d.ts +0 -1
- package/dist/lib/engine/DynamicModule.d.ts +0 -17
- package/dist/lib/engine/NgxBaseComponent.d.ts +0 -541
- package/dist/lib/engine/NgxCrudFormField.d.ts +0 -118
- package/dist/lib/engine/NgxFormService.d.ts +0 -167
- package/dist/lib/engine/NgxRenderingEngine.d.ts +0 -127
- package/dist/lib/engine/NgxRenderingEngine2.d.ts +0 -250
- package/dist/lib/engine/ValidatorFactory.d.ts +0 -15
- package/dist/lib/engine/constants.d.ts +0 -151
- package/dist/lib/engine/decorators.d.ts +0 -25
- package/dist/lib/engine/index.d.ts +0 -16
- package/dist/lib/engine/types.d.ts +0 -381
- package/dist/lib/esm2022/components/component-renderer/component-renderer.component.mjs +0 -313
- package/dist/lib/esm2022/components/crud-field/crud-field.component.mjs +0 -301
- package/dist/lib/esm2022/components/crud-form/constants.mjs +0 -14
- package/dist/lib/esm2022/components/crud-form/crud-form.component.mjs +0 -139
- package/dist/lib/esm2022/components/crud-form/types.mjs +0 -2
- package/dist/lib/esm2022/components/empty-state/empty-state.component.mjs +0 -348
- package/dist/lib/esm2022/components/fieldset/fieldset.component.mjs +0 -225
- package/dist/lib/esm2022/components/filter/filter.component.mjs +0 -689
- package/dist/lib/esm2022/components/for-angular-components.module.mjs +0 -71
- package/dist/lib/esm2022/components/index.mjs +0 -20
- package/dist/lib/esm2022/components/layout/layout.component.mjs +0 -176
- package/dist/lib/esm2022/components/list/constants.mjs +0 -6
- package/dist/lib/esm2022/components/list/list.component.mjs +0 -1236
- package/dist/lib/esm2022/components/list-item/list-item.component.mjs +0 -408
- package/dist/lib/esm2022/components/model-renderer/model-renderer.component.mjs +0 -138
- package/dist/lib/esm2022/components/pagination/constants.mjs +0 -2
- package/dist/lib/esm2022/components/pagination/pagination.component.mjs +0 -323
- package/dist/lib/esm2022/components/searchbar/searchbar.component.mjs +0 -493
- package/dist/lib/esm2022/decaf-ts-for-angular.mjs +0 -5
- package/dist/lib/esm2022/directives/collapsable.directive.mjs +0 -28
- package/dist/lib/esm2022/directives/index.mjs +0 -2
- package/dist/lib/esm2022/engine/DynamicModule.mjs +0 -18
- package/dist/lib/esm2022/engine/NgxBaseComponent.mjs +0 -539
- package/dist/lib/esm2022/engine/NgxCrudFormField.mjs +0 -125
- package/dist/lib/esm2022/engine/NgxFormService.mjs +0 -315
- package/dist/lib/esm2022/engine/NgxRenderingEngine.mjs +0 -192
- package/dist/lib/esm2022/engine/NgxRenderingEngine2.mjs +0 -332
- package/dist/lib/esm2022/engine/ValidatorFactory.mjs +0 -102
- package/dist/lib/esm2022/engine/constants.mjs +0 -160
- package/dist/lib/esm2022/engine/decorators.mjs +0 -38
- package/dist/lib/esm2022/engine/index.mjs +0 -17
- package/dist/lib/esm2022/engine/types.mjs +0 -4
- package/dist/lib/esm2022/for-angular.module.mjs +0 -118
- package/dist/lib/esm2022/helpers/index.mjs +0 -13
- package/dist/lib/esm2022/helpers/utils.mjs +0 -415
- package/dist/lib/esm2022/interfaces.mjs +0 -2
- package/dist/lib/esm2022/public-apis.mjs +0 -14
- package/dist/lib/fesm2022/decaf-ts-for-angular.mjs +0 -7109
- package/dist/lib/fesm2022/decaf-ts-for-angular.mjs.map +0 -1
- package/dist/lib/for-angular.module.d.ts +0 -45
- package/dist/lib/helpers/index.d.ts +0 -12
- package/dist/lib/helpers/utils.d.ts +0 -253
- package/dist/lib/index.d.ts +0 -5
- package/dist/lib/interfaces.d.ts +0 -28
- package/dist/lib/public-apis.d.ts +0 -13
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { FormControl, FormGroup } from '@angular/forms';
|
|
2
|
-
import { ComparisonValidationKeys, DEFAULT_PATTERNS, PathProxyEngine, Validation, ValidationKeys, } from '@decaf-ts/decorator-validation';
|
|
3
|
-
import { HTML5InputTypes, parseValueByType } from '@decaf-ts/ui-decorators';
|
|
4
|
-
import { AngularEngineKeys } from './constants';
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
* Resolves the correct validator key and its associated properties based on the input key and type.
|
|
8
|
-
*
|
|
9
|
-
* When the validation key is TYPE, it's necessary to resolve the actual validator based on the
|
|
10
|
-
* field's type (e.g., 'password', 'email', 'url') instead of using the generic getValidator("type") logic.
|
|
11
|
-
* This allows directly invoking specific validators like getValidator('password'), ensuring the correct
|
|
12
|
-
* behavior for type-based validation.
|
|
13
|
-
*
|
|
14
|
-
* @param key - The validation key (e.g., 'type', 'required', etc.).
|
|
15
|
-
* @param value - The value that needs be provided to the validator.
|
|
16
|
-
* @param type - The field's declared type.
|
|
17
|
-
* @returns An object containing the resolved validator key and its corresponding props.
|
|
18
|
-
*/
|
|
19
|
-
const resolveValidatorKeyProps = (key, value, type) => {
|
|
20
|
-
const patternValidators = {
|
|
21
|
-
[ValidationKeys.PASSWORD]: DEFAULT_PATTERNS.PASSWORD.CHAR8_ONE_OF_EACH,
|
|
22
|
-
[ValidationKeys.EMAIL]: DEFAULT_PATTERNS.EMAIL,
|
|
23
|
-
[ValidationKeys.URL]: DEFAULT_PATTERNS.URL,
|
|
24
|
-
};
|
|
25
|
-
const isTypeBased = key === ValidationKeys.TYPE && Object.keys(patternValidators).includes(type);
|
|
26
|
-
const validatorKey = isTypeBased ? type : key;
|
|
27
|
-
const props = {
|
|
28
|
-
[validatorKey]: value,
|
|
29
|
-
// Email, Password, and URL are validated using the "pattern" key
|
|
30
|
-
...(isTypeBased && { [ValidationKeys.PATTERN]: patternValidators[type] }),
|
|
31
|
-
};
|
|
32
|
-
return { validatorKey, props };
|
|
33
|
-
};
|
|
34
|
-
export class ValidatorFactory {
|
|
35
|
-
static spawn(fieldProps, key) {
|
|
36
|
-
if (!Validation.keys().includes(key))
|
|
37
|
-
throw new Error('Unsupported custom validation');
|
|
38
|
-
const validatorFn = (control) => {
|
|
39
|
-
const { name, type } = fieldProps;
|
|
40
|
-
const { validatorKey, props } = resolveValidatorKeyProps(key, fieldProps[key], type);
|
|
41
|
-
const validator = Validation.get(validatorKey);
|
|
42
|
-
// parseValueByType does not support undefined values
|
|
43
|
-
const value = typeof control.value !== 'undefined'
|
|
44
|
-
? parseValueByType(type, type === HTML5InputTypes.CHECKBOX ? name : control.value, fieldProps)
|
|
45
|
-
: undefined;
|
|
46
|
-
// Create a proxy to enable access to parent and child values
|
|
47
|
-
let proxy = ValidatorFactory.createProxy({});
|
|
48
|
-
if (Object.values(ComparisonValidationKeys).includes(key)) {
|
|
49
|
-
const parent = control instanceof FormGroup ? control : control[AngularEngineKeys.PARENT];
|
|
50
|
-
proxy = ValidatorFactory.createProxy(parent);
|
|
51
|
-
}
|
|
52
|
-
let errs;
|
|
53
|
-
try {
|
|
54
|
-
errs = validator.hasErrors(value, props, proxy);
|
|
55
|
-
}
|
|
56
|
-
catch (e) {
|
|
57
|
-
errs = `${key} validator failed to validate: ${e}`;
|
|
58
|
-
console.warn(errs);
|
|
59
|
-
}
|
|
60
|
-
return errs ? { [validatorKey]: true } : null;
|
|
61
|
-
};
|
|
62
|
-
Object.defineProperty(validatorFn, 'name', {
|
|
63
|
-
value: `${key}Validator`,
|
|
64
|
-
});
|
|
65
|
-
return validatorFn;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* @summary Creates a proxy wrapper for an Angular AbstractControl to assist with custom validation logic.
|
|
69
|
-
* @description Returns a structured proxy object that simulates a hierarchical tree of form values.
|
|
70
|
-
* Enables Validators handling method to access parent and child properties using consistent dot-notation in Angular forms.
|
|
71
|
-
*
|
|
72
|
-
* @param {AbstractControl} control - The control to wrap in a proxy.
|
|
73
|
-
* @returns {PathProxy<unknown>} A proxy object exposing form values and enabling recursive parent access.
|
|
74
|
-
*/
|
|
75
|
-
static createProxy(control) {
|
|
76
|
-
return PathProxyEngine.create(control, {
|
|
77
|
-
getValue(target, prop) {
|
|
78
|
-
if (target instanceof FormControl)
|
|
79
|
-
return target.value;
|
|
80
|
-
if (target instanceof FormGroup) {
|
|
81
|
-
const control = target.controls[prop];
|
|
82
|
-
return control instanceof FormControl ? control.value : control;
|
|
83
|
-
}
|
|
84
|
-
// const value = target[prop];
|
|
85
|
-
// if (value instanceof FormControl)
|
|
86
|
-
// return value.value;
|
|
87
|
-
//
|
|
88
|
-
// if (value instanceof FormGroup) {
|
|
89
|
-
// const control = value.controls[prop];
|
|
90
|
-
// return control instanceof FormControl ? control.value : control;
|
|
91
|
-
// }
|
|
92
|
-
return target?.[prop];
|
|
93
|
-
},
|
|
94
|
-
getParent: function (target) {
|
|
95
|
-
return target?.['_parent'];
|
|
96
|
-
},
|
|
97
|
-
ignoreUndefined: true,
|
|
98
|
-
ignoreNull: true,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdG9yRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL1ZhbGlkYXRvckZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBRWhCLGVBQWUsRUFDZixVQUFVLEVBQ1YsY0FBYyxHQUVmLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFtQixlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFLaEQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYyxFQUFFLElBQVksRUFHekUsRUFBRTtJQUNGLE1BQU0saUJBQWlCLEdBQTRCO1FBQ2pELENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7UUFDdEUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztRQUM5QyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHO0tBQzNDLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxHQUFHLEtBQUssY0FBYyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pHLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDOUMsTUFBTSxLQUFLLEdBQTRCO1FBQ3JDLENBQUMsWUFBWSxDQUFDLEVBQUUsS0FBSztRQUNyQixpRUFBaUU7UUFDakUsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7S0FDMUUsQ0FBQztJQUVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixNQUFNLENBQUMsS0FBSyxDQUFDLFVBQTJCLEVBQUUsR0FBVztRQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBRW5ELE1BQU0sV0FBVyxHQUFnQixDQUFDLE9BQXdCLEVBQTJCLEVBQUU7WUFDckYsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxVQUFVLENBQUM7WUFDbEMsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQTRCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5RyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBYyxDQUFDO1lBRTVELHFEQUFxRDtZQUNyRCxNQUFNLEtBQUssR0FBRyxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssV0FBVztnQkFDaEQsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztnQkFDOUYsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUVkLDZEQUE2RDtZQUM3RCxJQUFJLEtBQUssR0FBdUIsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEVBQXFCLENBQUMsQ0FBQztZQUNwRixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBOEIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JGLE1BQU0sTUFBTSxHQUFjLE9BQU8sWUFBWSxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsT0FBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkgsS0FBSyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQXVCLENBQUM7WUFDckUsQ0FBQztZQUVELElBQUksSUFBd0IsQ0FBQztZQUM3QixJQUFJLENBQUM7Z0JBQ0gsSUFBSSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxHQUFHLEdBQUcsR0FBRyxrQ0FBa0MsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckIsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNoRCxDQUFDLENBQUM7UUFFRixNQUFNLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUU7WUFDekMsS0FBSyxFQUFFLEdBQUcsR0FBRyxXQUFXO1NBQ3pCLENBQUMsQ0FBQztRQUVILE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUF3QjtRQUN6QyxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3JDLFFBQVEsQ0FBQyxNQUF1QixFQUFFLElBQVk7Z0JBQzVDLElBQUksTUFBTSxZQUFZLFdBQVc7b0JBQy9CLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFFdEIsSUFBSSxNQUFNLFlBQVksU0FBUyxFQUFFLENBQUM7b0JBQ2hDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3RDLE9BQU8sT0FBTyxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNsRSxDQUFDO2dCQUVELDhCQUE4QjtnQkFDOUIsb0NBQW9DO2dCQUNwQyx3QkFBd0I7Z0JBQ3hCLEVBQUU7Z0JBQ0Ysb0NBQW9DO2dCQUNwQywwQ0FBMEM7Z0JBQzFDLHFFQUFxRTtnQkFDckUsSUFBSTtnQkFFSixPQUFRLE1BQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsU0FBUyxFQUFFLFVBQVMsTUFBdUI7Z0JBQ3pDLE9BQU8sTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0IsQ0FBQztZQUNELGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBDb21wYXJpc29uVmFsaWRhdGlvbktleXMsXG4gIERFRkFVTFRfUEFUVEVSTlMsXG4gIFBhdGhQcm94eSxcbiAgUGF0aFByb3h5RW5naW5lLFxuICBWYWxpZGF0aW9uLFxuICBWYWxpZGF0aW9uS2V5cyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb24nO1xuaW1wb3J0IHsgRmllbGRQcm9wZXJ0aWVzLCBIVE1MNUlucHV0VHlwZXMsIHBhcnNlVmFsdWVCeVR5cGUgfSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBbmd1bGFyRW5naW5lS2V5cyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSAnLi90eXBlcyc7XG5cbnR5cGUgQ29tcGFyaXNvblZhbGlkYXRpb25LZXkgPSB0eXBlb2YgQ29tcGFyaXNvblZhbGlkYXRpb25LZXlzW2tleW9mIHR5cGVvZiBDb21wYXJpc29uVmFsaWRhdGlvbktleXNdO1xuXG4vKipcbiAqXG4gKiBSZXNvbHZlcyB0aGUgY29ycmVjdCB2YWxpZGF0b3Iga2V5IGFuZCBpdHMgYXNzb2NpYXRlZCBwcm9wZXJ0aWVzIGJhc2VkIG9uIHRoZSBpbnB1dCBrZXkgYW5kIHR5cGUuXG4gKlxuICogV2hlbiB0aGUgdmFsaWRhdGlvbiBrZXkgaXMgVFlQRSwgaXQncyBuZWNlc3NhcnkgdG8gcmVzb2x2ZSB0aGUgYWN0dWFsIHZhbGlkYXRvciBiYXNlZCBvbiB0aGVcbiAqIGZpZWxkJ3MgdHlwZSAoZS5nLiwgJ3Bhc3N3b3JkJywgJ2VtYWlsJywgJ3VybCcpIGluc3RlYWQgb2YgdXNpbmcgdGhlIGdlbmVyaWMgZ2V0VmFsaWRhdG9yKFwidHlwZVwiKSBsb2dpYy5cbiAqIFRoaXMgYWxsb3dzIGRpcmVjdGx5IGludm9raW5nIHNwZWNpZmljIHZhbGlkYXRvcnMgbGlrZSBnZXRWYWxpZGF0b3IoJ3Bhc3N3b3JkJyksIGVuc3VyaW5nIHRoZSBjb3JyZWN0XG4gKiBiZWhhdmlvciBmb3IgdHlwZS1iYXNlZCB2YWxpZGF0aW9uLlxuICpcbiAqIEBwYXJhbSBrZXkgLSBUaGUgdmFsaWRhdGlvbiBrZXkgKGUuZy4sICd0eXBlJywgJ3JlcXVpcmVkJywgZXRjLikuXG4gKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdGhhdCBuZWVkcyBiZSBwcm92aWRlZCB0byB0aGUgdmFsaWRhdG9yLlxuICogQHBhcmFtIHR5cGUgLSBUaGUgZmllbGQncyBkZWNsYXJlZCB0eXBlLlxuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlc29sdmVkIHZhbGlkYXRvciBrZXkgYW5kIGl0cyBjb3JyZXNwb25kaW5nIHByb3BzLlxuICovXG5jb25zdCByZXNvbHZlVmFsaWRhdG9yS2V5UHJvcHMgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duLCB0eXBlOiBzdHJpbmcpOiB7XG4gIHZhbGlkYXRvcktleTogc3RyaW5nO1xuICBwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59ID0+IHtcbiAgY29uc3QgcGF0dGVyblZhbGlkYXRvcnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIFtWYWxpZGF0aW9uS2V5cy5QQVNTV09SRF06IERFRkFVTFRfUEFUVEVSTlMuUEFTU1dPUkQuQ0hBUjhfT05FX09GX0VBQ0gsXG4gICAgW1ZhbGlkYXRpb25LZXlzLkVNQUlMXTogREVGQVVMVF9QQVRURVJOUy5FTUFJTCxcbiAgICBbVmFsaWRhdGlvbktleXMuVVJMXTogREVGQVVMVF9QQVRURVJOUy5VUkwsXG4gIH07XG5cbiAgY29uc3QgaXNUeXBlQmFzZWQgPSBrZXkgPT09IFZhbGlkYXRpb25LZXlzLlRZUEUgJiYgT2JqZWN0LmtleXMocGF0dGVyblZhbGlkYXRvcnMpLmluY2x1ZGVzKHR5cGUpO1xuICBjb25zdCB2YWxpZGF0b3JLZXkgPSBpc1R5cGVCYXNlZCA/IHR5cGUgOiBrZXk7XG4gIGNvbnN0IHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICBbdmFsaWRhdG9yS2V5XTogdmFsdWUsXG4gICAgLy8gRW1haWwsIFBhc3N3b3JkLCBhbmQgVVJMIGFyZSB2YWxpZGF0ZWQgdXNpbmcgdGhlIFwicGF0dGVyblwiIGtleVxuICAgIC4uLihpc1R5cGVCYXNlZCAmJiB7IFtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXTogcGF0dGVyblZhbGlkYXRvcnNbdHlwZV0gfSksXG4gIH07XG5cbiAgcmV0dXJuIHsgdmFsaWRhdG9yS2V5LCBwcm9wcyB9O1xufTtcblxuXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yRmFjdG9yeSB7XG4gIHN0YXRpYyBzcGF3bihmaWVsZFByb3BzOiBGaWVsZFByb3BlcnRpZXMsIGtleTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xuICAgIGlmICghVmFsaWRhdGlvbi5rZXlzKCkuaW5jbHVkZXMoa2V5KSlcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgY3VzdG9tIHZhbGlkYXRpb24nKTtcblxuICAgIGNvbnN0IHZhbGlkYXRvckZuOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUsIHR5cGUgfSA9IGZpZWxkUHJvcHM7XG4gICAgICBjb25zdCB7IHZhbGlkYXRvcktleSwgcHJvcHMgfSA9IHJlc29sdmVWYWxpZGF0b3JLZXlQcm9wcyhrZXksIGZpZWxkUHJvcHNba2V5IGFzIGtleW9mIEZpZWxkUHJvcGVydGllc10sIHR5cGUpO1xuICAgICAgY29uc3QgdmFsaWRhdG9yID0gVmFsaWRhdGlvbi5nZXQodmFsaWRhdG9yS2V5KSBhcyBWYWxpZGF0b3I7XG5cbiAgICAgIC8vIHBhcnNlVmFsdWVCeVR5cGUgZG9lcyBub3Qgc3VwcG9ydCB1bmRlZmluZWQgdmFsdWVzXG4gICAgICBjb25zdCB2YWx1ZSA9IHR5cGVvZiBjb250cm9sLnZhbHVlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IHBhcnNlVmFsdWVCeVR5cGUodHlwZSwgdHlwZSA9PT0gSFRNTDVJbnB1dFR5cGVzLkNIRUNLQk9YID8gbmFtZSA6IGNvbnRyb2wudmFsdWUsIGZpZWxkUHJvcHMpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICAvLyBDcmVhdGUgYSBwcm94eSB0byBlbmFibGUgYWNjZXNzIHRvIHBhcmVudCBhbmQgY2hpbGQgdmFsdWVzXG4gICAgICBsZXQgcHJveHk6IFBhdGhQcm94eTx1bmtub3duPiA9IFZhbGlkYXRvckZhY3RvcnkuY3JlYXRlUHJveHkoe30gYXMgQWJzdHJhY3RDb250cm9sKTtcbiAgICAgIGlmIChPYmplY3QudmFsdWVzKENvbXBhcmlzb25WYWxpZGF0aW9uS2V5cykuaW5jbHVkZXMoa2V5IGFzIENvbXBhcmlzb25WYWxpZGF0aW9uS2V5KSkge1xuICAgICAgICBjb25zdCBwYXJlbnQ6IEZvcm1Hcm91cCA9IGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXAgPyBjb250cm9sIDogKGNvbnRyb2wgYXMgS2V5VmFsdWUpW0FuZ3VsYXJFbmdpbmVLZXlzLlBBUkVOVF07XG4gICAgICAgIHByb3h5ID0gVmFsaWRhdG9yRmFjdG9yeS5jcmVhdGVQcm94eShwYXJlbnQpIGFzIFBhdGhQcm94eTx1bmtub3duPjtcbiAgICAgIH1cblxuICAgICAgbGV0IGVycnM6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGVycnMgPSB2YWxpZGF0b3IuaGFzRXJyb3JzKHZhbHVlLCBwcm9wcywgcHJveHkpO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBlcnJzID0gYCR7a2V5fSB2YWxpZGF0b3IgZmFpbGVkIHRvIHZhbGlkYXRlOiAke2V9YDtcbiAgICAgICAgY29uc29sZS53YXJuKGVycnMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXJycyA/IHsgW3ZhbGlkYXRvcktleV06IHRydWUgfSA6IG51bGw7XG4gICAgfTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWxpZGF0b3JGbiwgJ25hbWUnLCB7XG4gICAgICB2YWx1ZTogYCR7a2V5fVZhbGlkYXRvcmAsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFsaWRhdG9yRm47XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIHByb3h5IHdyYXBwZXIgZm9yIGFuIEFuZ3VsYXIgQWJzdHJhY3RDb250cm9sIHRvIGFzc2lzdCB3aXRoIGN1c3RvbSB2YWxpZGF0aW9uIGxvZ2ljLlxuICAgKiBAZGVzY3JpcHRpb24gUmV0dXJucyBhIHN0cnVjdHVyZWQgcHJveHkgb2JqZWN0IHRoYXQgc2ltdWxhdGVzIGEgaGllcmFyY2hpY2FsIHRyZWUgb2YgZm9ybSB2YWx1ZXMuXG4gICAqIEVuYWJsZXMgVmFsaWRhdG9ycyBoYW5kbGluZyBtZXRob2QgdG8gYWNjZXNzIHBhcmVudCBhbmQgY2hpbGQgcHJvcGVydGllcyB1c2luZyBjb25zaXN0ZW50IGRvdC1ub3RhdGlvbiBpbiBBbmd1bGFyIGZvcm1zLlxuICAgKlxuICAgKiBAcGFyYW0ge0Fic3RyYWN0Q29udHJvbH0gY29udHJvbCAtIFRoZSBjb250cm9sIHRvIHdyYXAgaW4gYSBwcm94eS5cbiAgICogQHJldHVybnMge1BhdGhQcm94eTx1bmtub3duPn0gQSBwcm94eSBvYmplY3QgZXhwb3NpbmcgZm9ybSB2YWx1ZXMgYW5kIGVuYWJsaW5nIHJlY3Vyc2l2ZSBwYXJlbnQgYWNjZXNzLlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVByb3h5KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFBhdGhQcm94eTx1bmtub3duPiB7XG4gICAgcmV0dXJuIFBhdGhQcm94eUVuZ2luZS5jcmVhdGUoY29udHJvbCwge1xuICAgICAgZ2V0VmFsdWUodGFyZ2V0OiBBYnN0cmFjdENvbnRyb2wsIHByb3A6IHN0cmluZyk6IHVua25vd24ge1xuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpXG4gICAgICAgICAgcmV0dXJuIHRhcmdldC52YWx1ZTtcblxuICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IHRhcmdldC5jb250cm9sc1twcm9wXTtcbiAgICAgICAgICByZXR1cm4gY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sID8gY29udHJvbC52YWx1ZSA6IGNvbnRyb2w7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb25zdCB2YWx1ZSA9IHRhcmdldFtwcm9wXTtcbiAgICAgICAgLy8gaWYgKHZhbHVlIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpXG4gICAgICAgIC8vICAgcmV0dXJuIHZhbHVlLnZhbHVlO1xuICAgICAgICAvL1xuICAgICAgICAvLyBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgLy8gICBjb25zdCBjb250cm9sID0gdmFsdWUuY29udHJvbHNbcHJvcF07XG4gICAgICAgIC8vICAgcmV0dXJuIGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCA/IGNvbnRyb2wudmFsdWUgOiBjb250cm9sO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgcmV0dXJuICh0YXJnZXQgYXMgS2V5VmFsdWUpPy5bcHJvcF07XG4gICAgICB9LFxuICAgICAgZ2V0UGFyZW50OiBmdW5jdGlvbih0YXJnZXQ6IEFic3RyYWN0Q29udHJvbCkgIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldD8uWydfcGFyZW50J107XG4gICAgICB9LFxuICAgICAgaWdub3JlVW5kZWZpbmVkOiB0cnVlLFxuICAgICAgaWdub3JlTnVsbDogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,160 +0,0 @@
|
|
|
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
|
|
@@ -1,38 +0,0 @@
|
|
|
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
|
|
@@ -1,17 +0,0 @@
|
|
|
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
|
-
export * from './NgxBaseComponent';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgZW5naW5lXG4gKiBAZGVzY3JpcHRpb24gQW5ndWxhciByZW5kZXJpbmcgZW5naW5lIGZvciBEZWNhZiBhcHBsaWNhdGlvbnNcbiAqIEBzdW1tYXJ5IFRoZSBlbmdpbmUgbW9kdWxlIHByb3ZpZGVzIGNvcmUgZnVuY3Rpb25hbGl0eSBmb3IgcmVuZGVyaW5nIEFuZ3VsYXIgY29tcG9uZW50c1xuICogaW4gRGVjYWYgYXBwbGljYXRpb25zLiBJdCBpbmNsdWRlcyBjb25zdGFudHMsIGRlY29yYXRvcnMsIHJlbmRlcmluZyBlbmdpbmVzLCBhbmQgdXRpbGl0eSB0eXBlc1xuICogdGhhdCBlbmFibGUgZHluYW1pYyBjb21wb25lbnQgY3JlYXRpb24sIHByb3BlcnR5IG1hcHBpbmcsIGFuZCBjb21wb25lbnQgbGlmZWN5Y2xlIG1hbmFnZW1lbnQuXG4gKiBLZXkgZXhwb3J0cyBpbmNsdWRlIHtAbGluayBOZ3hSZW5kZXJpbmdFbmdpbmV9LCB7QGxpbmsgRHluYW1pY01vZHVsZX0sIGFuZCB2YXJpb3VzIGRlY29yYXRvcnNcbiAqIGZvciBjb21wb25lbnQgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWNvcmF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vRHluYW1pY01vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL05neFJlbmRlcmluZ0VuZ2luZSc7XG5leHBvcnQgKiBmcm9tICcuL05neFJlbmRlcmluZ0VuZ2luZTInO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL05neEJhc2VDb21wb25lbnQnO1xuIl19
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
;
|
|
2
|
-
;
|
|
3
|
-
export {};
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErYUMsQ0FBQztBQWNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJb25DaGVja2JveCwgSW9uSW5wdXQsIElvblNlbGVjdCwgSW9uVGV4dGFyZWEgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBUZXh0RmllbGRUeXBlcyB9IGZyb20gJ0Bpb25pYy9jb3JlJztcbmltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRQcm9wZXJ0aWVzIH0gZnJvbSAnQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgT3JkZXJEaXJlY3Rpb24gfSBmcm9tICdAZGVjYWYtdHMvY29yZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdlbmVyaWMga2V5LXZhbHVlIHBhaXIgdHlwZVxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGdlbmVyaWMgb2JqZWN0IHdpdGggc3RyaW5nIGtleXMgYW5kIGFueSB0eXBlIG9mIHZhbHVlcy5cbiAqIFRoaXMgaXMgY29tbW9ubHkgdXNlZCBmb3IgZHluYW1pYyBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdGhlIHByb3BlcnRpZXMgYXJlIG5vdCBrbm93biBhdCBjb21waWxlIHRpbWUuXG4gKiBAdHlwZWRlZiB7UmVjb3JkPHN0cmluZywgYW55Pn0gS2V5VmFsdWVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgdHlwZSBLZXlWYWx1ZSA9IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdlbmVyaWMgZnVuY3Rpb24gdHlwZVxuICogQHN1bW1hcnkgUmVwcmVzZW50cyBhIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhbnkgbnVtYmVyIG9mIGFyZ3VtZW50cyBvZiBhbnkgdHlwZVxuICogYW5kIHJldHVybnMgYW55IHR5cGUuIFRoaXMgaXMgdXNlZnVsIGZvciBkZWZpbmluZyBmdW5jdGlvbiBwYXJhbWV0ZXJzIG9yIHZhcmlhYmxlc1xuICogd2hlcmUgdGhlIGV4YWN0IGZ1bmN0aW9uIHNpZ25hdHVyZSBpcyBub3Qga25vd24gYXQgY29tcGlsZSB0aW1lLlxuICogQHR5cGVkZWYgRnVuY3Rpb25MaWtlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IHR5cGUgRnVuY3Rpb25MaWtlID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVsZW1lbnQgc2l6ZSBvcHRpb25zIGZvciBVSSBjb21wb25lbnRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBwb3NzaWJsZSBzaXplIHZhbHVlcyB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIFVJIGVsZW1lbnRzLlxuICogVGhlc2Ugc2l6ZXMgY29udHJvbCB0aGUgZGltZW5zaW9ucyBhbmQgbGF5b3V0IGJlaGF2aW9yIG9mIGNvbXBvbmVudHMuXG4gKiBAdHlwZWRlZiB7KCdzbWFsbCd8J21lZGl1bSd8J2xhcmdlJ3wneGxhcmdlJ3wnMnhsYXJnZSd8J2F1dG8nfCdleHBhbmQnfCdibG9jaycpfSBFbGVtZW50U2l6ZXNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIEVsZW1lbnRTaXplcyA9XG4gIHwgJ3NtYWxsJ1xuICB8ICdtZWRpdW0nXG4gIHwgJ2xhcmdlJ1xuICB8ICd4bGFyZ2UnXG4gIHwgJzJ4bGFyZ2UnXG4gIHwgJ2F1dG8nXG4gIHwgJ2V4cGFuZCdcbiAgfCAnYmxvY2snO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNpYyBwb3NpdGlvbiBvcHRpb25zIGZvciBVSSBlbGVtZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgcG9zc2libGUgcG9zaXRpb24gdmFsdWVzIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gVUkgZWxlbWVudHMuXG4gKiBUaGVzZSBwb3NpdGlvbnMgY29udHJvbCB0aGUgYWxpZ25tZW50IGFuZCBwbGFjZW1lbnQgb2YgY29tcG9uZW50cy5cbiAqIEB0eXBlZGVmIHsoJ2xlZnQnfCdjZW50ZXInfCdyaWdodCd8J3RvcCd8J2JvdHRvbScpfSBFbGVtZW50UG9zaXRpb25zXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBFbGVtZW50UG9zaXRpb25zID0gJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXh0ZW5kZWQgcG9zaXRpb24gb3B0aW9ucyBmb3IgZmxleCBsYXlvdXRzXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBiYXNpYyBFbGVtZW50UG9zaXRpb25zIHdpdGggYWRkaXRpb25hbCBmbGV4LXNwZWNpZmljIHBvc2l0aW9uIHZhbHVlcy5cbiAqIFRoZXNlIHBvc2l0aW9ucyBhcmUgdXNlZCBmb3IgY29udHJvbGxpbmcgYWxpZ25tZW50IGFuZCBkaXN0cmlidXRpb24gaW4gZmxleCBjb250YWluZXJzLlxuICogQHR5cGVkZWYgeyhFbGVtZW50UG9zaXRpb25zfCdzdHJldGNoJ3wnbWlkZGxlJ3wnYXJvdW5kJ3wnYmV0d2VlbicpfSBGbGV4UG9zaXRpb25zXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBGbGV4UG9zaXRpb25zID1cbiAgfCBFbGVtZW50UG9zaXRpb25zXG4gIHwgJ3N0cmV0Y2gnXG4gIHwgJ21pZGRsZSdcbiAgfCAnYXJvdW5kJ1xuICB8ICdiZXR3ZWVuJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVXBkYXRlIG1vZGUgb3B0aW9ucyBmb3IgZm9ybSBmaWVsZHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgd2hlbiBmb3JtIGZpZWxkIHZhbHVlcyBzaG91bGQgYmUgdXBkYXRlZCBpbiB0aGUgbW9kZWwuXG4gKiAtICdjaGFuZ2UnOiBVcGRhdGUgb24gZXZlcnkgY2hhbmdlIGV2ZW50XG4gKiAtICdibHVyJzogVXBkYXRlIHdoZW4gdGhlIGZpZWxkIGxvc2VzIGZvY3VzXG4gKiAtICdzdWJtaXQnOiBVcGRhdGUgb25seSB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZFxuICogQHR5cGVkZWYgeygnY2hhbmdlJ3wnYmx1cid8J3N1Ym1pdCcpfSBGaWVsZFVwZGF0ZU1vZGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIEZpZWxkVXBkYXRlTW9kZSA9ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ3N1Ym1pdCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE1ldGFkYXRhIHN0cnVjdHVyZSBmb3IgQW5ndWxhciBjb21wb25lbnRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgb2YgbWV0YWRhdGEgZm9yIEFuZ3VsYXIgY29tcG9uZW50cywgaW5jbHVkaW5nXG4gKiBjaGFuZ2UgZGV0ZWN0aW9uIHN0cmF0ZWd5LCBzZWxlY3Rvciwgc3RhbmRhbG9uZSBzdGF0dXMsIGltcG9ydHMsIHRlbXBsYXRlLCBhbmQgc3R5bGVzLlxuICogVGhpcyBpcyB1c2VkIGZvciByZWZsZWN0aW9uIGFuZCBkeW5hbWljIGNvbXBvbmVudCBjcmVhdGlvbi5cbiAqIEBpbnRlcmZhY2UgQ29tcG9uZW50TWV0YWRhdGFcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjaGFuZ2VEZXRlY3Rpb24gLSBUaGUgY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSBudW1iZXJcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzZWxlY3RvciAtIFRoZSBDU1Mgc2VsZWN0b3IgZm9yIHRoZSBjb21wb25lbnRcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gc3RhbmRhbG9uZSAtIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBzdGFuZGFsb25lXG4gKiBAcHJvcGVydHkgaW1wb3J0cyAtIEFycmF5IG9mIGltcG9ydGVkIG1vZHVsZXMvY29tcG9uZW50c1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHRlbXBsYXRlIC0gVGhlIEhUTUwgdGVtcGxhdGUgZm9yIHRoZSBjb21wb25lbnRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IHN0eWxlcyAtIEFycmF5IG9mIENTUyBzdHlsZXMgZm9yIHRoZSBjb21wb25lbnRcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50TWV0YWRhdGEge1xuICBjaGFuZ2VEZXRlY3Rpb246IG51bWJlcjtcbiAgc2VsZWN0b3I6IHN0cmluZztcbiAgc3RhbmRhbG9uZTogYm9vbGVhbjtcbiAgaW1wb3J0czogKG5ldyAoLi4uYXJnczogdW5rbm93bltdKSA9PiB1bmtub3duKVtdO1xuICB0ZW1wbGF0ZTogc3RyaW5nO1xuICBzdHlsZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPdXRwdXQgc3RydWN0dXJlIGZyb20gdGhlIEFuZ3VsYXIgcmVuZGVyaW5nIGVuZ2luZVxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBvdXRwdXQgcHJvZHVjZWQgYnkgdGhlIE5neFJlbmRlcmluZ0VuZ2luZVxuICogd2hlbiByZW5kZXJpbmcgYSBjb21wb25lbnQuIENvbnRhaW5zIHRoZSBjb21wb25lbnQgdHlwZSwgaW5wdXRzLCBpbmplY3RvcixcbiAqIGNvbnRlbnQgbm9kZXMsIGFuZCBjaGlsZCBjb21wb25lbnRzLlxuICogQHR5cGVkZWYge09iamVjdH0gQW5ndWxhckR5bmFtaWNPdXRwdXRcbiAqIEBwcm9wZXJ0eSB7VHlwZTx1bmtub3duPn0gY29tcG9uZW50IC0gVGhlIEFuZ3VsYXIgY29tcG9uZW50IHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbcmVuZGVyZXJJZF0gLSBPcHRpb25hbCB1bmlxdWUgSUQgZm9yIHRoZSByZW5kZXJlZCBjb21wb25lbnRcbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59IFtpbnB1dHNdIC0gT3B0aW9uYWwgaW5wdXQgcHJvcGVydGllcyBmb3IgdGhlIGNvbXBvbmVudFxuICogQHByb3BlcnR5IHtJbmplY3Rvcn0gW2luamVjdG9yXSAtIE9wdGlvbmFsIEFuZ3VsYXIgaW5qZWN0b3IgZm9yIGRlcGVuZGVuY3kgaW5qZWN0aW9uXG4gKiBAcHJvcGVydHkge05vZGVbXVtdfSBbY29udGVudF0gLSBPcHRpb25hbCBjb250ZW50IG5vZGVzIGZvciBwcm9qZWN0aW9uXG4gKiBAcHJvcGVydHkge0FuZ3VsYXJEeW5hbWljT3V0cHV0W119IFtjaGlsZHJlbl0gLSBPcHRpb25hbCBjaGlsZCBjb21wb25lbnRzXG4gKiBAcHJvcGVydHkge1R5cGU8dW5rbm93bj59IFtpbnN0YW5jZV0gLSBPcHRpb25hbCBjb21wb25lbnQgaW5zdGFuY2VcbiAqIEBwcm9wZXJ0eSB7Rm9ybUdyb3VwfSBbZm9ybUdyb3VwXSAtIE9wdGlvbmFsIGNvbXBvbmVudCBGb3JtR3JvdXBcbiAqIEBwcm9wZXJ0eSB7Rm9ybUNvbnRyb2x9IFtmb3JtQ29udHJvbF0gLSBPcHRpb25hbCBjb21wb25lbnQgRm9ybUNvbnRyb2xcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW5ndWxhckR5bmFtaWNPdXRwdXQge1xuICBjb21wb25lbnQ6IFR5cGU8dW5rbm93bj47XG4gIHJlbmRlcmVySWQ/OiBzdHJpbmc7XG4gIGlucHV0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xuICBjb250ZW50PzogTm9kZVtdW107XG4gIGNoaWxkcmVuPzogQW5ndWxhckR5bmFtaWNPdXRwdXRbXTtcbiAgaW5zdGFuY2U/OiBUeXBlPHVua25vd24+O1xuICBmb3JtR3JvdXA/OiBGb3JtR3JvdXA7XG4gIGZvcm1Db250cm9sPzogRm9ybUNvbnRyb2w7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgbW9kZWxzIHRoYXQgY2FuIGJlIHJlbmRlcmVkXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBiYXNpYyBzdHJ1Y3R1cmUgZm9yIG1vZGVscyB0aGF0IGNhbiBiZSByZW5kZXJlZCBieSB0aGUgZW5naW5lLlxuICogQ29udGFpbnMgYW4gb3B0aW9uYWwgcmVuZGVyZXJJZCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHJlbmRlcmVkIGluc3RhbmNlLlxuICogQGludGVyZmFjZSBSZW5kZXJlZE1vZGVsXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3JlbmRlcmVySWRdIC0gT3B0aW9uYWwgdW5pcXVlIElEIGZvciB0aGUgcmVuZGVyZWQgbW9kZWwgaW5zdGFuY2VcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyZWRNb2RlbCB7XG4gIHJlbmRlcmVySWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFBvc3NpYmxlIGlucHV0IHR5cGVzIGZvciBmb3JtIGZpZWxkc1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgcG9zc2libGUgaW5wdXQgdHlwZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiBmb3JtIGZpZWxkcy5cbiAqIEluY2x1ZGVzIHN0YW5kYXJkIEhUTUwgaW5wdXQgdHlwZXMgbGlrZSBjaGVja2JveCwgcmFkaW8sIGFuZCBzZWxlY3QsXG4gKiBhcyB3ZWxsIGFzIElvbmljJ3MgVGV4dEZpZWxkVHlwZXMgYW5kIHRleHRhcmVhLlxuICogQHR5cGVkZWYgeygnY2hlY2tib3gnfCdyYWRpbyd8J3NlbGVjdCd8VGV4dEZpZWxkVHlwZXN8J3RleHRhcmVhJyl9IFBvc3NpYmxlSW5wdXRUeXBlc1xuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgUG9zc2libGVJbnB1dFR5cGVzID1cbiAgfCAnY2hlY2tib3gnXG4gIHwgJ3JhZGlvJ1xuICB8ICdzZWxlY3QnXG4gIHwgVGV4dEZpZWxkVHlwZXNcbiAgfCAndGV4dGFyZWEnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBGaWVsZCBkZWZpbml0aW9uIGZvciBBbmd1bGFyIGNvbXBvbmVudHNcbiAqIEBzdW1tYXJ5IEEgY29tcHJlaGVuc2l2ZSB0eXBlIHRoYXQgY29tYmluZXMgcHJvcGVydGllcyBmcm9tIHZhcmlvdXMgSW9uaWMgY29tcG9uZW50c1xuICogdG8gZGVmaW5lIHRoZSBzdHJ1Y3R1cmUgb2YgYSBmaWVsZCBpbiBhbiBBbmd1bGFyIGZvcm0uIEl0IG9taXRzIGNlcnRhaW4gcHJvcGVydGllc1xuICogZnJvbSBJb25JbnB1dCwgcGlja3Mgc3BlY2lmaWMgcHJvcGVydGllcyBmcm9tIElvblNlbGVjdCwgSW9uVGV4dGFyZWEsIGFuZCBJb25DaGVja2JveCxcbiAqIGFuZCBhZGRzIGN1c3RvbSBwcm9wZXJ0aWVzIGxpa2UgdHlwZSBhbmQgY2xhc3NOYW1lLlxuICogQHR5cGVkZWYge09iamVjdH0gQW5ndWxhckZpZWxkRGVmaW5pdGlvblxuICogQHByb3BlcnR5IHtQb3NzaWJsZUlucHV0VHlwZXN9IHR5cGUgLSBUaGUgdHlwZSBvZiBpbnB1dCBmaWVsZFxuICogQHByb3BlcnR5IHtzdHJpbmd8c3RyaW5nW119IGNsYXNzTmFtZSAtIENTUyBjbGFzcyBuYW1lKHMpIGZvciB0aGUgZmllbGRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbY2FuY2VsVGV4dF0gLSBUZXh0IGZvciB0aGUgY2FuY2VsIGJ1dHRvbiAoZnJvbSBJb25TZWxlY3QpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2ludGVyZmFjZV0gLSBJbnRlcmZhY2Ugc3R5bGUgZm9yIHNlbGVjdCAoZnJvbSBJb25TZWxlY3QpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3NlbGVjdGVkVGV4dF0gLSBUZXh0IGZvciBzZWxlY3RlZCBvcHRpb24gKGZyb20gSW9uU2VsZWN0KVxuICogQHByb3BlcnR5IHtPYmplY3R9IFtpbnRlcmZhY2VPcHRpb25zXSAtIE9wdGlvbnMgZm9yIHRoZSBpbnRlcmZhY2UgKGZyb20gSW9uU2VsZWN0KVxuICogQHByb3BlcnR5IHtudW1iZXJ9IFtyb3dzXSAtIE51bWJlciBvZiByb3dzIGZvciB0ZXh0YXJlYSAoZnJvbSBJb25UZXh0YXJlYSlcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbY29sc10gLSBOdW1iZXIgb2YgY29sdW1ucyBmb3IgdGV4dGFyZWEgKGZyb20gSW9uVGV4dGFyZWEpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2FsaWdubWVudF0gLSBBbGlnbm1lbnQgb2YgY2hlY2tib3ggKGZyb20gSW9uQ2hlY2tib3gpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2p1c3RpZnldIC0gSnVzdGlmaWNhdGlvbiBvZiBjaGVja2JveCAoZnJvbSBJb25DaGVja2JveClcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2NoZWNrZWRdIC0gV2hldGhlciBjaGVja2JveCBpcyBjaGVja2VkIChmcm9tIElvbkNoZWNrYm94KVxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgQW5ndWxhckZpZWxkRGVmaW5pdGlvbiA9IE9taXQ8XG4gIElvbklucHV0LFxuICB8ICdpb25JbnB1dCdcbiAgfCAnaW9uRm9jdXMnXG4gIHwgJ2lvbkNoYW5nZSdcbiAgfCAnaW9uQmx1cidcbiAgfCAnZ2V0SW5wdXRFbGVtZW50J1xuICB8ICdzZXRGb2N1cydcbiAgfCAnbGFiZWwnXG4gIHwgJ2VsJ1xuICB8ICd6J1xuICB8ICd0eXBlJ1xuPiAmXG4gIFBpY2s8XG4gICAgSW9uU2VsZWN0LFxuICAgICdjYW5jZWxUZXh0JyB8ICdpbnRlcmZhY2UnIHwgJ3NlbGVjdGVkVGV4dCcgfCAnaW50ZXJmYWNlT3B0aW9ucydcbiAgPiAmXG4gIFBpY2s8SW9uVGV4dGFyZWEsICdyb3dzJyB8ICdjb2xzJz4gJlxuICBQaWNrPElvbkNoZWNrYm94LCAnYWxpZ25tZW50JyB8ICdqdXN0aWZ5JyB8ICdjaGVja2VkJz4gJiB7XG4gIHR5cGU6IFBvc3NpYmxlSW5wdXRUeXBlcztcbiAgY2xhc3NOYW1lOiBzdHJpbmcgfCBzdHJpbmdbXTtcbn0gJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU3RyaW5nIG9yIGJvb2xlYW4gcmVwcmVzZW50YXRpb24gb2YgYSBib29sZWFuIHZhbHVlXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgdmFsdWUgdGhhdCBjYW4gYmUgZWl0aGVyIGEgYm9vbGVhbiBvciBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIGJvb2xlYW4uXG4gKiBUaGlzIGlzIHVzZWZ1bCBmb3IgaGFuZGxpbmcgYXR0cmlidXRlIHZhbHVlcyB0aGF0IGNhbiBiZSBzcGVjaWZpZWQgYXMgZWl0aGVyIHN0cmluZ3Mgb3IgYm9vbGVhbnMuXG4gKiBAdHlwZWRlZiB7KCd0cnVlJ3wnZmFsc2UnfGJvb2xlYW4pfSBTdHJpbmdPckJvb2xlYW5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIFN0cmluZ09yQm9vbGVhbiA9ICd0cnVlJyB8ICdmYWxzZScgfCBib29sZWFuO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPcHRpb24gdHlwZSBmb3Igc2VsZWN0IGlucHV0c1xuICogQHN1bW1hcnkgRXh0ZW5kcyB0aGUgSW5wdXRPcHRpb24gaW50ZXJmYWNlIHdpdGggYSBzZWxlY3RlZCBwcm9wZXJ0eSB0byBpbmRpY2F0ZVxuICogd2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBTZWxlY3RPcHRpb24gPSBJbnB1dE9wdGlvbiAmIHsgc2VsZWN0ZWQ/OiBib29sZWFuIH07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE9wdGlvbiB0eXBlIGZvciByYWRpbyBpbnB1dHNcbiAqIEBzdW1tYXJ5IEV4dGVuZHMgdGhlIElucHV0T3B0aW9uIGludGVyZmFjZSB3aXRoIGEgY2hlY2tlZCBwcm9wZXJ0eSB0byBpbmRpY2F0ZVxuICogd2hldGhlciB0aGUgb3B0aW9uIGlzIGNoZWNrZWQgYnkgZGVmYXVsdC5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCB0eXBlIFJhZGlvT3B0aW9uID0gSW5wdXRPcHRpb24gJiB7IGNoZWNrZWQ/OiBib29sZWFuIH07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE9wdGlvbiB0eXBlIGZvciBjaGVja2JveCBpbnB1dHNcbiAqIEBzdW1tYXJ5IEFsaWFzIGZvciBSYWRpb09wdGlvbiwgYXMgY2hlY2tib3ggb3B0aW9ucyBoYXZlIHRoZSBzYW1lIHN0cnVjdHVyZSBhcyByYWRpbyBvcHRpb25zLlxuICogQHR5cGVkZWYge1JhZGlvT3B0aW9ufSBDaGVja2JveE9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgQ2hlY2tib3hPcHRpb24gPSBSYWRpb09wdGlvbjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFzZSBvcHRpb24gdHlwZSBmb3IgaW5wdXQgY29tcG9uZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgY29tbW9uIHN0cnVjdHVyZSBmb3Igb3B0aW9ucyB1c2VkIGluIHNlbGVjdCwgcmFkaW8sIGFuZCBjaGVja2JveCBpbnB1dHMuXG4gKiBDb250YWlucyBwcm9wZXJ0aWVzIGZvciB0aGUgZGlzcGxheSB0ZXh0LCB2YWx1ZSwgZGlzYWJsZWQgc3RhdGUsIENTUyBjbGFzcywgYW5kIGljb24uXG4gKiBAaW50ZXJmYWNlIElucHV0T3B0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGV4dCAtIFRoZSBkaXNwbGF5IHRleHQgZm9yIHRoZSBvcHRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfG51bWJlcn0gdmFsdWUgLSBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBvcHRpb25cbiAqIEBwcm9wZXJ0eSB7U3RyaW5nT3JCb29sZWFufSBbZGlzYWJsZWRdIC0gV2hldGhlciB0aGUgb3B0aW9uIGlzIGRpc2FibGVkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2NsYXNzTmFtZV0gLSBDU1MgY2xhc3MgbmFtZSBmb3Igc3R5bGluZyB0aGUgb3B0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2ljb25dIC0gSWNvbiB0byBkaXNwbGF5IHdpdGggdGhlIG9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dE9wdGlvbiB7XG4gIHRleHQ6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgZGlzYWJsZWQ/OiBTdHJpbmdPckJvb2xlYW47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGFyZ2V0IG9wdGlvbnMgZm9yIEhUTUwgZm9ybXNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHBvc3NpYmxlIHRhcmdldCB2YWx1ZXMgZm9yIEhUTUwgZm9ybXMsIGluY2x1ZGluZyBzdGFuZGFyZCB0YXJnZXRzXG4gKiBsaWtlICdfYmxhbmsnLCAnX3NlbGYnLCAnX3BhcmVudCcsIGFuZCAnX3RvcCcsIGFzIHdlbGwgYXMgY3VzdG9tIHN0cmluZyB2YWx1ZXMuXG4gKiBAdHlwZWRlZiB7KCdfYmxhbmsnfCdfc2VsZid8J19wYXJlbnQnfCdfdG9wJ3xzdHJpbmcpfSBIVE1MRm9ybVRhcmdldFxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgSFRNTEZvcm1UYXJnZXQgPSAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCcgfCBzdHJpbmc7XG5cbi8vIGV4cG9ydCBpbnRlcmZhY2UgSUxpc3RJdGVtUHJvcCB7XG4vLyAgIHJlbmRlcj86IHN0cmluZyB8IGJvb2xlYW47XG4vLyAgIHRyYW5zbGF0ZVByb3BzPzogc3RyaW5nIHwgc3RyaW5nW107XG4vLyAgIGJ1dHRvbj86IFN0cmluZ09yQm9vbGVhbjtcbi8vICAgaWNvbj86IHN0cmluZztcbi8vICAgaWNvblNsb3Q/OiAnc3RhcnQnIHwgJ2VuZCc7XG4vLyAgIHRpdGxlPzogc3RyaW5nO1xuLy8gICBkZXNjcml0cGlvbj86IHN0cmluZztcbi8vICAgaW5mbz86IHN0cmluZztcbi8vICAgc3ViaW5mbz86IHN0cmluZztcbi8vIH1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciBsaXN0IGNvbXBvbmVudCByZWZyZXNoIGV2ZW50c1xuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIGEgcmVmcmVzaCBldmVudCBmb3IgbGlzdCBjb21wb25lbnRzLlxuICogQ29udGFpbnMgYW4gYXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzIHJlcHJlc2VudGluZyB0aGUgbmV3IGRhdGEgZm9yIHRoZSBsaXN0LlxuICogQGludGVyZmFjZSBJTGlzdENvbXBvbmVudFJlZnJlc2hFdmVudFxuICogQHByb3BlcnR5IHtLZXlWYWx1ZVtdfSBkYXRhIC0gQXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzIHJlcHJlc2VudGluZyB0aGUgbmV3IGRhdGFcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUxpc3RDb21wb25lbnRSZWZyZXNoRXZlbnQge1xuICBkYXRhOiBLZXlWYWx1ZVtdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBGb3JtIHNlcnZpY2UgY29udHJvbCBzdHJ1Y3R1cmVcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBmb3IgYSBmb3JtIGNvbnRyb2wgbWFuYWdlZCBieSB0aGUgZm9ybSBzZXJ2aWNlLlxuICogQ29udGFpbnMgdGhlIEZvcm1Hcm91cCBjb250cm9sIGFuZCB0aGUgYXNzb2NpYXRlZCBmaWVsZCBwcm9wZXJ0aWVzIGZvciByZW5kZXJpbmcuXG4gKiBAaW50ZXJmYWNlIEZvcm1TZXJ2aWNlQ29udHJvbFxuICogQHByb3BlcnR5IHtGb3JtR3JvdXB9IGNvbnRyb2wgLSBUaGUgQW5ndWxhciBGb3JtR3JvdXAgZm9yIHRoZSBjb250cm9sXG4gKiBAcHJvcGVydHkge0FuZ3VsYXJGaWVsZERlZmluaXRpb259IHByb3BzIC0gVGhlIGZpZWxkIHByb3BlcnRpZXMgZm9yIHJlbmRlcmluZyB0aGUgY29udHJvbFxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtU2VydmljZUNvbnRyb2wge1xuICBjb250cm9sOiBGb3JtR3JvdXA7XG4gIHByb3BzOiBBbmd1bGFyRmllbGREZWZpbml0aW9uO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUeXBlIGZvciBmb3JtIHNlcnZpY2UgY29udHJvbHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBmb3JtIGNvbnRyb2xzIG1hbmFnZWQgYnkgdGhlIGZvcm0gc2VydmljZS5cbiAqIEl0J3MgYSBuZXN0ZWQgcmVjb3JkIHdoZXJlIHRoZSBvdXRlciBrZXkgaXMgdGhlIGZvcm0gZ3JvdXAgbmFtZSwgdGhlIGlubmVyIGtleVxuICogaXMgdGhlIGNvbnRyb2wgbmFtZSwgYW5kIHRoZSB2YWx1ZSBjb250YWlucyB0aGUgZm9ybSBncm91cCBhbmQgZmllbGQgcHJvcGVydGllcy5cbiAqIEB0eXBlZGVmIHtSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB7IGNvbnRyb2w6IEZvcm1Hcm91cDsgcHJvcHM6IEFuZ3VsYXJGaWVsZERlZmluaXRpb24gfT4+fSBGb3JtU2VydmljZUNvbnRyb2xzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBGb3JtU2VydmljZUNvbnRyb2xzID0gUmVjb3JkPFxuICBzdHJpbmcsXG4gIFJlY29yZDxzdHJpbmcsIEZvcm1TZXJ2aWNlQ29udHJvbD5cbj47XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlbmRlcmVyIGN1c3RvbSBldmVudCB0eXBlXG4gKiBAc3VtbWFyeSBDb21iaW5lcyBCYXNlQ3VzdG9tRXZlbnQgd2l0aCBLZXlWYWx1ZSBwcm9wZXJ0aWVzIHRvIGNyZWF0ZSBhIGZsZXhpYmxlXG4gKiBjdXN0b20gZXZlbnQgdHlwZSBmb3IgcmVuZGVyZXIgY29tcG9uZW50cy4gVGhpcyBhbGxvd3MgZXZlbnRzIHRvIGNhcnJ5IGJvdGhcbiAqIHN0YW5kYXJkIGV2ZW50IHByb3BlcnRpZXMgYW5kIGFkZGl0aW9uYWwgY3VzdG9tIGRhdGEuXG4gKiBAdHlwZWRlZiBSZW5kZXJlckN1c3RvbUV2ZW50XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBSZW5kZXJlckN1c3RvbUV2ZW50ID0gQmFzZUN1c3RvbUV2ZW50ICYgS2V5VmFsdWU7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgbGlzdCBpdGVtIGN1c3RvbSBldmVudHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBjdXN0b20gZXZlbnRzIHRyaWdnZXJlZCBieSBsaXN0IGl0ZW1zLlxuICogRXh0ZW5kcyBCYXNlQ3VzdG9tRXZlbnQgd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIHRoZSBhY3Rpb24gYW5kIHByaW1hcnkga2V5LlxuICogQGludGVyZmFjZSBMaXN0SXRlbUN1c3RvbUV2ZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ30gYWN0aW9uIC0gVGhlIGFjdGlvbiBwZXJmb3JtZWQgb24gdGhlIGxpc3QgaXRlbVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtwa10gLSBPcHRpb25hbCBwcmltYXJ5IGtleSBvZiB0aGUgYWZmZWN0ZWQgaXRlbVxuICogQHByb3BlcnR5IHthbnl9IGRhdGEgLSBUaGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGV2ZW50IChpbmhlcml0ZWQgZnJvbSBCYXNlQ3VzdG9tRXZlbnQpXG4gKiBAcHJvcGVydHkge0hUTUxFbGVtZW50fSBbdGFyZ2V0XSAtIFRoZSB0YXJnZXQgZWxlbWVudCAoaW5oZXJpdGVkIGZyb20gQmFzZUN1c3RvbUV2ZW50KVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtuYW1lXSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudCAoaW5oZXJpdGVkIGZyb20gQmFzZUN1c3RvbUV2ZW50KVxuICogQHByb3BlcnR5IHtzdHJpbmd9IGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGV2ZW50IChpbmhlcml0ZWQgZnJvbSBCYXNlQ3VzdG9tRXZlbnQpXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RJdGVtQ3VzdG9tRXZlbnQgZXh0ZW5kcyBCYXNlQ3VzdG9tRXZlbnQge1xuICBhY3Rpb246IHN0cmluZztcbiAgcGs/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2UgaW50ZXJmYWNlIGZvciBjdXN0b20gZXZlbnRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBiYXNlIHN0cnVjdHVyZSBmb3IgY3VzdG9tIGV2ZW50cyBpbiB0aGUgYXBwbGljYXRpb24uXG4gKiBDb250YWlucyBwcm9wZXJ0aWVzIGZvciB0aGUgZXZlbnQgZGF0YSwgdGFyZ2V0IGVsZW1lbnQsIG5hbWUsIGFuZCBjb21wb25lbnQuXG4gKiBAaW50ZXJmYWNlIEJhc2VDdXN0b21FdmVudFxuICogQHByb3BlcnR5IHthbnl9IGRhdGEgLSBUaGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGV2ZW50XG4gKiBAcHJvcGVydHkge0hUTUxFbGVtZW50fSBbdGFyZ2V0XSAtIFRoZSB0YXJnZXQgZWxlbWVudCB0aGF0IHRyaWdnZXJlZCB0aGUgZXZlbnRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbbmFtZV0gLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudFxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlQ3VzdG9tRXZlbnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvbXBvbmVudDogc3RyaW5nO1xuICBkYXRhPzogdW5rbm93bjtcbiAgdGFyZ2V0PzogSFRNTEVsZW1lbnQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENSVUQgZm9ybSBldmVudCB0eXBlXG4gKiBAc3VtbWFyeSBFeHRlbmRzIEJhc2VDdXN0b21FdmVudCB0byBpbmNsdWRlIG9wdGlvbmFsIGhhbmRsZXJzIGZvciBDUlVEIGZvcm0gb3BlcmF0aW9ucy5cbiAqIFRoaXMgZXZlbnQgdHlwZSBpcyB1c2VkIGZvciBmb3JtLXJlbGF0ZWQgYWN0aW9ucyBsaWtlIGNyZWF0ZSwgcmVhZCwgdXBkYXRlLCBhbmQgZGVsZXRlIG9wZXJhdGlvbnMuXG4gKiBAdHlwZWRlZiBDcnVkRm9ybUV2ZW50XG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIGFueT59IFtoYW5kbGVyc10gLSBPcHRpb25hbCBoYW5kbGVycyBmb3IgZm9ybSBvcGVyYXRpb25zXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgdHlwZSBDcnVkRm9ybUV2ZW50ID0gQmFzZUN1c3RvbUV2ZW50ICYge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBoYW5kbGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnQgaW5wdXQgcHJvcGVydGllc1xuICogQHN1bW1hcnkgRXh0ZW5kcyBGaWVsZFByb3BlcnRpZXMgd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXMgc3BlY2lmaWMgdG8gQW5ndWxhciBjb21wb25lbnRzLlxuICogSW5jbHVkZXMgdXBkYXRlIG1vZGUgZm9yIGZvcm0gY29udHJvbHMgYW5kIG9wdGlvbmFsIEZvcm1Hcm91cCBhbmQgRm9ybUNvbnRyb2wgcmVmZXJlbmNlcy5cbiAqIEBpbnRlcmZhY2UgQ29tcG9uZW50SW5wdXRcbiAqIEBwcm9wZXJ0eSB7RmllbGRVcGRhdGVNb2RlfSBbdXBkYXRlTW9kZV0gLSBXaGVuIHRoZSBmaWVsZCB2YWx1ZSBzaG91bGQgYmUgdXBkYXRlZFxuICogQHByb3BlcnR5IHtGb3JtR3JvdXB9IFtmb3JtR3JvdXBdIC0gT3B0aW9uYWwgRm9ybUdyb3VwIHJlZmVyZW5jZVxuICogQHByb3BlcnR5IHtGb3JtQ29udHJvbH0gW2Zvcm1Db250cm9sXSAtIE9wdGlvbmFsIEZvcm1Db250cm9sIHJlZmVyZW5jZVxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRJbnB1dCBleHRlbmRzIEZpZWxkUHJvcGVydGllcyB7XG4gIHVwZGF0ZU1vZGU/OiBGaWVsZFVwZGF0ZU1vZGU7XG4gIGZvcm1Hcm91cD86IEZvcm1Hcm91cDtcbiAgZm9ybUNvbnRyb2w/OiBGb3JtQ29udHJvbDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50IGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBjb25maWd1cmF0aW9uIGZvciBkeW5hbWljYWxseSBjcmVhdGluZyBBbmd1bGFyIGNvbXBvbmVudHMuXG4gKiBDb250YWlucyB0aGUgY29tcG9uZW50IG5hbWUsIGlucHV0IHByb3BlcnRpZXMsIGluamVjdG9yLCBhbmQgb3B0aW9uYWwgY2hpbGQgY29tcG9uZW50cy5cbiAqIEBpbnRlcmZhY2UgQ29tcG9uZW50Q29uZmlnXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29tcG9uZW50IC0gVGhlIG5hbWUgb2YgdGhlIGNvbXBvbmVudCB0byByZW5kZXJcbiAqIEBwcm9wZXJ0eSB7Q29tcG9uZW50SW5wdXR9IGlucHV0cyAtIFRoZSBpbnB1dCBwcm9wZXJ0aWVzIGZvciB0aGUgY29tcG9uZW50XG4gKiBAcHJvcGVydHkge0Vudmlyb25tZW50SW5qZWN0b3IgfCBJbmplY3Rvcn0gaW5qZWN0b3IgLSBUaGUgQW5ndWxhciBpbmplY3RvciBmb3IgZGVwZW5kZW5jeSBpbmplY3Rpb25cbiAqIEBwcm9wZXJ0eSB7Q29tcG9uZW50Q29uZmlnW119IFtjaGlsZHJlbl0gLSBPcHRpb25hbCBjaGlsZCBjb21wb25lbnQgY29uZmlndXJhdGlvbnNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50Q29uZmlnIHtcbiAgY29tcG9uZW50OiBzdHJpbmc7XG4gIGlucHV0czogQ29tcG9uZW50SW5wdXQ7XG4gIGluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yIHwgSW5qZWN0b3I7XG4gIGNoaWxkcmVuPzogQ29tcG9uZW50Q29uZmlnW107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEZvcm0gcGFyZW50IGdyb3VwIHR1cGxlXG4gKiBAc3VtbWFyeSBSZXByZXNlbnRzIGEgdHVwbGUgY29udGFpbmluZyBhIEZvcm1Hcm91cCBhbmQgaXRzIGFzc29jaWF0ZWQgc3RyaW5nIGlkZW50aWZpZXIuXG4gKiBUaGlzIGlzIHVzZWQgZm9yIG1hbmFnaW5nIGhpZXJhcmNoaWNhbCBmb3JtIHN0cnVjdHVyZXMgYW5kIHBhcmVudC1jaGlsZCByZWxhdGlvbnNoaXBzLlxuICogQHR5cGVkZWYge1tGb3JtR3JvdXAsIHN0cmluZ119IEZvcm1QYXJlbnRHcm91cFxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IHR5cGUgRm9ybVBhcmVudEdyb3VwID0gW0Zvcm1Hcm91cCwgIHN0cmluZ107XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgaW5kaXZpZHVhbCBmaWx0ZXIgcXVlcnkgaXRlbXNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBvZiBhIHNpbmdsZSBmaWx0ZXIgY3JpdGVyaW9uIGluIGEgZmlsdGVyIHF1ZXJ5LlxuICogRWFjaCBpdGVtIHJlcHJlc2VudHMgb25lIGNvbmRpdGlvbiB0byBiZSBhcHBsaWVkIHRvIHRoZSBkYXRhLCBjb25zaXN0aW5nIG9mXG4gKiBhbiBpbmRleCAoZmllbGQgbmFtZSksIGEgY29uZGl0aW9uIChjb21wYXJpc29uIG9wZXJhdG9yKSwgYW5kIGEgdmFsdWUgdG8gY29tcGFyZSBhZ2FpbnN0LlxuICogQGludGVyZmFjZSBJRmlsdGVyUXVlcnlJdGVtXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2luZGV4XSAtIE9wdGlvbmFsIGZpZWxkIG5hbWUgb3IgaW5kZXggdG8gZmlsdGVyIG9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2NvbmRpdGlvbl0gLSBPcHRpb25hbCBjb21wYXJpc29uIGNvbmRpdGlvbiAoZS5nLiwgJ0VxdWFsJywgJ0NvbnRhaW5zJywgJ0dyZWF0ZXIgVGhhbicpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW3ZhbHVlXSAtIE9wdGlvbmFsIHZhbHVlIHRvIGNvbXBhcmUgdGhlIGZpZWxkIGFnYWluc3RcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZW5naW5lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZpbHRlclF1ZXJ5SXRlbSB7XG4gIGluZGV4Pzogc3RyaW5nLFxuICBjb25kaXRpb24/OiBzdHJpbmcsXG4gIHZhbHVlPzogc3RyaW5nXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIHNvcnRpbmcgY29uZmlndXJhdGlvbiBvYmplY3RzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgZm9yIHNwZWNpZnlpbmcgc29ydCBjcml0ZXJpYSBpbmNsdWRpbmcgdGhlIGZpZWxkXG4gKiB0byBzb3J0IGJ5IGFuZCB0aGUgZGlyZWN0aW9uIG9mIHRoZSBzb3J0IChhc2NlbmRpbmcgb3IgZGVzY2VuZGluZykuXG4gKiBAaW50ZXJmYWNlIElTb3J0T2JqZWN0XG4gKiBAcHJvcGVydHkge3N0cmluZ30gdmFsdWUgLSBUaGUgZmllbGQgbmFtZSBvciBwcm9wZXJ0eSB0byBzb3J0IGJ5XG4gKiBAcHJvcGVydHkge09yZGVyRGlyZWN0aW9ufSBkaXJlY3Rpb24gLSBUaGUgc29ydCBkaXJlY3Rpb24gKEFTQyBvciBEU0MpXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmVuZ2luZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIElTb3J0T2JqZWN0IHtcbiAgdmFsdWU6IHN0cmluZyxcbiAgZGlyZWN0aW9uOiBPcmRlckRpcmVjdGlvblxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciBjb21wbGV0ZSBmaWx0ZXIgcXVlcnkgY29uZmlndXJhdGlvblxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgY29tcGxldGUgc3RydWN0dXJlIGZvciBmaWx0ZXIgYW5kIHNvcnQgb3BlcmF0aW9ucy5cbiAqIENvbWJpbmVzIG11bHRpcGxlIGZpbHRlciBjcml0ZXJpYSB3aXRoIHNvcnRpbmcgY29uZmlndXJhdGlvbiB0byBwcm92aWRlXG4gKiBjb21wcmVoZW5zaXZlIGRhdGEgZmlsdGVyaW5nIGFuZCBvcmRlcmluZyBjYXBhYmlsaXRpZXMuXG4gKiBAaW50ZXJmYWNlIElGaWx0ZXJRdWVyeVxuICogQHByb3BlcnR5IHtJRmlsdGVyUXVlcnlJdGVtW10gfCB1bmRlZmluZWR9IHF1ZXJ5IC0gQXJyYXkgb2YgZmlsdGVyIGNyaXRlcmlhIG9yIHVuZGVmaW5lZCBmb3Igbm8gZmlsdGVyaW5nXG4gKiBAcHJvcGVydHkge0lTb3J0T2JqZWN0fSBzb3J0IC0gU29ydGluZyBjb25maWd1cmF0aW9uIHNwZWNpZnlpbmcgZmllbGQgYW5kIGRpcmVjdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTplbmdpbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRmlsdGVyUXVlcnkge1xuICBxdWVyeTogSUZpbHRlclF1ZXJ5SXRlbVtdIHwgdW5kZWZpbmVkLFxuICBzb3J0OiBJU29ydE9iamVjdFxufVxuIl19
|
|
@@ -1,118 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLWFuZ3VsYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9mb3ItYW5ndWxhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBdUIsZ0JBQWdCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUNmLFlBQVksRUFDWixNQUFNLEVBQ04sVUFBVSxFQUNWLE9BQU8sRUFDUCxTQUFTLEVBQ1QsYUFBYSxFQUNiLFFBQVEsRUFDVCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBVSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHcEQsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixNQUFNO0lBQ04sZUFBZTtJQUNmLFlBQVk7SUFDWixNQUFNO0lBQ04sT0FBTztJQUNQLFFBQVE7SUFDUixTQUFTO0lBQ1QsYUFBYTtJQUNiLFVBQVU7SUFDVixZQUFZO0lBQ1osV0FBVztJQUNYLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsYUFBYTtDQUNkLENBQUM7QUFFRixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZDLE1BQU0sVUFBVSxTQUFTLENBQUMsUUFBeUM7SUFDakUsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQWlDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBT0gsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQjs7Ozs7Ozs7T0FRRztJQUNILE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7U0FDM0IsQ0FBQztJQUNKLENBQUM7K0dBZFUsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsWUFoRDNCLE1BQU07WUFDTixlQUFlO1lBQ2YsWUFBWTtZQUNaLE1BQU07WUFDTixPQUFPO1lBQ1AsUUFBUTtZQUNSLFNBQVM7WUFDVCxhQUFhO1lBQ2IsVUFBVTtZQUNWLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixhQUFhLGFBYmIsTUFBTTtZQUNOLGVBQWU7WUFDZixZQUFZO1lBQ1osTUFBTTtZQUNOLE9BQU87WUFDUCxRQUFRO1lBQ1IsU0FBUztZQUNULGFBQWE7WUFDYixVQUFVO1lBQ1YsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGFBQWE7Z0hBbUNGLGdCQUFnQixZQWhEM0IsTUFBTTtZQUNOLGVBQWU7WUFDZixZQUFZO1lBQ1osTUFBTTtZQUNOLE9BQU87WUFDUCxRQUFRO1lBQ1IsU0FBUztZQUVULFVBQVU7WUFDVixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBSGYsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTs7NEZBb0NKLGdCQUFnQjtrQkFONUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsb0JBQW9CO29CQUM3QixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLG9CQUFvQjtvQkFDN0IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7aUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5PX0VSUk9SU19TQ0hFTUF9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIElvbkFwcCxcbiAgSW9uUm91dGVyT3V0bGV0LFxuICBJb25TcGxpdFBhbmUsXG4gIElvbkltZyxcbiAgSW9uQ29udGVudCxcbiAgSW9uVGV4dCxcbiAgSW9uQnV0dG9uLFxuICBJb25Sb3V0ZXJMaW5rLFxuICBJb25UaXRsZVxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBMb2dnZXIsIExvZ2dpbmcgfSBmcm9tICdAZGVjYWYtdHMvbG9nZ2luZyc7XG5pbXBvcnQgeyBGdW5jdGlvbkxpa2UgfSBmcm9tICcuL2VuZ2luZSc7XG5cbmNvbnN0IENvbXBvbmVudHNBbmRNb2R1bGVzID0gW1xuICBJb25BcHAsXG4gIElvblJvdXRlck91dGxldCxcbiAgSW9uU3BsaXRQYW5lLFxuICBJb25JbWcsXG4gIElvblRleHQsXG4gIElvblRpdGxlLFxuICBJb25CdXR0b24sXG4gIElvblJvdXRlckxpbmssXG4gIElvbkNvbnRlbnQsXG4gIENvbW1vbk1vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbiAgVHJhbnNsYXRlUGlwZSxcbl07XG5cbmNvbnN0IGxvZyA9IExvZ2dpbmcuZm9yKFwiZm9yLWFuZ3VsYXJcIik7XG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9nZ2VyKGluc3RhbmNlOiBzdHJpbmcgfCBGdW5jdGlvbkxpa2UgfCB1bmtub3duKTogTG9nZ2VyIHtcbiAgcmV0dXJuIGxvZy5mb3IoaW5zdGFuY2UgYXMgc3RyaW5nIHwgRnVuY3Rpb25MaWtlKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWFpbiBBbmd1bGFyIG1vZHVsZSBmb3IgdGhlIERlY2FmIGZyYW1ld29ya1xuICogQHN1bW1hcnkgVGhlIEZvckFuZ3VsYXJNb2R1bGUgcHJvdmlkZXMgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBmb3IgaW50ZWdyYXRpbmcgRGVjYWYgd2l0aCBBbmd1bGFyIGFwcGxpY2F0aW9ucy5cbiAqIEl0IGltcG9ydHMgYW5kIGV4cG9ydHMgY29tbW9uIEFuZ3VsYXIgYW5kIElvbmljIGNvbXBvbmVudHMgYW5kIG1vZHVsZXMgbmVlZGVkIGZvciBEZWNhZiBhcHBsaWNhdGlvbnMsXG4gKiBpbmNsdWRpbmcgZm9ybSBoYW5kbGluZywgdHJhbnNsYXRpb24gc3VwcG9ydCwgYW5kIElvbmljIFVJIGNvbXBvbmVudHMuIFRoaXMgbW9kdWxlIGNhbiBiZSBpbXBvcnRlZFxuICogZGlyZWN0bHkgb3IgdmlhIHRoZSBmb3JSb290KCkgbWV0aG9kIGZvciBwcm9wZXIgaW5pdGlhbGl6YXRpb24gaW4gdGhlIGFwcGxpY2F0aW9uJ3Mgcm9vdCBtb2R1bGUuXG4gKlxuICogQGNsYXNzIEZvckFuZ3VsYXJNb2R1bGVcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiB5b3VyIGFwcCBtb2R1bGU6XG4gKiBATmdNb2R1bGUoe1xuICogICBpbXBvcnRzOiBbXG4gKiAgICAgRm9yQW5ndWxhck1vZHVsZS5mb3JSb290KCksXG4gKiAgICAgLy8gb3RoZXIgaW1wb3J0c1xuICogICBdLFxuICogICAvLyAuLi5cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKiBgYGBcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogQ29tcG9uZW50c0FuZE1vZHVsZXMsXG4gIGRlY2xhcmF0aW9uczogW10sXG4gIGV4cG9ydHM6IENvbXBvbmVudHNBbmRNb2R1bGVzLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIEZvckFuZ3VsYXJNb2R1bGUge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBtb2R1bGUgd2l0aCBwcm92aWRlcnMgZm9yIHJvb3QgbW9kdWxlIGltcG9ydFxuICAgKiBAc3VtbWFyeSBUaGlzIHN0YXRpYyBtZXRob2QgcHJvdmlkZXMgdGhlIHByb3BlciB3YXkgdG8gaW1wb3J0IHRoZSBGb3JBbmd1bGFyTW9kdWxlIGluIHRoZSBhcHBsaWNhdGlvbidzXG4gICAqIHJvb3QgbW9kdWxlLiBJdCByZXR1cm5zIGEgTW9kdWxlV2l0aFByb3ZpZGVycyBvYmplY3QgdGhhdCBpbmNsdWRlcyB0aGUgRm9yQW5ndWxhck1vZHVsZSBpdHNlbGYuXG4gICAqIFVzaW5nIGZvclJvb3QoKSBlbnN1cmVzIHRoYXQgdGhlIG1vZHVsZSBhbmQgaXRzIHByb3ZpZGVycyBhcmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQgYW5kIG9ubHlcbiAgICogaW5zdGFudGlhdGVkIG9uY2UgaW4gdGhlIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJuIHtNb2R1bGVXaXRoUHJvdmlkZXJzPEZvckFuZ3VsYXJNb2R1bGU+fSBUaGUgbW9kdWxlIHdpdGggaXRzIHByb3ZpZGVyc1xuICAgKi9cbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxGb3JBbmd1bGFyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBGb3JBbmd1bGFyTW9kdWxlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module helpers
|
|
3
|
-
* @description Utility helpers for Angular Decaf applications
|
|
4
|
-
* @summary The helpers module provides a collection of utility functions and types
|
|
5
|
-
* that assist with common tasks in Decaf Angular applications. It includes functions
|
|
6
|
-
* for array manipulation, date formatting, logging, string operations, and various
|
|
7
|
-
* utility functions for working with Angular components and services. These helpers
|
|
8
|
-
* simplify common operations and promote code reuse across the application.
|
|
9
|
-
* Key exports include logging utilities, string manipulation functions, and component
|
|
10
|
-
* utility functions.
|
|
11
|
-
*/
|
|
12
|
-
export * from './utils';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2hlbHBlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUNILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGhlbHBlcnNcbiAqIEBkZXNjcmlwdGlvbiBVdGlsaXR5IGhlbHBlcnMgZm9yIEFuZ3VsYXIgRGVjYWYgYXBwbGljYXRpb25zXG4gKiBAc3VtbWFyeSBUaGUgaGVscGVycyBtb2R1bGUgcHJvdmlkZXMgYSBjb2xsZWN0aW9uIG9mIHV0aWxpdHkgZnVuY3Rpb25zIGFuZCB0eXBlc1xuICogdGhhdCBhc3Npc3Qgd2l0aCBjb21tb24gdGFza3MgaW4gRGVjYWYgQW5ndWxhciBhcHBsaWNhdGlvbnMuIEl0IGluY2x1ZGVzIGZ1bmN0aW9uc1xuICogZm9yIGFycmF5IG1hbmlwdWxhdGlvbiwgZGF0ZSBmb3JtYXR0aW5nLCBsb2dnaW5nLCBzdHJpbmcgb3BlcmF0aW9ucywgYW5kIHZhcmlvdXNcbiAqIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggQW5ndWxhciBjb21wb25lbnRzIGFuZCBzZXJ2aWNlcy4gVGhlc2UgaGVscGVyc1xuICogc2ltcGxpZnkgY29tbW9uIG9wZXJhdGlvbnMgYW5kIHByb21vdGUgY29kZSByZXVzZSBhY3Jvc3MgdGhlIGFwcGxpY2F0aW9uLlxuICogS2V5IGV4cG9ydHMgaW5jbHVkZSBsb2dnaW5nIHV0aWxpdGllcywgc3RyaW5nIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMsIGFuZCBjb21wb25lbnRcbiAqIHV0aWxpdHkgZnVuY3Rpb25zLlxuICovXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbiJdfQ==
|