@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.
@@ -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], exports: [DataSourcePipe,
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
- * @param value
7
- * @param enumType
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, prefix = '', suffix = '') {
10
- return `${prefix}${enumType[value]}${suffix}`;
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvY29tbW9uL3BpcGVzL2VudW0ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLFFBQVE7SUFFcEI7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxLQUFhLEVBQUUsUUFBYSxFQUFFLFNBQWlCLEVBQUUsRUFBRSxTQUFpQixFQUFFO1FBQy9FLE9BQU8sR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQy9DLENBQUM7MEhBVFcsUUFBUTt3SEFBUixRQUFROzsyRkFBUixRQUFRO2tCQUxwQixJQUFJO21CQUFDO29CQUNMLElBQUksRUFBRSxNQUFNO29CQUNaLCtEQUErRDtvQkFDL0QsSUFBSSxFQUFFLEtBQUs7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBQaXBlKHtcclxuXHRuYW1lOiAnZW51bScsXHJcblx0LyogUmVxdWlyZWQgdG8gdXBkYXRlIHRoZSB2YWx1ZSB3aGVuIHRoZSBwcm9taXNlIGlzIHJlc29sdmVkICovXHJcblx0cHVyZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEVudW1QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnZlcnRzIGVudW0gdmFsdWUgdG8gc3RyaW5nXHJcblx0ICogQHBhcmFtIHZhbHVlIFxyXG5cdCAqIEBwYXJhbSBlbnVtVHlwZSBcclxuXHQgKi9cclxuXHR0cmFuc2Zvcm0odmFsdWU6IG51bWJlciwgZW51bVR5cGU6IGFueSwgcHJlZml4OiBzdHJpbmcgPSAnJywgc3VmZml4OiBzdHJpbmcgPSAnJyk6IGFueSB7XHJcblx0XHRyZXR1cm4gYCR7cHJlZml4fSR7ZW51bVR5cGVbdmFsdWVdfSR7c3VmZml4fWA7XHJcblx0fVxyXG59Il19
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
- * Check if a value is a string
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 ignoring the case
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 compare method
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
- * Parse expression, split into items
45
- * @param expression
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
- * Get value by expression
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
- * Set value by expression
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
- transform(value, expression, reverse, isCaseInsensitive = false, comparator) {
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
- * Sort array
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
- * Transform Object
206
+ * Transforms an object based on a specified expression.
137
207
  *
138
- * @param value
139
- * @param expression
140
- * @param reverse
141
- * @param isCaseInsensitive
142
- * @param comparator
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
- OrderPipe.setValue(value, this.transform(oldValue, lastPredicate, reverse, isCaseInsensitive), parsedExpression);
157
- return value;
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
- * Apply multiple expressions
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==