@sumaris-net/ngx-components 18.18.35 → 18.18.37
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/doc/changelog.md +6 -2
- package/esm2022/src/app/shared/rx-state/rx-state.decorators.mjs +18 -4
- package/fesm2022/sumaris-net.ngx-components.mjs +17 -4
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/shared/rx-state/rx-state.decorators.d.ts +7 -1
- package/src/assets/manifest.json +1 -1
package/doc/changelog.md
CHANGED
|
@@ -1914,9 +1914,13 @@ enh: Environment: add useHash property to configure Angular router to use hash U
|
|
|
1914
1914
|
- fix(mat-duration) Use input placeholder (instead of `COMMON.TIME`)
|
|
1915
1915
|
- fix(mat-latlong) Make sure the default sign is used when no value is set (fix sumaris-app#1305)
|
|
1916
1916
|
|
|
1917
|
-
# 18.18.28
|
|
1917
|
+
# 18.18.28 - beta
|
|
1918
1918
|
- enh(rx-state) Add new decorator `@RxStateOutput() property: Observable<R>` for output binding
|
|
1919
1919
|
|
|
1920
|
-
# 18.18.33
|
|
1920
|
+
# 18.18.33 - beta
|
|
1921
1921
|
- enh(type) Replace all `declare type` by `type`
|
|
1922
1922
|
- fix(rx-state) Fix `@RxStateOutput()` decorator
|
|
1923
|
+
|
|
1924
|
+
# 18.18.37 - beta
|
|
1925
|
+
- enh(rx-state) Add new decorator `@RxStateInput() property: string` for input binding (without explicit declaration to `@Input()`)
|
|
1926
|
+
- enh(rx-state) Include `@Output()` inside `@RxStateOutput()`
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { RxState } from '@rx-angular/state';
|
|
2
2
|
import { map } from 'rxjs/operators';
|
|
3
3
|
import { select } from '@rx-angular/state/selections';
|
|
4
|
+
import { Input, Output } from '@angular/core';
|
|
4
5
|
let production = false;
|
|
5
6
|
export function enableRxStateProdMode() {
|
|
6
7
|
production = true;
|
|
@@ -74,12 +75,23 @@ export function RxStateProperty(statePropertyName, projectValueReducer) {
|
|
|
74
75
|
}
|
|
75
76
|
};
|
|
76
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Decorator for RxState input properties with getter/setter access
|
|
80
|
+
*/
|
|
81
|
+
export function RxStateInput(arg, statePropertyName, projectValueReducer) {
|
|
82
|
+
return function (target, key) {
|
|
83
|
+
// Apply @Input() decorator first
|
|
84
|
+
Input(arg)(target, key);
|
|
85
|
+
// Apply @RxStateProperty() decorator next
|
|
86
|
+
RxStateProperty(statePropertyName, projectValueReducer)(target, key);
|
|
87
|
+
};
|
|
88
|
+
}
|
|
77
89
|
/**
|
|
78
90
|
* Decorator for RxState observable selectors
|
|
79
91
|
*/
|
|
80
92
|
export function RxStateSelect(statePropertyName, opts) {
|
|
81
93
|
return function (target, key) {
|
|
82
|
-
//
|
|
94
|
+
// Naming convention check
|
|
83
95
|
if (!production && !key.endsWith('$')) {
|
|
84
96
|
console.warn(`[RxStateSelect] Convention: Property ${target.constructor?.name}.${String(key)} should end with '$' to indicate it's an Observable`);
|
|
85
97
|
}
|
|
@@ -124,7 +136,7 @@ export function RxStateSelect(statePropertyName, opts) {
|
|
|
124
136
|
*/
|
|
125
137
|
export function RxStateComputed(dependencies, computeFn, opts) {
|
|
126
138
|
return function (target, key) {
|
|
127
|
-
//
|
|
139
|
+
// Naming convention check
|
|
128
140
|
if (!production && !key.endsWith('$')) {
|
|
129
141
|
console.warn(`[RxStateComputed] Convention: Property ${target.constructor?.name}.${String(key)} should end with '$' to indicate it's an Observable`);
|
|
130
142
|
}
|
|
@@ -160,10 +172,12 @@ export function RxStateComputed(dependencies, computeFn, opts) {
|
|
|
160
172
|
*/
|
|
161
173
|
export function RxStateOutput(statePropertyName, opts) {
|
|
162
174
|
return function (target, key) {
|
|
163
|
-
//
|
|
175
|
+
// Naming convention check
|
|
164
176
|
if (!production && !key.endsWith('Changes')) {
|
|
165
177
|
console.warn(`[RxStateOutput] Convention: Property ${target.constructor?.name}.${String(key)} should end with 'Changes' to indicate it's an Output`);
|
|
166
178
|
}
|
|
179
|
+
// Apply @Output() decorator first
|
|
180
|
+
Output(opts?.alias)(target, key);
|
|
167
181
|
// Determine state property name
|
|
168
182
|
const finalStatePropertyName = statePropertyName || key.replace(/Changes$/, '');
|
|
169
183
|
// Determine state object
|
|
@@ -190,4 +204,4 @@ export function RxStateOutput(statePropertyName, opts) {
|
|
|
190
204
|
}
|
|
191
205
|
};
|
|
192
206
|
}
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtc3RhdGUuZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3J4LXN0YXRlL3J4LXN0YXRlLmRlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUF1QixPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3RELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztBQUV2QixNQUFNLFVBQVUscUJBQXFCO0lBQ25DLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFDcEIsQ0FBQztBQUtELHlCQUF5QjtBQUN6QixNQUFNLGNBQWM7SUFDbEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQ3pELE9BQU8sR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQzNELE9BQU8sR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBd0IsRUFBRSxXQUF5QjtRQUM5RSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUss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QUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDekUsY0FBYyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFFMUQsa0NBQWtDO2dCQUNsQyxvRkFBb0Y7Z0JBQ3BGLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO29CQUM3QixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxzQkFBc0IsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RJLENBQUM7Z0JBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBQ0QsVUFBVSxFQUFFLElBQUk7WUFDaEIsWUFBWSxFQUFFLEtBQUs7U0FDcEIsQ0FBQyxDQUFDO1FBRUgsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLG1CQUFtQixNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLDRCQUE0QixNQUFNLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0ksQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcm9qZWN0VmFsdWVSZWR1Y2VyLCBSeFN0YXRlIH0gZnJvbSAnQHJ4LWFuZ3VsYXIvc3RhdGUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgc2VsZWN0IH0gZnJvbSAnQHJ4LWFuZ3VsYXIvc3RhdGUvc2VsZWN0aW9ucyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gJy4uL3R5cGVzJztcblxubGV0IHByb2R1Y3Rpb24gPSBmYWxzZTtcblxuZXhwb3J0IGZ1bmN0aW9uIGVuYWJsZVJ4U3RhdGVQcm9kTW9kZSgpIHtcbiAgcHJvZHVjdGlvbiA9IHRydWU7XG59XG5cbmV4cG9ydCB0eXBlIE9ic2VydmFibGVQcm9wZXJ0eURlY29yYXRvcjxSPiA9IDxLIGV4dGVuZHMgUHJvcGVydHlLZXk+KHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogSykgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIFN0YXRlUHJvcGVydHlEZWNvcmF0b3I8Uj4gPSA8SyBleHRlbmRzIFByb3BlcnR5S2V5Pih0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IEspID0+IHZvaWQ7XG5cbi8vIFV0aWxpdHkgZm9yIGRlY29yYXRvcnNcbmNsYXNzIERlY29yYXRvclV0aWxzIHtcbiAgc3RhdGljIGNhcGl0YWxpemUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlTWV0aG9kTmFtZShwcmVmaXg6IHN0cmluZywgcHJvcGVydHlLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3ByZWZpeH0ke3RoaXMuY2FwaXRhbGl6ZShwcm9wZXJ0eUtleSl9YDtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVQcm9wZXJ0eU5hbWUocHJlZml4OiBzdHJpbmcsIHByb3BlcnR5S2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtwcmVmaXh9JHt0aGlzLmNhcGl0YWxpemUocHJvcGVydHlLZXkpfWA7XG4gIH1cblxuICBzdGF0aWMgdmFsaWRhdGVTdGF0ZVByb3BlcnR5KHRhcmdldDogQ29uc3RydWN0b3I8YW55Piwgc3RhdGVPYmplY3Q6IFJ4U3RhdGU8YW55Pik6IHZvaWQge1xuICAgIGlmICghcHJvZHVjdGlvbiAmJiAhc3RhdGVPYmplY3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBzdGF0ZSEgUGxlYXNlIGFkZCBhIFJ4U3RhdGUgaW4gY2xhc3M6ICR7dGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gICAgfVxuICB9XG59XG5cbmNvbnN0IFNUQVRFX1ZBUl9OQU1FX0tFWSA9ICdfX3N0YXRlTmFtZSc7XG5jb25zdCBERUZBVUxUX1NUQVRFX1ZBUl9OQU1FID0gJ19zdGF0ZSc7XG5cbi8qKlxuICogRGVjb3JhdG9yIHRvIHJlZ2lzdGVyIHRoZSBSeFN0YXRlIHByb3BlcnR5IGluIGEgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSeFN0YXRlUmVnaXN0ZXIoKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICByZXR1cm4gZnVuY3Rpb24gPFAgZXh0ZW5kcyBQcm9wZXJ0eUtleT4odGFyZ2V0OiBDb25zdHJ1Y3Rvcjxhbnk+LCBrZXk6IFApIHtcbiAgICBpZiAodGFyZ2V0W1NUQVRFX1ZBUl9OQU1FX0tFWV0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGRlZmluZSBtb3JlIHRoYW4gb25lIEBSeFN0YXRlUmVnaXN0ZXIoKSBpbiBjbGFzcyBoaWVyYXJjaHkuIEZvdW5kOiAke3RhcmdldFtTVEFURV9WQVJfTkFNRV9LRVldfSBhbmQgJHtTdHJpbmcoa2V5KX1gKTtcbiAgICB9XG5cbiAgICAvLyBTdG9yZSB0aGUgc3RhdGUgcHJvcGVydHkgbmFtZVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIFNUQVRFX1ZBUl9OQU1FX0tFWSwge1xuICAgICAgdmFsdWU6IFN0cmluZyhrZXkpLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIERlY29yYXRvciBmb3IgUnhTdGF0ZSBwcm9wZXJ0aWVzIHdpdGggZ2V0dGVyL3NldHRlciBhY2Nlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJ4U3RhdGVQcm9wZXJ0eTxUIGV4dGVuZHMgT2JqZWN0LCBLIGV4dGVuZHMga2V5b2YgVCwgUiBleHRlbmRzIFRbS10+KFxuICBzdGF0ZVByb3BlcnR5TmFtZT86IHN0cmluZyB8IEssXG4gIHByb2plY3RWYWx1ZVJlZHVjZXI/OiBQcm9qZWN0VmFsdWVSZWR1Y2VyPFQsIEssIFI+XG4pOiBTdGF0ZVByb3BlcnR5RGVjb3JhdG9yPFI+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxQIGV4dGVuZHMgUHJvcGVydHlLZXk+KHRhcmdldDogQ29uc3RydWN0b3I8YW55Piwga2V5OiBQKSB7XG4gICAgY29uc3QgZmluYWxTdGF0ZVByb3BlcnR5TmFtZSA9IFN0cmluZyhzdGF0ZVByb3BlcnR5TmFtZSB8fCBrZXkpIGFzIEs7XG4gICAgY29uc3Qgc3RhdGVWYXJOYW1lID0gdGFyZ2V0IGluc3RhbmNlb2YgUnhTdGF0ZSA/IG51bGwgOiB0YXJnZXRbU1RBVEVfVkFSX05BTUVfS0VZXSB8fCBERUZBVUxUX1NUQVRFX1ZBUl9OQU1FO1xuXG4gICAgLy8gRGVmaW5lIHByb3BlcnR5IHdpdGggZ2V0dGVyL3NldHRlclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlT2JqZWN0OiBSeFN0YXRlPFQ+ID0gc3RhdGVWYXJOYW1lID8gdGhpc1tzdGF0ZVZhck5hbWVdIDogdGhpcztcbiAgICAgICAgRGVjb3JhdG9yVXRpbHMudmFsaWRhdGVTdGF0ZVByb3BlcnR5KHRhcmdldCwgc3RhdGVPYmplY3QpO1xuICAgICAgICByZXR1cm4gc3RhdGVPYmplY3QuZ2V0KGZpbmFsU3RhdGVQcm9wZXJ0eU5hbWUpO1xuICAgICAgfSxcbiAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlOiBSKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlT2JqZWN0OiBSeFN0YXRlPFQ+ID0gc3RhdGVWYXJOYW1lID8gdGhpc1tzdGF0ZVZhck5hbWVdIDogdGhpcztcbiAgICAgICAgRGVjb3JhdG9yVXRpbHMudmFsaWRhdGVTdGF0ZVByb3BlcnR5KHRhcmdldCwgc3RhdGVPYmplY3QpO1xuICAgICAgICBpZiAocHJvamVjdFZhbHVlUmVkdWNlcikge1xuICAgICAgICAgIHN0YXRlT2JqZWN0LnNldChmaW5hbFN0YXRlUHJvcGVydHlOYW1lLCAoc3RhdGU6IFQpID0+IHByb2plY3RWYWx1ZVJlZHVjZXIoc3RhdGUsIHZhbHVlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGVPYmplY3Quc2V0KDxQYXJ0aWFsPFQ+PnsgW2ZpbmFsU3RhdGVQcm9wZXJ0eU5hbWVdOiB2YWx1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBEZXZlbG9wbWVudCBsb2dnaW5nXG4gICAgaWYgKCFwcm9kdWN0aW9uKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGBbUnhTdGF0ZVByb3BlcnR5XSAke3RhcmdldC5jb25zdHJ1Y3Rvcj8ubmFtZX0uJHtTdHJpbmcoa2V5KX0gLT4gc3RhdGUuJHtTdHJpbmcoZmluYWxTdGF0ZVByb3BlcnR5TmFtZSl9YCk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIERlY29yYXRvciBmb3IgUnhTdGF0ZSBvYnNlcnZhYmxlIHNlbGVjdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gUnhTdGF0ZVNlbGVjdDxUIGV4dGVuZHMgT2JqZWN0ID0gYW55LCBLIGV4dGVuZHMga2V5b2YgVCA9IGFueSwgUiBleHRlbmRzIFRbS10gPSBUW0tdPihcbiAgc3RhdGVQcm9wZXJ0eU5hbWU/OiBzdHJpbmcgfCBLIHwgJyQnLFxuICBvcHRzPzoge1xuICAgIHN0YXRlTmFtZT86IHN0cmluZztcbiAgfVxuKTogT2JzZXJ2YWJsZVByb3BlcnR5RGVjb3JhdG9yPE9ic2VydmFibGU8Uj4+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxQIGV4dGVuZHMgUHJvcGVydHlLZXk+KHRhcmdldDogYW55LCBrZXk6IFApIHtcbiAgICAvLyBDb252ZW50aW9uIGNoZWNrXG4gICAgaWYgKCFwcm9kdWN0aW9uICYmICEoa2V5IGFzIHN0cmluZykuZW5kc1dpdGgoJyQnKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgW1J4U3RhdGVTZWxlY3RdIENvbnZlbnRpb246IFByb3BlcnR5ICR7dGFyZ2V0LmNvbnN0cnVjdG9yPy5uYW1lfS4ke1N0cmluZyhrZXkpfSBzaG91bGQgZW5kIHdpdGggJyQnIHRvIGluZGljYXRlIGl0J3MgYW4gT2JzZXJ2YWJsZWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIHN0YXRlIHByb3BlcnR5IG5hbWVcbiAgICBjb25zdCBmaW5hbFN0YXRlUHJvcGVydHlOYW1lID0gKHN0YXRlUHJvcGVydHlOYW1lIGFzIHN0cmluZykgfHwgKGtleSBhcyBzdHJpbmcpLnJlcGxhY2UoL1xcJCQvLCAnJyk7XG5cbiAgICAvLyBEZXRlcm1pbmUgc3RhdGUgb2JqZWN0XG4gICAgY29uc3Qgc3RhdGVWYXJOYW1lID0gdGFyZ2V0IGluc3RhbmNlb2YgUnhTdGF0ZSA/IG51bGwgOiB0YXJnZXRbU1RBVEVfVkFSX05BTUVfS0VZXSB8fCBvcHRzPy5zdGF0ZU5hbWUgfHwgREVGQVVMVF9TVEFURV9WQVJfTkFNRTtcblxuICAgIC8vIENyZWF0ZSBjYWNoZSBwcm9wZXJ0eSBuYW1lXG4gICAgY29uc3QgaW50ZXJuYWxQcm9wZXJ0eU5hbWUgPSBgX18ke2tleSBhcyBzdHJpbmd9YDtcblxuICAgIC8vIERlZmluZSBwcm9wZXJ0eSB3aXRoIGdldHRlciBvbmx5XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVPYmplY3Q6IFJ4U3RhdGU8VD4gPSBzdGF0ZVZhck5hbWUgPyB0aGlzW3N0YXRlVmFyTmFtZV0gOiB0aGlzO1xuICAgICAgICBEZWNvcmF0b3JVdGlscy52YWxpZGF0ZVN0YXRlUHJvcGVydHkodGFyZ2V0LCBzdGF0ZU9iamVjdCk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIG9ic2VydmFibGUgaWYgbm90IGV4aXN0c1xuICAgICAgICBpZiAoIXRoaXNbaW50ZXJuYWxQcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgICAgaWYgKGZpbmFsU3RhdGVQcm9wZXJ0eU5hbWUgPT09ICckJykge1xuICAgICAgICAgICAgdGhpc1tpbnRlcm5hbFByb3BlcnR5TmFtZV0gPSBzdGF0ZU9iamVjdC4kO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZmluYWxTdGF0ZVByb3BlcnR5TmFtZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICAgICAgICBjb25zdCBhcmdzID0gZmluYWxTdGF0ZVByb3BlcnR5TmFtZS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpc1tpbnRlcm5hbFByb3BlcnR5TmFtZV0gPSBzdGF0ZU9iamVjdC5zZWxlY3QoLi4uYXJncyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXNbaW50ZXJuYWxQcm9wZXJ0eU5hbWVdID0gc3RhdGVPYmplY3Quc2VsZWN0KGZpbmFsU3RhdGVQcm9wZXJ0eU5hbWUgYXMgSyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXNbaW50ZXJuYWxQcm9wZXJ0eU5hbWVdO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgLy8gRGV2ZWxvcG1lbnQgbG9nZ2luZ1xuICAgIGlmICghcHJvZHVjdGlvbikge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgW1J4U3RhdGVTZWxlY3RdICR7dGFyZ2V0LmNvbnN0cnVjdG9yPy5uYW1lfS4ke1N0cmluZyhrZXkpfSAtPiBzdGF0ZS5zZWxlY3QoJyR7ZmluYWxTdGF0ZVByb3BlcnR5TmFtZX0nKWApO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBVdGlsaXR5IGRlY29yYXRvciB0byBjcmVhdGUgY29tcHV0ZWQgb2JzZXJ2YWJsZXMgZnJvbSBzdGF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gUnhTdGF0ZUNvbXB1dGVkPFQgZXh0ZW5kcyBPYmplY3QgPSBhbnksIEsgZXh0ZW5kcyBrZXlvZiBUID0gYW55LCBSIGV4dGVuZHMgVFtLXSA9IFRbS10+KFxuICBkZXBlbmRlbmNpZXM6IEtbXSxcbiAgY29tcHV0ZUZuPzogKHNsaWNlOiBQaWNrPFQsIEs+KSA9PiBSLFxuICBvcHRzPzoge1xuICAgIHN0YXRlTmFtZT86IHN0cmluZztcbiAgICBrZXlDb21wYXJlTWFwPzogYW55O1xuICB9XG4pOiBPYnNlcnZhYmxlUHJvcGVydHlEZWNvcmF0b3I8T2JzZXJ2YWJsZTxSPj4ge1xuICByZXR1cm4gZnVuY3Rpb24gPFAgZXh0ZW5kcyBQcm9wZXJ0eUtleT4odGFyZ2V0OiBhbnksIGtleTogUCkge1xuICAgIC8vIENvbnZlbnRpb24gY2hlY2tcbiAgICBpZiAoIXByb2R1Y3Rpb24gJiYgIShrZXkgYXMgc3RyaW5nKS5lbmRzV2l0aCgnJCcpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBbUnhTdGF0ZUNvbXB1dGVkXSBDb252ZW50aW9uOiBQcm9wZXJ0eSAke3RhcmdldC5jb25zdHJ1Y3Rvcj8ubmFtZX0uJHtTdHJpbmcoa2V5KX0gc2hvdWxkIGVuZCB3aXRoICckJyB0byBpbmRpY2F0ZSBpdCdzIGFuIE9ic2VydmFibGVgXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXRlVmFyTmFtZSA9IHRhcmdldCBpbnN0YW5jZW9mIFJ4U3RhdGUgPyBudWxsIDogdGFyZ2V0W1NUQVRFX1ZBUl9OQU1FX0tFWV0gfHwgb3B0cz8uc3RhdGVOYW1lIHx8IERFRkFVTFRfU1RBVEVfVkFSX05BTUU7XG4gICAgY29uc3QgY2FjaGVQcm9wZXJ0eU5hbWUgPSBgX18ke2tleSBhcyBzdHJpbmd9X2NhY2hlYDtcblxuICAgIC8vIERlZmluZSBwcm9wZXJ0eSB3aXRoIGdldHRlciBvbmx5XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVPYmplY3Q6IFJ4U3RhdGU8VD4gPSBzdGF0ZVZhck5hbWUgPyB0aGlzW3N0YXRlVmFyTmFtZV0gOiB0aGlzO1xuICAgICAgICBEZWNvcmF0b3JVdGlscy52YWxpZGF0ZVN0YXRlUHJvcGVydHkodGFyZ2V0LCBzdGF0ZU9iamVjdCk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIG9ic2VydmFibGUgaWYgbm90IGV4aXN0c1xuICAgICAgICBpZiAoIXRoaXNbY2FjaGVQcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgICAgbGV0IG9ic2VydmFibGUgPSBzdGF0ZU9iamVjdC5zZWxlY3QoZGVwZW5kZW5jaWVzLCBvcHRzPy5rZXlDb21wYXJlTWFwKTtcblxuICAgICAgICAgIC8vIEFwcGx5IGNvbXB1dGVGbiBpZiBwcm92aWRlZFxuICAgICAgICAgIGlmIChjb21wdXRlRm4pIHtcbiAgICAgICAgICAgIG9ic2VydmFibGUgPSBvYnNlcnZhYmxlLnBpcGUobWFwKGNvbXB1dGVGbikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXNbY2FjaGVQcm9wZXJ0eU5hbWVdID0gb2JzZXJ2YWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzW2NhY2hlUHJvcGVydHlOYW1lXTtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIC8vIERldmVsb3BtZW50IGxvZ2dpbmdcbiAgICBpZiAoIXByb2R1Y3Rpb24pIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAgIGBbUnhTdGF0ZUNvbXB1dGVkXSAke3RhcmdldC5jb25zdHJ1Y3Rvcj8ubmFtZX0uJHtTdHJpbmcoa2V5KX0gLT4gc3RhdGUuc2VsZWN0KFske2RlcGVuZGVuY2llcy5tYXAoKGRlcCkgPT4gYCcke2RlcCBhcyBzdHJpbmd9J2ApLmpvaW4oJywgJyl9XSlgXG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIFJ4U3RhdGUgb2JzZXJ2YWJsZSBhcyBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJ4U3RhdGVPdXRwdXQ8VCBleHRlbmRzIE9iamVjdCwgSyBleHRlbmRzIGtleW9mIFQsIFIgZXh0ZW5kcyBUW0tdID0gVFtLXT4oXG4gIHN0YXRlUHJvcGVydHlOYW1lPzogc3RyaW5nIHwgSyB8ICckJyxcbiAgb3B0cz86IHtcbiAgICBzdGF0ZU5hbWU/OiBzdHJpbmc7XG4gIH1cbik6IE9ic2VydmFibGVQcm9wZXJ0eURlY29yYXRvcjxPYnNlcnZhYmxlPFI+PiB7XG4gIHJldHVybiBmdW5jdGlvbiA8UCBleHRlbmRzIFByb3BlcnR5S2V5Pih0YXJnZXQ6IGFueSwga2V5OiBQKSB7XG4gICAgLy8gQ29udmVudGlvbiBjaGVja1xuICAgIGlmICghcHJvZHVjdGlvbiAmJiAhKGtleSBhcyBzdHJpbmcpLmVuZHNXaXRoKCdDaGFuZ2VzJykpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFtSeFN0YXRlT3V0cHV0XSBDb252ZW50aW9uOiBQcm9wZXJ0eSAke3RhcmdldC5jb25zdHJ1Y3Rvcj8ubmFtZX0uJHtTdHJpbmcoa2V5KX0gc2hvdWxkIGVuZCB3aXRoICdDaGFuZ2VzJyB0byBpbmRpY2F0ZSBpdCdzIGFuIE91dHB1dGBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gRGV0ZXJtaW5lIHN0YXRlIHByb3BlcnR5IG5hbWVcbiAgICBjb25zdCBmaW5hbFN0YXRlUHJvcGVydHlOYW1lID0gKHN0YXRlUHJvcGVydHlOYW1lIGFzIEspIHx8ICgoa2V5IGFzIHN0cmluZykucmVwbGFjZSgvQ2hhbmdlcyQvLCAnJykgYXMgSyk7XG5cbiAgICAvLyBEZXRlcm1pbmUgc3RhdGUgb2JqZWN0XG4gICAgY29uc3Qgc3RhdGVWYXJOYW1lID0gdGFyZ2V0IGluc3RhbmNlb2YgUnhTdGF0ZSA/IG51bGwgOiB0YXJnZXRbU1RBVEVfVkFSX05BTUVfS0VZXSB8fCBvcHRzPy5zdGF0ZU5hbWUgfHwgREVGQVVMVF9TVEFURV9WQVJfTkFNRTtcbiAgICBjb25zdCBjYWNoZVByb3BlcnR5TmFtZSA9IGBfXyR7a2V5IGFzIHN0cmluZ31fY2FjaGVgO1xuXG4gICAgLy8gRGVmaW5lIHByb3BlcnR5IHdpdGggZ2V0dGVyIG9ubHlcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBzdGF0ZU9iamVjdDogUnhTdGF0ZTxUPiA9IHN0YXRlVmFyTmFtZSA/IHRoaXNbc3RhdGVWYXJOYW1lXSA6IHRoaXM7XG4gICAgICAgIERlY29yYXRvclV0aWxzLnZhbGlkYXRlU3RhdGVQcm9wZXJ0eSh0YXJnZXQsIHN0YXRlT2JqZWN0KTtcblxuICAgICAgICAvLyBDcmVhdGUgb2JzZXJ2YWJsZSBpZiBub3QgZXhpc3RzXG4gICAgICAgIC8vIFNlZSBodHRwczovL3d3dy5yeC1hbmd1bGFyLmlvL2RvY3Mvc3RhdGUvZ2V0dGluZy1zdGFydGVkI291dHB1dC1wcm9wZXJ0eS1iaW5kaW5nc1xuICAgICAgICBpZiAoIXRoaXNbY2FjaGVQcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgICAgdGhpc1tjYWNoZVByb3BlcnR5TmFtZV0gPSBmaW5hbFN0YXRlUHJvcGVydHlOYW1lID09PSAnJCcgPyBzdGF0ZU9iamVjdC4kIDogc3RhdGVPYmplY3QuJC5waXBlKHNlbGVjdDxULCBLPihmaW5hbFN0YXRlUHJvcGVydHlOYW1lKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpc1tjYWNoZVByb3BlcnR5TmFtZV07XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBEZXZlbG9wbWVudCBsb2dnaW5nXG4gICAgaWYgKCFwcm9kdWN0aW9uKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGBbUnhTdGF0ZU91dHB1dF0gJHt0YXJnZXQuY29uc3RydWN0b3I/Lm5hbWV9LiR7U3RyaW5nKGtleSl9IC0+IHN0YXRlLiQucGlwZShzZWxlY3QoJyR7U3RyaW5nKGZpbmFsU3RhdGVQcm9wZXJ0eU5hbWUpfScpKWApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtc3RhdGUuZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3J4LXN0YXRlL3J4LXN0YXRlLmRlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUF1QixPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXRELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztBQUV2QixNQUFNLFVBQVUscUJBQXFCO0lBQ25DLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFDcEIsQ0FBQztBQUtELHlCQUF5QjtBQUN6QixNQUFNLGNBQWM7SUFDbEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQ3pELE9BQU8sR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQzNELE9BQU8sR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMscUJBQXFCLENBQUMsTUFBd0IsRUFBRSxXQUF5QjtRQUM5RSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQztBQUN6QyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQUV4Qzs7R0FFRztBQUNILE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sVUFBaUMsTUFBd0IsRUFBRSxHQUFNO1FBQ3RFLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLDZFQUE2RSxNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBUSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hKLENBQUM7UUFFRCxnQ0FBZ0M7UUFDaEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7WUFDaEQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDbEIsUUFBUSxFQUFFLEtBQUs7WUFDZixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUM3QixpQkFBOEIsRUFDOUIsbUJBQWtEO0lBRWxELE9BQU8sVUFBaUMsTUFBd0IsRUFBRSxHQUFNO1FBQ3RFLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEdBQUcsQ0FBTSxDQUFDO1FBQ3JFLE1BQU0sWUFBWSxHQUFHLE1BQU0sWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksc0JBQXNCLENBQUM7UUFFN0cscUNBQXFDO1FBQ3JDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNqQyxHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxXQUFXLEdBQWUsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDekUsY0FBYyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDMUQsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDakQsQ0FBQztZQUNELEdBQUcsRUFBRSxVQUFVLEtBQVE7Z0JBQ3JCLE1BQU0sV0FBVyxHQUFlLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pFLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQzFELElBQUksbUJBQW1CLEVBQUUsQ0FBQztvQkFDeEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEtBQVEsRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQzNGLENBQUM7cUJBQU0sQ0FBQztvQkFDTixXQUFXLENBQUMsR0FBRyxDQUFhLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ25FLENBQUM7WUFDSCxDQUFDO1lBQ0QsVUFBVSxFQUFFLElBQUk7WUFDaEIsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsTUFBTSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNILENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUMxQixHQUFvQixFQUNwQixpQkFBOEIsRUFDOUIsbUJBQWtEO0lBRWxELE9BQU8sVUFBaUMsTUFBd0IsRUFBRSxHQUFNO1FBQ3RFLGlDQUFpQztRQUNqQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXhCLDBDQUEwQztRQUMxQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsaUJBQW9DLEVBQ3BDLElBRUM7SUFFRCxPQUFPLFVBQWlDLE1BQVcsRUFBRSxHQUFNO1FBQ3pELDBCQUEwQjtRQUMxQixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUUsR0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQ1Ysd0NBQXdDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMscURBQXFELENBQ3JJLENBQUM7UUFDSixDQUFDO1FBRUQsZ0NBQWdDO1FBQ2hDLE1BQU0sc0JBQXNCLEdBQUksaUJBQTRCLElBQUssR0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbkcseUJBQXlCO1FBQ3pCLE1BQU0sWUFBWSxHQUFHLE1BQU0sWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksSUFBSSxFQUFFLFNBQVMsSUFBSSxzQkFBc0IsQ0FBQztRQUVoSSw2QkFBNkI7UUFDN0IsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLEdBQWEsRUFBRSxDQUFDO1FBRWxELG1DQUFtQztRQUNuQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDakMsR0FBRyxFQUFFO2dCQUNILE1BQU0sV0FBVyxHQUFlLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pFLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBRTFELGtDQUFrQztnQkFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7b0JBQ2hDLElBQUksc0JBQXNCLEtBQUssR0FBRyxFQUFFLENBQUM7d0JBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQzdDLENBQUM7eUJBQU0sSUFBSSxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDaEQsTUFBTSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUMvQyxhQUFhO3dCQUNiLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDM0QsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsc0JBQTJCLENBQUMsQ0FBQztvQkFDL0UsQ0FBQztnQkFDSCxDQUFDO2dCQUVELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUNELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUMsQ0FBQztRQUVILHNCQUFzQjtRQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsc0JBQXNCLElBQUksQ0FBQyxDQUFDO1FBQzNILENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUM3QixZQUFpQixFQUNqQixTQUFvQyxFQUNwQyxJQUdDO0lBRUQsT0FBTyxVQUFpQyxNQUFXLEVBQUUsR0FBTTtRQUN6RCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFFLEdBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxPQUFPLENBQUMsSUFBSSxDQUNWLDBDQUEwQyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLHFEQUFxRCxDQUN2SSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sWUFBWSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQUksSUFBSSxFQUFFLFNBQVMsSUFBSSxzQkFBc0IsQ0FBQztRQUNoSSxNQUFNLGlCQUFpQixHQUFHLEtBQUssR0FBYSxRQUFRLENBQUM7UUFFckQsbUNBQW1DO1FBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNqQyxHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxXQUFXLEdBQWUsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDekUsY0FBYyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFFMUQsa0NBQWtDO2dCQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO29CQUV2RSw4QkFBOEI7b0JBQzlCLElBQUksU0FBUyxFQUFFLENBQUM7d0JBQ2QsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQy9DLENBQUM7b0JBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsVUFBVSxDQUFDO2dCQUN2QyxDQUFDO2dCQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDakMsQ0FBQztZQUNELFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUMsQ0FBQztRQUVILHNCQUFzQjtRQUN0QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FDWCxxQkFBcUIsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFhLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNoSixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLGlCQUFvQyxFQUNwQyxJQUdDO0lBRUQsT0FBTyxVQUFpQyxNQUFXLEVBQUUsR0FBTTtRQUN6RCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFFLEdBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxPQUFPLENBQUMsSUFBSSxDQUNWLHdDQUF3QyxNQUFNLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLHVEQUF1RCxDQUN2SSxDQUFDO1FBQ0osQ0FBQztRQUVELGtDQUFrQztRQUNsQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVqQyxnQ0FBZ0M7UUFDaEMsTUFBTSxzQkFBc0IsR0FBSSxpQkFBdUIsSUFBTSxHQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQU8sQ0FBQztRQUUxRyx5QkFBeUI7UUFDekIsTUFBTSxZQUFZLEdBQUcsTUFBTSxZQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxJQUFJLEVBQUUsU0FBUyxJQUFJLHNCQUFzQixDQUFDO1FBQ2hJLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxHQUFhLFFBQVEsQ0FBQztRQUVyRCxtQ0FBbUM7UUFDbkMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ2pDLEdBQUcsRUFBRTtnQkFDSCxNQUFNLFdBQVcsR0FBZSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUN6RSxjQUFjLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUUxRCxrQ0FBa0M7Z0JBQ2xDLG9GQUFvRjtnQkFDcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7b0JBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLHNCQUFzQixLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFPLHNCQUFzQixDQUFDLENBQUMsQ0FBQztnQkFDdEksQ0FBQztnQkFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7WUFDRCxVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsS0FBSztTQUNwQixDQUFDLENBQUM7UUFFSCxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzSSxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByb2plY3RWYWx1ZVJlZHVjZXIsIFJ4U3RhdGUgfSBmcm9tICdAcngtYW5ndWxhci9zdGF0ZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBzZWxlY3QgfSBmcm9tICdAcngtYW5ndWxhci9zdGF0ZS9zZWxlY3Rpb25zJztcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5sZXQgcHJvZHVjdGlvbiA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gZW5hYmxlUnhTdGF0ZVByb2RNb2RlKCkge1xuICBwcm9kdWN0aW9uID0gdHJ1ZTtcbn1cblxuZXhwb3J0IHR5cGUgT2JzZXJ2YWJsZVByb3BlcnR5RGVjb3JhdG9yPFI+ID0gPEsgZXh0ZW5kcyBQcm9wZXJ0eUtleT4odGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBLKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgU3RhdGVQcm9wZXJ0eURlY29yYXRvcjxSPiA9IDxLIGV4dGVuZHMgUHJvcGVydHlLZXk+KHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogSykgPT4gdm9pZDtcblxuLy8gVXRpbGl0eSBmb3IgZGVjb3JhdG9yc1xuY2xhc3MgRGVjb3JhdG9yVXRpbHMge1xuICBzdGF0aWMgY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVNZXRob2ROYW1lKHByZWZpeDogc3RyaW5nLCBwcm9wZXJ0eUtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cHJlZml4fSR7dGhpcy5jYXBpdGFsaXplKHByb3BlcnR5S2V5KX1gO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVByb3BlcnR5TmFtZShwcmVmaXg6IHN0cmluZywgcHJvcGVydHlLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3ByZWZpeH0ke3RoaXMuY2FwaXRhbGl6ZShwcm9wZXJ0eUtleSl9YDtcbiAgfVxuXG4gIHN0YXRpYyB2YWxpZGF0ZVN0YXRlUHJvcGVydHkodGFyZ2V0OiBDb25zdHJ1Y3Rvcjxhbnk+LCBzdGF0ZU9iamVjdDogUnhTdGF0ZTxhbnk+KTogdm9pZCB7XG4gICAgaWYgKCFwcm9kdWN0aW9uICYmICFzdGF0ZU9iamVjdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHN0YXRlISBQbGVhc2UgYWRkIGEgUnhTdGF0ZSBpbiBjbGFzczogJHt0YXJnZXQuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgU1RBVEVfVkFSX05BTUVfS0VZID0gJ19fc3RhdGVOYW1lJztcbmNvbnN0IERFRkFVTFRfU1RBVEVfVkFSX05BTUUgPSAnX3N0YXRlJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgdG8gcmVnaXN0ZXIgdGhlIFJ4U3RhdGUgcHJvcGVydHkgaW4gYSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJ4U3RhdGVSZWdpc3RlcigpOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIHJldHVybiBmdW5jdGlvbiA8UCBleHRlbmRzIFByb3BlcnR5S2V5Pih0YXJnZXQ6IENvbnN0cnVjdG9yPGFueT4sIGtleTogUCkge1xuICAgIGlmICh0YXJnZXRbU1RBVEVfVkFSX05BTUVfS0VZXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZGVmaW5lIG1vcmUgdGhhbiBvbmUgQFJ4U3RhdGVSZWdpc3RlcigpIGluIGNsYXNzIGhpZXJhcmNoeS4gRm91bmQ6ICR7dGFyZ2V0W1NUQVRFX1ZBUl9OQU1FX0tFWV19IGFuZCAke1N0cmluZyhrZXkpfWApO1xuICAgIH1cblxuICAgIC8vIFN0b3JlIHRoZSBzdGF0ZSBwcm9wZXJ0eSBuYW1lXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgU1RBVEVfVkFSX05BTUVfS0VZLCB7XG4gICAgICB2YWx1ZTogU3RyaW5nKGtleSksXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgfSk7XG4gIH07XG59XG5cbi8qKlxuICogRGVjb3JhdG9yIGZvciBSeFN0YXRlIHByb3BlcnRpZXMgd2l0aCBnZXR0ZXIvc2V0dGVyIGFjY2Vzc1xuICovXG5leHBvcnQgZnVuY3Rpb24gUnhTdGF0ZVByb3BlcnR5PFQgZXh0ZW5kcyBPYmplY3QsIEsgZXh0ZW5kcyBrZXlvZiBULCBSIGV4dGVuZHMgVFtLXSA9IFRbS10+KFxuICBzdGF0ZVByb3BlcnR5TmFtZT86IHN0cmluZyB8IEssXG4gIHByb2plY3RWYWx1ZVJlZHVjZXI/OiBQcm9qZWN0VmFsdWVSZWR1Y2VyPFQsIEssIFI+XG4pOiBTdGF0ZVByb3BlcnR5RGVjb3JhdG9yPFI+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxQIGV4dGVuZHMgUHJvcGVydHlLZXk+KHRhcmdldDogQ29uc3RydWN0b3I8YW55Piwga2V5OiBQKSB7XG4gICAgY29uc3QgZmluYWxTdGF0ZVByb3BlcnR5TmFtZSA9IFN0cmluZyhzdGF0ZVByb3BlcnR5TmFtZSB8fCBrZXkpIGFzIEs7XG4gICAgY29uc3Qgc3RhdGVWYXJOYW1lID0gdGFyZ2V0IGluc3RhbmNlb2YgUnhTdGF0ZSA/IG51bGwgOiB0YXJnZXRbU1RBVEVfVkFSX05BTUVfS0VZXSB8fCBERUZBVUxUX1NUQVRFX1ZBUl9OQU1FO1xuXG4gICAgLy8gRGVmaW5lIHByb3BlcnR5IHdpdGggZ2V0dGVyL3NldHRlclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwge1xuICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlT2JqZWN0OiBSeFN0YXRlPFQ+ID0gc3RhdGVWYXJOYW1lID8gdGhpc1tzdGF0ZVZhck5hbWVdIDogdGhpcztcbiAgICAgICAgRGVjb3JhdG9yVXRpbHMudmFsaWRhdGVTdGF0ZVByb3BlcnR5KHRhcmdldCwgc3RhdGVPYmplY3QpO1xuICAgICAgICByZXR1cm4gc3RhdGVPYmplY3QuZ2V0KGZpbmFsU3RhdGVQcm9wZXJ0eU5hbWUpO1xuICAgICAgfSxcbiAgICAgIHNldDogZnVuY3Rpb24gKHZhbHVlOiBSKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlT2JqZWN0OiBSeFN0YXRlPFQ+ID0gc3RhdGVWYXJOYW1lID8gdGhpc1tzdGF0ZVZhck5hbWVdIDogdGhpcztcbiAgICAgICAgRGVjb3JhdG9yVXRpbHMudmFsaWRhdGVTdGF0ZVByb3BlcnR5KHRhcmdldCwgc3RhdGVPYmplY3QpO1xuICAgICAgICBpZiAocHJvamVjdFZhbHVlUmVkdWNlcikge1xuICAgICAgICAgIHN0YXRlT2JqZWN0LnNldChmaW5hbFN0YXRlUHJvcGVydHlOYW1lLCAoc3RhdGU6IFQpID0+IHByb2plY3RWYWx1ZVJlZHVjZXIoc3RhdGUsIHZhbHVlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGVPYmplY3Quc2V0KDxQYXJ0aWFsPFQ+PnsgW2ZpbmFsU3RhdGVQcm9wZXJ0eU5hbWVdOiB2YWx1ZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBEZXZlbG9wbWVudCBsb2dnaW5nXG4gICAgaWYgKCFwcm9kdWN0aW9uKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGBbUnhTdGF0ZVByb3BlcnR5XSAke3RhcmdldC5jb25zdHJ1Y3Rvcj8ubmFtZX0uJHtTdHJpbmcoa2V5KX0gLT4gc3RhdGUuJHtTdHJpbmcoZmluYWxTdGF0ZVByb3BlcnR5TmFtZSl9YCk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIERlY29yYXRvciBmb3IgUnhTdGF0ZSBpbnB1dCBwcm9wZXJ0aWVzIHdpdGggZ2V0dGVyL3NldHRlciBhY2Nlc3NcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJ4U3RhdGVJbnB1dDxUIGV4dGVuZHMgT2JqZWN0LCBLIGV4dGVuZHMga2V5b2YgVCwgUiBleHRlbmRzIFRbS10gPSBUW0tdPihcbiAgYXJnPzogc3RyaW5nIHwgSW5wdXQsXG4gIHN0YXRlUHJvcGVydHlOYW1lPzogc3RyaW5nIHwgSyxcbiAgcHJvamVjdFZhbHVlUmVkdWNlcj86IFByb2plY3RWYWx1ZVJlZHVjZXI8VCwgSywgUj5cbik6IFN0YXRlUHJvcGVydHlEZWNvcmF0b3I8Uj4ge1xuICByZXR1cm4gZnVuY3Rpb24gPFAgZXh0ZW5kcyBQcm9wZXJ0eUtleT4odGFyZ2V0OiBDb25zdHJ1Y3Rvcjxhbnk+LCBrZXk6IFApIHtcbiAgICAvLyBBcHBseSBASW5wdXQoKSBkZWNvcmF0b3IgZmlyc3RcbiAgICBJbnB1dChhcmcpKHRhcmdldCwga2V5KTtcblxuICAgIC8vIEFwcGx5IEBSeFN0YXRlUHJvcGVydHkoKSBkZWNvcmF0b3IgbmV4dFxuICAgIFJ4U3RhdGVQcm9wZXJ0eShzdGF0ZVByb3BlcnR5TmFtZSwgcHJvamVjdFZhbHVlUmVkdWNlcikodGFyZ2V0LCBrZXkpO1xuICB9O1xufVxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIFJ4U3RhdGUgb2JzZXJ2YWJsZSBzZWxlY3RvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJ4U3RhdGVTZWxlY3Q8VCBleHRlbmRzIE9iamVjdCA9IGFueSwgSyBleHRlbmRzIGtleW9mIFQgPSBhbnksIFIgZXh0ZW5kcyBUW0tdID0gVFtLXT4oXG4gIHN0YXRlUHJvcGVydHlOYW1lPzogc3RyaW5nIHwgSyB8ICckJyxcbiAgb3B0cz86IHtcbiAgICBzdGF0ZU5hbWU/OiBzdHJpbmc7XG4gIH1cbik6IE9ic2VydmFibGVQcm9wZXJ0eURlY29yYXRvcjxPYnNlcnZhYmxlPFI+PiB7XG4gIHJldHVybiBmdW5jdGlvbiA8UCBleHRlbmRzIFByb3BlcnR5S2V5Pih0YXJnZXQ6IGFueSwga2V5OiBQKSB7XG4gICAgLy8gTmFtaW5nIGNvbnZlbnRpb24gY2hlY2tcbiAgICBpZiAoIXByb2R1Y3Rpb24gJiYgIShrZXkgYXMgc3RyaW5nKS5lbmRzV2l0aCgnJCcpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBbUnhTdGF0ZVNlbGVjdF0gQ29udmVudGlvbjogUHJvcGVydHkgJHt0YXJnZXQuY29uc3RydWN0b3I/Lm5hbWV9LiR7U3RyaW5nKGtleSl9IHNob3VsZCBlbmQgd2l0aCAnJCcgdG8gaW5kaWNhdGUgaXQncyBhbiBPYnNlcnZhYmxlYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgc3RhdGUgcHJvcGVydHkgbmFtZVxuICAgIGNvbnN0IGZpbmFsU3RhdGVQcm9wZXJ0eU5hbWUgPSAoc3RhdGVQcm9wZXJ0eU5hbWUgYXMgc3RyaW5nKSB8fCAoa2V5IGFzIHN0cmluZykucmVwbGFjZSgvXFwkJC8sICcnKTtcblxuICAgIC8vIERldGVybWluZSBzdGF0ZSBvYmplY3RcbiAgICBjb25zdCBzdGF0ZVZhck5hbWUgPSB0YXJnZXQgaW5zdGFuY2VvZiBSeFN0YXRlID8gbnVsbCA6IHRhcmdldFtTVEFURV9WQVJfTkFNRV9LRVldIHx8IG9wdHM/LnN0YXRlTmFtZSB8fCBERUZBVUxUX1NUQVRFX1ZBUl9OQU1FO1xuXG4gICAgLy8gQ3JlYXRlIGNhY2hlIHByb3BlcnR5IG5hbWVcbiAgICBjb25zdCBpbnRlcm5hbFByb3BlcnR5TmFtZSA9IGBfXyR7a2V5IGFzIHN0cmluZ31gO1xuXG4gICAgLy8gRGVmaW5lIHByb3BlcnR5IHdpdGggZ2V0dGVyIG9ubHlcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcbiAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjb25zdCBzdGF0ZU9iamVjdDogUnhTdGF0ZTxUPiA9IHN0YXRlVmFyTmFtZSA/IHRoaXNbc3RhdGVWYXJOYW1lXSA6IHRoaXM7XG4gICAgICAgIERlY29yYXRvclV0aWxzLnZhbGlkYXRlU3RhdGVQcm9wZXJ0eSh0YXJnZXQsIHN0YXRlT2JqZWN0KTtcblxuICAgICAgICAvLyBDcmVhdGUgb2JzZXJ2YWJsZSBpZiBub3QgZXhpc3RzXG4gICAgICAgIGlmICghdGhpc1tpbnRlcm5hbFByb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgICBpZiAoZmluYWxTdGF0ZVByb3BlcnR5TmFtZSA9PT0gJyQnKSB7XG4gICAgICAgICAgICB0aGlzW2ludGVybmFsUHJvcGVydHlOYW1lXSA9IHN0YXRlT2JqZWN0LiQ7XG4gICAgICAgICAgfSBlbHNlIGlmIChmaW5hbFN0YXRlUHJvcGVydHlOYW1lLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSBmaW5hbFN0YXRlUHJvcGVydHlOYW1lLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzW2ludGVybmFsUHJvcGVydHlOYW1lXSA9IHN0YXRlT2JqZWN0LnNlbGVjdCguLi5hcmdzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpc1tpbnRlcm5hbFByb3BlcnR5TmFtZV0gPSBzdGF0ZU9iamVjdC5zZWxlY3QoZmluYWxTdGF0ZVByb3BlcnR5TmFtZSBhcyBLKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpc1tpbnRlcm5hbFByb3BlcnR5TmFtZV07XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBEZXZlbG9wbWVudCBsb2dnaW5nXG4gICAgaWYgKCFwcm9kdWN0aW9uKSB7XG4gICAgICBjb25zb2xlLmRlYnVnKGBbUnhTdGF0ZVNlbGVjdF0gJHt0YXJnZXQuY29uc3RydWN0b3I/Lm5hbWV9LiR7U3RyaW5nKGtleSl9IC0+IHN0YXRlLnNlbGVjdCgnJHtmaW5hbFN0YXRlUHJvcGVydHlOYW1lfScpYCk7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIFV0aWxpdHkgZGVjb3JhdG9yIHRvIGNyZWF0ZSBjb21wdXRlZCBvYnNlcnZhYmxlcyBmcm9tIHN0YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSeFN0YXRlQ29tcHV0ZWQ8VCBleHRlbmRzIE9iamVjdCA9IGFueSwgSyBleHRlbmRzIGtleW9mIFQgPSBhbnksIFIgZXh0ZW5kcyBUW0tdID0gVFtLXT4oXG4gIGRlcGVuZGVuY2llczogS1tdLFxuICBjb21wdXRlRm4/OiAoc2xpY2U6IFBpY2s8VCwgSz4pID0+IFIsXG4gIG9wdHM/OiB7XG4gICAgc3RhdGVOYW1lPzogc3RyaW5nO1xuICAgIGtleUNvbXBhcmVNYXA/OiBhbnk7XG4gIH1cbik6IE9ic2VydmFibGVQcm9wZXJ0eURlY29yYXRvcjxPYnNlcnZhYmxlPFI+PiB7XG4gIHJldHVybiBmdW5jdGlvbiA8UCBleHRlbmRzIFByb3BlcnR5S2V5Pih0YXJnZXQ6IGFueSwga2V5OiBQKSB7XG4gICAgLy8gTmFtaW5nIGNvbnZlbnRpb24gY2hlY2tcbiAgICBpZiAoIXByb2R1Y3Rpb24gJiYgIShrZXkgYXMgc3RyaW5nKS5lbmRzV2l0aCgnJCcpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBbUnhTdGF0ZUNvbXB1dGVkXSBDb252ZW50aW9uOiBQcm9wZXJ0eSAke3RhcmdldC5jb25zdHJ1Y3Rvcj8ubmFtZX0uJHtTdHJpbmcoa2V5KX0gc2hvdWxkIGVuZCB3aXRoICckJyB0byBpbmRpY2F0ZSBpdCdzIGFuIE9ic2VydmFibGVgXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXRlVmFyTmFtZSA9IHRhcmdldCBpbnN0YW5jZW9mIFJ4U3RhdGUgPyBudWxsIDogdGFyZ2V0W1NUQVRFX1ZBUl9OQU1FX0tFWV0gfHwgb3B0cz8uc3RhdGVOYW1lIHx8IERFRkFVTFRfU1RBVEVfVkFSX05BTUU7XG4gICAgY29uc3QgY2FjaGVQcm9wZXJ0eU5hbWUgPSBgX18ke2tleSBhcyBzdHJpbmd9X2NhY2hlYDtcblxuICAgIC8vIERlZmluZSBwcm9wZXJ0eSB3aXRoIGdldHRlciBvbmx5XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVPYmplY3Q6IFJ4U3RhdGU8VD4gPSBzdGF0ZVZhck5hbWUgPyB0aGlzW3N0YXRlVmFyTmFtZV0gOiB0aGlzO1xuICAgICAgICBEZWNvcmF0b3JVdGlscy52YWxpZGF0ZVN0YXRlUHJvcGVydHkodGFyZ2V0LCBzdGF0ZU9iamVjdCk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIG9ic2VydmFibGUgaWYgbm90IGV4aXN0c1xuICAgICAgICBpZiAoIXRoaXNbY2FjaGVQcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgICAgbGV0IG9ic2VydmFibGUgPSBzdGF0ZU9iamVjdC5zZWxlY3QoZGVwZW5kZW5jaWVzLCBvcHRzPy5rZXlDb21wYXJlTWFwKTtcblxuICAgICAgICAgIC8vIEFwcGx5IGNvbXB1dGVGbiBpZiBwcm92aWRlZFxuICAgICAgICAgIGlmIChjb21wdXRlRm4pIHtcbiAgICAgICAgICAgIG9ic2VydmFibGUgPSBvYnNlcnZhYmxlLnBpcGUobWFwKGNvbXB1dGVGbikpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXNbY2FjaGVQcm9wZXJ0eU5hbWVdID0gb2JzZXJ2YWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzW2NhY2hlUHJvcGVydHlOYW1lXTtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIC8vIERldmVsb3BtZW50IGxvZ2dpbmdcbiAgICBpZiAoIXByb2R1Y3Rpb24pIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoXG4gICAgICAgIGBbUnhTdGF0ZUNvbXB1dGVkXSAke3RhcmdldC5jb25zdHJ1Y3Rvcj8ubmFtZX0uJHtTdHJpbmcoa2V5KX0gLT4gc3RhdGUuc2VsZWN0KFske2RlcGVuZGVuY2llcy5tYXAoKGRlcCkgPT4gYCcke2RlcCBhcyBzdHJpbmd9J2ApLmpvaW4oJywgJyl9XSlgXG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIFJ4U3RhdGUgb2JzZXJ2YWJsZSBhcyBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJ4U3RhdGVPdXRwdXQ8VCBleHRlbmRzIE9iamVjdCwgSyBleHRlbmRzIGtleW9mIFQsIFIgZXh0ZW5kcyBUW0tdID0gVFtLXT4oXG4gIHN0YXRlUHJvcGVydHlOYW1lPzogc3RyaW5nIHwgSyB8ICckJyxcbiAgb3B0cz86IHtcbiAgICBhbGlhcz86IHN0cmluZztcbiAgICBzdGF0ZU5hbWU/OiBzdHJpbmc7XG4gIH1cbik6IE9ic2VydmFibGVQcm9wZXJ0eURlY29yYXRvcjxPYnNlcnZhYmxlPFI+PiB7XG4gIHJldHVybiBmdW5jdGlvbiA8UCBleHRlbmRzIFByb3BlcnR5S2V5Pih0YXJnZXQ6IGFueSwga2V5OiBQKSB7XG4gICAgLy8gTmFtaW5nIGNvbnZlbnRpb24gY2hlY2tcbiAgICBpZiAoIXByb2R1Y3Rpb24gJiYgIShrZXkgYXMgc3RyaW5nKS5lbmRzV2l0aCgnQ2hhbmdlcycpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBbUnhTdGF0ZU91dHB1dF0gQ29udmVudGlvbjogUHJvcGVydHkgJHt0YXJnZXQuY29uc3RydWN0b3I/Lm5hbWV9LiR7U3RyaW5nKGtleSl9IHNob3VsZCBlbmQgd2l0aCAnQ2hhbmdlcycgdG8gaW5kaWNhdGUgaXQncyBhbiBPdXRwdXRgXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEFwcGx5IEBPdXRwdXQoKSBkZWNvcmF0b3IgZmlyc3RcbiAgICBPdXRwdXQob3B0cz8uYWxpYXMpKHRhcmdldCwga2V5KTtcblxuICAgIC8vIERldGVybWluZSBzdGF0ZSBwcm9wZXJ0eSBuYW1lXG4gICAgY29uc3QgZmluYWxTdGF0ZVByb3BlcnR5TmFtZSA9IChzdGF0ZVByb3BlcnR5TmFtZSBhcyBLKSB8fCAoKGtleSBhcyBzdHJpbmcpLnJlcGxhY2UoL0NoYW5nZXMkLywgJycpIGFzIEspO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHN0YXRlIG9iamVjdFxuICAgIGNvbnN0IHN0YXRlVmFyTmFtZSA9IHRhcmdldCBpbnN0YW5jZW9mIFJ4U3RhdGUgPyBudWxsIDogdGFyZ2V0W1NUQVRFX1ZBUl9OQU1FX0tFWV0gfHwgb3B0cz8uc3RhdGVOYW1lIHx8IERFRkFVTFRfU1RBVEVfVkFSX05BTUU7XG4gICAgY29uc3QgY2FjaGVQcm9wZXJ0eU5hbWUgPSBgX18ke2tleSBhcyBzdHJpbmd9X2NhY2hlYDtcblxuICAgIC8vIERlZmluZSBwcm9wZXJ0eSB3aXRoIGdldHRlciBvbmx5XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XG4gICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVPYmplY3Q6IFJ4U3RhdGU8VD4gPSBzdGF0ZVZhck5hbWUgPyB0aGlzW3N0YXRlVmFyTmFtZV0gOiB0aGlzO1xuICAgICAgICBEZWNvcmF0b3JVdGlscy52YWxpZGF0ZVN0YXRlUHJvcGVydHkodGFyZ2V0LCBzdGF0ZU9iamVjdCk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIG9ic2VydmFibGUgaWYgbm90IGV4aXN0c1xuICAgICAgICAvLyBTZWUgaHR0cHM6Ly93d3cucngtYW5ndWxhci5pby9kb2NzL3N0YXRlL2dldHRpbmctc3RhcnRlZCNvdXRwdXQtcHJvcGVydHktYmluZGluZ3NcbiAgICAgICAgaWYgKCF0aGlzW2NhY2hlUHJvcGVydHlOYW1lXSkge1xuICAgICAgICAgIHRoaXNbY2FjaGVQcm9wZXJ0eU5hbWVdID0gZmluYWxTdGF0ZVByb3BlcnR5TmFtZSA9PT0gJyQnID8gc3RhdGVPYmplY3QuJCA6IHN0YXRlT2JqZWN0LiQucGlwZShzZWxlY3Q8VCwgSz4oZmluYWxTdGF0ZVByb3BlcnR5TmFtZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXNbY2FjaGVQcm9wZXJ0eU5hbWVdO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgLy8gRGV2ZWxvcG1lbnQgbG9nZ2luZ1xuICAgIGlmICghcHJvZHVjdGlvbikge1xuICAgICAgY29uc29sZS5kZWJ1ZyhgW1J4U3RhdGVPdXRwdXRdICR7dGFyZ2V0LmNvbnN0cnVjdG9yPy5uYW1lfS4ke1N0cmluZyhrZXkpfSAtPiBzdGF0ZS4kLnBpcGUoc2VsZWN0KCcke1N0cmluZyhmaW5hbFN0YXRlUHJvcGVydHlOYW1lKX0nKSlgKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
|
|
@@ -26837,12 +26837,23 @@ function RxStateProperty(statePropertyName, projectValueReducer) {
|
|
|
26837
26837
|
}
|
|
26838
26838
|
};
|
|
26839
26839
|
}
|
|
26840
|
+
/**
|
|
26841
|
+
* Decorator for RxState input properties with getter/setter access
|
|
26842
|
+
*/
|
|
26843
|
+
function RxStateInput(arg, statePropertyName, projectValueReducer) {
|
|
26844
|
+
return function (target, key) {
|
|
26845
|
+
// Apply @Input() decorator first
|
|
26846
|
+
Input(arg)(target, key);
|
|
26847
|
+
// Apply @RxStateProperty() decorator next
|
|
26848
|
+
RxStateProperty(statePropertyName, projectValueReducer)(target, key);
|
|
26849
|
+
};
|
|
26850
|
+
}
|
|
26840
26851
|
/**
|
|
26841
26852
|
* Decorator for RxState observable selectors
|
|
26842
26853
|
*/
|
|
26843
26854
|
function RxStateSelect(statePropertyName, opts) {
|
|
26844
26855
|
return function (target, key) {
|
|
26845
|
-
//
|
|
26856
|
+
// Naming convention check
|
|
26846
26857
|
if (!production && !key.endsWith('$')) {
|
|
26847
26858
|
console.warn(`[RxStateSelect] Convention: Property ${target.constructor?.name}.${String(key)} should end with '$' to indicate it's an Observable`);
|
|
26848
26859
|
}
|
|
@@ -26887,7 +26898,7 @@ function RxStateSelect(statePropertyName, opts) {
|
|
|
26887
26898
|
*/
|
|
26888
26899
|
function RxStateComputed(dependencies, computeFn, opts) {
|
|
26889
26900
|
return function (target, key) {
|
|
26890
|
-
//
|
|
26901
|
+
// Naming convention check
|
|
26891
26902
|
if (!production && !key.endsWith('$')) {
|
|
26892
26903
|
console.warn(`[RxStateComputed] Convention: Property ${target.constructor?.name}.${String(key)} should end with '$' to indicate it's an Observable`);
|
|
26893
26904
|
}
|
|
@@ -26923,10 +26934,12 @@ function RxStateComputed(dependencies, computeFn, opts) {
|
|
|
26923
26934
|
*/
|
|
26924
26935
|
function RxStateOutput(statePropertyName, opts) {
|
|
26925
26936
|
return function (target, key) {
|
|
26926
|
-
//
|
|
26937
|
+
// Naming convention check
|
|
26927
26938
|
if (!production && !key.endsWith('Changes')) {
|
|
26928
26939
|
console.warn(`[RxStateOutput] Convention: Property ${target.constructor?.name}.${String(key)} should end with 'Changes' to indicate it's an Output`);
|
|
26929
26940
|
}
|
|
26941
|
+
// Apply @Output() decorator first
|
|
26942
|
+
Output(opts?.alias)(target, key);
|
|
26930
26943
|
// Determine state property name
|
|
26931
26944
|
const finalStatePropertyName = statePropertyName || key.replace(/Changes$/, '');
|
|
26932
26945
|
// Determine state object
|
|
@@ -51296,5 +51309,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
51296
51309
|
* Generated bundle index. Do not edit.
|
|
51297
51310
|
*/
|
|
51298
51311
|
|
|
51299
|
-
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_DEBUG_DATA_SERVICE, APP_FEED_SERVICE, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_FRAGMENTS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_HOME_CONFIG, APP_HOTKEYS_CONFIG, APP_JOB_PROGRESSION_SERVICE, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_LOGGING_SERVICE, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_NAMED_FILTER_SERVICE, APP_PROGRESS_BAR_SERVICE, APP_SETTINGS_MENU_ITEMS, APP_STORAGE, APP_STORAGE_EXPLORER_PROTECTED_KEYS, APP_TESTING_PAGES, APP_USER_EVENT_LIST_INFINITE_SCROLL_THRESHOLD, APP_USER_EVENT_SERVICE, APP_USER_SETTINGS_OPTIONS, APP_USER_TOKEN_SCOPES, AboutModal, AbstractNamedFilterService, AbstractSelectionModelPipe, AbstractTableSelectionPipe, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, AccountUtils, ActionsColumnComponent, AdditionalFields, AdminModule, AdminRoutingModule, AdminUsersModule, Alerts, AndroidOsEnvironment, AppAboutModalModule, AppAccountModule, AppAsyncTable, AppAuthForm, AppAuthModal, AppAuthModule, AppChangePasswordModule, AppChangePasswordPage, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppEntityFormModule, AppForm, AppFormArray, AppFormButtonsBarModule, AppFormContainer, AppFormField, AppFormModule, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHomePageModule, AppIconComponent, AppIconModule, AppImageGalleryComponent, AppInMemoryTable, AppInstallUpgradeCard, AppInstallUpgradeCardModule, AppListForm, AppListFormModule, AppLoadingSpinner, AppMarkdownContent, AppMarkdownModal, AppMenuModule, AppNullForm, AppPropertiesForm, AppPropertiesFormModule, AppPropertiesTable, AppPropertiesUtils, AppPropertyUtils, AppRegisterModule, AppResetPasswordModal, AppRowField, AppSelectPeerModule, AppSelectUsersModal, AppSettingsPageModule, AppTabEditor, AppTabEditorOptions, AppTable, AppTableModule, AppTableUtils, AppTextFormModule, AppTextPopoverModule, AppUpdateOfflineModeCard, AppUpdateOfflineModeCardModule, AppValidatorService, AppendQueryParamsPipePipe, ArrayDistinctPipe, ArrayFilterPipe, ArrayFindByPropertyPipe, ArrayFirstPipe, ArrayFormTestPage, ArrayIncludesPipe, ArrayJoinPipe, ArrayLastPipe, ArrayLengthPipe, ArrayMapPipe, ArrayPluckPipe, ArraySlicePipe, ArraySortPipe, AsAnyPipe, AsArrayPipe, AsBooleanPipe, AsFloatLabelTypePipe, AsObservablePipe, AudioProvider, AudioTestingModule, AudioTestingPage, AuthGuardService, AutoResizeDirective, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, BadgeDirective, BadgeNumberPipe, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, BooleanFormatPipe, BooleanTestPage, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CapitalizePipe, CellValueChangeListener, ChangePasswordForm, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigFragments, ConfigService, Configuration, CoreModule, CorePipesModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_MATCH_REGEXP, DATE_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_JOIN_ARRAY_VALUES_SEPARATOR, DEFAULT_JOIN_PROPERTIES_SEPARATOR, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFormatService, DateFromNowPipe, DateFromPipe, DateShortTestPage, DateTestPage, DateTimeTestPage, DateUtils, DebugComponent, Department, DepartmentToStringPipe, DisplayWithPipe, DragAndDropDirective, DurationPipe, DurationTestPage, ED25519_SEED_LENGTH, EMPTY_PLACEHOLDER_CHAR, EMPTY_PLACEHOLDER_CHAR_REGEXP_GLOBAL, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesAsyncTableDataSource, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, EnvironmentHttpLoader, EnvironmentLoader, ErrorCodes, EvenPipe, FeedDirective, FeedModule, FeedPage, FeedService, FeedsComponent, FileResponse, FileService, FileSizePipe, FilesUtils, FirstFalsePipe, FirstPipe, FirstTruePipe, FormArrayHelper, FormArrayTestModule, FormButtonsBarComponent, FormButtonsBarToken, FormErrorPipe, FormErrorTranslatePipe, FormErrorTranslator, FormFieldDefinitionUtils, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, GalleryTestPage, GeolocationUtils, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, IMAGE_DEFAULTS, IPosition, ImageAttachment, ImageAttachmentFilter, ImageAttachmentService, ImageGalleryModule, ImageGalleryTestingModule, ImageModule, ImageService, ImagesUtils, InMemoryEntitiesService, IsAllSelectedPipe, IsEmptySelectionPipe, IsLoginAccountPipe, IsMultipleSelectionPipe, IsNilOrBlankPipe, IsNilOrNaNPipe, IsNilPipe, IsNotAllSelectedPipe, IsNotEmptySelectionPipe, IsNotNilOrBlankPipe, IsNotNilOrNaNPipe, IsNotNilPipe, IsOnDeskPipe, IsOnFieldPipe, IsSelectedPipe, IsSingleSelectionPipe, IsValidDatePipe, JobModule, JobProgression, JobProgressionComponent, JobProgressionIcon, JobProgressionList, JobProgressionService, JobProgressionTestService, JobProgressionTestingPage, JobTestingModule, JobUtils, JsonFeedUtils, JsonUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_PATTERNS, LAT_LONG_PATTERN_MAX_DECIMALS, LAT_LONG_VALUE_MAX_DECIMALS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LogLevel, LogUtils, Logger, LoggingService, LoggingServiceModule, LongitudeFormatPipe, MASKS, MASK_RANGES, MAT_FORM_FIELD_DEFAULT_APPEARANCE, MAT_FORM_FIELD_DEFAULT_SUBSCRIPT_SIZING, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MOMENT_NO_TIME_PROPERTY, MapGetPipe, MapKeysPipe, MapPipe, MapToPipe, MapValuesPipe, MarkdownDirective, MarkdownService, MarkdownTestPage, MarkdownTestingModule, MarkdownUtils, MaskitoPlaceholderPipe, MaskitoTestPage, MatAutocompleteConfigHolder, MatAutocompleteField, MatAutocompleteFieldUtils, MatBadgeTestPage, MatBooleanField, MatChipsField, MatColorPipe, MatCommonTestPage, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatLatLongFieldInput, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItem, MenuItems, MenuOptions, MenuService, MenuTestingModule, MenuTestingPage, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NETWORK_DEFAULT_CONNECTION_TIMEOUT, NamedFilter, NamedFilterFilter, NamedFilterSelector, NamedFilterSelectorTestingModule, NamedFilterSelectorTestingPage, NavActionsColumnComponent, NetworkService, NetworkUtils, NewTokenForm, NewTokenModal, NgInitDirective, NgVarDirective, NoHtmlPipe, NotEmptyArrayPipe, NumberFormatPipe, ObservableTestPage, OddPipe, OtherMenuTestingPage, PEER_URL_REGEXP, PLUS_PLACEHOLDER_CHAR_REGEXP_GLOBAL, PRINT_ID_QUERY_PARAM, PRINT_LOADING_STORAGE_KEY_PREFIX, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, PrintService, ProgressBarService, ProgressInterceptor, PropertiesFormTestPage, PropertiesFormTestingModule, PropertyEntity, PropertyEntityFilter, PropertyEntityValidator, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialToStringPipe, ReferentialUtils, ReferentialValidatorService, RegExpUtils, RegisterConfirmPage, RegisterForm, RegisterModal, ResizableComponent, ResizableDirective, ResizableModule, RoundPipe, RxStateComputed, RxStateModule, RxStateOutput, RxStateProperty, RxStateRegister, RxStateSelect, SCRYPT_PARAMS, SETTINGS_COMPACT_ROWS, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_STORAGE_TESTING_PAGES, SHARED_TESTING_PAGES, SOCIAL_CONFIG_OPTIONS, SOCIAL_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SPACE_PLACEHOLDER_CHAR_REGEXP_GLOBAL, SafeHtmlPipe, SafeStylePipe, SelectPeerModal, SelectionLengthPipe, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedBadgeModule, SharedDebugModule, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMarkdownModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedNamedFilterModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedToolbarModule, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, SocialTestingModule, Software, SplitArrayInChunksPipe, StartableService, StatusById, StatusIds, StatusList, StorageDrivers, StorageExplorerComponent, StorageExplorerModule, StorageExplorerTestingModule, StorageExplorerTestingRoutingModule, StorageService, StrIncludesPipe, StrLengthPipe, StrReplacePipe, SubMenuTabDirective, SwipeTestPage, TABLE_SETTINGS_ENUM, TOOLBAR_HEADER_ID, Table2TestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TableValidatorService, TextForm, TextFormTestingModule, TextFormTestingPage, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ThrottledClickDirective, ToStringPipe, ToastTestingModule, ToastTestingPage, Toasts, TokenScope, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, TreeItemEntityUtils, TruncHtmlPipe, TruncTextPipe, TruncateHtmlPipe, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UrlUtils, UserEventModule, UserEventNotificationIcon, UserEventNotificationList, UserEventNotificationModal, UserEventTestService, UserEventTestingModule, UserEventTestingPage, UserSettings, UserToken, UserTokenTable, UsersPage, UsersUtils, ValueFormatPipe, VersionUtils, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayResize, arraySize, asInputElement, base64ArrayBuffer, booleanToString, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, collectByProperty, compareVersionNumbers, computeDecimalDegrees, computeDecimalPart, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableAndClearControl, disableAndClearControls, disableControl, disableControls, emitPromiseEvent, enableControl, enableControls, enableRxStateProdMode, entityToString, equals, equalsOrNil, escapeRegExp, expansionAnimation, fadeInAnimation, fadeInOutAnimation, fadeInSlowAnimation, filterFalse, filterFormErrors, filterFormErrorsByPath, filterFormErrorsByPrefix, filterNotNil, filterNumberInput, filterTrue, findParentWithClass, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatLong, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getInputRangeFromCaretIndex, getInputSelectionRangesFromMask, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, getRandomImageWithCredit, getUserAgent, hexToRgb, hexToRgbArray, initArrayControlsFromValues, interpolateString, intersectArrays, isAndroid, isBlankString, isCapacitor, isChrome, isControlHasInput, isEdge, isEmptyArray, isEntityService, isFirefox, isIOS, isInputElement, isInstanceOf, isInt, isIpad, isMacOS, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilObject, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isOnFieldMode, isPrint, isProgressEvent, isPromise, isResponseEvent, isSafari, isSameVersion, isStartableService, isTouchUi, isVersionCompatible, isWindows, joinProperties, joinPropertiesPath, lastArrayValue, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, maskitoAutoSelectByMaskPattern, maskitoPrefixPlugin, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, newArray, noHtml, noTrailingSlash, notNilOrDefault, nullIfNilOrBlank, nullIfUndefined, numberOrNilAttribute, numberToString, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputContentFromEvent, selectInputRange, setCalculatedValue, setControlEnabled, setControlsEnabled, setFormErrors, setPropertyByPath, setTabIndex, sleep, slideDownAnimation, slideInAnimation, slideInOutAnimation, slideUpDownAnimation, sort, splitArrayInChunks, splitById, splitByProperty, splitDegreesToDDArray, splitDegreesToDDMMArray, splitDegreesToDDMMSSArray, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, truncateHtml, uncapitalizeFirstLetter, undefinedIfNull, underscoreToChangeCase, updateValueAndValidity, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending };
|
|
51312
|
+
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_DEBUG_DATA_SERVICE, APP_FEED_SERVICE, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_FRAGMENTS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_HOME_CONFIG, APP_HOTKEYS_CONFIG, APP_JOB_PROGRESSION_SERVICE, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_LOGGING_SERVICE, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_NAMED_FILTER_SERVICE, APP_PROGRESS_BAR_SERVICE, APP_SETTINGS_MENU_ITEMS, APP_STORAGE, APP_STORAGE_EXPLORER_PROTECTED_KEYS, APP_TESTING_PAGES, APP_USER_EVENT_LIST_INFINITE_SCROLL_THRESHOLD, APP_USER_EVENT_SERVICE, APP_USER_SETTINGS_OPTIONS, APP_USER_TOKEN_SCOPES, AboutModal, AbstractNamedFilterService, AbstractSelectionModelPipe, AbstractTableSelectionPipe, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, AccountUtils, ActionsColumnComponent, AdditionalFields, AdminModule, AdminRoutingModule, AdminUsersModule, Alerts, AndroidOsEnvironment, AppAboutModalModule, AppAccountModule, AppAsyncTable, AppAuthForm, AppAuthModal, AppAuthModule, AppChangePasswordModule, AppChangePasswordPage, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppEntityFormModule, AppForm, AppFormArray, AppFormButtonsBarModule, AppFormContainer, AppFormField, AppFormModule, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHomePageModule, AppIconComponent, AppIconModule, AppImageGalleryComponent, AppInMemoryTable, AppInstallUpgradeCard, AppInstallUpgradeCardModule, AppListForm, AppListFormModule, AppLoadingSpinner, AppMarkdownContent, AppMarkdownModal, AppMenuModule, AppNullForm, AppPropertiesForm, AppPropertiesFormModule, AppPropertiesTable, AppPropertiesUtils, AppPropertyUtils, AppRegisterModule, AppResetPasswordModal, AppRowField, AppSelectPeerModule, AppSelectUsersModal, AppSettingsPageModule, AppTabEditor, AppTabEditorOptions, AppTable, AppTableModule, AppTableUtils, AppTextFormModule, AppTextPopoverModule, AppUpdateOfflineModeCard, AppUpdateOfflineModeCardModule, AppValidatorService, AppendQueryParamsPipePipe, ArrayDistinctPipe, ArrayFilterPipe, ArrayFindByPropertyPipe, ArrayFirstPipe, ArrayFormTestPage, ArrayIncludesPipe, ArrayJoinPipe, ArrayLastPipe, ArrayLengthPipe, ArrayMapPipe, ArrayPluckPipe, ArraySlicePipe, ArraySortPipe, AsAnyPipe, AsArrayPipe, AsBooleanPipe, AsFloatLabelTypePipe, AsObservablePipe, AudioProvider, AudioTestingModule, AudioTestingPage, AuthGuardService, AutoResizeDirective, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, BadgeDirective, BadgeNumberPipe, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, BooleanFormatPipe, BooleanTestPage, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CapitalizePipe, CellValueChangeListener, ChangePasswordForm, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigFragments, ConfigService, Configuration, CoreModule, CorePipesModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_MATCH_REGEXP, DATE_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_JOIN_ARRAY_VALUES_SEPARATOR, DEFAULT_JOIN_PROPERTIES_SEPARATOR, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFormatService, DateFromNowPipe, DateFromPipe, DateShortTestPage, DateTestPage, DateTimeTestPage, DateUtils, DebugComponent, Department, DepartmentToStringPipe, DisplayWithPipe, DragAndDropDirective, DurationPipe, DurationTestPage, ED25519_SEED_LENGTH, EMPTY_PLACEHOLDER_CHAR, EMPTY_PLACEHOLDER_CHAR_REGEXP_GLOBAL, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesAsyncTableDataSource, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, EnvironmentHttpLoader, EnvironmentLoader, ErrorCodes, EvenPipe, FeedDirective, FeedModule, FeedPage, FeedService, FeedsComponent, FileResponse, FileService, FileSizePipe, FilesUtils, FirstFalsePipe, FirstPipe, FirstTruePipe, FormArrayHelper, FormArrayTestModule, FormButtonsBarComponent, FormButtonsBarToken, FormErrorPipe, FormErrorTranslatePipe, FormErrorTranslator, FormFieldDefinitionUtils, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, GalleryTestPage, GeolocationUtils, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, IMAGE_DEFAULTS, IPosition, ImageAttachment, ImageAttachmentFilter, ImageAttachmentService, ImageGalleryModule, ImageGalleryTestingModule, ImageModule, ImageService, ImagesUtils, InMemoryEntitiesService, IsAllSelectedPipe, IsEmptySelectionPipe, IsLoginAccountPipe, IsMultipleSelectionPipe, IsNilOrBlankPipe, IsNilOrNaNPipe, IsNilPipe, IsNotAllSelectedPipe, IsNotEmptySelectionPipe, IsNotNilOrBlankPipe, IsNotNilOrNaNPipe, IsNotNilPipe, IsOnDeskPipe, IsOnFieldPipe, IsSelectedPipe, IsSingleSelectionPipe, IsValidDatePipe, JobModule, JobProgression, JobProgressionComponent, JobProgressionIcon, JobProgressionList, JobProgressionService, JobProgressionTestService, JobProgressionTestingPage, JobTestingModule, JobUtils, JsonFeedUtils, JsonUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_PATTERNS, LAT_LONG_PATTERN_MAX_DECIMALS, LAT_LONG_VALUE_MAX_DECIMALS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LogLevel, LogUtils, Logger, LoggingService, LoggingServiceModule, LongitudeFormatPipe, MASKS, MASK_RANGES, MAT_FORM_FIELD_DEFAULT_APPEARANCE, MAT_FORM_FIELD_DEFAULT_SUBSCRIPT_SIZING, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MOMENT_NO_TIME_PROPERTY, MapGetPipe, MapKeysPipe, MapPipe, MapToPipe, MapValuesPipe, MarkdownDirective, MarkdownService, MarkdownTestPage, MarkdownTestingModule, MarkdownUtils, MaskitoPlaceholderPipe, MaskitoTestPage, MatAutocompleteConfigHolder, MatAutocompleteField, MatAutocompleteFieldUtils, MatBadgeTestPage, MatBooleanField, MatChipsField, MatColorPipe, MatCommonTestPage, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatLatLongFieldInput, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItem, MenuItems, MenuOptions, MenuService, MenuTestingModule, MenuTestingPage, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NETWORK_DEFAULT_CONNECTION_TIMEOUT, NamedFilter, NamedFilterFilter, NamedFilterSelector, NamedFilterSelectorTestingModule, NamedFilterSelectorTestingPage, NavActionsColumnComponent, NetworkService, NetworkUtils, NewTokenForm, NewTokenModal, NgInitDirective, NgVarDirective, NoHtmlPipe, NotEmptyArrayPipe, NumberFormatPipe, ObservableTestPage, OddPipe, OtherMenuTestingPage, PEER_URL_REGEXP, PLUS_PLACEHOLDER_CHAR_REGEXP_GLOBAL, PRINT_ID_QUERY_PARAM, PRINT_LOADING_STORAGE_KEY_PREFIX, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, PrintService, ProgressBarService, ProgressInterceptor, PropertiesFormTestPage, PropertiesFormTestingModule, PropertyEntity, PropertyEntityFilter, PropertyEntityValidator, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialToStringPipe, ReferentialUtils, ReferentialValidatorService, RegExpUtils, RegisterConfirmPage, RegisterForm, RegisterModal, ResizableComponent, ResizableDirective, ResizableModule, RoundPipe, RxStateComputed, RxStateInput, RxStateModule, RxStateOutput, RxStateProperty, RxStateRegister, RxStateSelect, SCRYPT_PARAMS, SETTINGS_COMPACT_ROWS, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_STORAGE_TESTING_PAGES, SHARED_TESTING_PAGES, SOCIAL_CONFIG_OPTIONS, SOCIAL_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SPACE_PLACEHOLDER_CHAR_REGEXP_GLOBAL, SafeHtmlPipe, SafeStylePipe, SelectPeerModal, SelectionLengthPipe, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedBadgeModule, SharedDebugModule, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMarkdownModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedNamedFilterModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedToolbarModule, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, SocialTestingModule, Software, SplitArrayInChunksPipe, StartableService, StatusById, StatusIds, StatusList, StorageDrivers, StorageExplorerComponent, StorageExplorerModule, StorageExplorerTestingModule, StorageExplorerTestingRoutingModule, StorageService, StrIncludesPipe, StrLengthPipe, StrReplacePipe, SubMenuTabDirective, SwipeTestPage, TABLE_SETTINGS_ENUM, TOOLBAR_HEADER_ID, Table2TestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TableValidatorService, TextForm, TextFormTestingModule, TextFormTestingPage, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ThrottledClickDirective, ToStringPipe, ToastTestingModule, ToastTestingPage, Toasts, TokenScope, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, TreeItemEntityUtils, TruncHtmlPipe, TruncTextPipe, TruncateHtmlPipe, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UrlUtils, UserEventModule, UserEventNotificationIcon, UserEventNotificationList, UserEventNotificationModal, UserEventTestService, UserEventTestingModule, UserEventTestingPage, UserSettings, UserToken, UserTokenTable, UsersPage, UsersUtils, ValueFormatPipe, VersionUtils, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayResize, arraySize, asInputElement, base64ArrayBuffer, booleanToString, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, collectByProperty, compareVersionNumbers, computeDecimalDegrees, computeDecimalPart, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableAndClearControl, disableAndClearControls, disableControl, disableControls, emitPromiseEvent, enableControl, enableControls, enableRxStateProdMode, entityToString, equals, equalsOrNil, escapeRegExp, expansionAnimation, fadeInAnimation, fadeInOutAnimation, fadeInSlowAnimation, filterFalse, filterFormErrors, filterFormErrorsByPath, filterFormErrorsByPrefix, filterNotNil, filterNumberInput, filterTrue, findParentWithClass, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatLong, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getInputRangeFromCaretIndex, getInputSelectionRangesFromMask, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, getRandomImageWithCredit, getUserAgent, hexToRgb, hexToRgbArray, initArrayControlsFromValues, interpolateString, intersectArrays, isAndroid, isBlankString, isCapacitor, isChrome, isControlHasInput, isEdge, isEmptyArray, isEntityService, isFirefox, isIOS, isInputElement, isInstanceOf, isInt, isIpad, isMacOS, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilObject, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isOnFieldMode, isPrint, isProgressEvent, isPromise, isResponseEvent, isSafari, isSameVersion, isStartableService, isTouchUi, isVersionCompatible, isWindows, joinProperties, joinPropertiesPath, lastArrayValue, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, maskitoAutoSelectByMaskPattern, maskitoPrefixPlugin, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, newArray, noHtml, noTrailingSlash, notNilOrDefault, nullIfNilOrBlank, nullIfUndefined, numberOrNilAttribute, numberToString, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputContentFromEvent, selectInputRange, setCalculatedValue, setControlEnabled, setControlsEnabled, setFormErrors, setPropertyByPath, setTabIndex, sleep, slideDownAnimation, slideInAnimation, slideInOutAnimation, slideUpDownAnimation, sort, splitArrayInChunks, splitById, splitByProperty, splitDegreesToDDArray, splitDegreesToDDMMArray, splitDegreesToDDMMSSArray, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, truncateHtml, uncapitalizeFirstLetter, undefinedIfNull, underscoreToChangeCase, updateValueAndValidity, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending };
|
|
51300
51313
|
//# sourceMappingURL=sumaris-net.ngx-components.mjs.map
|