@messaia/cdk 18.1.0-rc19 → 18.1.0-rc21
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/esm2022/lib/common/common.module.mjs +9 -4
- package/esm2022/lib/common/directives/autofocus.directive.mjs +48 -0
- package/esm2022/lib/common/pipes/enum.pipe.mjs +24 -6
- package/esm2022/lib/common/pipes/order.pipe.mjs +127 -41
- package/fesm2022/messaia-cdk.mjs +203 -50
- package/fesm2022/messaia-cdk.mjs.map +1 -1
- package/lib/common/common.module.d.ts +4 -1
- package/lib/common/directives/autofocus.directive.d.ts +25 -0
- package/lib/common/pipes/enum.pipe.d.ts +13 -4
- package/lib/common/pipes/order.pipe.d.ts +77 -38
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { COMPILER_OPTIONS, Compiler, CompilerFactory, NgModule, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { JitCompilerFactory } from '@angular/platform-browser-dynamic';
|
|
3
|
+
import { AutofocusDirective } from './directives/autofocus.directive';
|
|
3
4
|
import { DisableControlDirective } from './directives/disable-control.directive';
|
|
4
5
|
import { DataSourcePipe } from './pipes/data-source.pipe';
|
|
5
6
|
import { EnumPipe } from './pipes/enum.pipe';
|
|
@@ -64,6 +65,7 @@ export { BaseService } from './services/base.service';
|
|
|
64
65
|
export { ContextHelper } from './services/context-helper';
|
|
65
66
|
export { EnumService } from './services/enum.service';
|
|
66
67
|
export { ServiceLocator } from './services/service-locator';
|
|
68
|
+
export { AutofocusDirective };
|
|
67
69
|
const compilerOptions = {
|
|
68
70
|
defaultEncapsulation: ViewEncapsulation.None
|
|
69
71
|
};
|
|
@@ -101,7 +103,8 @@ const COMMON_DECLARATIONS = [
|
|
|
101
103
|
JoinPipe,
|
|
102
104
|
PropertyJoinPipe,
|
|
103
105
|
BindPipe,
|
|
104
|
-
MapPipe
|
|
106
|
+
MapPipe,
|
|
107
|
+
AutofocusDirective
|
|
105
108
|
];
|
|
106
109
|
export class VdCommonModule {
|
|
107
110
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -130,7 +133,8 @@ export class VdCommonModule {
|
|
|
130
133
|
JoinPipe,
|
|
131
134
|
PropertyJoinPipe,
|
|
132
135
|
BindPipe,
|
|
133
|
-
MapPipe
|
|
136
|
+
MapPipe,
|
|
137
|
+
AutofocusDirective], exports: [DataSourcePipe,
|
|
134
138
|
DisableControlDirective,
|
|
135
139
|
EnumPipe,
|
|
136
140
|
FileSizePipe,
|
|
@@ -155,7 +159,8 @@ export class VdCommonModule {
|
|
|
155
159
|
JoinPipe,
|
|
156
160
|
PropertyJoinPipe,
|
|
157
161
|
BindPipe,
|
|
158
|
-
MapPipe
|
|
162
|
+
MapPipe,
|
|
163
|
+
AutofocusDirective] });
|
|
159
164
|
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdCommonModule, providers: [...RUNTIME_COMPILER_PROVIDERS] });
|
|
160
165
|
}
|
|
161
166
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdCommonModule, decorators: [{
|
|
@@ -167,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
167
172
|
providers: [...RUNTIME_COMPILER_PROVIDERS]
|
|
168
173
|
}]
|
|
169
174
|
}] });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2NvbW1vbi9jb21tb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFtQixRQUFRLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFF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WSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLFNBQVMsRUFBRSxDQUFDLEdBQUcsMEJBQTBCLENBQUM7aUJBQzFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ09NUElMRVJfT1BUSU9OUywgQ29tcGlsZXIsIENvbXBpbGVyRmFjdG9yeSwgQ29tcGlsZXJPcHRpb25zLCBOZ01vZHVsZSwgU3RhdGljUHJvdmlkZXIsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEppdENvbXBpbGVyRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYyc7XHJcbmltcG9ydCB7IERpc2FibGVDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Rpc2FibGUtY29udHJvbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlUGlwZSB9IGZyb20gJy4vcGlwZXMvZGF0YS1zb3VyY2UucGlwZSc7XHJcbmltcG9ydCB7IEVudW1QaXBlIH0gZnJvbSAnLi9waXBlcy9lbnVtLnBpcGUnO1xyXG5pbXBvcnQgeyBGaWxlU2l6ZVBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbGUtc2l6ZS5waXBlJztcclxuaW1wb3J0IHsgRmlsdGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvZmlsdGVyLnBpcGUnO1xyXG5pbXBvcnQgeyBGaXJzdExldHRlclBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpcnN0LWxldHRlcic7XHJcbmltcG9ydCB7IEZvcm1BcnJheVBpcGUgfSBmcm9tICcuL3BpcGVzL2Zvcm0tYXJyYXkucGlwZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sUGlwZSB9IGZyb20gJy4vcGlwZXMvZm9ybS1jb250cm9sLnBpcGUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXBQaXBlIH0gZnJvbSAnLi9waXBlcy9mb3JtLWdyb3VwLnBpcGUnO1xyXG5pbXBvcnQgeyBGdW5jUGlwZSB9IGZyb20gJy4vcGlwZXMvZnVuYy5waXBlJztcclxuaW1wb3J0IHsgSm9pblBpcGUgfSBmcm9tICcuL3BpcGVzL2pvaW4ucGlwZSc7XHJcbmltcG9ydCB7IEtleXNQaXBlIH0gZnJvbSAnLi9waXBlcy9rZXlzJztcclxuaW1wb3J0IHsgTWFwUGlwZSB9IGZyb20gJy4vcGlwZXMvbWFwLnBpcGUnO1xyXG5pbXBvcnQgeyBNb250aE5hbWVQaXBlIH0gZnJvbSAnLi9waXBlcy9tb250aC1uYW1lLnBpcGUnO1xyXG5pbXBvcnQgeyBQcm9wZXJ0eVBpcGUgfSBmcm9tICcuL3BpcGVzL25lc3RlZC1wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IE9ubHlOdW1iZXJEaXJlY3RpdmUgfSBmcm9tICcuL3BpcGVzL29ubHktbnVtYmVyJztcclxuaW1wb3J0IHsgT3JkZXJQaXBlIH0gZnJvbSAnLi9waXBlcy9vcmRlci5waXBlJztcclxuaW1wb3J0IHsgUGxhY2Vob2xkZXJQaXBlIH0gZnJvbSAnLi9waXBlcy9wbGFjZWhvbGRlci5waXBlJztcclxuaW1wb3J0IHsgUHJvcGVydHlKb2luUGlwZSB9IGZyb20gJy4vcGlwZXMvcHJvcGVydHktam9pbi5waXBlJztcclxuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSAnLi9waXBlcy9zYWZlLWh0bWwucGlwZSc7XHJcbmltcG9ydCB7IFNwbGl0UGlwZSB9IGZyb20gJy4vcGlwZXMvc3BsaXQucGlwZSc7XHJcbmltcG9ydCB7IFRpbWVQaXBlIH0gZnJvbSAnLi9waXBlcy90aW1lLnBpcGUnO1xyXG5pbXBvcnQgeyBUaXRsZUNhc2UgfSBmcm9tICcuL3BpcGVzL3RpdGxlY2FzZS5waXBlJztcclxuaW1wb3J0IHsgVHJ1bmNhdGVQaXBlIH0gZnJvbSAnLi9waXBlcy90cnVuY2F0ZS5waXBlJztcclxuaW1wb3J0IHsgVmFsdWVzUGlwZSB9IGZyb20gJy4vcGlwZXMvdmFsdWVzJztcclxuaW1wb3J0IHsgQmluZFBpcGUgfSBmcm9tICcuL3B1YmxpY19hcGknO1xyXG5cclxuZXhwb3J0IHsgSUNvbnRyb2xWYWx1ZUFjY2Vzc29yLCBtaXhpbkNvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi9iZWhhdmlvcnMvY29udHJvbC12YWx1ZS1hY2Nlc29yLm1peGluJztcclxuZXhwb3J0IHsgSUNhbkRpc2FibGUsIG1peGluRGlzYWJsZWQgfSBmcm9tICcuL2JlaGF2aW9ycy9kaXNhYmxlZC5taXhpbic7XHJcbmV4cG9ydCB7IGVuZHBvaW50TWV0YWRhdGFLZXksIGhlYWRlck1ldGFkYXRhS2V5IH0gZnJvbSAnLi9jb25zdGFudHMvY29uc3RhbnRzJztcclxuZXhwb3J0IHsgRmlsdGVyR2x1ZSB9IGZyb20gJy4vZW51bXMvZmlsdGVyLWdsdWUnO1xyXG5leHBvcnQgeyBGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4vZW51bXMvZmlsdGVyLW9wZXJhdG9yJztcclxuZXhwb3J0IHsgU2FsdXRhdGlvbiB9IGZyb20gJy4vZW51bXMvc2FsdXRhdGlvbic7XHJcbmV4cG9ydCB7IEFwaSwgRGlzcGxheSB9IGZyb20gJy4vZnVuY3Rpb25zL2RlY29yYXRvcnMnO1xyXG5leHBvcnQgeyBnZXRFbmRwb2ludCB9IGZyb20gJy4vZnVuY3Rpb25zL2Z1bmN0aW9ucyc7XHJcbmV4cG9ydCB7IFV0aWxzIH0gZnJvbSAnLi9mdW5jdGlvbnMvdXRpbHMnO1xyXG5leHBvcnQgeyBBcHBTdG9yYWdlIH0gZnJvbSAnLi9oZWxwZXJzL2FwcC1zdG9yYWdlJztcclxuZXhwb3J0IHsgRHluYW1pY0J1aWxkZXIgfSBmcm9tICcuL2hlbHBlcnMvZHluYW1pYy1idWlsZGVyJztcclxuZXhwb3J0IHsgRHluYW1pY0NvbXBvbmVudENvbXBpbGVyIH0gZnJvbSAnLi9oZWxwZXJzL2R5bmFtaWMtY29tcG9uZW50LWNvbXBpbGVyJztcclxuZXhwb3J0IHsgQWN0aW9uSXRlbSB9IGZyb20gJy4vbW9kZWxzL2FjdGlvbi1pdGVtJztcclxuZXhwb3J0IHsgQXBwU2V0dGluZyB9IGZyb20gJy4vbW9kZWxzL2FwcC1zZXR0aW5nJztcclxuZXhwb3J0IHsgQXVkaXRFbnRpdHkgfSBmcm9tICcuL21vZGVscy9hdWRpdC1lbnRpdHknO1xyXG5leHBvcnQgeyBBdWRpdFVzZXIgfSBmcm9tICcuL21vZGVscy9hdWRpdC11c2VyJztcclxuZXhwb3J0IHsgQmFzZUVudGl0eSB9IGZyb20gJy4vbW9kZWxzL2Jhc2UtZW50aXR5JztcclxuZXhwb3J0IHsgSUVudGl0eSB9IGZyb20gJy4vbW9kZWxzL2VudGl0eSc7XHJcbmV4cG9ydCB7IEVudW1JdGVtIH0gZnJvbSAnLi9tb2RlbHMvZW51bS1pdGVtJztcclxuZXhwb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi9tb2RlbHMvZmlsdGVyJztcclxuZXhwb3J0IHsgRmlsdGVyRmllbGQgfSBmcm9tICcuL21vZGVscy9maWx0ZXItZmllbGQnO1xyXG5leHBvcnQgeyBJY29uIH0gZnJvbSAnLi9tb2RlbHMvaWNvbic7XHJcbmV4cG9ydCB7IEtleVZhbHVlIH0gZnJvbSAnLi9tb2RlbHMva2V5LXZhbHVlJztcclxuZXhwb3J0IHsgU2F2ZUFjdGlvbiB9IGZyb20gJy4vbW9kZWxzL3NhdmUtYWN0aW9uJztcclxuZXhwb3J0IHsgU3VmZml4QnV0dG9uIH0gZnJvbSAnLi9tb2RlbHMvc3VmZml4LWJ1dHRvbic7XHJcbmV4cG9ydCB7IERhdGFTb3VyY2VQaXBlIH0gZnJvbSAnLi9waXBlcy9kYXRhLXNvdXJjZS5waXBlJztcclxuZXhwb3J0IHsgRW51bVBpcGUgfSBmcm9tICcuL3BpcGVzL2VudW0ucGlwZSc7XHJcbmV4cG9ydCB7IEZpcnN0TGV0dGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvZmlyc3QtbGV0dGVyJztcclxuZXhwb3J0IHsgSm9pblBpcGUgfSBmcm9tICcuL3BpcGVzL2pvaW4ucGlwZSc7XHJcbmV4cG9ydCB7IEtleXNQaXBlIH0gZnJvbSAnLi9waXBlcy9rZXlzJztcclxuZXhwb3J0IHsgTWFwUGlwZSB9IGZyb20gJy4vcGlwZXMvbWFwLnBpcGUnO1xyXG5leHBvcnQgeyBQcm9wZXJ0eVBpcGUgfSBmcm9tICcuL3BpcGVzL25lc3RlZC1wcm9wZXJ0eSc7XHJcbmV4cG9ydCB7IE9yZGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvb3JkZXIucGlwZSc7XHJcbmV4cG9ydCB7IFByb3BlcnR5Sm9pblBpcGUgfSBmcm9tICcuL3BpcGVzL3Byb3BlcnR5LWpvaW4ucGlwZSc7XHJcbmV4cG9ydCB7IFNwbGl0UGlwZSB9IGZyb20gJy4vcGlwZXMvc3BsaXQucGlwZSc7XHJcbmV4cG9ydCB7IFRpdGxlQ2FzZSB9IGZyb20gJy4vcGlwZXMvdGl0bGVjYXNlLnBpcGUnO1xyXG5leHBvcnQgeyBWYWx1ZXNQaXBlIH0gZnJvbSAnLi9waXBlcy92YWx1ZXMnO1xyXG5leHBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYmFzZS5zZXJ2aWNlJztcclxuZXhwb3J0IHsgQ29udGV4dEhlbHBlciB9IGZyb20gJy4vc2VydmljZXMvY29udGV4dC1oZWxwZXInO1xyXG5leHBvcnQgeyBFbnVtU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZW51bS5zZXJ2aWNlJztcclxuZXhwb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuL3NlcnZpY2VzL3NlcnZpY2UtbG9jYXRvcic7XHJcblxyXG5jb25zdCBjb21waWxlck9wdGlvbnM6IENvbXBpbGVyT3B0aW9ucyA9IHtcclxuXHRkZWZhdWx0RW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbXBpbGVyKGNvbXBpbGVyRmFjdG9yeTogQ29tcGlsZXJGYWN0b3J5KSB7XHJcblx0cmV0dXJuIGNvbXBpbGVyRmFjdG9yeS5jcmVhdGVDb21waWxlcihbY29tcGlsZXJPcHRpb25zXSk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBSVU5USU1FX0NPTVBJTEVSX1BST1ZJREVSUzogU3RhdGljUHJvdmlkZXJbXSA9IFtcclxuXHR7IHByb3ZpZGU6IENPTVBJTEVSX09QVElPTlMsIHVzZVZhbHVlOiB7IGNvbXBpbGVyT3B0aW9ucyB9LCBtdWx0aTogdHJ1ZSB9LFxyXG5cdHsgcHJvdmlkZTogQ29tcGlsZXJGYWN0b3J5LCB1c2VDbGFzczogSml0Q29tcGlsZXJGYWN0b3J5LCBkZXBzOiBbQ09NUElMRVJfT1BUSU9OU10gfSxcclxuXHR7IHByb3ZpZGU6IENvbXBpbGVyLCB1c2VGYWN0b3J5OiBjcmVhdGVDb21waWxlciwgZGVwczogW0NvbXBpbGVyRmFjdG9yeV0gfVxyXG5dO1xyXG5cclxuY29uc3QgQ09NTU9OX0RFQ0xBUkFUSU9OUyA9IFtcclxuXHREYXRhU291cmNlUGlwZSxcclxuXHREaXNhYmxlQ29udHJvbERpcmVjdGl2ZSxcclxuXHRFbnVtUGlwZSxcclxuXHRGaWxlU2l6ZVBpcGUsXHJcblx0RmlsdGVyUGlwZSxcclxuXHRGaXJzdExldHRlclBpcGUsXHJcblx0Rm9ybUNvbnRyb2xQaXBlLFxyXG5cdEZvcm1Hcm91cFBpcGUsXHJcblx0Rm9ybUFycmF5UGlwZSxcclxuXHRGdW5jUGlwZSxcclxuXHRLZXlzUGlwZSxcclxuXHRNb250aE5hbWVQaXBlLFxyXG5cdE9ubHlOdW1iZXJEaXJlY3RpdmUsXHJcblx0T3JkZXJQaXBlLFxyXG5cdFBsYWNlaG9sZGVyUGlwZSxcclxuXHRTYWZlSHRtbFBpcGUsXHJcblx0VGltZVBpcGUsXHJcblx0VGl0bGVDYXNlLFxyXG5cdFRydW5jYXRlUGlwZSxcclxuXHRWYWx1ZXNQaXBlLFxyXG5cdFByb3BlcnR5UGlwZSxcclxuXHRTcGxpdFBpcGUsXHJcblx0Sm9pblBpcGUsXHJcblx0UHJvcGVydHlKb2luUGlwZSxcclxuXHRCaW5kUGlwZSxcclxuXHRNYXBQaXBlXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtdLFxyXG5cdGV4cG9ydHM6IFtDT01NT05fREVDTEFSQVRJT05TXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtDT01NT05fREVDTEFSQVRJT05TXSxcclxuXHRwcm92aWRlcnM6IFsuLi5SVU5USU1FX0NPTVBJTEVSX1BST1ZJREVSU11cclxufSlcclxuZXhwb3J0IGNsYXNzIFZkQ29tbW9uTW9kdWxlIHsgfSJdfQ==
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2NvbW1vbi9jb21tb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFtQixRQUFRLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVB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QUFDLEdBQUcsMEJBQTBCLENBQUM7OzJGQUU5QixjQUFjO2tCQU4xQixRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsU0FBUyxFQUFFLENBQUMsR0FBRywwQkFBMEIsQ0FBQztpQkFDMUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT01QSUxFUl9PUFRJT05TLCBDb21waWxlciwgQ29tcGlsZXJGYWN0b3J5LCBDb21waWxlck9wdGlvbnMsIE5nTW9kdWxlLCBTdGF0aWNQcm92aWRlciwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSml0Q29tcGlsZXJGYWN0b3J5IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztcclxuaW1wb3J0IHsgQXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEaXNhYmxlQ29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kaXNhYmxlLWNvbnRyb2wuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRGF0YVNvdXJjZVBpcGUgfSBmcm9tICcuL3BpcGVzL2RhdGEtc291cmNlLnBpcGUnO1xyXG5pbXBvcnQgeyBFbnVtUGlwZSB9IGZyb20gJy4vcGlwZXMvZW51bS5waXBlJztcclxuaW1wb3J0IHsgRmlsZVNpemVQaXBlIH0gZnJvbSAnLi9waXBlcy9maWxlLXNpemUucGlwZSc7XHJcbmltcG9ydCB7IEZpbHRlclBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbHRlci5waXBlJztcclxuaW1wb3J0IHsgRmlyc3RMZXR0ZXJQaXBlIH0gZnJvbSAnLi9waXBlcy9maXJzdC1sZXR0ZXInO1xyXG5pbXBvcnQgeyBGb3JtQXJyYXlQaXBlIH0gZnJvbSAnLi9waXBlcy9mb3JtLWFycmF5LnBpcGUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbFBpcGUgfSBmcm9tICcuL3BpcGVzL2Zvcm0tY29udHJvbC5waXBlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwUGlwZSB9IGZyb20gJy4vcGlwZXMvZm9ybS1ncm91cC5waXBlJztcclxuaW1wb3J0IHsgRnVuY1BpcGUgfSBmcm9tICcuL3BpcGVzL2Z1bmMucGlwZSc7XHJcbmltcG9ydCB7IEpvaW5QaXBlIH0gZnJvbSAnLi9waXBlcy9qb2luLnBpcGUnO1xyXG5pbXBvcnQgeyBLZXlzUGlwZSB9IGZyb20gJy4vcGlwZXMva2V5cyc7XHJcbmltcG9ydCB7IE1hcFBpcGUgfSBmcm9tICcuL3BpcGVzL21hcC5waXBlJztcclxuaW1wb3J0IHsgTW9udGhOYW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvbW9udGgtbmFtZS5waXBlJztcclxuaW1wb3J0IHsgUHJvcGVydHlQaXBlIH0gZnJvbSAnLi9waXBlcy9uZXN0ZWQtcHJvcGVydHknO1xyXG5pbXBvcnQgeyBPbmx5TnVtYmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9waXBlcy9vbmx5LW51bWJlcic7XHJcbmltcG9ydCB7IE9yZGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvb3JkZXIucGlwZSc7XHJcbmltcG9ydCB7IFBsYWNlaG9sZGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvcGxhY2Vob2xkZXIucGlwZSc7XHJcbmltcG9ydCB7IFByb3BlcnR5Sm9pblBpcGUgfSBmcm9tICcuL3BpcGVzL3Byb3BlcnR5LWpvaW4ucGlwZSc7XHJcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJy4vcGlwZXMvc2FmZS1odG1sLnBpcGUnO1xyXG5pbXBvcnQgeyBTcGxpdFBpcGUgfSBmcm9tICcuL3BpcGVzL3NwbGl0LnBpcGUnO1xyXG5pbXBvcnQgeyBUaW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvdGltZS5waXBlJztcclxuaW1wb3J0IHsgVGl0bGVDYXNlIH0gZnJvbSAnLi9waXBlcy90aXRsZWNhc2UucGlwZSc7XHJcbmltcG9ydCB7IFRydW5jYXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvdHJ1bmNhdGUucGlwZSc7XHJcbmltcG9ydCB7IFZhbHVlc1BpcGUgfSBmcm9tICcuL3BpcGVzL3ZhbHVlcyc7XHJcbmltcG9ydCB7IEJpbmRQaXBlIH0gZnJvbSAnLi9wdWJsaWNfYXBpJztcclxuXHJcbmV4cG9ydCB7IElDb250cm9sVmFsdWVBY2Nlc3NvciwgbWl4aW5Db250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vYmVoYXZpb3JzL2NvbnRyb2wtdmFsdWUtYWNjZXNvci5taXhpbic7XHJcbmV4cG9ydCB7IElDYW5EaXNhYmxlLCBtaXhpbkRpc2FibGVkIH0gZnJvbSAnLi9iZWhhdmlvcnMvZGlzYWJsZWQubWl4aW4nO1xyXG5leHBvcnQgeyBlbmRwb2ludE1ldGFkYXRhS2V5LCBoZWFkZXJNZXRhZGF0YUtleSB9IGZyb20gJy4vY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmV4cG9ydCB7IEZpbHRlckdsdWUgfSBmcm9tICcuL2VudW1zL2ZpbHRlci1nbHVlJztcclxuZXhwb3J0IHsgRmlsdGVyT3BlcmF0b3IgfSBmcm9tICcuL2VudW1zL2ZpbHRlci1vcGVyYXRvcic7XHJcbmV4cG9ydCB7IFNhbHV0YXRpb24gfSBmcm9tICcuL2VudW1zL3NhbHV0YXRpb24nO1xyXG5leHBvcnQgeyBBcGksIERpc3BsYXkgfSBmcm9tICcuL2Z1bmN0aW9ucy9kZWNvcmF0b3JzJztcclxuZXhwb3J0IHsgZ2V0RW5kcG9pbnQgfSBmcm9tICcuL2Z1bmN0aW9ucy9mdW5jdGlvbnMnO1xyXG5leHBvcnQgeyBVdGlscyB9IGZyb20gJy4vZnVuY3Rpb25zL3V0aWxzJztcclxuZXhwb3J0IHsgQXBwU3RvcmFnZSB9IGZyb20gJy4vaGVscGVycy9hcHAtc3RvcmFnZSc7XHJcbmV4cG9ydCB7IER5bmFtaWNCdWlsZGVyIH0gZnJvbSAnLi9oZWxwZXJzL2R5bmFtaWMtYnVpbGRlcic7XHJcbmV4cG9ydCB7IER5bmFtaWNDb21wb25lbnRDb21waWxlciB9IGZyb20gJy4vaGVscGVycy9keW5hbWljLWNvbXBvbmVudC1jb21waWxlcic7XHJcbmV4cG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tICcuL21vZGVscy9hY3Rpb24taXRlbSc7XHJcbmV4cG9ydCB7IEFwcFNldHRpbmcgfSBmcm9tICcuL21vZGVscy9hcHAtc2V0dGluZyc7XHJcbmV4cG9ydCB7IEF1ZGl0RW50aXR5IH0gZnJvbSAnLi9tb2RlbHMvYXVkaXQtZW50aXR5JztcclxuZXhwb3J0IHsgQXVkaXRVc2VyIH0gZnJvbSAnLi9tb2RlbHMvYXVkaXQtdXNlcic7XHJcbmV4cG9ydCB7IEJhc2VFbnRpdHkgfSBmcm9tICcuL21vZGVscy9iYXNlLWVudGl0eSc7XHJcbmV4cG9ydCB7IElFbnRpdHkgfSBmcm9tICcuL21vZGVscy9lbnRpdHknO1xyXG5leHBvcnQgeyBFbnVtSXRlbSB9IGZyb20gJy4vbW9kZWxzL2VudW0taXRlbSc7XHJcbmV4cG9ydCB7IEZpbHRlciB9IGZyb20gJy4vbW9kZWxzL2ZpbHRlcic7XHJcbmV4cG9ydCB7IEZpbHRlckZpZWxkIH0gZnJvbSAnLi9tb2RlbHMvZmlsdGVyLWZpZWxkJztcclxuZXhwb3J0IHsgSWNvbiB9IGZyb20gJy4vbW9kZWxzL2ljb24nO1xyXG5leHBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gJy4vbW9kZWxzL2tleS12YWx1ZSc7XHJcbmV4cG9ydCB7IFNhdmVBY3Rpb24gfSBmcm9tICcuL21vZGVscy9zYXZlLWFjdGlvbic7XHJcbmV4cG9ydCB7IFN1ZmZpeEJ1dHRvbiB9IGZyb20gJy4vbW9kZWxzL3N1ZmZpeC1idXR0b24nO1xyXG5leHBvcnQgeyBEYXRhU291cmNlUGlwZSB9IGZyb20gJy4vcGlwZXMvZGF0YS1zb3VyY2UucGlwZSc7XHJcbmV4cG9ydCB7IEVudW1QaXBlIH0gZnJvbSAnLi9waXBlcy9lbnVtLnBpcGUnO1xyXG5leHBvcnQgeyBGaXJzdExldHRlclBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpcnN0LWxldHRlcic7XHJcbmV4cG9ydCB7IEpvaW5QaXBlIH0gZnJvbSAnLi9waXBlcy9qb2luLnBpcGUnO1xyXG5leHBvcnQgeyBLZXlzUGlwZSB9IGZyb20gJy4vcGlwZXMva2V5cyc7XHJcbmV4cG9ydCB7IE1hcFBpcGUgfSBmcm9tICcuL3BpcGVzL21hcC5waXBlJztcclxuZXhwb3J0IHsgUHJvcGVydHlQaXBlIH0gZnJvbSAnLi9waXBlcy9uZXN0ZWQtcHJvcGVydHknO1xyXG5leHBvcnQgeyBPcmRlclBpcGUgfSBmcm9tICcuL3BpcGVzL29yZGVyLnBpcGUnO1xyXG5leHBvcnQgeyBQcm9wZXJ0eUpvaW5QaXBlIH0gZnJvbSAnLi9waXBlcy9wcm9wZXJ0eS1qb2luLnBpcGUnO1xyXG5leHBvcnQgeyBTcGxpdFBpcGUgfSBmcm9tICcuL3BpcGVzL3NwbGl0LnBpcGUnO1xyXG5leHBvcnQgeyBUaXRsZUNhc2UgfSBmcm9tICcuL3BpcGVzL3RpdGxlY2FzZS5waXBlJztcclxuZXhwb3J0IHsgVmFsdWVzUGlwZSB9IGZyb20gJy4vcGlwZXMvdmFsdWVzJztcclxuZXhwb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2Jhc2Uuc2VydmljZSc7XHJcbmV4cG9ydCB7IENvbnRleHRIZWxwZXIgfSBmcm9tICcuL3NlcnZpY2VzL2NvbnRleHQtaGVscGVyJztcclxuZXhwb3J0IHsgRW51bVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2VudW0uc2VydmljZSc7XHJcbmV4cG9ydCB7IFNlcnZpY2VMb2NhdG9yIH0gZnJvbSAnLi9zZXJ2aWNlcy9zZXJ2aWNlLWxvY2F0b3InO1xyXG5leHBvcnQgeyBBdXRvZm9jdXNEaXJlY3RpdmUgfTtcclxuXHJcbmNvbnN0IGNvbXBpbGVyT3B0aW9uczogQ29tcGlsZXJPcHRpb25zID0ge1xyXG5cdGRlZmF1bHRFbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29tcGlsZXIoY29tcGlsZXJGYWN0b3J5OiBDb21waWxlckZhY3RvcnkpIHtcclxuXHRyZXR1cm4gY29tcGlsZXJGYWN0b3J5LmNyZWF0ZUNvbXBpbGVyKFtjb21waWxlck9wdGlvbnNdKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFJVTlRJTUVfQ09NUElMRVJfUFJPVklERVJTOiBTdGF0aWNQcm92aWRlcltdID0gW1xyXG5cdHsgcHJvdmlkZTogQ09NUElMRVJfT1BUSU9OUywgdXNlVmFsdWU6IHsgY29tcGlsZXJPcHRpb25zIH0sIG11bHRpOiB0cnVlIH0sXHJcblx0eyBwcm92aWRlOiBDb21waWxlckZhY3RvcnksIHVzZUNsYXNzOiBKaXRDb21waWxlckZhY3RvcnksIGRlcHM6IFtDT01QSUxFUl9PUFRJT05TXSB9LFxyXG5cdHsgcHJvdmlkZTogQ29tcGlsZXIsIHVzZUZhY3Rvcnk6IGNyZWF0ZUNvbXBpbGVyLCBkZXBzOiBbQ29tcGlsZXJGYWN0b3J5XSB9XHJcbl07XHJcblxyXG5jb25zdCBDT01NT05fREVDTEFSQVRJT05TID0gW1xyXG5cdERhdGFTb3VyY2VQaXBlLFxyXG5cdERpc2FibGVDb250cm9sRGlyZWN0aXZlLFxyXG5cdEVudW1QaXBlLFxyXG5cdEZpbGVTaXplUGlwZSxcclxuXHRGaWx0ZXJQaXBlLFxyXG5cdEZpcnN0TGV0dGVyUGlwZSxcclxuXHRGb3JtQ29udHJvbFBpcGUsXHJcblx0Rm9ybUdyb3VwUGlwZSxcclxuXHRGb3JtQXJyYXlQaXBlLFxyXG5cdEZ1bmNQaXBlLFxyXG5cdEtleXNQaXBlLFxyXG5cdE1vbnRoTmFtZVBpcGUsXHJcblx0T25seU51bWJlckRpcmVjdGl2ZSxcclxuXHRPcmRlclBpcGUsXHJcblx0UGxhY2Vob2xkZXJQaXBlLFxyXG5cdFNhZmVIdG1sUGlwZSxcclxuXHRUaW1lUGlwZSxcclxuXHRUaXRsZUNhc2UsXHJcblx0VHJ1bmNhdGVQaXBlLFxyXG5cdFZhbHVlc1BpcGUsXHJcblx0UHJvcGVydHlQaXBlLFxyXG5cdFNwbGl0UGlwZSxcclxuXHRKb2luUGlwZSxcclxuXHRQcm9wZXJ0eUpvaW5QaXBlLFxyXG5cdEJpbmRQaXBlLFxyXG5cdE1hcFBpcGUsXHJcblx0QXV0b2ZvY3VzRGlyZWN0aXZlXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtdLFxyXG5cdGV4cG9ydHM6IFtDT01NT05fREVDTEFSQVRJT05TXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtDT01NT05fREVDTEFSQVRJT05TXSxcclxuXHRwcm92aWRlcnM6IFsuLi5SVU5USU1FX0NPTVBJTEVSX1BST1ZJREVSU11cclxufSlcclxuZXhwb3J0IGNsYXNzIFZkQ29tbW9uTW9kdWxlIHsgfSJdfQ==
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Directive, ElementRef, Input } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class AutofocusDirective {
|
|
4
|
+
elementRef;
|
|
5
|
+
/**
|
|
6
|
+
* Optional input to customize the delay
|
|
7
|
+
*/
|
|
8
|
+
focusDelay = 300;
|
|
9
|
+
/**
|
|
10
|
+
* Determines whether the text should be selected on focus
|
|
11
|
+
*/
|
|
12
|
+
selectText = false;
|
|
13
|
+
/**
|
|
14
|
+
* Constructor that injects the ElementRef, giving direct access
|
|
15
|
+
* to the host DOM element where the directive is applied.
|
|
16
|
+
* @param elementRef - The reference to the element on which the directive is set
|
|
17
|
+
*/
|
|
18
|
+
constructor(elementRef) {
|
|
19
|
+
this.elementRef = elementRef;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Set focus on the element after content initialization
|
|
23
|
+
*/
|
|
24
|
+
ngAfterContentInit() {
|
|
25
|
+
setTimeout(() => {
|
|
26
|
+
if (this.elementRef.nativeElement) {
|
|
27
|
+
this.elementRef.nativeElement.focus();
|
|
28
|
+
/* Select the text if selectText is true */
|
|
29
|
+
if (this.selectText) {
|
|
30
|
+
this.elementRef.nativeElement.select();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}, this.focusDelay);
|
|
34
|
+
}
|
|
35
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
36
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: AutofocusDirective, selector: "[autoFocus]", inputs: { focusDelay: "focusDelay", selectText: "selectText" }, ngImport: i0 });
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AutofocusDirective, decorators: [{
|
|
39
|
+
type: Directive,
|
|
40
|
+
args: [{
|
|
41
|
+
selector: "[autoFocus]"
|
|
42
|
+
}]
|
|
43
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { focusDelay: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], selectText: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}] } });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2NvbW1vbi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLL0UsTUFBTSxPQUFPLGtCQUFrQjtJQWtCQTtJQWpCM0I7O09BRUc7SUFFSSxVQUFVLEdBQVcsR0FBRyxDQUFDO0lBRWhDOztPQUVHO0lBRUksVUFBVSxHQUFZLEtBQUssQ0FBQztJQUVuQzs7OztPQUlHO0lBQ0gsWUFBMkIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFJLENBQUM7SUFFdEQ7O09BRUc7SUFDSSxrQkFBa0I7UUFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBRXRDLDJDQUEyQztnQkFDM0MsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMzQyxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEIsQ0FBQzswSEFsQ1Esa0JBQWtCOzhHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7aUJBQzFCOytFQU1VLFVBQVU7c0JBRGhCLEtBQUs7Z0JBT0MsVUFBVTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbYXV0b0ZvY3VzXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRvZm9jdXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9uYWwgaW5wdXQgdG8gY3VzdG9taXplIHRoZSBkZWxheVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZvY3VzRGVsYXk6IG51bWJlciA9IDMwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgdGV4dCBzaG91bGQgYmUgc2VsZWN0ZWQgb24gZm9jdXNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZWxlY3RUZXh0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciB0aGF0IGluamVjdHMgdGhlIEVsZW1lbnRSZWYsIGdpdmluZyBkaXJlY3QgYWNjZXNzXHJcbiAgICAgKiB0byB0aGUgaG9zdCBET00gZWxlbWVudCB3aGVyZSB0aGUgZGlyZWN0aXZlIGlzIGFwcGxpZWQuXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiAtIFRoZSByZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIGRpcmVjdGl2ZSBpcyBzZXRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgZm9jdXMgb24gdGhlIGVsZW1lbnQgYWZ0ZXIgY29udGVudCBpbml0aWFsaXphdGlvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgLyogU2VsZWN0IHRoZSB0ZXh0IGlmIHNlbGVjdFRleHQgaXMgdHJ1ZSAqL1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0VGV4dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgdGhpcy5mb2N1c0RlbGF5KTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -2,12 +2,30 @@ import { Pipe } from "@angular/core";
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class EnumPipe {
|
|
4
4
|
/**
|
|
5
|
-
* Converts enum value to string
|
|
6
|
-
*
|
|
7
|
-
* @param
|
|
5
|
+
* Converts an enum value to its corresponding string representation.
|
|
6
|
+
*
|
|
7
|
+
* @param value - The numeric value of the enum to convert.
|
|
8
|
+
* @param enumType - The enum type (as an object) that defines the mapping of values to their string representations.
|
|
9
|
+
* @param prefixOrMetadata - Either a prefix string to prepend to the resulting string,
|
|
10
|
+
* or an object containing EnumMetadata for additional display information.
|
|
11
|
+
* @param suffix - An optional string to append to the resulting string (default is an empty string).
|
|
12
|
+
* @returns The formatted string representation of the enum value, including any specified prefixes or suffixes,
|
|
13
|
+
* or undefined if the value is not recognized in the provided enum type.
|
|
8
14
|
*/
|
|
9
|
-
transform(value, enumType,
|
|
10
|
-
|
|
15
|
+
transform(value, enumType, prefixOrMetadata, suffix = '') {
|
|
16
|
+
/* Determine if prefixOrMetadata is an object containing EnumMetadata for the given value */
|
|
17
|
+
if (prefixOrMetadata && typeof prefixOrMetadata === 'object' && value in prefixOrMetadata) {
|
|
18
|
+
const metadata = prefixOrMetadata[value];
|
|
19
|
+
/* Return the display string from the metadata along with the suffix */
|
|
20
|
+
return `${metadata.display}${suffix}`;
|
|
21
|
+
}
|
|
22
|
+
/* Check if enumType is an object and contains the specified value */
|
|
23
|
+
if (enumType && typeof enumType === 'object' && value in enumType) {
|
|
24
|
+
/* Return the corresponding string value from the enum, prepending the prefix if provided */
|
|
25
|
+
return `${prefixOrMetadata ?? ''}${enumType[value]}${suffix}`;
|
|
26
|
+
}
|
|
27
|
+
/* If the value is not recognized in the enumType, return undefined as a fallback */
|
|
28
|
+
return undefined;
|
|
11
29
|
}
|
|
12
30
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EnumPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
31
|
/** @nocollapse */ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: EnumPipe, name: "enum", pure: false });
|
|
@@ -20,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
20
38
|
pure: false
|
|
21
39
|
}]
|
|
22
40
|
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvY29tbW9uL3BpcGVzL2VudW0ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFRcEQsTUFBTSxPQUFPLFFBQVE7SUFDcEI7Ozs7Ozs7Ozs7T0FVRztJQUNILFNBQVMsQ0FBQyxLQUFhLEVBQUUsUUFBYSxFQUFFLGdCQUEyRCxFQUFFLFNBQWlCLEVBQUU7UUFDdkgsNEZBQTRGO1FBQzVGLElBQUksZ0JBQWdCLElBQUksT0FBTyxnQkFBZ0IsS0FBSyxRQUFRLElBQUksS0FBSyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDM0YsTUFBTSxRQUFRLEdBQWlCLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELHVFQUF1RTtZQUN2RSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUN2QyxDQUFDO1FBRUQscUVBQXFFO1FBQ3JFLElBQUksUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxLQUFLLElBQUksUUFBUSxFQUFFLENBQUM7WUFDbkUsNEZBQTRGO1lBQzVGLE9BQU8sR0FBRyxnQkFBZ0IsSUFBSSxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQy9ELENBQUM7UUFFRCxvRkFBb0Y7UUFDcEYsT0FBTyxTQUFTLENBQUM7SUFDbEIsQ0FBQzswSEE1QlcsUUFBUTt3SEFBUixRQUFROzsyRkFBUixRQUFRO2tCQUxwQixJQUFJO21CQUFDO29CQUNMLElBQUksRUFBRSxNQUFNO29CQUNaLCtEQUErRDtvQkFDL0QsSUFBSSxFQUFFLEtBQUs7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRW51bU1ldGFkYXRhIH0gZnJvbSBcIi4uL21vZGVscy9lbnVtLW1ldGFkYXRhXCI7XHJcblxyXG5AUGlwZSh7XHJcblx0bmFtZTogJ2VudW0nLFxyXG5cdC8qIFJlcXVpcmVkIHRvIHVwZGF0ZSB0aGUgdmFsdWUgd2hlbiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZCAqL1xyXG5cdHB1cmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbnVtUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cdC8qKlxyXG5cdCAqIENvbnZlcnRzIGFuIGVudW0gdmFsdWUgdG8gaXRzIGNvcnJlc3BvbmRpbmcgc3RyaW5nIHJlcHJlc2VudGF0aW9uLlxyXG5cdCAqIFxyXG5cdCAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBudW1lcmljIHZhbHVlIG9mIHRoZSBlbnVtIHRvIGNvbnZlcnQuXHJcblx0ICogQHBhcmFtIGVudW1UeXBlIC0gVGhlIGVudW0gdHlwZSAoYXMgYW4gb2JqZWN0KSB0aGF0IGRlZmluZXMgdGhlIG1hcHBpbmcgb2YgdmFsdWVzIHRvIHRoZWlyIHN0cmluZyByZXByZXNlbnRhdGlvbnMuXHJcblx0ICogQHBhcmFtIHByZWZpeE9yTWV0YWRhdGEgLSBFaXRoZXIgYSBwcmVmaXggc3RyaW5nIHRvIHByZXBlbmQgdG8gdGhlIHJlc3VsdGluZyBzdHJpbmcsIFxyXG5cdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgYW4gb2JqZWN0IGNvbnRhaW5pbmcgRW51bU1ldGFkYXRhIGZvciBhZGRpdGlvbmFsIGRpc3BsYXkgaW5mb3JtYXRpb24uXHJcblx0ICogQHBhcmFtIHN1ZmZpeCAtIEFuIG9wdGlvbmFsIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIHJlc3VsdGluZyBzdHJpbmcgKGRlZmF1bHQgaXMgYW4gZW1wdHkgc3RyaW5nKS5cclxuXHQgKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW51bSB2YWx1ZSwgaW5jbHVkaW5nIGFueSBzcGVjaWZpZWQgcHJlZml4ZXMgb3Igc3VmZml4ZXMsIFxyXG5cdCAqICAgICAgICAgIG9yIHVuZGVmaW5lZCBpZiB0aGUgdmFsdWUgaXMgbm90IHJlY29nbml6ZWQgaW4gdGhlIHByb3ZpZGVkIGVudW0gdHlwZS5cclxuXHQgKi9cclxuXHR0cmFuc2Zvcm0odmFsdWU6IG51bWJlciwgZW51bVR5cGU6IGFueSwgcHJlZml4T3JNZXRhZGF0YT86IHN0cmluZyB8IHsgW2tleTogbnVtYmVyXTogRW51bU1ldGFkYXRhIH0sIHN1ZmZpeDogc3RyaW5nID0gJycpOiBhbnkge1xyXG5cdFx0LyogRGV0ZXJtaW5lIGlmIHByZWZpeE9yTWV0YWRhdGEgaXMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgRW51bU1ldGFkYXRhIGZvciB0aGUgZ2l2ZW4gdmFsdWUgKi9cclxuXHRcdGlmIChwcmVmaXhPck1ldGFkYXRhICYmIHR5cGVvZiBwcmVmaXhPck1ldGFkYXRhID09PSAnb2JqZWN0JyAmJiB2YWx1ZSBpbiBwcmVmaXhPck1ldGFkYXRhKSB7XHJcblx0XHRcdGNvbnN0IG1ldGFkYXRhOiBFbnVtTWV0YWRhdGEgPSBwcmVmaXhPck1ldGFkYXRhW3ZhbHVlXTtcclxuXHRcdFx0LyogUmV0dXJuIHRoZSBkaXNwbGF5IHN0cmluZyBmcm9tIHRoZSBtZXRhZGF0YSBhbG9uZyB3aXRoIHRoZSBzdWZmaXggKi9cclxuXHRcdFx0cmV0dXJuIGAke21ldGFkYXRhLmRpc3BsYXl9JHtzdWZmaXh9YDtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBDaGVjayBpZiBlbnVtVHlwZSBpcyBhbiBvYmplY3QgYW5kIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgdmFsdWUgKi9cclxuXHRcdGlmIChlbnVtVHlwZSAmJiB0eXBlb2YgZW51bVR5cGUgPT09ICdvYmplY3QnICYmIHZhbHVlIGluIGVudW1UeXBlKSB7XHJcblx0XHRcdC8qIFJldHVybiB0aGUgY29ycmVzcG9uZGluZyBzdHJpbmcgdmFsdWUgZnJvbSB0aGUgZW51bSwgcHJlcGVuZGluZyB0aGUgcHJlZml4IGlmIHByb3ZpZGVkICovXHJcblx0XHRcdHJldHVybiBgJHtwcmVmaXhPck1ldGFkYXRhID8/ICcnfSR7ZW51bVR5cGVbdmFsdWVdfSR7c3VmZml4fWA7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogSWYgdGhlIHZhbHVlIGlzIG5vdCByZWNvZ25pemVkIGluIHRoZSBlbnVtVHlwZSwgcmV0dXJuIHVuZGVmaW5lZCBhcyBhIGZhbGxiYWNrICovXHJcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdH1cclxufSJdfQ==
|
|
@@ -3,111 +3,176 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
//@dynamic
|
|
4
4
|
export class OrderPipe {
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Checks if a value is a string.
|
|
7
7
|
*
|
|
8
|
-
* @param value
|
|
8
|
+
* @param value - The value to check.
|
|
9
|
+
* @returns True if the value is a string; otherwise, false.
|
|
9
10
|
*/
|
|
10
11
|
static isString(value) {
|
|
11
12
|
return typeof value === 'string' || value instanceof String;
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
|
-
* Sorts values
|
|
15
|
+
* Sorts two values in a case-insensitive manner.
|
|
15
16
|
*
|
|
16
|
-
* @param a
|
|
17
|
-
* @param b
|
|
17
|
+
* @param a - The first value to compare.
|
|
18
|
+
* @param b - The second value to compare.
|
|
19
|
+
* @returns A negative number if a < b, a positive number if a > b, and 0 if they are equal.
|
|
18
20
|
*/
|
|
19
21
|
static caseInsensitiveSort(a, b) {
|
|
22
|
+
/* If both values are strings, compare them using localeCompare for case-insensitive sorting. */
|
|
20
23
|
if (OrderPipe.isString(a) && OrderPipe.isString(b)) {
|
|
21
24
|
return a.localeCompare(b);
|
|
22
25
|
}
|
|
26
|
+
/* Otherwise, fall back to the default comparison. */
|
|
23
27
|
return OrderPipe.defaultCompare(a, b);
|
|
24
28
|
}
|
|
25
29
|
/**
|
|
26
|
-
* Default
|
|
30
|
+
* Default comparison method for sorting values.
|
|
27
31
|
*
|
|
28
|
-
* @param a
|
|
29
|
-
* @param b
|
|
32
|
+
* @param a - The first value to compare.
|
|
33
|
+
* @param b - The second value to compare.
|
|
34
|
+
* @returns A negative number if a < b, a positive number if a > b, and 0 if they are equal.
|
|
30
35
|
*/
|
|
31
36
|
static defaultCompare(a, b) {
|
|
37
|
+
/* If both values are equal, return 0. */
|
|
32
38
|
if (a === b) {
|
|
33
39
|
return 0;
|
|
34
40
|
}
|
|
41
|
+
/* If 'a' is null, it is considered greater than 'b'. */
|
|
35
42
|
if (a == null) {
|
|
36
43
|
return 1;
|
|
37
44
|
}
|
|
45
|
+
/* If 'b' is null, it is considered greater than 'a'. */
|
|
38
46
|
if (b == null) {
|
|
39
47
|
return -1;
|
|
40
48
|
}
|
|
49
|
+
/* Compare the two values. */
|
|
41
50
|
return a > b ? 1 : -1;
|
|
42
51
|
}
|
|
43
52
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
53
|
+
* Parses a dot-separated expression string into an array of strings.
|
|
54
|
+
*
|
|
55
|
+
* @param expression - The expression string to parse.
|
|
56
|
+
* @returns An array of strings representing the parsed expression.
|
|
46
57
|
*/
|
|
47
58
|
static parseExpression(expression) {
|
|
59
|
+
/* Replace bracket notation with dot notation and remove leading dot. */
|
|
48
60
|
expression = expression.replace(/\[(\w+)\]/g, '.$1');
|
|
49
61
|
expression = expression.replace(/^\./, '');
|
|
50
62
|
return expression.split('.');
|
|
51
63
|
}
|
|
52
64
|
/**
|
|
53
|
-
*
|
|
65
|
+
* Retrieves a value from an object based on a parsed expression.
|
|
54
66
|
*
|
|
55
|
-
* @param object
|
|
56
|
-
* @param expression
|
|
67
|
+
* @param object - The object to retrieve the value from.
|
|
68
|
+
* @param expression - The parsed expression as an array of strings.
|
|
69
|
+
* @returns The retrieved value or undefined if not found.
|
|
57
70
|
*/
|
|
58
71
|
static getValue(object, expression) {
|
|
59
72
|
for (let i = 0, n = expression.length; i < n; ++i) {
|
|
60
73
|
const k = expression[i];
|
|
74
|
+
/* If the key does not exist in the object, return undefined. */
|
|
61
75
|
if (!(k in object)) {
|
|
62
76
|
return;
|
|
63
77
|
}
|
|
78
|
+
/* Move to the next level in the object. */
|
|
64
79
|
object = object[k];
|
|
65
80
|
}
|
|
81
|
+
/* Return the final value. */
|
|
66
82
|
return object;
|
|
67
83
|
}
|
|
68
84
|
/**
|
|
69
|
-
*
|
|
85
|
+
* Sets a value in an object based on a parsed expression.
|
|
70
86
|
*
|
|
71
|
-
* @param object
|
|
72
|
-
* @param value
|
|
73
|
-
* @param expression
|
|
87
|
+
* @param object - The object to modify.
|
|
88
|
+
* @param value - The value to set.
|
|
89
|
+
* @param expression - The parsed expression as an array of strings.
|
|
74
90
|
*/
|
|
75
91
|
static setValue(object, value, expression) {
|
|
76
92
|
let i;
|
|
77
93
|
for (i = 0; i < expression.length - 1; i++) {
|
|
94
|
+
/* Traverse the object to the second-to-last property. */
|
|
78
95
|
object = object[expression[i]];
|
|
79
96
|
}
|
|
97
|
+
/* Set the value at the last property. */
|
|
80
98
|
object[expression[i]] = value;
|
|
81
99
|
}
|
|
82
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Transforms the input value by sorting it based on the provided expression and metadata.
|
|
102
|
+
*
|
|
103
|
+
* @param value - The value to transform, which can be an array or a single object.
|
|
104
|
+
* @param expression - The expression to sort by, can be a string or an array of strings.
|
|
105
|
+
* @param metadata - An optional metadata object for sorting.
|
|
106
|
+
* @param reverse - Indicates if the sorting should be in reverse order.
|
|
107
|
+
* @param isCaseInsensitive - Indicates if the sorting should be case insensitive.
|
|
108
|
+
* @param comparator - An optional custom comparator function.
|
|
109
|
+
* @returns The transformed (sorted) value.
|
|
110
|
+
*/
|
|
111
|
+
transform(value, expression, metadata, reverse, isCaseInsensitive = false, comparator) {
|
|
112
|
+
/* If the value is null or undefined, return it as is. */
|
|
83
113
|
if (!value) {
|
|
84
114
|
return value;
|
|
85
115
|
}
|
|
116
|
+
/* Check if we should sort by metadata. */
|
|
117
|
+
if (metadata) {
|
|
118
|
+
return this.sortByMetadata(value, expression, reverse ?? false, metadata);
|
|
119
|
+
}
|
|
120
|
+
/* If expression is an array, handle multiple expressions. */
|
|
86
121
|
if (Array.isArray(expression)) {
|
|
87
122
|
return this.multiExpressionTransform(value, expression, reverse ?? false, isCaseInsensitive, comparator);
|
|
88
123
|
}
|
|
124
|
+
/* If value is an array, sort it using the provided expression. */
|
|
89
125
|
if (Array.isArray(value)) {
|
|
90
126
|
return this.sortArray(value.slice(), expression, reverse, isCaseInsensitive, comparator);
|
|
91
127
|
}
|
|
128
|
+
/* If value is an object, transform it accordingly. */
|
|
92
129
|
if (typeof value === 'object') {
|
|
93
130
|
return this.transformObject(Object.assign({}, value), expression, reverse, isCaseInsensitive, comparator);
|
|
94
131
|
}
|
|
132
|
+
/* If value is not an array or object, return it unchanged. */
|
|
95
133
|
return value;
|
|
96
134
|
}
|
|
97
135
|
/**
|
|
98
|
-
*
|
|
136
|
+
* Sorts an array based on metadata for enum values.
|
|
137
|
+
*
|
|
138
|
+
* @param value - The array to sort.
|
|
139
|
+
* @param expression - The expression to sort by.
|
|
140
|
+
* @param reverse - Indicates if the sorting should be in reverse order.
|
|
141
|
+
* @param metadata - The metadata for enum sorting.
|
|
142
|
+
* @returns The sorted array.
|
|
143
|
+
*/
|
|
144
|
+
sortByMetadata(value, expression, reverse, metadata) {
|
|
145
|
+
/* Comparison function for sorting by metadata order. */
|
|
146
|
+
const compareFn = (a, b) => {
|
|
147
|
+
const valueA = expression ? OrderPipe.getValue(a, OrderPipe.parseExpression(expression)) : a;
|
|
148
|
+
const valueB = expression ? OrderPipe.getValue(b, OrderPipe.parseExpression(expression)) : b;
|
|
149
|
+
/* Retrieve the order values from metadata, defaulting to Infinity if not found. */
|
|
150
|
+
const orderA = metadata[valueA]?.order ?? Infinity;
|
|
151
|
+
const orderB = metadata[valueB]?.order ?? Infinity;
|
|
152
|
+
return orderA - orderB;
|
|
153
|
+
};
|
|
154
|
+
/* Sort the array and handle reverse order. */
|
|
155
|
+
const sortedArray = value.slice().sort(compareFn);
|
|
156
|
+
return reverse ? sortedArray.reverse() : sortedArray;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Sorts an array based on the given expression.
|
|
99
160
|
*
|
|
100
|
-
* @param value
|
|
101
|
-
* @param expression
|
|
102
|
-
* @param reverse
|
|
103
|
-
* @param isCaseInsensitive
|
|
104
|
-
* @param comparator
|
|
161
|
+
* @param value - The array to sort.
|
|
162
|
+
* @param expression - The expression to sort by.
|
|
163
|
+
* @param reverse - Indicates if the sorting should be in reverse order.
|
|
164
|
+
* @param isCaseInsensitive - Indicates if the sorting should be case insensitive.
|
|
165
|
+
* @param comparator - An optional custom comparator function.
|
|
166
|
+
* @returns The sorted array.
|
|
105
167
|
*/
|
|
106
168
|
sortArray(value, expression, reverse, isCaseInsensitive, comparator) {
|
|
169
|
+
/* Determine if the expression is a deep link. */
|
|
107
170
|
const isDeepLink = expression && expression.indexOf('.') !== -1;
|
|
171
|
+
/* Parse the expression if it's a deep link. */
|
|
108
172
|
if (isDeepLink) {
|
|
109
173
|
expression = OrderPipe.parseExpression(expression);
|
|
110
174
|
}
|
|
175
|
+
/* Determine the comparison function. */
|
|
111
176
|
let compareFn;
|
|
112
177
|
if (comparator && typeof comparator === 'function') {
|
|
113
178
|
compareFn = comparator;
|
|
@@ -115,60 +180,81 @@ export class OrderPipe {
|
|
|
115
180
|
else {
|
|
116
181
|
compareFn = isCaseInsensitive ? OrderPipe.caseInsensitiveSort : OrderPipe.defaultCompare;
|
|
117
182
|
}
|
|
183
|
+
/* Sort the array using the determined comparison function. */
|
|
118
184
|
let array = value.sort((a, b) => {
|
|
119
185
|
if (!expression) {
|
|
120
186
|
return compareFn(a, b);
|
|
121
187
|
}
|
|
122
188
|
if (!isDeepLink) {
|
|
189
|
+
/* If not a deep link, compare the specified properties directly. */
|
|
123
190
|
if (a && b) {
|
|
124
191
|
return compareFn(a[expression], b[expression]);
|
|
125
192
|
}
|
|
193
|
+
/* Fall back to direct comparison. */
|
|
126
194
|
return compareFn(a, b);
|
|
127
195
|
}
|
|
196
|
+
/* For deep links, get the values from the parsed expression. */
|
|
128
197
|
return compareFn(OrderPipe.getValue(a, expression), OrderPipe.getValue(b, expression));
|
|
129
198
|
});
|
|
199
|
+
/* Handle reverse sorting if specified. */
|
|
130
200
|
if (reverse) {
|
|
131
201
|
return array.reverse();
|
|
132
202
|
}
|
|
133
203
|
return array;
|
|
134
204
|
}
|
|
135
205
|
/**
|
|
136
|
-
*
|
|
206
|
+
* Transforms an object based on a specified expression.
|
|
137
207
|
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
* @param
|
|
142
|
-
* @param
|
|
208
|
+
* This method retrieves a value from the given object according to the parsed expression,
|
|
209
|
+
* applies the transformation to that value, and then sets the transformed value back into the object.
|
|
210
|
+
*
|
|
211
|
+
* @param value The object to transform.
|
|
212
|
+
* @param expression The expression used to identify the property to transform.
|
|
213
|
+
* @param reverse Optional. Indicates whether the transformation should be applied in reverse order.
|
|
214
|
+
* @param isCaseInsensitive Optional. Indicates whether the transformation should ignore case.
|
|
215
|
+
* @param comparator Optional. A custom comparator function to be used for sorting.
|
|
216
|
+
* @returns The transformed object with the updated value.
|
|
143
217
|
*/
|
|
144
218
|
transformObject(value, expression, reverse, isCaseInsensitive, comparator) {
|
|
219
|
+
/* Parse the expression into an array of keys */
|
|
145
220
|
let parsedExpression = OrderPipe.parseExpression(expression);
|
|
221
|
+
/* Retrieve the last predicate from the parsed expression for further processing */
|
|
146
222
|
let lastPredicate = parsedExpression.pop();
|
|
223
|
+
/* Get the current value from the object using the parsed expression */
|
|
147
224
|
let oldValue = OrderPipe.getValue(value, parsedExpression);
|
|
225
|
+
/* If there's a last predicate and the old value is not an array,
|
|
226
|
+
push the predicate back into the parsed expression for future use */
|
|
148
227
|
if (lastPredicate && !Array.isArray(oldValue)) {
|
|
149
228
|
parsedExpression.push(lastPredicate);
|
|
150
229
|
lastPredicate = undefined;
|
|
151
230
|
oldValue = OrderPipe.getValue(value, parsedExpression);
|
|
152
231
|
}
|
|
232
|
+
/* If no old value is found, return the original object */
|
|
153
233
|
if (!oldValue) {
|
|
154
234
|
return value;
|
|
155
235
|
}
|
|
156
|
-
|
|
157
|
-
|
|
236
|
+
/* Set the transformed value back into the original object */
|
|
237
|
+
OrderPipe.setValue(value, this.transform(oldValue, lastPredicate, undefined, reverse, isCaseInsensitive), parsedExpression);
|
|
238
|
+
return value; /* Return the updated object */
|
|
158
239
|
}
|
|
159
240
|
/**
|
|
160
|
-
*
|
|
241
|
+
* Applies multiple expressions in sequence to transform a value.
|
|
242
|
+
*
|
|
243
|
+
* This method iterates over an array of expressions, applying each one in reverse order
|
|
244
|
+
* to the given value. The result of each transformation is passed as input to the next expression.
|
|
161
245
|
*
|
|
162
|
-
* @param value
|
|
163
|
-
* @param expressions
|
|
164
|
-
* @param reverse
|
|
165
|
-
* @param isCaseInsensitive
|
|
166
|
-
* @param comparator
|
|
246
|
+
* @param value The initial value to transform.
|
|
247
|
+
* @param expressions An array of expressions to apply in reverse order.
|
|
248
|
+
* @param reverse Optional. Indicates whether the transformations should be applied in reverse order.
|
|
249
|
+
* @param isCaseInsensitive Optional. Indicates whether the transformations should ignore case.
|
|
250
|
+
* @param comparator Optional. A custom comparator function to be used for sorting.
|
|
251
|
+
* @returns The final transformed value after applying all expressions.
|
|
167
252
|
*/
|
|
168
253
|
multiExpressionTransform(value, expressions, reverse, isCaseInsensitive = false, comparator) {
|
|
254
|
+
/* Apply each expression in reverse order, passing the result to the next transformation */
|
|
169
255
|
return expressions.reverse().reduce((result, expression) => {
|
|
170
|
-
return this.transform(result, expression, reverse, isCaseInsensitive, comparator);
|
|
171
|
-
}, value);
|
|
256
|
+
return this.transform(result, expression, undefined, reverse, isCaseInsensitive, comparator);
|
|
257
|
+
}, value); /* Return the final transformed value */
|
|
172
258
|
}
|
|
173
259
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: OrderPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
174
260
|
/** @nocollapse */ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: OrderPipe, name: "orderBy", pure: false });
|
|
@@ -180,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
180
266
|
pure: false
|
|
181
267
|
}]
|
|
182
268
|
}] });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2NvbW1vbi9waXBlcy9vcmRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUVwRCxVQUFVO0FBS1YsTUFBTSxPQUFPLFNBQVM7SUFFckI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBVTtRQUN6QixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLFlBQVksTUFBTSxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFNLEVBQUUsQ0FBTTtRQUN4QyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLENBQU0sRUFBRSxDQUFNO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLENBQUM7UUFDVixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsQ0FBQztRQUNWLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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LENBQUM7UUFDbkYsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1gsQ0FBQzswSEFuTVcsU0FBUzt3SEFBVCxTQUFTOzsyRkFBVCxTQUFTO2tCQUpyQixJQUFJO21CQUFDO29CQUNMLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSxLQUFLO2lCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLy9AZHluYW1pY1xyXG5AUGlwZSh7XHJcblx0bmFtZTogJ29yZGVyQnknLFxyXG5cdHB1cmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2sgaWYgYSB2YWx1ZSBpcyBhIHN0cmluZ1xyXG5cdCAqXHJcblx0ICogQHBhcmFtIHZhbHVlXHJcblx0ICovXHJcblx0c3RhdGljIGlzU3RyaW5nKHZhbHVlOiBhbnkpIHtcclxuXHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHZhbHVlIGluc3RhbmNlb2YgU3RyaW5nO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU29ydHMgdmFsdWVzIGlnbm9yaW5nIHRoZSBjYXNlXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gYVxyXG5cdCAqIEBwYXJhbSBiXHJcblx0ICovXHJcblx0c3RhdGljIGNhc2VJbnNlbnNpdGl2ZVNvcnQoYTogYW55LCBiOiBhbnkpIHtcclxuXHRcdGlmIChPcmRlclBpcGUuaXNTdHJpbmcoYSkgJiYgT3JkZXJQaXBlLmlzU3RyaW5nKGIpKSB7XHJcblx0XHRcdHJldHVybiBhLmxvY2FsZUNvbXBhcmUoYik7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gT3JkZXJQaXBlLmRlZmF1bHRDb21wYXJlKGEsIGIpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRGVmYXVsdCBjb21wYXJlIG1ldGhvZFxyXG5cdCAqIFxyXG5cdCAqIEBwYXJhbSBhIFxyXG5cdCAqIEBwYXJhbSBiIFxyXG5cdCAqL1xyXG5cdHN0YXRpYyBkZWZhdWx0Q29tcGFyZShhOiBhbnksIGI6IGFueSkge1xyXG5cdFx0aWYgKGEgPT09IGIpIHtcclxuXHRcdFx0cmV0dXJuIDA7XHJcblx0XHR9XHJcblx0XHRpZiAoYSA9PSBudWxsKSB7XHJcblx0XHRcdHJldHVybiAxO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGIgPT0gbnVsbCkge1xyXG5cdFx0XHRyZXR1cm4gLTE7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gYSA+IGIgPyAxIDogLTE7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBQYXJzZSBleHByZXNzaW9uLCBzcGxpdCBpbnRvIGl0ZW1zXHJcblx0ICogQHBhcmFtIGV4cHJlc3Npb25cclxuXHQgKi9cclxuXHRzdGF0aWMgcGFyc2VFeHByZXNzaW9uKGV4cHJlc3Npb246IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuXHRcdGV4cHJlc3Npb24gPSBleHByZXNzaW9uLnJlcGxhY2UoL1xcWyhcXHcrKVxcXS9nLCAnLiQxJyk7XHJcblx0XHRleHByZXNzaW9uID0gZXhwcmVzc2lvbi5yZXBsYWNlKC9eXFwuLywgJycpO1xyXG5cdFx0cmV0dXJuIGV4cHJlc3Npb24uc3BsaXQoJy4nKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCB2YWx1ZSBieSBleHByZXNzaW9uXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gb2JqZWN0XHJcblx0ICogQHBhcmFtIGV4cHJlc3Npb25cclxuXHQgKi9cclxuXHRzdGF0aWMgZ2V0VmFsdWUob2JqZWN0OiBhbnksIGV4cHJlc3Npb246IHN0cmluZ1tdKSB7XHJcblx0XHRmb3IgKGxldCBpID0gMCwgbiA9IGV4cHJlc3Npb24ubGVuZ3RoOyBpIDwgbjsgKytpKSB7XHJcblx0XHRcdGNvbnN0IGsgPSBleHByZXNzaW9uW2ldO1xyXG5cdFx0XHRpZiAoIShrIGluIG9iamVjdCkpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0b2JqZWN0ID0gb2JqZWN0W2tdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBvYmplY3Q7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTZXQgdmFsdWUgYnkgZXhwcmVzc2lvblxyXG5cdCAqXHJcblx0ICogQHBhcmFtIG9iamVjdFxyXG5cdCAqIEBwYXJhbSB2YWx1ZVxyXG5cdCAqIEBwYXJhbSBleHByZXNzaW9uXHJcblx0ICovXHJcblx0c3RhdGljIHNldFZhbHVlKG9iamVjdDogYW55LCB2YWx1ZTogYW55LCBleHByZXNzaW9uOiBzdHJpbmdbXSkge1xyXG5cdFx0bGV0IGk7XHJcblx0XHRmb3IgKGkgPSAwOyBpIDwgZXhwcmVzc2lvbi5sZW5ndGggLSAxOyBpKyspIHtcclxuXHRcdFx0b2JqZWN0ID0gb2JqZWN0W2V4cHJlc3Npb25baV1dO1xyXG5cdFx0fVxyXG5cclxuXHRcdG9iamVjdFtleHByZXNzaW9uW2ldXSA9IHZhbHVlO1xyXG5cdH1cclxuXHJcblx0dHJhbnNmb3JtKHZhbHVlOiBhbnkgfCBhbnlbXSwgZXhwcmVzc2lvbj86IGFueSwgcmV2ZXJzZT86IGJvb2xlYW4sIGlzQ2FzZUluc2Vuc2l0aXZlOiBib29sZWFuID0gZmFsc2UsIGNvbXBhcmF0b3I/OiBGdW5jdGlvbik6IGFueSB7XHJcblx0XHRpZiAoIXZhbHVlKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoQXJyYXkuaXNBcnJheShleHByZXNzaW9uKSkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5tdWx0aUV4cHJlc3Npb25UcmFuc2Zvcm0odmFsdWUsIGV4cHJlc3Npb24sIHJldmVyc2UgPz8gZmFsc2UsIGlzQ2FzZUluc2Vuc2l0aXZlLCBjb21wYXJhdG9yKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuc29ydEFycmF5KHZhbHVlLnNsaWNlKCksIGV4cHJlc3Npb24sIHJldmVyc2UsIGlzQ2FzZUluc2Vuc2l0aXZlLCBjb21wYXJhdG9yKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy50cmFuc2Zvcm1PYmplY3QoT2JqZWN0LmFzc2lnbih7fSwgdmFsdWUpLCBleHByZXNzaW9uLCByZXZlcnNlLCBpc0Nhc2VJbnNlbnNpdGl2ZSwgY29tcGFyYXRvcik7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHZhbHVlO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU29ydCBhcnJheVxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHZhbHVlXHJcblx0ICogQHBhcmFtIGV4cHJlc3Npb25cclxuXHQgKiBAcGFyYW0gcmV2ZXJzZVxyXG5cdCAqIEBwYXJhbSBpc0Nhc2VJbnNlbnNpdGl2ZVxyXG5cdCAqIEBwYXJhbSBjb21wYXJhdG9yXHJcblx0ICovXHJcblx0cHJpdmF0ZSBzb3J0QXJyYXkodmFsdWU6IGFueVtdLCBleHByZXNzaW9uPzogYW55LCByZXZlcnNlPzogYm9vbGVhbiwgaXNDYXNlSW5zZW5zaXRpdmU/OiBib29sZWFuLCBjb21wYXJhdG9yPzogRnVuY3Rpb24pOiBhbnlbXSB7XHJcblx0XHRjb25zdCBpc0RlZXBMaW5rID0gZXhwcmVzc2lvbiAmJiBleHByZXNzaW9uLmluZGV4T2YoJy4nKSAhPT0gLTE7XHJcblxyXG5cdFx0aWYgKGlzRGVlcExpbmspIHtcclxuXHRcdFx0ZXhwcmVzc2lvbiA9IE9yZGVyUGlwZS5wYXJzZUV4cHJlc3Npb24oZXhwcmVzc2lvbik7XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IGNvbXBhcmVGbjogRnVuY3Rpb247XHJcblxyXG5cdFx0aWYgKGNvbXBhcmF0b3IgJiYgdHlwZW9mIGNvbXBhcmF0b3IgPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0Y29tcGFyZUZuID0gY29tcGFyYXRvcjtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNvbXBhcmVGbiA9IGlzQ2FzZUluc2Vuc2l0aXZlID8gT3JkZXJQaXBlLmNhc2VJbnNlbnNpdGl2ZVNvcnQgOiBPcmRlclBpcGUuZGVmYXVsdENvbXBhcmU7XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IGFycmF5OiBhbnlbXSA9IHZhbHVlLnNvcnQoKGE6IGFueSwgYjogYW55KTogbnVtYmVyID0+IHtcclxuXHRcdFx0aWYgKCFleHByZXNzaW9uKSB7XHJcblx0XHRcdFx0cmV0dXJuIGNvbXBhcmVGbihhLCBiKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKCFpc0RlZXBMaW5rKSB7XHJcblx0XHRcdFx0aWYgKGEgJiYgYikge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGNvbXBhcmVGbihhW2V4cHJlc3Npb25dLCBiW2V4cHJlc3Npb25dKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGNvbXBhcmVGbihhLCBiKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIGNvbXBhcmVGbihPcmRlclBpcGUuZ2V0VmFsdWUoYSwgZXhwcmVzc2lvbiksIE9yZGVyUGlwZS5nZXRWYWx1ZShiLCBleHByZXNzaW9uKSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRpZiAocmV2ZXJzZSkge1xyXG5cdFx0XHRyZXR1cm4gYXJyYXkucmV2ZXJzZSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBhcnJheTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRyYW5zZm9ybSBPYmplY3RcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB2YWx1ZVxyXG5cdCAqIEBwYXJhbSBleHByZXNzaW9uXHJcblx0ICogQHBhcmFtIHJldmVyc2VcclxuXHQgKiBAcGFyYW0gaXNDYXNlSW5zZW5zaXRpdmVcclxuXHQgKiBAcGFyYW0gY29tcGFyYXRvclxyXG5cdCAqL1xyXG5cdHByaXZhdGUgdHJhbnNmb3JtT2JqZWN0KHZhbHVlOiBhbnkgfCBhbnlbXSwgZXhwcmVzc2lvbj86IGFueSwgcmV2ZXJzZT86IGJvb2xlYW4sIGlzQ2FzZUluc2Vuc2l0aXZlPzogYm9vbGVhbiwgY29tcGFyYXRvcj86IEZ1bmN0aW9uKTogYW55IHtcclxuXHJcblx0XHRsZXQgcGFyc2VkRXhwcmVzc2lvbiA9IE9yZGVyUGlwZS5wYXJzZUV4cHJlc3Npb24oZXhwcmVzc2lvbik7XHJcblx0XHRsZXQgbGFzdFByZWRpY2F0ZSA9IHBhcnNlZEV4cHJlc3Npb24ucG9wKCk7XHJcblx0XHRsZXQgb2xkVmFsdWUgPSBPcmRlclBpcGUuZ2V0VmFsdWUodmFsdWUsIHBhcnNlZEV4cHJlc3Npb24pO1xyXG5cclxuXHRcdGlmIChsYXN0UHJlZGljYXRlICYmICFBcnJheS5pc0FycmF5KG9sZFZhbHVlKSkge1xyXG5cdFx0XHRwYXJzZWRFeHByZXNzaW9uLnB1c2gobGFzdFByZWRpY2F0ZSk7XHJcblx0XHRcdGxhc3RQcmVkaWNhdGUgPSB1bmRlZmluZWQ7XHJcblx0XHRcdG9sZFZhbHVlID0gT3JkZXJQaXBlLmdldFZhbHVlKHZhbHVlLCBwYXJzZWRFeHByZXNzaW9uKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIW9sZFZhbHVlKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRPcmRlclBpcGUuc2V0VmFsdWUodmFsdWUsIHRoaXMudHJhbnNmb3JtKG9sZFZhbHVlLCBsYXN0UHJlZGljYXRlLCByZXZlcnNlLCBpc0Nhc2VJbnNlbnNpdGl2ZSksIHBhcnNlZEV4cHJlc3Npb24pO1xyXG5cdFx0cmV0dXJuIHZhbHVlO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQXBwbHkgbXVsdGlwbGUgZXhwcmVzc2lvbnNcclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB2YWx1ZVxyXG5cdCAqIEBwYXJhbSBleHByZXNzaW9uc1xyXG5cdCAqIEBwYXJhbSByZXZlcnNlXHJcblx0ICogQHBhcmFtIGlzQ2FzZUluc2Vuc2l0aXZlXHJcblx0ICogQHBhcmFtIGNvbXBhcmF0b3JcclxuXHQgKi9cclxuXHRwcml2YXRlIG11bHRpRXhwcmVzc2lvblRyYW5zZm9ybSh2YWx1ZTogYW55LCBleHByZXNzaW9uczogYW55W10sIHJldmVyc2U6IGJvb2xlYW4sIGlzQ2FzZUluc2Vuc2l0aXZlOiBib29sZWFuID0gZmFsc2UsIGNvbXBhcmF0b3I/OiBGdW5jdGlvbik6IGFueSB7XHJcblx0XHRyZXR1cm4gZXhwcmVzc2lvbnMucmV2ZXJzZSgpLnJlZHVjZSgocmVzdWx0OiBhbnksIGV4cHJlc3Npb246IGFueSkgPT4ge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy50cmFuc2Zvcm0ocmVzdWx0LCBleHByZXNzaW9uLCByZXZlcnNlLCBpc0Nhc2VJbnNlbnNpdGl2ZSwgY29tcGFyYXRvcik7XHJcblx0XHR9LCB2YWx1ZSk7XHJcblx0fVxyXG59Il19
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2NvbW1vbi9waXBlcy9vcmRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUdwRCxVQUFVO0FBS1YsTUFBTSxPQUFPLFNBQVM7SUFFckI7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQVU7UUFDekIsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxZQUFZLE1BQU0sQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQU0sRUFBRSxDQUFNO1FBQ3hDLGdHQUFnRztRQUNoRyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QscURBQXFEO1FBQ3JELE9BQU8sU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBTSxFQUFFLENBQU07UUFDbkMseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLENBQUM7UUFDVixDQUFDO1FBQ0Qsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLENBQUM7UUFDVixDQUFDO1FBQ0Qsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2YsT0FB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Q2YsT0FBTyxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsNkRBQTZEO1FBQzdELFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM1SCxPQUFPLEtBQUssQ0FBQyxDQUFDLCtCQUErQjtJQUM5QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ssd0JBQXdCLENBQUMsS0FBVSxFQUFFLFdBQWtCLEVBQUUsT0FBZ0IsRUFBRSxvQkFBNkIsS0FBSyxFQUFFLFVBQXFCO1FBQzNJLDJGQUEyRjtRQUMzRixPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFXLEVBQUUsVUFBZSxFQUFFLEVBQUU7WUFDcEUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5RixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyx3Q0FBd0M7SUFDcEQsQ0FBQzswSEE3UlcsU0FBUzt3SEFBVCxTQUFTOzsyRkFBVCxTQUFTO2tCQUpyQixJQUFJO21CQUFDO29CQUNMLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSxLQUFLO2lCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFbnVtTWV0YWRhdGEgfSBmcm9tICcuLi9tb2RlbHMvZW51bS1tZXRhZGF0YSc7XHJcblxyXG4vL0BkeW5hbWljXHJcbkBQaXBlKHtcclxuXHRuYW1lOiAnb3JkZXJCeScsXHJcblx0cHVyZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIE9yZGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuXHQvKipcclxuXHQgKiBDaGVja3MgaWYgYSB2YWx1ZSBpcyBhIHN0cmluZy5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjay5cclxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB2YWx1ZSBpcyBhIHN0cmluZzsgb3RoZXJ3aXNlLCBmYWxzZS5cclxuXHQgKi9cclxuXHRzdGF0aWMgaXNTdHJpbmcodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdmFsdWUgaW5zdGFuY2VvZiBTdHJpbmc7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTb3J0cyB0d28gdmFsdWVzIGluIGEgY2FzZS1pbnNlbnNpdGl2ZSBtYW5uZXIuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gYSAtIFRoZSBmaXJzdCB2YWx1ZSB0byBjb21wYXJlLlxyXG5cdCAqIEBwYXJhbSBiIC0gVGhlIHNlY29uZCB2YWx1ZSB0byBjb21wYXJlLlxyXG5cdCAqIEByZXR1cm5zIEEgbmVnYXRpdmUgbnVtYmVyIGlmIGEgPCBiLCBhIHBvc2l0aXZlIG51bWJlciBpZiBhID4gYiwgYW5kIDAgaWYgdGhleSBhcmUgZXF1YWwuXHJcblx0ICovXHJcblx0c3RhdGljIGNhc2VJbnNlbnNpdGl2ZVNvcnQoYTogYW55LCBiOiBhbnkpOiBudW1iZXIge1xyXG5cdFx0LyogSWYgYm90aCB2YWx1ZXMgYXJlIHN0cmluZ3MsIGNvbXBhcmUgdGhlbSB1c2luZyBsb2NhbGVDb21wYXJlIGZvciBjYXNlLWluc2Vuc2l0aXZlIHNvcnRpbmcuICovXHJcblx0XHRpZiAoT3JkZXJQaXBlLmlzU3RyaW5nKGEpICYmIE9yZGVyUGlwZS5pc1N0cmluZyhiKSkge1xyXG5cdFx0XHRyZXR1cm4gYS5sb2NhbGVDb21wYXJlKGIpO1xyXG5cdFx0fVxyXG5cdFx0LyogT3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgY29tcGFyaXNvbi4gKi9cclxuXHRcdHJldHVybiBPcmRlclBpcGUuZGVmYXVsdENvbXBhcmUoYSwgYik7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBEZWZhdWx0IGNvbXBhcmlzb24gbWV0aG9kIGZvciBzb3J0aW5nIHZhbHVlcy5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSBhIC0gVGhlIGZpcnN0IHZhbHVlIHRvIGNvbXBhcmUuXHJcblx0ICogQHBhcmFtIGIgLSBUaGUgc2Vjb25kIHZhbHVlIHRvIGNvbXBhcmUuXHJcblx0ICogQHJldHVybnMgQSBuZWdhdGl2ZSBudW1iZXIgaWYgYSA8IGIsIGEgcG9zaXRpdmUgbnVtYmVyIGlmIGEgPiBiLCBhbmQgMCBpZiB0aGV5IGFyZSBlcXVhbC5cclxuXHQgKi9cclxuXHRzdGF0aWMgZGVmYXVsdENvbXBhcmUoYTogYW55LCBiOiBhbnkpOiBudW1iZXIge1xyXG5cdFx0LyogSWYgYm90aCB2YWx1ZXMgYXJlIGVxdWFsLCByZXR1cm4gMC4gKi9cclxuXHRcdGlmIChhID09PSBiKSB7XHJcblx0XHRcdHJldHVybiAwO1xyXG5cdFx0fVxyXG5cdFx0LyogSWYgJ2EnIGlzIG51bGwsIGl0IGlzIGNvbnNpZGVyZWQgZ3JlYXRlciB0aGFuICdiJy4gKi9cclxuXHRcdGlmIChhID09IG51bGwpIHtcclxuXHRcdFx0cmV0dXJuIDE7XHJcblx0XHR9XHJcblx0XHQvKiBJZiAnYicgaXMgbnVsbCwgaXQgaXMgY29uc2lkZXJlZCBncmVhdGVyIHRoYW4gJ2EnLiAqL1xyXG5cdFx0aWYgKGIgPT0gbnVsbCkge1xyXG5cdFx0XHRyZXR1cm4gLTE7XHJcblx0XHR9XHJcblx0XHQvKiBDb21wYXJlIHRoZSB0d28gdmFsdWVzLiAqL1xyXG5cdFx0cmV0dXJuIGEgPiBiID8gMSA6IC0xO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUGFyc2VzIGEgZG90LXNlcGFyYXRlZCBleHByZXNzaW9uIHN0cmluZyBpbnRvIGFuIGFycmF5IG9mIHN0cmluZ3MuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gZXhwcmVzc2lvbiAtIFRoZSBleHByZXNzaW9uIHN0cmluZyB0byBwYXJzZS5cclxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUgcGFyc2VkIGV4cHJlc3Npb24uXHJcblx0ICovXHJcblx0c3RhdGljIHBhcnNlRXhwcmVzc2lvbihleHByZXNzaW9uOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcblx0XHQvKiBSZXBsYWNlIGJyYWNrZXQgbm90YXRpb24gd2l0aCBkb3Qgbm90YXRpb24gYW5kIHJlbW92ZSBsZWFkaW5nIGRvdC4gKi9cclxuXHRcdGV4cHJlc3Npb24gPSBleHByZXNzaW9uLnJlcGxhY2UoL1xcWyhcXHcrKVxcXS9nLCAnLiQxJyk7XHJcblx0XHRleHByZXNzaW9uID0gZXhwcmVzc2lvbi5yZXBsYWNlKC9eXFwuLywgJycpO1xyXG5cdFx0cmV0dXJuIGV4cHJlc3Npb24uc3BsaXQoJy4nKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJldHJpZXZlcyBhIHZhbHVlIGZyb20gYW4gb2JqZWN0IGJhc2VkIG9uIGEgcGFyc2VkIGV4cHJlc3Npb24uXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gb2JqZWN0IC0gVGhlIG9iamVjdCB0byByZXRyaWV2ZSB0aGUgdmFsdWUgZnJvbS5cclxuXHQgKiBAcGFyYW0gZXhwcmVzc2lvbiAtIFRoZSBwYXJzZWQgZXhwcmVzc2lvbiBhcyBhbiBhcnJheSBvZiBzdHJpbmdzLlxyXG5cdCAqIEByZXR1cm5zIFRoZSByZXRyaWV2ZWQgdmFsdWUgb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZC5cclxuXHQgKi9cclxuXHRzdGF0aWMgZ2V0VmFsdWUob2JqZWN0OiBhbnksIGV4cHJlc3Npb246IHN0cmluZ1tdKTogYW55IHtcclxuXHRcdGZvciAobGV0IGkgPSAwLCBuID0gZXhwcmVzc2lvbi5sZW5ndGg7IGkgPCBuOyArK2kpIHtcclxuXHRcdFx0Y29uc3QgayA9IGV4cHJlc3Npb25baV07XHJcblx0XHRcdC8qIElmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG9iamVjdCwgcmV0dXJuIHVuZGVmaW5lZC4gKi9cclxuXHRcdFx0aWYgKCEoayBpbiBvYmplY3QpKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8qIE1vdmUgdG8gdGhlIG5leHQgbGV2ZWwgaW4gdGhlIG9iamVjdC4gKi9cclxuXHRcdFx0b2JqZWN0ID0gb2JqZWN0W2tdO1xyXG5cdFx0fVxyXG5cdFx0LyogUmV0dXJuIHRoZSBmaW5hbCB2YWx1ZS4gKi9cclxuXHRcdHJldHVybiBvYmplY3Q7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTZXRzIGEgdmFsdWUgaW4gYW4gb2JqZWN0IGJhc2VkIG9uIGEgcGFyc2VkIGV4cHJlc3Npb24uXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gb2JqZWN0IC0gVGhlIG9iamVjdCB0byBtb2RpZnkuXHJcblx0ICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHNldC5cclxuXHQgKiBAcGFyYW0gZXhwcmVzc2lvbiAtIFRoZSBwYXJzZWQgZXhwcmVzc2lvbiBhcyBhbiBhcnJheSBvZiBzdHJpbmdzLlxyXG5cdCAqL1xyXG5cdHN0YXRpYyBzZXRWYWx1ZShvYmplY3Q6IGFueSwgdmFsdWU6IGFueSwgZXhwcmVzc2lvbjogc3RyaW5nW10pOiB2b2lkIHtcclxuXHRcdGxldCBpO1xyXG5cdFx0Zm9yIChpID0gMDsgaSA8IGV4cHJlc3Npb24ubGVuZ3RoIC0gMTsgaSsrKSB7XHJcblx0XHRcdC8qIFRyYXZlcnNlIHRoZSBvYmplY3QgdG8gdGhlIHNlY29uZC10by1sYXN0IHByb3BlcnR5LiAqL1xyXG5cdFx0XHRvYmplY3QgPSBvYmplY3RbZXhwcmVzc2lvbltpXV07XHJcblx0XHR9XHJcblx0XHQvKiBTZXQgdGhlIHZhbHVlIGF0IHRoZSBsYXN0IHByb3BlcnR5LiAqL1xyXG5cdFx0b2JqZWN0W2V4cHJlc3Npb25baV1dID0gdmFsdWU7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBUcmFuc2Zvcm1zIHRoZSBpbnB1dCB2YWx1ZSBieSBzb3J0aW5nIGl0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBleHByZXNzaW9uIGFuZCBtZXRhZGF0YS5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB0cmFuc2Zvcm0sIHdoaWNoIGNhbiBiZSBhbiBhcnJheSBvciBhIHNpbmdsZSBvYmplY3QuXHJcblx0ICogQHBhcmFtIGV4cHJlc3Npb24gLSBUaGUgZXhwcmVzc2lvbiB0byBzb3J0IGJ5LCBjYW4gYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cclxuXHQgKiBAcGFyYW0gbWV0YWRhdGEgLSBBbiBvcHRpb25hbCBtZXRhZGF0YSBvYmplY3QgZm9yIHNvcnRpbmcuXHJcblx0ICogQHBhcmFtIHJldmVyc2UgLSBJbmRpY2F0ZXMgaWYgdGhlIHNvcnRpbmcgc2hvdWxkIGJlIGluIHJldmVyc2Ugb3JkZXIuXHJcblx0ICogQHBhcmFtIGlzQ2FzZUluc2Vuc2l0aXZlIC0gSW5kaWNhdGVzIGlmIHRoZSBzb3J0aW5nIHNob3VsZCBiZSBjYXNlIGluc2Vuc2l0aXZlLlxyXG5cdCAqIEBwYXJhbSBjb21wYXJhdG9yIC0gQW4gb3B0aW9uYWwgY3VzdG9tIGNvbXBhcmF0b3IgZnVuY3Rpb24uXHJcblx0ICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVkIChzb3J0ZWQpIHZhbHVlLlxyXG5cdCAqL1xyXG5cdHRyYW5zZm9ybSh2YWx1ZTogYW55IHwgYW55W10sIGV4cHJlc3Npb24/OiBhbnksIG1ldGFkYXRhPzogeyBba2V5OiBudW1iZXJdOiBFbnVtTWV0YWRhdGEgfSwgcmV2ZXJzZT86IGJvb2xlYW4sIGlzQ2FzZUluc2Vuc2l0aXZlOiBib29sZWFuID0gZmFsc2UsIGNvbXBhcmF0b3I/OiBGdW5jdGlvbik6IGFueSB7XHJcblx0XHQvKiBJZiB0aGUgdmFsdWUgaXMgbnVsbCBvciB1bmRlZmluZWQsIHJldHVybiBpdCBhcyBpcy4gKi9cclxuXHRcdGlmICghdmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuIHZhbHVlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIENoZWNrIGlmIHdlIHNob3VsZCBzb3J0IGJ5IG1ldGFkYXRhLiAqL1xyXG5cdFx0aWYgKG1ldGFkYXRhKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnNvcnRCeU1ldGFkYXRhKHZhbHVlLCBleHByZXNzaW9uLCByZXZlcnNlID8/IGZhbHNlLCBtZXRhZGF0YSk7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogSWYgZXhwcmVzc2lvbiBpcyBhbiBhcnJheSwgaGFuZGxlIG11bHRpcGxlIGV4cHJlc3Npb25zLiAqL1xyXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkoZXhwcmVzc2lvbikpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMubXVsdGlFeHByZXNzaW9uVHJhbnNmb3JtKHZhbHVlLCBleHByZXNzaW9uLCByZXZlcnNlID8/IGZhbHNlLCBpc0Nhc2VJbnNlbnNpdGl2ZSwgY29tcGFyYXRvcik7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogSWYgdmFsdWUgaXMgYW4gYXJyYXksIHNvcnQgaXQgdXNpbmcgdGhlIHByb3ZpZGVkIGV4cHJlc3Npb24uICovXHJcblx0XHRpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuc29ydEFycmF5KHZhbHVlLnNsaWNlKCksIGV4cHJlc3Npb24sIHJldmVyc2UsIGlzQ2FzZUluc2Vuc2l0aXZlLCBjb21wYXJhdG9yKTtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBJZiB2YWx1ZSBpcyBhbiBvYmplY3QsIHRyYW5zZm9ybSBpdCBhY2NvcmRpbmdseS4gKi9cclxuXHRcdGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnRyYW5zZm9ybU9iamVjdChPYmplY3QuYXNzaWduKHt9LCB2YWx1ZSksIGV4cHJlc3Npb24sIHJldmVyc2UsIGlzQ2FzZUluc2Vuc2l0aXZlLCBjb21wYXJhdG9yKTtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBJZiB2YWx1ZSBpcyBub3QgYW4gYXJyYXkgb3Igb2JqZWN0LCByZXR1cm4gaXQgdW5jaGFuZ2VkLiAqL1xyXG5cdFx0cmV0dXJuIHZhbHVlO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU29ydHMgYW4gYXJyYXkgYmFzZWQgb24gbWV0YWRhdGEgZm9yIGVudW0gdmFsdWVzLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHZhbHVlIC0gVGhlIGFycmF5IHRvIHNvcnQuXHJcblx0ICogQHBhcmFtIGV4cHJlc3Npb24gLSBUaGUgZXhwcmVzc2lvbiB0byBzb3J0IGJ5LlxyXG5cdCAqIEBwYXJhbSByZXZlcnNlIC0gSW5kaWNhdGVzIGlmIHRoZSBzb3J0aW5nIHNob3VsZCBiZSBpbiByZXZlcnNlIG9yZGVyLlxyXG5cdCAqIEBwYXJhbSBtZXRhZGF0YSAtIFRoZSBtZXRhZGF0YSBmb3IgZW51bSBzb3J0aW5nLlxyXG5cdCAqIEByZXR1cm5zIFRoZSBzb3J0ZWQgYXJyYXkuXHJcblx0ICovXHJcblx0cHJpdmF0ZSBzb3J0QnlNZXRhZGF0YSh2YWx1ZTogYW55W10sIGV4cHJlc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZCwgcmV2ZXJzZTogYm9vbGVhbiwgbWV0YWRhdGE6IHsgW2tleTogbnVtYmVyXTogRW51bU1ldGFkYXRhIH0pOiBhbnlbXSB7XHJcblx0XHQvKiBDb21wYXJpc29uIGZ1bmN0aW9uIGZvciBzb3J0aW5nIGJ5IG1ldGFkYXRhIG9yZGVyLiAqL1xyXG5cdFx0Y29uc3QgY29tcGFyZUZuID0gKGE6IGFueSwgYjogYW55KTogbnVtYmVyID0+IHtcclxuXHRcdFx0Y29uc3QgdmFsdWVBID0gZXhwcmVzc2lvbiA/IE9yZGVyUGlwZS5nZXRWYWx1ZShhLCBPcmRlclBpcGUucGFyc2VFeHByZXNzaW9uKGV4cHJlc3Npb24pKSA6IGE7XHJcblx0XHRcdGNvbnN0IHZhbHVlQiA9IGV4cHJlc3Npb24gPyBPcmRlclBpcGUuZ2V0VmFsdWUoYiwgT3JkZXJQaXBlLnBhcnNlRXhwcmVzc2lvbihleHByZXNzaW9uKSkgOiBiO1xyXG5cclxuXHRcdFx0LyogUmV0cmlldmUgdGhlIG9yZGVyIHZhbHVlcyBmcm9tIG1ldGFkYXRhLCBkZWZhdWx0aW5nIHRvIEluZmluaXR5IGlmIG5vdCBmb3VuZC4gKi9cclxuXHRcdFx0Y29uc3Qgb3JkZXJBID0gbWV0YWRhdGFbdmFsdWVBXT8ub3JkZXIgPz8gSW5maW5pdHk7XHJcblx0XHRcdGNvbnN0IG9yZGVyQiA9IG1ldGFkYXRhW3ZhbHVlQl0/Lm9yZGVyID8/IEluZmluaXR5O1xyXG5cclxuXHRcdFx0cmV0dXJuIG9yZGVyQSAtIG9yZGVyQjtcclxuXHRcdH07XHJcblxyXG5cdFx0LyogU29ydCB0aGUgYXJyYXkgYW5kIGhhbmRsZSByZXZlcnNlIG9yZGVyLiAqL1xyXG5cdFx0Y29uc3Qgc29ydGVkQXJyYXkgPSB2YWx1ZS5zbGljZSgpLnNvcnQoY29tcGFyZUZuKTtcclxuXHRcdHJldHVybiByZXZlcnNlID8gc29ydGVkQXJyYXkucmV2ZXJzZSgpIDogc29ydGVkQXJyYXk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTb3J0cyBhbiBhcnJheSBiYXNlZCBvbiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbi5cclxuXHQgKlxyXG5cdCAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBhcnJheSB0byBzb3J0LlxyXG5cdCAqIEBwYXJhbSBleHByZXNzaW9uIC0gVGhlIGV4cHJlc3Npb24gdG8gc29ydCBieS5cclxuXHQgKiBAcGFyYW0gcmV2ZXJzZSAtIEluZGljYXRlcyBpZiB0aGUgc29ydGluZyBzaG91bGQgYmUgaW4gcmV2ZXJzZSBvcmRlci5cclxuXHQgKiBAcGFyYW0gaXNDYXNlSW5zZW5zaXRpdmUgLSBJbmRpY2F0ZXMgaWYgdGhlIHNvcnRpbmcgc2hvdWxkIGJlIGNhc2UgaW5zZW5zaXRpdmUuXHJcblx0ICogQHBhcmFtIGNvbXBhcmF0b3IgLSBBbiBvcHRpb25hbCBjdXN0b20gY29tcGFyYXRvciBmdW5jdGlvbi5cclxuXHQgKiBAcmV0dXJucyBUaGUgc29ydGVkIGFycmF5LlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgc29ydEFycmF5KHZhbHVlOiBhbnlbXSwgZXhwcmVzc2lvbj86IGFueSwgcmV2ZXJzZT86IGJvb2xlYW4sIGlzQ2FzZUluc2Vuc2l0aXZlPzogYm9vbGVhbiwgY29tcGFyYXRvcj86IEZ1bmN0aW9uKTogYW55W10ge1xyXG5cdFx0LyogRGV0ZXJtaW5lIGlmIHRoZSBleHByZXNzaW9uIGlzIGEgZGVlcCBsaW5rLiAqL1xyXG5cdFx0Y29uc3QgaXNEZWVwTGluayA9IGV4cHJlc3Npb24gJiYgZXhwcmVzc2lvbi5pbmRleE9mKCcuJykgIT09IC0xO1xyXG5cclxuXHRcdC8qIFBhcnNlIHRoZSBleHByZXNzaW9uIGlmIGl0J3MgYSBkZWVwIGxpbmsuICovXHJcblx0XHRpZiAoaXNEZWVwTGluaykge1xyXG5cdFx0XHRleHByZXNzaW9uID0gT3JkZXJQaXBlLnBhcnNlRXhwcmVzc2lvbihleHByZXNzaW9uKTtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBEZXRlcm1pbmUgdGhlIGNvbXBhcmlzb24gZnVuY3Rpb24uICovXHJcblx0XHRsZXQgY29tcGFyZUZuOiBGdW5jdGlvbjtcclxuXHJcblx0XHRpZiAoY29tcGFyYXRvciAmJiB0eXBlb2YgY29tcGFyYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRjb21wYXJlRm4gPSBjb21wYXJhdG9yO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y29tcGFyZUZuID0gaXNDYXNlSW5zZW5zaXRpdmUgPyBPcmRlclBpcGUuY2FzZUluc2Vuc2l0aXZlU29ydCA6IE9yZGVyUGlwZS5kZWZhdWx0Q29tcGFyZTtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBTb3J0IHRoZSBhcnJheSB1c2luZyB0aGUgZGV0ZXJtaW5lZCBjb21wYXJpc29uIGZ1bmN0aW9uLiAqL1xyXG5cdFx0bGV0IGFycmF5OiBhbnlbXSA9IHZhbHVlLnNvcnQoKGE6IGFueSwgYjogYW55KTogbnVtYmVyID0+IHtcclxuXHRcdFx0aWYgKCFleHByZXNzaW9uKSB7XHJcblx0XHRcdFx0cmV0dXJuIGNvbXBhcmVGbihhLCBiKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKCFpc0RlZXBMaW5rKSB7XHJcblx0XHRcdFx0LyogSWYgbm90IGEgZGVlcCBsaW5rLCBjb21wYXJlIHRoZSBzcGVjaWZpZWQgcHJvcGVydGllcyBkaXJlY3RseS4gKi9cclxuXHRcdFx0XHRpZiAoYSAmJiBiKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gY29tcGFyZUZuKGFbZXhwcmVzc2lvbl0sIGJbZXhwcmVzc2lvbl0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvKiBGYWxsIGJhY2sgdG8gZGlyZWN0IGNvbXBhcmlzb24uICovXHJcblx0XHRcdFx0cmV0dXJuIGNvbXBhcmVGbihhLCBiKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LyogRm9yIGRlZXAgbGlua3MsIGdldCB0aGUgdmFsdWVzIGZyb20gdGhlIHBhcnNlZCBleHByZXNzaW9uLiAqL1xyXG5cdFx0XHRyZXR1cm4gY29tcGFyZUZuKE9yZGVyUGlwZS5nZXRWYWx1ZShhLCBleHByZXNzaW9uKSwgT3JkZXJQaXBlLmdldFZhbHVlKGIsIGV4cHJlc3Npb24pKTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdC8qIEhhbmRsZSByZXZlcnNlIHNvcnRpbmcgaWYgc3BlY2lmaWVkLiAqL1xyXG5cdFx0aWYgKHJldmVyc2UpIHtcclxuXHRcdFx0cmV0dXJuIGFycmF5LnJldmVyc2UoKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gYXJyYXk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBUcmFuc2Zvcm1zIGFuIG9iamVjdCBiYXNlZCBvbiBhIHNwZWNpZmllZCBleHByZXNzaW9uLlxyXG5cdCAqXHJcblx0ICogVGhpcyBtZXRob2QgcmV0cmlldmVzIGEgdmFsdWUgZnJvbSB0aGUgZ2l2ZW4gb2JqZWN0IGFjY29yZGluZyB0byB0aGUgcGFyc2VkIGV4cHJlc3Npb24sXHJcblx0ICogYXBwbGllcyB0aGUgdHJhbnNmb3JtYXRpb24gdG8gdGhhdCB2YWx1ZSwgYW5kIHRoZW4gc2V0cyB0aGUgdHJhbnNmb3JtZWQgdmFsdWUgYmFjayBpbnRvIHRoZSBvYmplY3QuXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIG9iamVjdCB0byB0cmFuc2Zvcm0uXHJcblx0ICogQHBhcmFtIGV4cHJlc3Npb24gVGhlIGV4cHJlc3Npb24gdXNlZCB0byBpZGVudGlmeSB0aGUgcHJvcGVydHkgdG8gdHJhbnNmb3JtLlxyXG5cdCAqIEBwYXJhbSByZXZlcnNlIE9wdGlvbmFsLiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdHJhbnNmb3JtYXRpb24gc2hvdWxkIGJlIGFwcGxpZWQgaW4gcmV2ZXJzZSBvcmRlci5cclxuXHQgKiBAcGFyYW0gaXNDYXNlSW5zZW5zaXRpdmUgT3B0aW9uYWwuIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0cmFuc2Zvcm1hdGlvbiBzaG91bGQgaWdub3JlIGNhc2UuXHJcblx0ICogQHBhcmFtIGNvbXBhcmF0b3IgT3B0aW9uYWwuIEEgY3VzdG9tIGNvbXBhcmF0b3IgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3Igc29ydGluZy5cclxuXHQgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZWQgb2JqZWN0IHdpdGggdGhlIHVwZGF0ZWQgdmFsdWUuXHJcblx0ICovXHJcblx0cHJpdmF0ZSB0cmFuc2Zvcm1PYmplY3QodmFsdWU6IGFueSB8IGFueVtdLCBleHByZXNzaW9uPzogYW55LCByZXZlcnNlPzogYm9vbGVhbiwgaXNDYXNlSW5zZW5zaXRpdmU/OiBib29sZWFuLCBjb21wYXJhdG9yPzogRnVuY3Rpb24pOiBhbnkge1xyXG5cdFx0LyogUGFyc2UgdGhlIGV4cHJlc3Npb24gaW50byBhbiBhcnJheSBvZiBrZXlzICovXHJcblx0XHRsZXQgcGFyc2VkRXhwcmVzc2lvbiA9IE9yZGVyUGlwZS5wYXJzZUV4cHJlc3Npb24oZXhwcmVzc2lvbik7XHJcblxyXG5cdFx0LyogUmV0cmlldmUgdGhlIGxhc3QgcHJlZGljYXRlIGZyb20gdGhlIHBhcnNlZCBleHByZXNzaW9uIGZvciBmdXJ0aGVyIHByb2Nlc3NpbmcgKi9cclxuXHRcdGxldCBsYXN0UHJlZGljYXRlID0gcGFyc2VkRXhwcmVzc2lvbi5wb3AoKTtcclxuXHJcblx0XHQvKiBHZXQgdGhlIGN1cnJlbnQgdmFsdWUgZnJvbSB0aGUgb2JqZWN0IHVzaW5nIHRoZSBwYXJzZWQgZXhwcmVzc2lvbiAqL1xyXG5cdFx0bGV0IG9sZFZhbHVlID0gT3JkZXJQaXBlLmdldFZhbHVlKHZhbHVlLCBwYXJzZWRFeHByZXNzaW9uKTtcclxuXHJcblx0XHQvKiBJZiB0aGVyZSdzIGEgbGFzdCBwcmVkaWNhdGUgYW5kIHRoZSBvbGQgdmFsdWUgaXMgbm90IGFuIGFycmF5LCBcclxuXHRcdCAgIHB1c2ggdGhlIHByZWRpY2F0ZSBiYWNrIGludG8gdGhlIHBhcnNlZCBleHByZXNzaW9uIGZvciBmdXR1cmUgdXNlICovXHJcblx0XHRpZiAobGFzdFByZWRpY2F0ZSAmJiAhQXJyYXkuaXNBcnJheShvbGRWYWx1ZSkpIHtcclxuXHRcdFx0cGFyc2VkRXhwcmVzc2lvbi5wdXNoKGxhc3RQcmVkaWNhdGUpO1xyXG5cdFx0XHRsYXN0UHJlZGljYXRlID0gdW5kZWZpbmVkO1xyXG5cdFx0XHRvbGRWYWx1ZSA9IE9yZGVyUGlwZS5nZXRWYWx1ZSh2YWx1ZSwgcGFyc2VkRXhwcmVzc2lvbik7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogSWYgbm8gb2xkIHZhbHVlIGlzIGZvdW5kLCByZXR1cm4gdGhlIG9yaWdpbmFsIG9iamVjdCAqL1xyXG5cdFx0aWYgKCFvbGRWYWx1ZSkge1xyXG5cdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogU2V0IHRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSBiYWNrIGludG8gdGhlIG9yaWdpbmFsIG9iamVjdCAqL1xyXG5cdFx0T3JkZXJQaXBlLnNldFZhbHVlKHZhbHVlLCB0aGlzLnRyYW5zZm9ybShvbGRWYWx1ZSwgbGFzdFByZWRpY2F0ZSwgdW5kZWZpbmVkLCByZXZlcnNlLCBpc0Nhc2VJbnNlbnNpdGl2ZSksIHBhcnNlZEV4cHJlc3Npb24pO1xyXG5cdFx0cmV0dXJuIHZhbHVlOyAvKiBSZXR1cm4gdGhlIHVwZGF0ZWQgb2JqZWN0ICovXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBBcHBsaWVzIG11bHRpcGxlIGV4cHJlc3Npb25zIGluIHNlcXVlbmNlIHRvIHRyYW5zZm9ybSBhIHZhbHVlLlxyXG5cdCAqXHJcblx0ICogVGhpcyBtZXRob2QgaXRlcmF0ZXMgb3ZlciBhbiBhcnJheSBvZiBleHByZXNzaW9ucywgYXBwbHlpbmcgZWFjaCBvbmUgaW4gcmV2ZXJzZSBvcmRlclxyXG5cdCAqIHRvIHRoZSBnaXZlbiB2YWx1ZS4gVGhlIHJlc3VsdCBvZiBlYWNoIHRyYW5zZm9ybWF0aW9uIGlzIHBhc3NlZCBhcyBpbnB1dCB0byB0aGUgbmV4dCBleHByZXNzaW9uLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIHZhbHVlIFRoZSBpbml0aWFsIHZhbHVlIHRvIHRyYW5zZm9ybS5cclxuXHQgKiBAcGFyYW0gZXhwcmVzc2lvbnMgQW4gYXJyYXkgb2YgZXhwcmVzc2lvbnMgdG8gYXBwbHkgaW4gcmV2ZXJzZSBvcmRlci5cclxuXHQgKiBAcGFyYW0gcmV2ZXJzZSBPcHRpb25hbC4gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRyYW5zZm9ybWF0aW9ucyBzaG91bGQgYmUgYXBwbGllZCBpbiByZXZlcnNlIG9yZGVyLlxyXG5cdCAqIEBwYXJhbSBpc0Nhc2VJbnNlbnNpdGl2ZSBPcHRpb25hbC4gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRyYW5zZm9ybWF0aW9ucyBzaG91bGQgaWdub3JlIGNhc2UuXHJcblx0ICogQHBhcmFtIGNvbXBhcmF0b3IgT3B0aW9uYWwuIEEgY3VzdG9tIGNvbXBhcmF0b3IgZnVuY3Rpb24gdG8gYmUgdXNlZCBmb3Igc29ydGluZy5cclxuXHQgKiBAcmV0dXJucyBUaGUgZmluYWwgdHJhbnNmb3JtZWQgdmFsdWUgYWZ0ZXIgYXBwbHlpbmcgYWxsIGV4cHJlc3Npb25zLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgbXVsdGlFeHByZXNzaW9uVHJhbnNmb3JtKHZhbHVlOiBhbnksIGV4cHJlc3Npb25zOiBhbnlbXSwgcmV2ZXJzZTogYm9vbGVhbiwgaXNDYXNlSW5zZW5zaXRpdmU6IGJvb2xlYW4gPSBmYWxzZSwgY29tcGFyYXRvcj86IEZ1bmN0aW9uKTogYW55IHtcclxuXHRcdC8qIEFwcGx5IGVhY2ggZXhwcmVzc2lvbiBpbiByZXZlcnNlIG9yZGVyLCBwYXNzaW5nIHRoZSByZXN1bHQgdG8gdGhlIG5leHQgdHJhbnNmb3JtYXRpb24gKi9cclxuXHRcdHJldHVybiBleHByZXNzaW9ucy5yZXZlcnNlKCkucmVkdWNlKChyZXN1bHQ6IGFueSwgZXhwcmVzc2lvbjogYW55KSA9PiB7XHJcblx0XHRcdHJldHVybiB0aGlzLnRyYW5zZm9ybShyZXN1bHQsIGV4cHJlc3Npb24sIHVuZGVmaW5lZCwgcmV2ZXJzZSwgaXNDYXNlSW5zZW5zaXRpdmUsIGNvbXBhcmF0b3IpO1xyXG5cdFx0fSwgdmFsdWUpOyAvKiBSZXR1cm4gdGhlIGZpbmFsIHRyYW5zZm9ybWVkIHZhbHVlICovXHJcblx0fVxyXG59XHJcbiJdfQ==
|