@fundamental-ngx/platform 0.57.4-rc.8 → 0.57.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +4 -4
  2. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-platform-button.mjs +1 -1
  4. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +1 -1
  6. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-platform-form.mjs +9 -18
  8. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +9 -9
  10. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-platform-list.mjs +7 -7
  12. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +1 -1
  14. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +2 -2
  16. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +4 -4
  18. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  20. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +3 -3
  21. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  22. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +1 -1
  23. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  24. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +1 -1
  25. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  26. package/fesm2022/fundamental-ngx-platform-table.mjs +45 -20
  27. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  28. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +3 -3
  29. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  30. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +2 -2
  31. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  32. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +2 -2
  33. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  34. package/package.json +8 -8
  35. package/schematics/ng-add/index.js +1 -1
  36. package/shared/index.d.ts +1 -1
  37. package/table/index.d.ts +9 -1
  38. package/table-helpers/index.d.ts +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-platform-shared.mjs","sources":["../tmp-esm2022/shared/base.js","../tmp-esm2022/shared/platform.config.js","../tmp-esm2022/shared/utils/lang.js","../tmp-esm2022/shared/domain/data-source.js","../tmp-esm2022/shared/domain/base-data-provider.js","../tmp-esm2022/shared/domain/array-data-source.js","../tmp-esm2022/shared/domain/data-model.js","../tmp-esm2022/shared/domain/observable-data-source.js","../tmp-esm2022/shared/form/base.input.js","../tmp-esm2022/shared/form/collection-base.input.js","../tmp-esm2022/shared/form/form-field.js","../tmp-esm2022/shared/form/form-options.js","../tmp-esm2022/shared/form/inline-layout-collection-base.input.js","../tmp-esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.js","../tmp-esm2022/shared/pipes/pipe.module.js","../tmp-esm2022/shared/testing/event-objects.js","../tmp-esm2022/shared/preset-management/preset-management.token.js","../tmp-esm2022/shared/fundamental-ngx-platform-shared.js"],"sourcesContent":["import { ChangeDetectorRef, Directive, Input, inject } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nlet randomId = 0;\n/**\n * This class contains common properties used across components.\n * this can be extended to reduce the code duplication across components.\n * @hidden for form related Base , see BaseInput.\n */\nexport class BaseComponent {\n constructor() {\n /** id for the Element */\n this.id = `fdp-id-${randomId++}`;\n /** @hidden */\n this._disabled = false;\n /** @hidden */\n this._subscriptions = new Subscription();\n /**\n * @hidden\n * Change detector ref.\n */\n this._cdr = inject(ChangeDetectorRef);\n }\n /**\n * @deprecated\n * Use `ariaLabelledBy` instead.\n */\n set ariaLabelledby(value) {\n this.ariaDescribedBy = value;\n }\n /** disabled status of the element */\n set disabled(disabled) {\n this._disabled = disabled;\n }\n get disabled() {\n return this._disabled;\n }\n /** @hidden */\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n /**\n * @hidden\n * For internal usage only\n *\n * Since all components use OnPush strategy in the fundamental lib\n * it's tricky to update a child input directly from a parent component class\n *\n */\n markForCheck() {\n this._cdr.markForCheck();\n }\n /**\n * @hidden\n * For internal usage only\n *\n * Since all components use OnPush strategy in the fundamental lib\n * it's tricky to update a child input directly from a parent component class\n *\n */\n detectChanges() {\n this._cdr.detectChanges();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: BaseComponent, isStandalone: true, inputs: { ariaLabel: \"ariaLabel\", ariaLabelledBy: \"ariaLabelledBy\", ariaLabelledby: \"ariaLabelledby\", ariaDescribedBy: \"ariaDescribedBy\", id: \"id\", name: \"name\", width: \"width\", disabled: \"disabled\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseComponent, decorators: [{\n type: Directive\n }], propDecorators: { ariaLabel: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabelledby: [{\n type: Input\n }], ariaDescribedBy: [{\n type: Input\n }], id: [{\n type: Input\n }], name: [{\n type: Input\n }], width: [{\n type: Input\n }], disabled: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSXBDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVqQjs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQixhQUFhO0lBRG5DO1FBdUJJLHlCQUF5QjtRQUV6QixPQUFFLEdBQUcsVUFBVSxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBbUI1QixjQUFjO1FBQ0osY0FBUyxHQUFHLEtBQUssQ0FBQztRQUU1QixjQUFjO1FBQ0osbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlDOzs7V0FHRztRQUNnQixTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0E4QnZEO0lBMUVHOzs7T0FHRztJQUNILElBQ0ksY0FBYyxDQUFDLEtBQXVCO1FBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFrQkQscUNBQXFDO0lBQ3JDLElBQ0ksUUFBUSxDQUFDLFFBQWlCO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQWNELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFlBQVk7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsYUFBYTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0FsRmlCLGFBQWE7a0dBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEbEMsU0FBUzs4QkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLO2dCQVFGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLEVBQUU7c0JBREQsS0FBSztnQkFLTixJQUFJO3NCQURILEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtGLFFBQVE7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5sZXQgcmFuZG9tSWQgPSAwO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgY29udGFpbnMgY29tbW9uIHByb3BlcnRpZXMgdXNlZCBhY3Jvc3MgY29tcG9uZW50cy5cbiAqIHRoaXMgY2FuIGJlIGV4dGVuZGVkIHRvIHJlZHVjZSB0aGUgY29kZSBkdXBsaWNhdGlvbiBhY3Jvc3MgY29tcG9uZW50cy5cbiAqIEBoaWRkZW4gZm9yIGZvcm0gcmVsYXRlZCBCYXNlICwgc2VlIEJhc2VJbnB1dC5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2V0cyB0aGUgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIFVzZSBgYXJpYUxhYmVsbGVkQnlgIGluc3RlYWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYXJpYUxhYmVsbGVkYnkodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy5hcmlhRGVzY3JpYmVkQnkgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogU2V0cyB0aGUgYGFyaWEtZGVzY3JpYmVkYnlgIGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFEZXNjcmliZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBpZCBmb3IgdGhlIEVsZW1lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGlkID0gYGZkcC1pZC0ke3JhbmRvbUlkKyt9YDtcblxuICAgIC8qKiBuYW1lIGZvciB0aGUgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIHdpZHRoIG9mIHRoZSBlbGVtZW50ICovXG4gICAgQElucHV0KClcbiAgICB3aWR0aDogc3RyaW5nO1xuXG4gICAgLyoqIGRpc2FibGVkIHN0YXR1cyBvZiB0aGUgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgfVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2hhbmdlIGRldGVjdG9yIHJlZi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XG4gICAgICpcbiAgICAgKiBTaW5jZSBhbGwgY29tcG9uZW50cyB1c2UgT25QdXNoIHN0cmF0ZWd5IGluIHRoZSBmdW5kYW1lbnRhbCBsaWJcbiAgICAgKiBpdCdzIHRyaWNreSB0byB1cGRhdGUgYSBjaGlsZCBpbnB1dCBkaXJlY3RseSBmcm9tIGEgcGFyZW50IGNvbXBvbmVudCBjbGFzc1xuICAgICAqXG4gICAgICovXG4gICAgbWFya0ZvckNoZWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XG4gICAgICpcbiAgICAgKiBTaW5jZSBhbGwgY29tcG9uZW50cyB1c2UgT25QdXNoIHN0cmF0ZWd5IGluIHRoZSBmdW5kYW1lbnRhbCBsaWJcbiAgICAgKiBpdCdzIHRyaWNreSB0byB1cGRhdGUgYSBjaGlsZCBpbnB1dCBkaXJlY3RseSBmcm9tIGEgcGFyZW50IGNvbXBvbmVudCBjbGFzc1xuICAgICAqXG4gICAgICovXG4gICAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Platform lib Config\n */\nexport class PlatformConfig {\n /** @hidden */\n static { this.injector = null; }\n /** @hidden */\n static setInjector(injector) {\n PlatformConfig.injector = injector;\n }\n /** @hidden */\n static getInjector() {\n return PlatformConfig.injector;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zaGFyZWQvcGxhdGZvcm0uY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7O0FBSXJEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFDdkIsY0FBYzthQUNDLGFBQVEsR0FBb0IsSUFBSSxBQUF4QixDQUF5QjtJQU9oRCxjQUFjO0lBQ2QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFrQjtRQUNqQyxjQUFjLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYztJQUNkLE1BQU0sQ0FBQyxXQUFXO1FBQ2QsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDO0lBQ25DLENBQUM7OEdBakJRLGNBQWM7a0hBQWQsY0FBYyxjQURELE1BQU07OzJGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbnRlbnREZW5zaXR5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG4vKipcbiAqIFBsYXRmb3JtIGxpYiBDb25maWdcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybUNvbmZpZyB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHN0YXRpYyBpbmplY3RvcjogSW5qZWN0b3IgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIENvbnRlbnQgRGVuc2l0eSBvZiBlbGVtZW50LiAnY296eScgfCAnY29tcGFjdCcgfCAnY29uZGVuc2VkJ1xuICAgICAqL1xuICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIHNldEluamVjdG9yKGluamVjdG9yOiBJbmplY3Rvcik6IHZvaWQge1xuICAgICAgICBQbGF0Zm9ybUNvbmZpZy5pbmplY3RvciA9IGluamVjdG9yO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIGdldEluamVjdG9yKCk6IEluamVjdG9yIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBQbGF0Zm9ybUNvbmZpZy5pbmplY3RvcjtcbiAgICB9XG59XG4iXX0=","/** @hidden */\nexport function objectValues(obj) {\n return Object.keys(obj).map((key) => obj[key]);\n}\n/** @hidden */\nexport function objectToName(target) {\n if (isBlank(target) || (!isStringMap(target) && !isType(target))) {\n throw new Error(' Cannot convert. Uknown object');\n }\n return isType(target) ? target.prototype.constructor.name : target.constructor.name;\n}\n/** @hidden */\nexport function isJsObject(o) {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n/** @hidden */\nexport function isPresent(obj) {\n return obj !== undefined && obj !== null;\n}\n/** @hidden */\nexport function isBlank(obj) {\n return obj === undefined || obj === null;\n}\n/** @hidden */\nexport function isBoolean(obj) {\n return typeof obj === 'boolean';\n}\n/** @hidden */\nexport function isNumber(obj) {\n return typeof obj === 'number';\n}\n/** @hidden */\nexport function isString(obj) {\n return typeof obj === 'string';\n}\n/** @hidden */\nexport function isFunction(obj) {\n return typeof obj === 'function';\n}\n/** @hidden */\nexport function isType(obj) {\n return isFunction(obj);\n}\n/** @hidden */\nexport function isStringMap(obj) {\n return typeof obj === 'object' && obj !== null;\n}\n/** @hidden */\nexport function isObject(item) {\n return typeof item === 'object' && !Array.isArray(item) && item !== null;\n}\n/** @hidden */\nexport function isPromise(obj) {\n // allow any Promise/A+ compliant thenable.\n // It's up to the caller to ensure that obj.then conforms to the spec\n return !!obj && isFunction(obj.then);\n}\n/** @hidden */\nexport function isSubscribable(obj) {\n return !!obj && isFunction(obj.subscribe);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL3V0aWxzL2xhbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYztBQUNkLE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBUTtJQUNqQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBVztJQUNwQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0FBQ3hGLENBQUM7QUFFRCxjQUFjO0FBQ2QsTUFBTSxVQUFVLFVBQVUsQ0FBQyxDQUFNO0lBQzdCLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQztBQUM1RSxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBUTtJQUM5QixPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUM3QyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBUTtJQUM1QixPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUM3QyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBUTtJQUM5QixPQUFPLE9BQU8sR0FBRyxLQUFLLFNBQVMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUM3QixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUM3QixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBUTtJQUMvQixPQUFPLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUNyQyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxNQUFNLENBQUMsR0FBUTtJQUMzQixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBUTtJQUNoQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDO0FBQ25ELENBQUM7QUFFRCxjQUFjO0FBQ2QsTUFBTSxVQUFVLFFBQVEsQ0FBSSxJQUFPO0lBQy9CLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDO0FBQzdFLENBQUM7QUFFRCxjQUFjO0FBQ2QsTUFBTSxVQUFVLFNBQVMsQ0FBVSxHQUFRO0lBQ3ZDLDJDQUEyQztJQUMzQyxxRUFBcUU7SUFDckUsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUsY0FBYyxDQUFDLEdBQTBCO0lBQ3JELE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0VmFsdWVzKG9iajogYW55KTogYW55W10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLm1hcCgoa2V5KSA9PiBvYmpba2V5XSk7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0VG9OYW1lKHRhcmdldDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoaXNCbGFuayh0YXJnZXQpIHx8ICghaXNTdHJpbmdNYXAodGFyZ2V0KSAmJiAhaXNUeXBlKHRhcmdldCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignIENhbm5vdCBjb252ZXJ0LiBVa25vd24gb2JqZWN0Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVHlwZSh0YXJnZXQpID8gdGFyZ2V0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5uYW1lIDogdGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWU7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNKc09iamVjdChvOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbyAhPT0gbnVsbCAmJiAodHlwZW9mIG8gPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIG8gPT09ICdvYmplY3QnKTtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnQob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqICE9PSB1bmRlZmluZWQgJiYgb2JqICE9PSBudWxsO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmxhbmsob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqID09PSB1bmRlZmluZWQgfHwgb2JqID09PSBudWxsO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbihvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSAnYm9vbGVhbic7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ251bWJlcic7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcob2JqOiBhbnkpOiBvYmogaXMgc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ3N0cmluZyc7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbihvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVHlwZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKG9iaik7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmdNYXAob2JqOiBhbnkpOiBvYmogaXMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbDtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdDxUPihpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZTxUID0gYW55PihvYmo6IGFueSk6IG9iaiBpcyBQcm9taXNlPFQ+IHtcbiAgICAvLyBhbGxvdyBhbnkgUHJvbWlzZS9BKyBjb21wbGlhbnQgdGhlbmFibGUuXG4gICAgLy8gSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGVuc3VyZSB0aGF0IG9iai50aGVuIGNvbmZvcm1zIHRvIHRoZSBzcGVjXG4gICAgcmV0dXJuICEhb2JqICYmIGlzRnVuY3Rpb24ob2JqLnRoZW4pO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vic2NyaWJhYmxlKG9iajogYW55IHwgT2JzZXJ2YWJsZTxhbnk+KTogb2JqIGlzIE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuICEhb2JqICYmIGlzRnVuY3Rpb24ob2JqLnN1YnNjcmliZSk7XG59XG4iXX0=","/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n *\n * When working with large set of data using components such as:\n * - Datatables\n * - InputSearch\n * - ComboBox (Autocomplete)\n * - Tree\n * - List\n * - etc..\n * and for these we need to unify the way we access a data. Currently we leave most of the complex\n * data access or data manipulation on application developer which leads to different\n * implementation approaches and allot of code duplication.\n *\n * It is common practice when working with different data input sources we try to apply some\n * Design patterns e.g. Adapter Pattern that provides us with guidelines how different interfaces\n * can talk to each other and from here we can derive another pattern so called Datasource pattern\n * which is high-level architectural pattern to abstract data and internal resources\n * access (DB calls, Rest calls, domain objects) with a mininal amount a code.\n *\n * What we want to achieve is to define abstract layer where each specific resource type needs to\n * implement and move all the related logic into reusable DataSources. (TableDataSource,\n * ComboBoxDataSource, ... )\n *\n * Observable<T[]> is a reactive stream, that changes its content based on what it pushed\n * into it using .next().\n *\n * Each type of data component such Autocomplete, DataTable, List,.. needs to provide its own\n * specific implementation to handle specific use-case.\n *\n * ```\n * export abstract class DataTableDataSource<T> implements DataSource<T> {\n * data: T[];\n * filterTerm: string;\n * paginator: Paginator | null\n *\n * filterPredicate: ((data: T, filter: string) => boolean;\n *\n * sortData: ((data: T[], sort: Sort) => T[]);\n *\n * //\n * create (t: T): T;\n * update (t: T): T;\n * remove (t: T): T;\n *\n * }\n * ```\n *\n * After we define a format we can start creating concrete implementations based on the usage or\n * resource .e.g:\n *\n *\n * ```\n * export abstract class RestAutoCompleteDataSource<T> extend DataChooserDataSource <T> {\n * // We can use a registry that is able to map a Entity Type = Endpoint\n * // have identical way how to fetch , search ,...\n * }\n * ```\n *\n * Probably when working with data only locally, it can be:\n *\n * ```\n * export abstract class LocalArrayAutoCompleteDataSource<T> extend DataChooserDataSource <T> {\n * }\n * ```\n *\n *\n */\nimport { InjectionToken } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nexport var MatchingStrategy;\n(function (MatchingStrategy) {\n MatchingStrategy[\"STARTS_WITH_PER_TERM\"] = \"starts with per term\";\n MatchingStrategy[\"STARTS_WITH\"] = \"starts with\";\n MatchingStrategy[\"CONTAINS\"] = \"contains\";\n})(MatchingStrategy || (MatchingStrategy = {}));\nexport const DATA_PROVIDERS = new InjectionToken('DataProviderRegistry');\n/** Matching Strategy: StartsWithPerTerm - Reqexp */\nexport function getMatchingStrategyStartsWithPerTermReqexp(value) {\n // We need to escape all special characters in order not to break the regular expression.\n return new RegExp(`(\\\\s|^)(${value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')})`, 'gi');\n}\n/** @hidden */\nexport function isDataSource(value) {\n return value && typeof value.open === 'function';\n}\n/**\n * Provider is a data driver that can access data and retrieve them. It knows how to get 1\n * or more records, maybe do paging and some other things.\n *\n */\nexport class DataProvider {\n constructor() {\n /** @hidden */\n this._matchingStrategy = MatchingStrategy.STARTS_WITH;\n /** @hidden */\n this._matchingBy = null;\n }\n /**\n * Tells if this DataProvider supports INSERT, REMOVE\n *\n */\n canCRUD() {\n return false;\n }\n // Implement to support CRUD operations.\n /** @hidden */\n getOne(params) {\n throw new Error('Not supported');\n }\n /** @hidden */\n insert(payload, params) {\n throw new Error('Not supported');\n }\n /** @hidden */\n remove(params) {\n throw new Error('Not supported');\n }\n /** @hidden */\n update(payload, params) {\n throw new Error('Not supported');\n }\n /** @hidden */\n setLookupKey(key) {\n this._keyPath = key;\n }\n /** @hidden */\n setMatchingBy(matchingBy) {\n this._matchingBy = matchingBy;\n }\n /** @hidden */\n setMatchingStrategy(strategy) {\n this._matchingStrategy = strategy;\n }\n}\nexport class ComboBoxDataSource {\n /** @hidden */\n static { this.MaxLimit = 5; }\n /** @hidden */\n get isDataLoading() {\n return this._dataLoading;\n }\n /** @hidden */\n constructor(dataProvider) {\n this.dataProvider = dataProvider;\n /** @hidden */\n this.limitless = false;\n /** @hidden */\n this._dataChanges = new BehaviorSubject([]);\n /** @hidden */\n this._onDataRequested$ = new Subject();\n /** @hidden */\n this._onDataReceived$ = new Subject();\n /** @hidden */\n this._onDestroy$ = new Subject();\n /** @hidden */\n this._dataLoading = false;\n }\n /** @hidden */\n match(predicate = new Map(), start = 0, end = Infinity) {\n this._onDataRequested$.next();\n this._dataLoading = true;\n const searchParam = new Map();\n if (typeof predicate === 'string') {\n searchParam.set('query', predicate);\n }\n else if (predicate instanceof Map) {\n predicate.forEach((v, k) => searchParam.set(k, v));\n }\n else {\n throw new Error('DataSource.match() predicate can only accepts string and Map');\n }\n if (!searchParam.has('limit') && !this.limitless) {\n searchParam.set('limit', ComboBoxDataSource.MaxLimit);\n }\n this.dataProvider\n .fetch(searchParam, start, end)\n .pipe(takeUntil(this._onDestroy$))\n .subscribe({\n next: (result) => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n this._dataChanges.next(result);\n },\n error: () => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n }\n });\n }\n /** @hidden */\n open() {\n return this._dataChanges.pipe(takeUntil(this._onDestroy$));\n }\n /** @hidden */\n close() {\n this._onDestroy$.next();\n }\n /** @hidden */\n onDataRequested() {\n return this._onDataRequested$.asObservable();\n }\n /** @hidden */\n onDataReceived() {\n return this._onDataReceived$.asObservable();\n }\n}\nexport class MultiComboBoxDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n }\n}\nexport class SearchFieldDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n }\n}\nexport class ListDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n /** @hidden */\n this.limitless = true;\n }\n}\nexport class MultiInputDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n }\n}\nexport class ApprovalFlowUserDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n }\n}\nexport class ApprovalFlowTeamDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NoYXJlZC9kb21haW4vZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3REOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrRUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxNQUFNLENBQU4sSUFBWSxnQkFJWDtBQUpELFdBQVksZ0JBQWdCO0lBQ3hCLGlFQUE2QyxDQUFBO0lBQzdDLCtDQUEyQixDQUFBO0lBQzNCLHlDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFKVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSTNCO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFpQyxzQkFBc0IsQ0FBQyxDQUFDO0FBaUJ6RyxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLDBDQUEwQyxDQUFDLEtBQWE7SUFDcEUseUZBQXlGO0lBQ3pGLE9BQU8sSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUsWUFBWSxDQUFVLEtBQVU7SUFDNUMsT0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUNyRCxDQUFDO0FBR0Q7Ozs7R0FJRztBQUNILE1BQU0sT0FBZ0IsWUFBWTtJQUFsQztRQU1JLGNB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cHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKipcbiAqXG4gKiBXaGVuIHdvcmtpbmcgd2l0aCBsYXJnZSBzZXQgb2YgZGF0YSB1c2luZyBjb21wb25lbnRzIHN1Y2ggYXM6XG4gKiAgLSBEYXRhdGFibGVzXG4gKiAgLSBJbnB1dFNlYXJjaFxuICogIC0gQ29tYm9Cb3ggKEF1dG9jb21wbGV0ZSlcbiAqICAtIFRyZWVcbiAqICAtIExpc3RcbiAqICAtIGV0Yy4uXG4gKiAgYW5kIGZvciB0aGVzZSB3ZSBuZWVkIHRvIHVuaWZ5IHRoZSB3YXkgd2UgYWNjZXNzIGEgZGF0YS4gQ3VycmVudGx5IHdlIGxlYXZlIG1vc3Qgb2YgdGhlIGNvbXBsZXhcbiAqICBkYXRhIGFjY2VzcyBvciBkYXRhIG1hbmlwdWxhdGlvbiBvbiBhcHBsaWNhdGlvbiBkZXZlbG9wZXIgd2hpY2ggbGVhZHMgdG8gZGlmZmVyZW50XG4gKiAgaW1wbGVtZW50YXRpb24gYXBwcm9hY2hlcyBhbmQgYWxsb3Qgb2YgY29kZSBkdXBsaWNhdGlvbi5cbiAqXG4gKiAgSXQgaXMgY29tbW9uIHByYWN0aWNlIHdoZW4gd29ya2luZyB3aXRoIGRpZmZlcmVudCBkYXRhIGlucHV0IHNvdXJjZXMgd2UgdHJ5IHRvIGFwcGx5IHNvbWVcbiAqICBEZXNpZ24gcGF0dGVybnMgZS5nLiBBZGFwdGVyIFBhdHRlcm4gdGhhdCBwcm92aWRlcyB1cyB3aXRoIGd1aWRlbGluZXMgaG93IGRpZmZlcmVudCBpbnRlcmZhY2VzXG4gKiAgY2FuIHRhbGsgdG8gZWFjaCBvdGhlciBhbmQgZnJvbSBoZXJlIHdlIGNhbiBkZXJpdmUgYW5vdGhlciBwYXR0ZXJuIHNvIGNhbGxlZCBEYXRhc291cmNlIHBhdHRlcm5cbiAqICB3aGljaCBpcyBoaWdoLWxldmVsIGFyY2hpdGVjdHVyYWwgcGF0dGVybiB0byBhYnN0cmFjdCBkYXRhIGFuZCBpbnRlcm5hbCByZXNvdXJjZXNcbiAqICBhY2Nlc3MgKERCIGNhbGxzLCBSZXN0IGNhbGxzLCBkb21haW4gb2JqZWN0cykgd2l0aCBhIG1pbmluYWwgYW1vdW50IGEgY29kZS5cbiAqXG4gKiBXaGF0IHdlIHdhbnQgdG8gYWNoaWV2ZSBpcyB0byBkZWZpbmUgYWJzdHJhY3QgbGF5ZXIgd2hlcmUgZWFjaCBzcGVjaWZpYyByZXNvdXJjZSB0eXBlIG5lZWRzIHRvXG4gKiBpbXBsZW1lbnQgYW5kIG1vdmUgYWxsIHRoZSByZWxhdGVkIGxvZ2ljIGludG8gcmV1c2FibGUgRGF0YVNvdXJjZXMuIChUYWJsZURhdGFTb3VyY2UsXG4gKiBDb21ib0JveERhdGFTb3VyY2UsIC4uLiApXG4gKlxuICogT2JzZXJ2YWJsZTxUW10+IGlzIGEgcmVhY3RpdmUgc3RyZWFtLCB0aGF0IGNoYW5nZXMgaXRzIGNvbnRlbnQgYmFzZWQgb24gd2hhdCBpdCBwdXNoZWRcbiAqIGludG8gaXQgdXNpbmcgLm5leHQoKS5cbiAqXG4gKiBFYWNoIHR5cGUgb2YgZGF0YSBjb21wb25lbnQgc3VjaCBBdXRvY29tcGxldGUsIERhdGFUYWJsZSwgTGlzdCwuLiBuZWVkcyB0byBwcm92aWRlIGl0cyBvd25cbiAqIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIHRvIGhhbmRsZSBzcGVjaWZpYyB1c2UtY2FzZS5cbiAqXG4gKiBgYGBcbiAqICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YVRhYmxlRGF0YVNvdXJjZTxUPiBpbXBsZW1lbnRzIERhdGFTb3VyY2U8VD4ge1xuICogICAgZGF0YTogVFtdO1xuICogICAgZmlsdGVyVGVybTogc3RyaW5nO1xuICogICAgcGFnaW5hdG9yOiBQYWdpbmF0b3IgfCBudWxsXG4gKlxuICogICAgZmlsdGVyUHJlZGljYXRlOiAoKGRhdGE6IFQsIGZpbHRlcjogc3RyaW5nKSA9PiBib29sZWFuO1xuICpcbiAqICAgIHNvcnREYXRhOiAoKGRhdGE6IFRbXSwgc29ydDogU29ydCkgPT4gVFtdKTtcbiAqXG4gKiAgICAvL1xuICogICAgY3JlYXRlICh0OiBUKTogVDtcbiAqICAgIHVwZGF0ZSAodDogVCk6IFQ7XG4gKiAgICByZW1vdmUgKHQ6IFQpOiBUO1xuICpcbiAqICB9XG4gKiBgYGBcbiAqXG4gKiBBZnRlciB3ZSBkZWZpbmUgYSBmb3JtYXQgd2UgY2FuIHN0YXJ0IGNyZWF0aW5nIGNvbmNyZXRlIGltcGxlbWVudGF0aW9ucyBiYXNlZCBvbiB0aGUgdXNhZ2Ugb3JcbiAqIHJlc291cmNlIC5lLmc6XG4gKlxuICpcbiAqIGBgYFxuICogZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3RBdXRvQ29tcGxldGVEYXRhU291cmNlPFQ+IGV4dGVuZCBEYXRhQ2hvb3NlckRhdGFTb3VyY2UgPFQ+IHtcbiAqICAgLy8gV2UgY2FuIHVzZSBhIHJlZ2lzdHJ5IHRoYXQgaXMgYWJsZSB0byBtYXAgYSBFbnRpdHkgVHlwZSA9IEVuZHBvaW50XG4gKiAgIC8vIGhhdmUgaWRlbnRpY2FsIHdheSBob3cgdG8gZmV0Y2ggLCBzZWFyY2ggLC4uLlxuICogfVxuICogYGBgXG4gKlxuICogUHJvYmFibHkgd2hlbiB3b3JraW5nIHdpdGggZGF0YSBvbmx5IGxvY2FsbHksIGl0IGNhbiBiZTpcbiAqXG4gKiBgYGBcbiAqIGV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMb2NhbEFycmF5QXV0b0NvbXBsZXRlRGF0YVNvdXJjZTxUPiBleHRlbmQgRGF0YUNob29zZXJEYXRhU291cmNlIDxUPiB7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKlxuICovXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIE1hdGNoaW5nU3RyYXRlZ3kge1xuICAgIFNUQVJUU19XSVRIX1BFUl9URVJNID0gJ3N0YXJ0cyB3aXRoIHBlciB0ZXJtJyxcbiAgICBTVEFSVFNfV0lUSCA9ICdzdGFydHMgd2l0aCcsXG4gICAgQ09OVEFJTlMgPSAnY29udGFpbnMnXG59XG5cbmV4cG9ydCBjb25zdCBEQVRBX1BST1ZJREVSUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNYXA8c3RyaW5nLCBEYXRhUHJvdmlkZXI8YW55Pj4+KCdEYXRhUHJvdmlkZXJSZWdpc3RyeScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTb3VyY2U8VCwgUCA9IFRbXSwgTCA9IGJvb2xlYW4+IHtcbiAgICBpc0RhdGFMb2FkaW5nOiBMO1xuICAgIG9wZW4oKTogT2JzZXJ2YWJsZTxQPjtcbiAgICBjbG9zZSgpOiB2b2lkO1xuICAgIG9uRGF0YVJlcXVlc3RlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICAgIG9uRGF0YVJlY2VpdmVkKCk6IE9ic2VydmFibGU8dm9pZD47XG59XG5cbmV4cG9ydCB0eXBlIE1hdGNoQnkgPSAoaXRlbTogYW55KSA9PiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF0Y2hpbmdCeSB7XG4gICAgZmlyc3RCeTogTWF0Y2hCeTtcbiAgICBzZWNvbmRhcnlCeT86IE1hdGNoQnk7XG59XG5cbi8qKiBNYXRjaGluZyBTdHJhdGVneTogU3RhcnRzV2l0aFBlclRlcm0gLSBSZXFleHAgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXRjaGluZ1N0cmF0ZWd5U3RhcnRzV2l0aFBlclRlcm1SZXFleHAodmFsdWU6IHN0cmluZyk6IFJlZ0V4cCB7XG4gICAgLy8gV2UgbmVlZCB0byBlc2NhcGUgYWxsIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBvcmRlciBub3QgdG8gYnJlYWsgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgKFxcXFxzfF4pKCR7dmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKX0pYCwgJ2dpJyk7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRhU291cmNlPFQgPSBhbnk+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlLm9wZW4gPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCB0eXBlIFByb3ZpZGVyUGFyYW1zID0gUmVhZG9ubHlNYXA8c3RyaW5nLCBhbnk+O1xuLyoqXG4gKiBQcm92aWRlciBpcyBhIGRhdGEgZHJpdmVyIHRoYXQgY2FuIGFjY2VzcyBkYXRhIGFuZCByZXRyaWV2ZSB0aGVtLiBJdCBrbm93cyBob3cgdG8gZ2V0IDFcbiAqIG9yIG1vcmUgcmVjb3JkcywgbWF5YmUgZG8gcGFnaW5nIGFuZCBzb21lIG90aGVyIHRoaW5ncy5cbiAqXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhUHJvdmlkZXI8VD4ge1xuICAgIGFic3RyYWN0IGZldGNoKHBhcmFtczogUHJvdmlkZXJQYXJhbXMsIHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFRbXT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfa2V5UGF0aDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX21hdGNoaW5nU3RyYXRlZ3k6IE1hdGNoaW5nU3RyYXRlZ3kgPSBNYXRjaGluZ1N0cmF0ZWd5LlNUQVJUU19XSVRIO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX21hdGNoaW5nQnk6IE1hdGNoaW5nQnkgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0VG90YWxJdGVtcz8oKTogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gICAgLyoqXG4gICAgICogVGVsbHMgaWYgdGhpcyBEYXRhUHJvdmlkZXIgc3VwcG9ydHMgSU5TRVJULCBSRU1PVkVcbiAgICAgKlxuICAgICAqL1xuICAgIGNhbkNSVUQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBJbXBsZW1lbnQgdG8gc3VwcG9ydCBDUlVEIG9wZXJhdGlvbnMuXG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldE9uZShwYXJhbXM6IFByb3ZpZGVyUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaW5zZXJ0KHBheWxvYWQ6IGFueSwgcGFyYW1zPzogUHJvdmlkZXJQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZW1vdmUocGFyYW1zOiBQcm92aWRlclBhcmFtcyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHVwZGF0ZShwYXlsb2FkOiBhbnksIHBhcmFtcz86IFByb3ZpZGVyUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0TG9va3VwS2V5KGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleVBhdGggPSBrZXk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRNYXRjaGluZ0J5KG1hdGNoaW5nQnk6IE1hdGNoaW5nQnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWF0Y2hpbmdCeSA9IG1hdGNoaW5nQnk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRNYXRjaGluZ1N0cmF0ZWd5KHN0cmF0ZWd5OiBNYXRjaGluZ1N0cmF0ZWd5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21hdGNoaW5nU3RyYXRlZ3kgPSBzdHJhdGVneTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21ib0JveERhdGFTb3VyY2U8VD4gaW1wbGVtZW50cyBEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0YXRpYyByZWFkb25seSBNYXhMaW1pdCA9IDU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGxpbWl0bGVzcyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8VFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX29uRGF0YVJlcXVlc3RlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9vbkRhdGFSZWNlaXZlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9vbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGF0YUxvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGlzRGF0YUxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhTG9hZGluZztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxhbnk+KSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtYXRjaChwcmVkaWNhdGU6IHN0cmluZyB8IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpLCBzdGFydCA9IDAsIGVuZCA9IEluZmluaXR5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGF0YVJlcXVlc3RlZCQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kYXRhTG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IHNlYXJjaFBhcmFtID0gbmV3IE1hcCgpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgcHJlZGljYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgc2VhcmNoUGFyYW0uc2V0KCdxdWVyeScsIHByZWRpY2F0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAocHJlZGljYXRlIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICBwcmVkaWNhdGUuZm9yRWFjaCgodiwgaykgPT4gc2VhcmNoUGFyYW0uc2V0KGssIHYpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YVNvdXJjZS5tYXRjaCgpIHByZWRpY2F0ZSBjYW4gb25seSBhY2NlcHRzIHN0cmluZyBhbmQgTWFwJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXNlYXJjaFBhcmFtLmhhcygnbGltaXQnKSAmJiAhdGhpcy5saW1pdGxlc3MpIHtcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtLnNldCgnbGltaXQnLCBDb21ib0JveERhdGFTb3VyY2UuTWF4TGltaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJcbiAgICAgICAgICAgIC5mZXRjaChzZWFyY2hQYXJhbSwgc3RhcnQsIGVuZClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQ6IFRbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkRhdGFSZWNlaXZlZCQubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhQ2hhbmdlcy5uZXh0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkRhdGFSZWNlaXZlZCQubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3BlbigpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25EYXRhUmVxdWVzdGVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb25EYXRhUmVxdWVzdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uRGF0YVJlY2VpdmVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb25EYXRhUmVjZWl2ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE11bHRpQ29tYm9Cb3hEYXRhU291cmNlPFQ+IGV4dGVuZHMgQ29tYm9Cb3hEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxhbnk+KSB7XG4gICAgICAgIHN1cGVyKGRhdGFQcm92aWRlcik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VhcmNoRmllbGREYXRhU291cmNlPFQ+IGV4dGVuZHMgQ29tYm9Cb3hEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxhbnk+KSB7XG4gICAgICAgIHN1cGVyKGRhdGFQcm92aWRlcik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGltaXRsZXNzID0gdHJ1ZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxhbnk+KSB7XG4gICAgICAgIHN1cGVyKGRhdGFQcm92aWRlcik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTXVsdGlJbnB1dERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGFQcm92aWRlcjogRGF0YVByb3ZpZGVyPGFueT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHByb3ZhbEZsb3dVc2VyRGF0YVNvdXJjZTxUPiBleHRlbmRzIENvbWJvQm94RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVByb3ZpZGVyOiBEYXRhUHJvdmlkZXI8VD4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHByb3ZhbEZsb3dUZWFtRGF0YVNvdXJjZTxUPiBleHRlbmRzIENvbWJvQm94RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVByb3ZpZGVyOiBEYXRhUHJvdmlkZXI8VD4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG4iXX0=","/**\n * Default implementation for Observable Arrays and Arrays.\n */\nimport { isObservable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { isFunction, isJsObject, objectToName, objectValues } from '../utils/lang';\nimport { DataProvider, MatchingStrategy, getMatchingStrategyStartsWithPerTermReqexp } from './data-source';\n/**\n * In Memory implementation of DataProvider that supports fulltext search\n */\nexport class BaseDataProvider extends DataProvider {\n /** @hidden */\n constructor(values) {\n super();\n this.values = values;\n }\n /** @hidden */\n fetch(params) {\n const observable = isObservable(this.values) ? this.values : of(this.values);\n const queryString = params.get('query');\n const limit = params.get('limit') || 50;\n if (!queryString || queryString === '*') {\n return observable.pipe(map((items) => this.withLimit(items, limit)));\n }\n const toLowerPattern = queryString.toLowerCase();\n return observable.pipe(map((items) => {\n const result = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (this.matches(item, toLowerPattern)) {\n result.push(item);\n if (result.length >= limit) {\n break;\n }\n }\n }\n return result;\n }));\n }\n /**\n * Warning: If you dont supply search Key and you want fulltext search and you use this\n * default implementation be aware that it can perform poorly as it is naive implementation\n * that does not do deep compare.\n */\n matches(item, pattern) {\n if (!this._matchingBy) {\n return false;\n }\n const { firstBy, secondaryBy } = this._matchingBy;\n let matched = this.matchesBy(item, pattern, firstBy);\n if (!matched && secondaryBy) {\n matched = this.matchesBy(item, pattern, secondaryBy);\n }\n return matched;\n }\n /** @hidden */\n matchesBy(item, pattern, matchingBy) {\n const value = isJsObject(item) && matchingBy ? matchingBy(item) : item;\n if (isFunction(value)) {\n return value.call(item);\n }\n else if (isJsObject(value)) {\n return this.hasObjectValue(item, pattern);\n }\n else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH_PER_TERM) {\n const reqexp = getMatchingStrategyStartsWithPerTermReqexp(pattern);\n return !!pattern && !!value && !!value.match(reqexp);\n }\n else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH) {\n return !!pattern && !!value && value.toString().toLowerCase().startsWith(pattern.toLowerCase());\n }\n else if (this._matchingStrategy === MatchingStrategy.CONTAINS) {\n return !!pattern && !!value && value.toString().toLowerCase().indexOf(pattern) > -1;\n }\n else {\n return !!pattern && !!value && value.toString().toLowerCase() === pattern;\n }\n }\n /** @hidden */\n hasObjectValue(obj, pattern) {\n const values = objectValues(obj);\n const parentObj = objectToName(obj);\n const length2 = values.filter((value) => {\n if (!value || Array.isArray(value)) {\n return false;\n }\n else if (!isJsObject(value) && !isFunction(value)) {\n return value.toString().toLowerCase().indexOf(pattern) !== -1;\n }\n else if (isJsObject(value) && objectToName(value) !== parentObj) {\n return this.hasObjectValue(value, pattern);\n }\n return false;\n }).length;\n return length2 > 0;\n }\n /** @hidden */\n withLimit(data, limit) {\n if (limit && data.length > limit) {\n return data.slice(0, limit);\n }\n return data;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRhLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zaGFyZWQvZG9tYWluL2Jhc2UtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBYyxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQVcsZ0JBQWdCLEVBQUUsMENBQTBDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQW9CLFNBQVEsWUFBZTtJQUNwRCxjQUFjO0lBQ2QsWUFBc0IsTUFBNkI7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFEVSxXQUFNLEdBQU4sTUFBTSxDQUF1QjtJQUVuRCxDQUFDO0lBRUQsY0FBYztJQUNkLEtBQUssQ0FBQyxNQUF3QjtRQUMxQixNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdEMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFD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QUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDVixPQUFPLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELGNBQWM7SUFDTixTQUFTLENBQUMsSUFBYyxFQUFFLEtBQWM7UUFDNUMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIE9ic2VydmFibGUgQXJyYXlzIGFuZCBBcnJheXMuXG4gKi9cbmltcG9ydCB7IE9ic2VydmFibGUsIGlzT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNKc09iamVjdCwgb2JqZWN0VG9OYW1lLCBvYmplY3RWYWx1ZXMgfSBmcm9tICcuLi91dGlscy9sYW5nJztcbmltcG9ydCB7IERhdGFQcm92aWRlciwgTWF0Y2hCeSwgTWF0Y2hpbmdTdHJhdGVneSwgZ2V0TWF0Y2hpbmdTdHJhdGVneVN0YXJ0c1dpdGhQZXJUZXJtUmVxZXhwIH0gZnJvbSAnLi9kYXRhLXNvdXJjZSc7XG5cbi8qKlxuICogSW4gTWVtb3J5IGltcGxlbWVudGF0aW9uIG9mIERhdGFQcm92aWRlciB0aGF0IHN1cHBvcnRzIGZ1bGx0ZXh0IHNlYXJjaFxuICovXG5leHBvcnQgY2xhc3MgQmFzZURhdGFQcm92aWRlcjxUPiBleHRlbmRzIERhdGFQcm92aWRlcjxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmFsdWVzOiBPYnNlcnZhYmxlPFRbXT4gfCBUW10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZldGNoKHBhcmFtczogTWFwPHN0cmluZywgYW55Pik6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSBpc09ic2VydmFibGUodGhpcy52YWx1ZXMpID8gdGhpcy52YWx1ZXMgOiBvZih0aGlzLnZhbHVlcyk7XG5cbiAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBwYXJhbXMuZ2V0KCdxdWVyeScpO1xuICAgICAgICBjb25zdCBsaW1pdCA9IHBhcmFtcy5nZXQoJ2xpbWl0JykgfHwgNTA7XG5cbiAgICAgICAgaWYgKCFxdWVyeVN0cmluZyB8fCBxdWVyeVN0cmluZyA9PT0gJyonKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKG1hcCgoaXRlbXMpID0+IHRoaXMud2l0aExpbWl0KGl0ZW1zLCBsaW1pdCkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRvTG93ZXJQYXR0ZXJuID0gcXVlcnlTdHJpbmcudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKFxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogYW55W10gPSBbXTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXRjaGVzKGl0ZW0sIHRvTG93ZXJQYXR0ZXJuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+PSBsaW1pdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2FybmluZzogSWYgeW91IGRvbnQgc3VwcGx5IHNlYXJjaCBLZXkgYW5kIHlvdSB3YW50IGZ1bGx0ZXh0IHNlYXJjaCBhbmQgeW91IHVzZSB0aGlzXG4gICAgICogZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBiZSBhd2FyZSB0aGF0IGl0IGNhbiAgcGVyZm9ybSBwb29ybHkgYXMgaXQgaXMgbmFpdmUgaW1wbGVtZW50YXRpb25cbiAgICAgKiB0aGF0IGRvZXMgbm90IGRvIGRlZXAgY29tcGFyZS5cbiAgICAgKi9cbiAgICBtYXRjaGVzKGl0ZW06IFQsIHBhdHRlcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX21hdGNoaW5nQnkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGZpcnN0QnksIHNlY29uZGFyeUJ5IH0gPSB0aGlzLl9tYXRjaGluZ0J5O1xuXG4gICAgICAgIGxldCBtYXRjaGVkID0gdGhpcy5tYXRjaGVzQnkoaXRlbSwgcGF0dGVybiwgZmlyc3RCeSk7XG4gICAgICAgIGlmICghbWF0Y2hlZCAmJiBzZWNvbmRhcnlCeSkge1xuICAgICAgICAgICAgbWF0Y2hlZCA9IHRoaXMubWF0Y2hlc0J5KGl0ZW0sIHBhdHRlcm4sIHNlY29uZGFyeUJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXRjaGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbWF0Y2hlc0J5KGl0ZW06IGFueSwgcGF0dGVybjogc3RyaW5nLCBtYXRjaGluZ0J5OiBNYXRjaEJ5KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXNKc09iamVjdChpdGVtKSAmJiBtYXRjaGluZ0J5ID8gbWF0Y2hpbmdCeShpdGVtKSA6IGl0ZW07XG5cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24odmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuY2FsbChpdGVtKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0pzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzT2JqZWN0VmFsdWUoaXRlbSwgcGF0dGVybik7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fbWF0Y2hpbmdTdHJhdGVneSA9PT0gTWF0Y2hpbmdTdHJhdGVneS5TVEFSVFNfV0lUSF9QRVJfVEVSTSkge1xuICAgICAgICAgICAgY29uc3QgcmVxZXhwID0gZ2V0TWF0Y2hpbmdTdHJhdGVneVN0YXJ0c1dpdGhQZXJUZXJtUmVxZXhwKHBhdHRlcm4pO1xuICAgICAgICAgICAgcmV0dXJuICEhcGF0dGVybiAmJiAhIXZhbHVlICYmICEhdmFsdWUubWF0Y2gocmVxZXhwKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9tYXRjaGluZ1N0cmF0ZWd5ID09PSBNYXRjaGluZ1N0cmF0ZWd5LlNUQVJUU19XSVRIKSB7XG4gICAgICAgICAgICByZXR1cm4gISFwYXR0ZXJuICYmICEhdmFsdWUgJiYgdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgocGF0dGVybi50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9tYXRjaGluZ1N0cmF0ZWd5ID09PSBNYXRjaGluZ1N0cmF0ZWd5LkNPTlRBSU5TKSB7XG4gICAgICAgICAgICByZXR1cm4gISFwYXR0ZXJuICYmICEhdmFsdWUgJiYgdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YocGF0dGVybikgPiAtMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAhIXBhdHRlcm4gJiYgISF2YWx1ZSAmJiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09IHBhdHRlcm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBoYXNPYmplY3RWYWx1ZShvYmo6IGFueSwgcGF0dGVybjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG9iamVjdFZhbHVlcyhvYmopO1xuICAgICAgICBjb25zdCBwYXJlbnRPYmogPSBvYmplY3RUb05hbWUob2JqKTtcbiAgICAgICAgY29uc3QgbGVuZ3RoMiA9IHZhbHVlcy5maWx0ZXIoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICghdmFsdWUgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFpc0pzT2JqZWN0KHZhbHVlKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YocGF0dGVybikgIT09IC0xO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0pzT2JqZWN0KHZhbHVlKSAmJiBvYmplY3RUb05hbWUodmFsdWUpICE9PSBwYXJlbnRPYmopIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYXNPYmplY3RWYWx1ZSh2YWx1ZSwgcGF0dGVybik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSkubGVuZ3RoO1xuICAgICAgICByZXR1cm4gbGVuZ3RoMiA+IDA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHdpdGhMaW1pdChkYXRhOiBBcnJheTxUPiwgbGltaXQ/OiBudW1iZXIpOiBBcnJheTxUPiB7XG4gICAgICAgIGlmIChsaW1pdCAmJiBkYXRhLmxlbmd0aCA+IGxpbWl0KSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5zbGljZSgwLCBsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuIl19","/**\n * Default implementation for Arrays.\n */\nimport { BaseDataProvider } from './base-data-provider';\nimport { ComboBoxDataSource, ListDataSource, MultiComboBoxDataSource, MultiInputDataSource } from './data-source';\nexport class ArrayComboBoxDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ArrayMultiComboBoxDataSource extends MultiComboBoxDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ArrayListDataSource extends ListDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ArrayMultiInputDataSource extends MultiInputDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NoYXJlZC9kb21haW4vYXJyYXktZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxILE1BQU0sT0FBTyx1QkFBMkIsU0FBUSxrQkFBcUI7SUFDakUsY0FBYztJQUNkLFlBQW9CLElBQVM7UUFDekIsS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQURsQixTQUFJLEdBQUosSUFBSSxDQUFLO0lBRTdCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyw0QkFBZ0MsU0FBUSx1QkFBMEI7SUFDM0UsY0FBYztJQUNkLFlBQW9CLElBQVM7UUFDekIsS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQURsQixTQUFJLEdBQUosSUFBSSxDQUFLO0lBRTdCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxtQkFBdUIsU0FBUSxjQUFpQjtJQUN6RCxjQUFjO0lBQ2QsWUFBb0IsSUFBUztRQUN6QixLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRGxCLFNBQUksR0FBSixJQUFJLENBQUs7SUFFN0IsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHlCQUE2QixTQUFRLG9CQUF1QjtJQUNyRSxjQUFjO0lBQ2QsWUFBb0IsSUFBUztRQUN6QixLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRGxCLFNBQUksR0FBSixJQUFJLENBQUs7SUFFN0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBBcnJheXMuXG4gKi9cbmltcG9ydCB7IEJhc2VEYXRhUHJvdmlkZXIgfSBmcm9tICcuL2Jhc2UtZGF0YS1wcm92aWRlcic7XG5pbXBvcnQgeyBDb21ib0JveERhdGFTb3VyY2UsIExpc3REYXRhU291cmNlLCBNdWx0aUNvbWJvQm94RGF0YVNvdXJjZSwgTXVsdGlJbnB1dERhdGFTb3VyY2UgfSBmcm9tICcuL2RhdGEtc291cmNlJztcblxuZXhwb3J0IGNsYXNzIEFycmF5Q29tYm9Cb3hEYXRhU291cmNlPFQ+IGV4dGVuZHMgQ29tYm9Cb3hEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YTogVFtdKSB7XG4gICAgICAgIHN1cGVyKG5ldyBCYXNlRGF0YVByb3ZpZGVyKGRhdGEpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcnJheU11bHRpQ29tYm9Cb3hEYXRhU291cmNlPFQ+IGV4dGVuZHMgTXVsdGlDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhOiBUW10pIHtcbiAgICAgICAgc3VwZXIobmV3IEJhc2VEYXRhUHJvdmlkZXIoZGF0YSkpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFycmF5TGlzdERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBMaXN0RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGE6IFRbXSkge1xuICAgICAgICBzdXBlcihuZXcgQmFzZURhdGFQcm92aWRlcihkYXRhKSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXJyYXlNdWx0aUlucHV0RGF0YVNvdXJjZTxUPiBleHRlbmRzIE11bHRpSW5wdXREYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YTogVFtdKSB7XG4gICAgICAgIHN1cGVyKG5ldyBCYXNlRGF0YVByb3ZpZGVyKGRhdGEpKTtcbiAgICB9XG59XG4iXX0=","import { coerceArray } from '@angular/cdk/coercion';\nimport { isBlank } from '../utils/lang';\n/** @hidden */\nexport function isSelectableItem(item) {\n return (item &&\n item.label !== undefined &&\n item.value !== undefined &&\n Object.prototype.hasOwnProperty.call(item, 'selected'));\n}\n/** @hidden */\nexport function isSelectItem(item) {\n return item && item.label !== undefined && item.value !== undefined;\n}\nexport const isOptionItem = isSelectItem;\nexport const isSelectableOptionItem = isSelectableItem;\n/**\n * Wraps the provided value in an array, unless it is an array already.\n * If `null` or `undefined` is received, will return an empty array.\n */\nexport function coerceArraySafe(value) {\n return isBlank(value) ? [] : coerceArray(value);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2RvbWFpbi9kYXRhLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBOER4QyxjQUFjO0FBQ2QsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQWdCO0lBQzdDLE9BQU8sQ0FDSCxJQUFJO1FBQ0osSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUztRQUN4QixNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUN6RCxDQUFDO0FBQ04sQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQWdCO0lBQ3pDLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQ3hFLENBQUM7QUFxQkQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUV2RDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFJLEtBQWM7SUFDN0MsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNCbGFuayB9IGZyb20gJy4uL3V0aWxzL2xhbmcnO1xuXG4vKipcbiAqIEludGVyZmFjZSBTZWxlY3RJdGVtIGlzIHVzZWQgdG8gZGVhbCB3aXRoIGNvbXBsZXggb2JqZWN0IGluIG9yZGVyIHRvIGJlIGFibGUgdG8gZm9ybWF0XG4gKiBjdXN0b20gbGFiZWwgdGhhdCBpcyBzaG93biBpbiB0aGUgb3B0aW9ucy5cbiAqXG4gKiBVc2VkIGluIHZhcmlvdXMgY29udHJvbHM6IFNlbGVjdCwgUmFkaW9Hcm91cCwgQ2hlY2tib3hHcm91cCwgQ29tYm9ib3hcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RJdGVtPFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBJdGVtIHRleHQgc2hvd24gaW4gdGhlIHBvcHVwXG4gICAgICovXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZXMgdG8gdGhlIG9iamVjdCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHZhbHVlOiBUO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAgIGljb24/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVHJpZ2dlciB2YWx1ZXMgaXMgYSB0ZXh0IGZvciBzZWxlY3RlZCBpdGVtXG4gICAgICovXG4gICAgdHJpZ2dlclZhbHVlPzogc3RyaW5nO1xuXG4gICAgaXNHcm91cD86IGJvb2xlYW47XG4gICAgc2Vjb25kYXJ5VGV4dD86IHN0cmluZztcbiAgICBjaGlsZHJlbj86IFNlbGVjdEl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBVc2VkIGluIHNldHRpbmdzIGdlbmVyYXRvciBvbmx5LlxuICAgICAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFVzZWQgaW4gc2V0dGluZ3MgZ2VuZXJhdG9yIG9ubHkuXG4gICAgICovXG4gICAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbkl0ZW0ge1xuICAgIC8qKiBJdGVtIHRleHQgKi9cbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlcyB0byB0aGUgb2JqZWN0IGluc3RhbmNlXG4gICAgICovXG4gICAgdmFsdWU6IGFueTtcbiAgICBpZD86IHN0cmluZztcbiAgICBpc0dyb3VwPzogYm9vbGVhbjtcbiAgICBzZWNvbmRhcnlUZXh0Pzogc3RyaW5nO1xuICAgIGNoaWxkcmVuPzogT3B0aW9uSXRlbVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGFibGVPcHRpb25JdGVtIGV4dGVuZHMgT3B0aW9uSXRlbSB7XG4gICAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIGNoaWxkcmVuPzogU2VsZWN0YWJsZU9wdGlvbkl0ZW1bXTtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlbGVjdGFibGVJdGVtKGl0ZW06IFNlbGVjdEl0ZW0pOiBpdGVtIGlzIFNlbGVjdEl0ZW0ge1xuICAgIHJldHVybiAoXG4gICAgICAgIGl0ZW0gJiZcbiAgICAgICAgaXRlbS5sYWJlbCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGl0ZW0udmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbSwgJ3NlbGVjdGVkJylcbiAgICApO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0SXRlbShpdGVtOiBTZWxlY3RJdGVtKTogaXRlbSBpcyBTZWxlY3RJdGVtIHtcbiAgICByZXR1cm4gaXRlbSAmJiBpdGVtLmxhYmVsICE9PSB1bmRlZmluZWQgJiYgaXRlbS52YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpSW5wdXRPcHRpb24ge1xuICAgIC8qKiBJdGVtIHRleHQgKi9cbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlcyB0byB0aGUgb2JqZWN0IGluc3RhbmNlXG4gICAgICovXG4gICAgdmFsdWU6IGFueTtcblxuICAgIC8qKlxuICAgICAqIEl0ZW0gQXZhdGFyXG4gICAgICovXG4gICAgYXZhdGFyU3JjPzogc3RyaW5nO1xuXG4gICAgaXNHcm91cD86IGJvb2xlYW47XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgY2hpbGRyZW4/OiBNdWx0aUlucHV0T3B0aW9uW107XG59XG5cbmV4cG9ydCBjb25zdCBpc09wdGlvbkl0ZW0gPSBpc1NlbGVjdEl0ZW07XG5leHBvcnQgY29uc3QgaXNTZWxlY3RhYmxlT3B0aW9uSXRlbSA9IGlzU2VsZWN0YWJsZUl0ZW07XG5cbi8qKlxuICogV3JhcHMgdGhlIHByb3ZpZGVkIHZhbHVlIGluIGFuIGFycmF5LCB1bmxlc3MgaXQgaXMgYW4gYXJyYXkgYWxyZWFkeS5cbiAqIElmIGBudWxsYCBvciBgdW5kZWZpbmVkYCBpcyByZWNlaXZlZCwgd2lsbCByZXR1cm4gYW4gZW1wdHkgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VBcnJheVNhZmU8VD4odmFsdWU6IFQgfCBUW10pOiBUW10ge1xuICAgIHJldHVybiBpc0JsYW5rKHZhbHVlKSA/IFtdIDogY29lcmNlQXJyYXkodmFsdWUpO1xufVxuIl19","import { BaseDataProvider } from './base-data-provider';\nimport { ComboBoxDataSource, ListDataSource, MultiComboBoxDataSource, MultiInputDataSource } from './data-source';\nexport class ObservableComboBoxDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ObservableMultiComboBoxDataSource extends MultiComboBoxDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ObservableListDataSource extends ListDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ObservableMultiInputDataSource extends MultiInputDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS1kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2RvbWFpbi9vYnNlcnZhYmxlLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEgsTUFBTSxPQUFPLDRCQUFnQyxTQUFRLGtCQUFxQjtJQUN0RSxjQUFjO0lBQ2QsWUFBb0IsSUFBcUI7UUFDckMsS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQURsQixTQUFJLEdBQUosSUFBSSxDQUFpQjtJQUV6QyxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8saUNBQXFDLFNBQVEsdUJBQTBCO0lBQ2hGLGNBQWM7SUFDZCxZQUFvQixJQUFxQjtRQUNyQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRGxCLFNBQUksR0FBSixJQUFJLENBQWlCO0lBRXpDLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyx3QkFBNEIsU0FBUSxjQUFpQjtJQUM5RCxjQUFjO0lBQ2QsWUFBb0IsSUFBcUI7UUFDckMsS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQURsQixTQUFJLEdBQUosSUFBSSxDQUFpQjtJQUV6QyxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sOEJBQWtDLFNBQVEsb0JBQXVCO0lBQzFFLGNBQWM7SUFDZCxZQUFvQixJQUFxQjtRQUNyQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRGxCLFNBQUksR0FBSixJQUFJLENBQWlCO0lBRXpDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgT2JzZXJ2YWJsZSBBcnJheXMuXG4gKi9cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQmFzZURhdGFQcm92aWRlciB9IGZyb20gJy4vYmFzZS1kYXRhLXByb3ZpZGVyJztcbmltcG9ydCB7IENvbWJvQm94RGF0YVNvdXJjZSwgTGlzdERhdGFTb3VyY2UsIE11bHRpQ29tYm9Cb3hEYXRhU291cmNlLCBNdWx0aUlucHV0RGF0YVNvdXJjZSB9IGZyb20gJy4vZGF0YS1zb3VyY2UnO1xuXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZUNvbWJvQm94RGF0YVNvdXJjZTxUPiBleHRlbmRzIENvbWJvQm94RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGE6IE9ic2VydmFibGU8VFtdPikge1xuICAgICAgICBzdXBlcihuZXcgQmFzZURhdGFQcm92aWRlcihkYXRhKSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZU11bHRpQ29tYm9Cb3hEYXRhU291cmNlPFQ+IGV4dGVuZHMgTXVsdGlDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhOiBPYnNlcnZhYmxlPFRbXT4pIHtcbiAgICAgICAgc3VwZXIobmV3IEJhc2VEYXRhUHJvdmlkZXIoZGF0YSkpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9ic2VydmFibGVMaXN0RGF0YVNvdXJjZTxUPiBleHRlbmRzIExpc3REYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YTogT2JzZXJ2YWJsZTxUW10+KSB7XG4gICAgICAgIHN1cGVyKG5ldyBCYXNlRGF0YVByb3ZpZGVyKGRhdGEpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmxlTXVsdGlJbnB1dERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBNdWx0aUlucHV0RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGE6IE9ic2VydmFibGU8VFtdPikge1xuICAgICAgICBzdXBlcihuZXcgQmFzZURhdGFQcm92aWRlcihkYXRhKSk7XG4gICAgfVxufVxuIl19","import { DestroyRef, Directive, ElementRef, InjectionToken, Input, ViewChild, booleanAttribute, inject, isDevMode } from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\nimport { Subject, filter } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL, isValidControlState } from '@fundamental-ngx/cdk/forms';\nimport { BaseComponent } from '../base';\nimport * as i0 from \"@angular/core\";\nexport const FDP_DO_CHECK = new InjectionToken('FdpInputDoCheckTrigger');\nexport const FDP_FORM_SUBMIT = new InjectionToken('FdpFormSubmitTrigger');\nlet randomId = 0;\n/**\n * All form components share the same information (value, name, placeholder,.. ) as well as\n * the same behavior given by ControlValueAccessor.\n *\n * Even this is not ideal solution there is no other way then use inheritance to reuse some of the\n * common logic. It should be possible to use some kind of compositions with Proxies but something\n * similar that exists in Aspect Oriented Programing.\n *\n * Usually try to fire stateChange only for things that can change dynamically in runtime. We don't expect\n * that e.g. placeholder will change after component is created\n */\nexport class BaseInput extends BaseComponent {\n /**\n * The state of the form control - applies css classes.\n * Can be 'success', 'error', 'warning', 'default', 'information'.\n *\n * @default 'default'\n */\n set state(state) {\n if (!state || isValidControlState(state)) {\n this._state = state;\n }\n else if (isDevMode()) {\n console.warn(`Provided value \"${state}\" is not a valid option for FormStates type`);\n }\n }\n get state() {\n if (this._state) {\n return this._state;\n }\n if (!this.controlInvalid) {\n return 'default';\n }\n return this.formField?.getPriorityState() || 'error';\n }\n /** Whether the input is disabled */\n set disabled(value) {\n this.setDisabledState(value);\n }\n get disabled() {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n /**\n * Tell the component if we are in editing mode.\n */\n set editable(value) {\n if (this._editable === value) {\n return;\n }\n this._editable = value;\n this.markForCheck();\n this.stateChanges.next('editable');\n }\n get editable() {\n return this._editable;\n }\n /** Whether control has errors */\n get controlInvalid() {\n return this._controlInvalid;\n }\n /** @hidden */\n constructor() {\n /**\n * We do not use Injector.get() approach here because there is a bug\n * with this signature https://github.com/angular/angular/issues/31776\n * where \"get()\" method doesn't take into account \"flag\" option\"\n *\n */\n super();\n /**\n * To allow user to determine what event he wants to trigger the messages to show\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp).\n */\n this.triggers = [\n {\n trigger: 'focusin',\n openAction: true,\n closeAction: false\n },\n {\n trigger: 'focusout',\n openAction: false,\n closeAction: true\n }\n ];\n /** Form control validation event strategy. */\n this.validationStrategy = ['touched', 'dirty', 'submitted'];\n /**\n * See @FormFieldControl\n */\n this.focused = false;\n /**\n * See @FormFieldControl\n */\n this.stateChanges = new Subject();\n /** @hidden */\n this.formField = null;\n /** @hidden */\n this._doCheck$ = inject(FDP_DO_CHECK, { optional: true });\n /** Element reference. */\n this.elementRef = inject(ElementRef);\n /** NgControl reference. */\n this.ngControl = inject(NgControl, {\n optional: true,\n self: true\n });\n /** Control container reference. */\n this.controlContainer = inject(ControlContainer, {\n optional: true,\n skipSelf: true\n });\n /** Form reference. */\n this.ngForm = inject(NgForm, {\n optional: true,\n skipSelf: true\n });\n /** @hidden */\n this.defaultId = `fdp-input-id-${randomId++}`;\n /** @hidden */\n this._editable = true;\n /** @hidden */\n this._destroyed = inject(DestroyRef);\n /** @hidden */\n this._externalSubmit = inject(FDP_FORM_SUBMIT, { optional: true });\n /** @hidden */\n this._externalFormSubmitted = false;\n /**\n * @hidden\n */\n this._controlInvalid = false;\n /** @hidden */\n this.onChange = () => { };\n /** @hidden */\n this.onTouched = () => { };\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n const formField = inject(FD_FORM_FIELD, {\n optional: true,\n skipSelf: true,\n host: true\n });\n const formControl = inject(FD_FORM_FIELD_CONTROL, {\n optional: true,\n skipSelf: true,\n host: true\n });\n // We have to ignore \"formField\" if there is \"formControl\" wrapper\n this.formField = formField && !formControl ? formField : null;\n this._doCheck$?.pipe(takeUntilDestroyed(this._destroyed)).subscribe(() => {\n this.ngDoCheck();\n });\n this._externalSubmit?.pipe(takeUntilDestroyed(this._destroyed)).subscribe(() => {\n this._externalFormSubmitted = true;\n });\n }\n /** @hidden */\n ngOnInit() {\n if (this.formField) {\n this.formField.registerFormFieldControl(this);\n }\n }\n /**\n * Re-validate and emit event to parent container on every CD cycle as they are some errors\n * that we can't subscribe to.\n */\n ngDoCheck() {\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n /** @hidden */\n ngAfterViewInit() {\n if (this.ngControl) {\n this._subscriptions.add(this.ngControl.statusChanges?.subscribe(() => {\n this.markForCheck();\n }));\n }\n const labelAndHelpId = `fdp-form-label-content-${this.id}`;\n // if not specified, associate label and inline help ids with the input,\n // else add these ids to the specified ones\n if (this.formField) {\n if (!this.ariaLabelledBy) {\n this.ariaLabelledBy = labelAndHelpId;\n }\n else {\n this.ariaLabelledBy += ' ' + labelAndHelpId;\n }\n }\n this.innerErrorsTemplate = this.formField?.innerErrorRenderers;\n this.stateChanges\n .pipe(filter(() => !!this.formField), takeUntilDestroyed(this._destroyed))\n .subscribe(() => {\n this.advancedStateMessage = {\n template: this.formField.innerErrorRenderers,\n hasErrors: this.formField.hasErrors()\n };\n this.detectChanges();\n });\n this.detectChanges();\n }\n /** @hidden */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /** @hidden */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /** @hidden */\n ngOnDestroy() {\n super.ngOnDestroy();\n this.stateChanges.complete();\n if (this.formField) {\n this.formField.unregisterFormFieldControl(this);\n }\n }\n /** @hidden */\n setDisabledState(isDisabled) {\n const newState = booleanAttribute(isDisabled);\n this.markForCheck();\n if (newState !== this._disabled) {\n this._disabled = newState;\n this.stateChanges.next('setDisabledState');\n }\n }\n /**\n * Each sub class must override this method as inheritance does not work\n */\n writeValue(value) {\n this._value = value;\n this.stateChanges.next('writeValue');\n this.markForCheck();\n }\n /**\n *\n * Keeps track of element focus\n */\n _onFocusChanged(isFocused) {\n if (isFocused !== this.focused && (!this.disabled || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next('_onFocusChanged');\n }\n if (!isFocused) {\n this.onTouched();\n }\n }\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n onContainerClick(event) {\n this.focus(event);\n }\n /**\n * In most of the cases when working with input element directly you should be just find to assing\n * variable to this element\n *\n * ```\n * <input #inputElementRef fd-form-control ...>\n * ```\n *\n * and this default behavior used. For other cases implement focus.\n *\n */\n focus(event) {\n if (this._elementRef && !this.focused) {\n this._elementRef.nativeElement.focus(event);\n }\n }\n /**\n * Need re-validates errors on every CD iteration to make sure we are also\n * covering non-control errors, errors that happens outside of this control\n */\n updateErrorState() {\n const parent = this.ngForm;\n const parentControlContainer = this.controlContainer;\n const control = this.ngControl ? this.ngControl.control : null;\n const newStatusIsError = !!(control?.invalid &&\n ((this.validationStrategy.includes('dirty') && control.dirty) ||\n (this.validationStrategy.includes('touched') && control.touched) ||\n (this.validationStrategy.includes('submitted') && parent?.submitted) ||\n parentControlContainer?.submitted ||\n this._externalFormSubmitted));\n if (newStatusIsError !== this.controlInvalid) {\n this._controlInvalid = newStatusIsError;\n this.stateChanges.next('updateErrorState');\n this.markForCheck();\n }\n }\n /**\n * Used to change the value of a control.\n * @param value the value to be applied\n * @param emitOnChange whether to emit \"onChange\" event.\n * Should be \"false\", if the change is made programmatically (internally) by the control, \"true\" otherwise\n */\n setValue(value, emitOnChange = true) {\n if (value !== this._value) {\n this.writeValue(value);\n if (emitOnChange) {\n this.onChange(value);\n }\n this.markForCheck();\n }\n }\n /** @hidden */\n getValue() {\n return this._value;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"20.1.4\", type: BaseInput, isStandalone: true, inputs: { placeholder: \"placeholder\", triggers: \"triggers\", state: \"state\", stateMessage: \"stateMessage\", stateMessageConfig: \"stateMessageConfig\", disabled: \"disabled\", readonly: \"readonly\", editable: [\"editable\", \"editable\", booleanAttribute], validationStrategy: \"validationStrategy\" }, viewQueries: [{ propertyName: \"_elementRef\", first: true, predicate: [\"inputElementRef\"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseInput, decorators: [{\n type: Directive\n }], ctorParameters: () => [], propDecorators: { placeholder: [{\n type: Input\n }], triggers: [{\n type: Input\n }], state: [{\n type: Input\n }], stateMessage: [{\n type: Input\n }], stateMessageConfig: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], editable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], validationStrategy: [{\n type: Input\n }], _elementRef: [{\n type: ViewChild,\n args: ['inputElementRef', { static: true, read: ElementRef }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2Zvcm0vYmFzZS5pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUgsVUFBVSxFQUNWLFNBQVMsRUFFVCxVQUFVLEVBQ1YsY0FBYyxFQUNkLEtBQUssRUFJTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFxQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEcsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUNILGFBQWEsRUFDYixxQkFBcUIsRUFHckIsbUJBQW1CLEVBQ3RCLE1BQU0sNEJBQTRCLENBQUM7QUFHcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFHeEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFtQix3QkFBd0IsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsc0JBQXNCLENBQUMsQ0FBQztBQUU1RixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFFakI7Ozs7Ozs7Ozs7R0FVRztBQUVILE1BQU0sT0FBZ0IsU0FDbEIsU0FBUSxhQUFhO0lBeUJyQjs7Ozs7T0FLRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQTZCO1FBQ25DLElBQUksQ0FBQyxLQUFLLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN4QixDQUFD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QztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLFFBQVEsQ0FBQyxLQUFVLEVBQUUsWUFBWSxHQUFHLElBQUk7UUFDOUMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ0osUUFBUTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDOzhHQWhhaUIsU0FBUztrR0FBVCxTQUFTLHlQQWlGUCxnQkFBZ0Isa0tBb0JnQixVQUFVOzsyRkFyRzVDLFNBQVM7a0JBRDlCLFNBQVM7d0RBT04sV0FBVztzQkFEVixLQUFLO2dCQVFOLFFBQVE7c0JBRFAsS0FBSztnQkFxQkYsS0FBSztzQkFEUixLQUFLO2dCQXNCTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtGLFFBQVE7c0JBRFgsS0FBSztnQkFlTixRQUFRO3NCQURQLEtBQUs7Z0JBT0YsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWV0QyxrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBT0ksV0FBVztzQkFEcEIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgaW5qZWN0LFxuICAgIGlzRGV2TW9kZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBIYXNFbGVtZW50UmVmLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICAgIEZEX0ZPUk1fRklFTEQsXG4gICAgRkRfRk9STV9GSUVMRF9DT05UUk9MLFxuICAgIEZvcm1GaWVsZEFkdmFuY2VkU3RhdGVNZXNzYWdlLFxuICAgIEZvcm1TdGF0ZXMsXG4gICAgaXNWYWxpZENvbnRyb2xTdGF0ZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtSW5wdXRNZXNzYWdlR3JvdXBDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBUcmlnZ2VyQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UnO1xuaW1wb3J0IHsgUGxhdGZvcm1Gb3JtRmllbGQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5cbmV4cG9ydCBjb25zdCBGRFBfRE9fQ0hFQ0sgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTx2b2lkPj4oJ0ZkcElucHV0RG9DaGVja1RyaWdnZXInKTtcbmV4cG9ydCBjb25zdCBGRFBfRk9STV9TVUJNSVQgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTx2b2lkPj4oJ0ZkcEZvcm1TdWJtaXRUcmlnZ2VyJyk7XG5cbmxldCByYW5kb21JZCA9IDA7XG5cbi8qKlxuICogQWxsIGZvcm0gY29tcG9uZW50cyBzaGFyZSB0aGUgc2FtZSBpbmZvcm1hdGlvbiAodmFsdWUsIG5hbWUsIHBsYWNlaG9sZGVyLC4uICkgYXMgd2VsbCBhc1xuICogdGhlIHNhbWUgYmVoYXZpb3IgZ2l2ZW4gYnkgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gKlxuICogRXZlbiB0aGlzIGlzIG5vdCBpZGVhbCBzb2x1dGlvbiB0aGVyZSBpcyBubyBvdGhlciB3YXkgdGhlbiB1c2UgaW5oZXJpdGFuY2UgdG8gcmV1c2Ugc29tZSBvZiB0aGVcbiAqIGNvbW1vbiBsb2dpYy4gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSBzb21lIGtpbmQgb2YgY29tcG9zaXRpb25zIHdpdGggUHJveGllcyBidXQgc29tZXRoaW5nXG4gKiBzaW1pbGFyIHRoYXQgZXhpc3RzIGluIEFzcGVjdCBPcmllbnRlZCBQcm9ncmFtaW5nLlxuICpcbiAqIFVzdWFsbHkgdHJ5IHRvIGZpcmUgc3RhdGVDaGFuZ2Ugb25seSBmb3IgdGhpbmdzIHRoYXQgY2FuIGNoYW5nZSBkeW5hbWljYWxseSBpbiBydW50aW1lLiBXZSBkb24ndCBleHBlY3RcbiAqIHRoYXQgZS5nLiBwbGFjZWhvbGRlciB3aWxsIGNoYW5nZSBhZnRlciBjb21wb25lbnQgaXMgY3JlYXRlZFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlSW5wdXRcbiAgICBleHRlbmRzIEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBIYXNFbGVtZW50UmVmXG57XG4gICAgLyoqIElucHV0IHBsYWNlaG9sZGVyICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVG8gYWxsb3cgdXNlciB0byBkZXRlcm1pbmUgd2hhdCBldmVudCBoZSB3YW50cyB0byB0cmlnZ2VyIHRoZSBtZXNzYWdlcyB0byBzaG93XG4gICAgICogQWNjZXB0cyBhbnkgW0hUTUwgRE9NIEV2ZW50c10oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9kb21fb2JqX2V2ZW50LmFzcCkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0cmlnZ2VyczogKHN0cmluZyB8IFRyaWdnZXJDb25maWcpW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdmb2N1c2luJyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBjbG9zZUFjdGlvbjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHJpZ2dlcjogJ2ZvY3Vzb3V0JyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IGZhbHNlLFxuICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRydWVcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICAvKipcbiAgICAgKiAgVGhlIHN0YXRlIG9mIHRoZSBmb3JtIGNvbnRyb2wgLSBhcHBsaWVzIGNzcyBjbGFzc2VzLlxuICAgICAqICBDYW4gYmUgJ3N1Y2Nlc3MnLCAnZXJyb3InLCAnd2FybmluZycsICdkZWZhdWx0JywgJ2luZm9ybWF0aW9uJy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlKHN0YXRlOiBGb3JtU3RhdGVzIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghc3RhdGUgfHwgaXNWYWxpZENvbnRyb2xTdGF0ZShzdGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlID0gc3RhdGU7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgUHJvdmlkZWQgdmFsdWUgXCIke3N0YXRlfVwiIGlzIG5vdCBhIHZhbGlkIG9wdGlvbiBmb3IgRm9ybVN0YXRlcyB0eXBlYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5fc3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sSW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuICdkZWZhdWx0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1GaWVsZD8uZ2V0UHJpb3JpdHlTdGF0ZSgpIHx8ICdlcnJvcic7XG4gICAgfVxuXG4gICAgLyoqIEhvbGRzIHRoZSBtZXNzYWdlIHdpdGggcmVzcGVjdCB0byBzdGF0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEFkdmFuY2VkIGZvcm0gbWVzc2FnZSBjb25maWd1cmF0aW9uLiBVc2VkIGZvciBjb21wb25lbnRzIHRoYXQgY2FuIHJlbmRlciBmb3JtIG1lc3NhZ2VzIGluIGl0cyB0ZW1wbGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlTWVzc2FnZUNvbmZpZzogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZGlzYWJsZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sLmRpc2FibGVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZWFkT25seSBWYWx1ZSB0byBNYXJrIGNvbXBvbmVudCByZWFkIG9ubHlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGVsbCB0aGUgY29tcG9uZW50IGlmIHdlIGFyZSBpbiBlZGl0aW5nIG1vZGUuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IGVkaXRhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLl9lZGl0YWJsZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lZGl0YWJsZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCdlZGl0YWJsZScpO1xuICAgIH1cbiAgICBnZXQgZWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0YWJsZTtcbiAgICB9XG5cbiAgICAvKiogRm9ybSBjb250cm9sIHZhbGlkYXRpb24gZXZlbnQgc3RyYXRlZ3kuICovXG4gICAgQElucHV0KClcbiAgICB2YWxpZGF0aW9uU3RyYXRlZ3k6ICgndG91Y2hlZCcgfCAnZGlydHknIHwgJ3N1Ym1pdHRlZCcpW10gPSBbJ3RvdWNoZWQnLCAnZGlydHknLCAnc3VibWl0dGVkJ107XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gaW50ZXJuYWwgSW5wdXQgZWxlbWVudFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudFJlZicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogbmVlZCB0byBtYWtlICB0aGVzZSB2YWx1ZSBhY2Nlc3NvciBhcyBhYnN0cmFjdCB0byBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLiBIYXZpbmcgdGhlbVxuICAgICAqIGluIHN1cGVyY2xhc3MgaGF2ZSBpc3N1ZSBnZXR0aW5nIHJlZmVyZW5jZSB0byB0aGVtIHdpdGggT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvblxuICAgICAqIHdoaWNoIHdlIG5lZWQgdG8gcHJvZ3JhbW1hdGljYWxseSB3cmFwcyBjb21wb25lbnRzIHNldC9nZXQgdmFsdWVcbiAgICAgKlxuICAgICAqL1xuICAgIGFic3RyYWN0IGdldCB2YWx1ZSgpOiBhbnk7XG5cbiAgICBhYnN0cmFjdCBzZXQgdmFsdWUodmFsdWU6IGFueSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZvcm1NZXNzYWdlOiBGb3JtSW5wdXRNZXNzYWdlR3JvdXBDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBTZWUgQEZvcm1GaWVsZENvbnRyb2xcbiAgICAgKi9cbiAgICBmb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKiogc2V0IHdoZW4gaW5wdXQgZmllbGQgaXMgbWFuZGF0b3J5IGZvcm0gZmllbGQgKi9cbiAgICByZXF1aXJlZDogYm9vbGVhbjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaW5uZXJFcnJvcnNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogV2hldGhlciBjb250cm9sIGhhcyBlcnJvcnMgKi9cbiAgICBnZXQgY29udHJvbEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250cm9sSW52YWxpZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFkdmFuY2VkU3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxGb3JtRmllbGRBZHZhbmNlZFN0YXRlTWVzc2FnZT47XG5cbiAgICAvKipcbiAgICAgKiBTZWUgQEZvcm1GaWVsZENvbnRyb2xcbiAgICAgKi9cbiAgICByZWFkb25seSBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZG9DaGVjayQgPSBpbmplY3QoRkRQX0RPX0NIRUNLLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqIEVsZW1lbnQgcmVmZXJlbmNlLiAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogTmdDb250cm9sIHJlZmVyZW5jZS4gKi9cbiAgICByZWFkb25seSBuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBzZWxmOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogQ29udHJvbCBjb250YWluZXIgcmVmZXJlbmNlLiAqL1xuICAgIHJlYWRvbmx5IGNvbnRyb2xDb250YWluZXIgPSBpbmplY3QoQ29udHJvbENvbnRhaW5lciwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgc2tpcFNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBGb3JtIHJlZmVyZW5jZS4gKi9cbiAgICByZWFkb25seSBuZ0Zvcm0gPSBpbmplY3QoTmdGb3JtLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBza2lwU2VsZjogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRoZSBzdGF0ZSBvZiB0aGUgZm9ybSBjb250cm9sIC0gYXBwbGllcyBjc3MgY2xhc3Nlcy5cbiAgICAgKiBDYW4gYmUgYHN1Y2Nlc3NgLCBgZXJyb3JgLCBgd2FybmluZ2AsIGBpbmZvcm1hdGlvbmAgb3IgJ2RlZmF1bHQnXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9zdGF0ZTogRm9ybVN0YXRlcyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRJZCA9IGBmZHAtaW5wdXQtaWQtJHtyYW5kb21JZCsrfWA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfdmFsdWU6IGFueTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZWRpdGFibGUgPSB0cnVlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9kZXN0cm95ZWQgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V4dGVybmFsU3VibWl0ID0gaW5qZWN0KEZEUF9GT1JNX1NVQk1JVCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZXh0ZXJuYWxGb3JtU3VibWl0dGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY29udHJvbEludmFsaWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXZSBkbyBub3QgdXNlIEluamVjdG9yLmdldCgpIGFwcHJvYWNoIGhlcmUgYmVjYXVzZSB0aGVyZSBpcyBhIGJ1Z1xuICAgICAgICAgKiB3aXRoIHRoaXMgc2lnbmF0dXJlIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzMxNzc2XG4gICAgICAgICAqIHdoZXJlIFwiZ2V0KClcIiBtZXRob2QgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCBcImZsYWdcIiBvcHRpb25cIlxuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9ybUZpZWxkID0gaW5qZWN0PFBsYXRmb3JtRm9ybUZpZWxkPihGRF9GT1JNX0ZJRUxELCB7XG4gICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICAgICAgaG9zdDogdHJ1ZVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IGluamVjdDxQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2w+KEZEX0ZPUk1fRklFTERfQ09OVFJPTCwge1xuICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgICAgICBza2lwU2VsZjogdHJ1ZSxcbiAgICAgICAgICAgIGhvc3Q6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gV2UgaGF2ZSB0byBpZ25vcmUgXCJmb3JtRmllbGRcIiBpZiB0aGVyZSBpcyBcImZvcm1Db250cm9sXCIgd3JhcHBlclxuICAgICAgICB0aGlzLmZvcm1GaWVsZCA9IGZvcm1GaWVsZCAmJiAhZm9ybUNvbnRyb2wgPyBmb3JtRmllbGQgOiBudWxsO1xuXG4gICAgICAgIHRoaXMuX2RvQ2hlY2skPy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZ0RvQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2V4dGVybmFsU3VibWl0Py5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZXh0ZXJuYWxGb3JtU3VibWl0dGVkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb3JtRmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUZpZWxkLnJlZ2lzdGVyRm9ybUZpZWxkQ29udHJvbCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlLXZhbGlkYXRlIGFuZCBlbWl0IGV2ZW50IHRvIHBhcmVudCBjb250YWluZXIgb24gZXZlcnkgQ0QgY3ljbGUgYXMgdGhleSBhcmUgc29tZSBlcnJvcnNcbiAgICAgKiB0aGF0IHdlIGNhbid0IHN1YnNjcmliZSB0by5cbiAgICAgKi9cbiAgICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgICAgICB0aGlzLm5nQ29udHJvbC5zdGF0dXNDaGFuZ2VzPy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbGFiZWxBbmRIZWxwSWQgPSBgZmRwLWZvcm0tbGFiZWwtY29udGVudC0ke3RoaXMuaWR9YDtcbiAgICAgICAgLy8gaWYgbm90IHNwZWNpZmllZCwgYXNzb2NpYXRlIGxhYmVsIGFuZCBpbmxpbmUgaGVscCBpZHMgd2l0aCB0aGUgaW5wdXQsXG4gICAgICAgIC8vIGVsc2UgYWRkIHRoZXNlIGlkcyB0byB0aGUgc3BlY2lmaWVkIG9uZXNcbiAgICAgICAgaWYgKHRoaXMuZm9ybUZpZWxkKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYXJpYUxhYmVsbGVkQnkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ID0gbGFiZWxBbmRIZWxwSWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYXJpYUxhYmVsbGVkQnkgKz0gJyAnICsgbGFiZWxBbmRIZWxwSWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlubmVyRXJyb3JzVGVtcGxhdGUgPSB0aGlzLmZvcm1GaWVsZD8uaW5uZXJFcnJvclJlbmRlcmVycztcblxuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICEhdGhpcy5mb3JtRmllbGQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95ZWQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkdmFuY2VkU3RhdGVNZXNzYWdlID0ge1xuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy5mb3JtRmllbGQhLmlubmVyRXJyb3JSZW5kZXJlcnMsXG4gICAgICAgICAgICAgICAgICAgIGhhc0Vycm9yczogdGhpcy5mb3JtRmllbGQhLmhhc0Vycm9ycygpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgICAgIGlmICh0aGlzLmZvcm1GaWVsZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtRmllbGQudW5yZWdpc3RlckZvcm1GaWVsZENvbnRyb2wodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogQm9vbGVhbklucHV0KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0gYm9vbGVhbkF0dHJpYnV0ZShpc0Rpc2FibGVkKTtcbiAgICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgaWYgKG5ld1N0YXRlICE9PSB0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdTdGF0ZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3NldERpc2FibGVkU3RhdGUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVhY2ggc3ViIGNsYXNzIG11c3Qgb3ZlcnJpZGUgdGhpcyBtZXRob2QgYXMgaW5oZXJpdGFuY2UgZG9lcyBub3Qgd29ya1xuICAgICAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCd3cml0ZVZhbHVlJyk7XG4gICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBLZWVwcyB0cmFjayBvZiBlbGVtZW50IGZvY3VzXG4gICAgICovXG4gICAgX29uRm9jdXNDaGFuZ2VkKGlzRm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoaXNGb2N1c2VkICE9PSB0aGlzLmZvY3VzZWQgJiYgKCF0aGlzLmRpc2FibGVkIHx8ICFpc0ZvY3VzZWQpKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWQgPSBpc0ZvY3VzZWQ7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCdfb25Gb2N1c0NoYW5nZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyBldmVuIHdoZW4gd2UgY2xpY2sgb24gcGFyZW50IGNvbnRhaW5lciB3aGljaCBpcyB0aGUgRm9ybUZpZWxkIFdyYXBwaW5nIHRoaXNcbiAgICAgKiBjb250cm9sXG4gICAgICovXG4gICAgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbiBtb3N0IG9mIHRoZSBjYXNlcyB3aGVuIHdvcmtpbmcgd2l0aCBpbnB1dCBlbGVtZW50IGRpcmVjdGx5IHlvdSBzaG91bGQgYmUganVzdCBmaW5kIHRvIGFzc2luZ1xuICAgICAqIHZhcmlhYmxlIHRvIHRoaXMgZWxlbWVudFxuICAgICAqXG4gICAgICogYGBgXG4gICAgICogPGlucHV0ICNpbnB1dEVsZW1lbnRSZWYgZmQtZm9ybS1jb250cm9sIC4uLj5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIGFuZCB0aGlzIGRlZmF1bHQgYmVoYXZpb3IgdXNlZC4gRm9yIG90aGVyIGNhc2VzIGltcGxlbWVudCBmb2N1cy5cbiAgICAgKlxuICAgICAqL1xuICAgIGZvY3VzKGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZWxlbWVudFJlZiAmJiAhdGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIE5lZWQgcmUtdmFsaWRhdGVzIGVycm9ycyBvbiBldmVyeSBDRCBpdGVyYXRpb24gdG8gbWFrZSBzdXJlIHdlIGFyZSBhbHNvXG4gICAgICogIGNvdmVyaW5nIG5vbi1jb250cm9sIGVycm9ycywgZXJyb3JzIHRoYXQgaGFwcGVucyBvdXRzaWRlIG9mIHRoaXMgY29udHJvbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCB1cGRhdGVFcnJvclN0YXRlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLm5nRm9ybTtcbiAgICAgICAgY29uc3QgcGFyZW50Q29udHJvbENvbnRhaW5lciA9IHRoaXMuY29udHJvbENvbnRhaW5lcjtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMubmdDb250cm9sID8gKHRoaXMubmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2wpIDogbnVsbDtcbiAgICAgICAgY29uc3QgbmV3U3RhdHVzSXNFcnJvciA9ICEhKFxuICAgICAgICAgICAgY29udHJvbD8uaW52YWxpZCAmJlxuICAgICAgICAgICAgKCh0aGlzLnZhbGlkYXRpb25TdHJhdGVneS5pbmNsdWRlcygnZGlydHknKSAmJiBjb250cm9sLmRpcnR5KSB8fFxuICAgICAgICAgICAgICAgICh0aGlzLnZhbGlkYXRpb25TdHJhdGVneS5pbmNsdWRlcygndG91Y2hlZCcpICYmIGNvbnRyb2wudG91Y2hlZCkgfHxcbiAgICAgICAgICAgICAgICAodGhpcy52YWxpZGF0aW9uU3RyYXRlZ3kuaW5jbHVkZXMoJ3N1Ym1pdHRlZCcpICYmIHBhcmVudD8uc3VibWl0dGVkKSB8fFxuICAgICAgICAgICAgICAgIChwYXJlbnRDb250cm9sQ29udGFpbmVyIGFzIGFueSk/LnN1Ym1pdHRlZCB8fFxuICAgICAgICAgICAgICAgIHRoaXMuX2V4dGVybmFsRm9ybVN1Ym1pdHRlZClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAobmV3U3RhdHVzSXNFcnJvciAhPT0gdGhpcy5jb250cm9sSW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fY29udHJvbEludmFsaWQgPSBuZXdTdGF0dXNJc0Vycm9yO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgndXBkYXRlRXJyb3JTdGF0ZScpO1xuICAgICAgICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVzZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiBhIGNvbnRyb2wuXG4gICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBiZSBhcHBsaWVkXG4gICAgICogQHBhcmFtIGVtaXRPbkNoYW5nZSB3aGV0aGVyIHRvIGVtaXQgXCJvbkNoYW5nZVwiIGV2ZW50LlxuICAgICAqIFNob3VsZCBiZSBcImZhbHNlXCIsIGlmIHRoZSBjaGFuZ2UgaXMgbWFkZSBwcm9ncmFtbWF0aWNhbGx5IChpbnRlcm5hbGx5KSBieSB0aGUgY29udHJvbCwgXCJ0cnVlXCIgb3RoZXJ3aXNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNldFZhbHVlKHZhbHVlOiBhbnksIGVtaXRPbkNoYW5nZSA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIGlmIChlbWl0T25DaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBnZXRWYWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxufVxuIl19","import { Directive, Input } from '@angular/core';\nimport { isSelectItem } from '../domain/data-model';\nimport { isFunction, isJsObject, isString } from '../utils/lang';\nimport { BaseInput } from './base.input';\nimport * as i0 from \"@angular/core\";\n/**\n * Defines specific behavior for Input controls which deals with list of values including:\n * - Select\n * - RadioGroup\n * - CheckboxGroup\n * - ComboBox\n * ...\n *\n */\nexport class CollectionBaseInput extends BaseInput {\n /**\n * List of values, it can be of type SelectItem, string or any object.\n * Generic object type is among the list of types,\n * because we allow to get labels and values using `displayKey` and `lookupKey` inputs accordingly.\n */\n set list(value) {\n this._list = value;\n }\n get list() {\n return this._list;\n }\n /** @hidden */\n lookupValue(item) {\n if (isSelectItem(item)) {\n return this.lookupKey && item && item.value ? item.value[this.lookupKey] : item.value;\n }\n else {\n return this.lookupKey && item ? item[this.lookupKey] : item;\n }\n }\n /** @hidden */\n displayValue(item) {\n if (isSelectItem(item)) {\n return item.label;\n }\n else if (isJsObject(item) && this.displayKey) {\n const currentItem = this.objectGet(item, this.displayKey);\n return isFunction(currentItem) ? currentItem() : currentItem;\n }\n else {\n return item;\n }\n }\n /** @hidden */\n objectGet(obj, is) {\n if (!isJsObject(obj)) {\n return obj;\n }\n else if (isString(is)) {\n return this.objectGet(obj, is.split('.'));\n }\n else if (!is?.length) {\n return obj;\n }\n else {\n return this.objectGet(obj[is[0]], is.slice(1));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CollectionBaseInput, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: CollectionBaseInput, isStandalone: true, inputs: { list: \"list\", lookupKey: \"lookupKey\", displayKey: \"displayKey\" }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CollectionBaseInput, decorators: [{\n type: Directive\n }], propDecorators: { list: [{\n type: Input\n }], lookupKey: [{\n type: Input\n }], displayKey: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1iYXNlLmlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zaGFyZWQvZm9ybS9jb2xsZWN0aW9uLWJhc2UuaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUV6Qzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsU0FBUztJQUN2RDs7OztPQUlHO0lBQ0gsSUFDSSxJQUFJLENBQUMsS0FBMEM7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBcUJELGNBQWM7SUFDUCxXQUFXLENBQUMsSUFBUztRQUN4QixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDMUYsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEUsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ1AsWUFBWSxDQUFDLElBQVM7UUFDekIsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQzthQUFNLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFMUQsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDakUsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDUCxTQUFTLENBQUMsR0FBUSxFQUFFLEVBQWlDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7YUFBTSxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0wsQ0FBQzs4R0FsRWlCLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUR4QyxTQUFTOzhCQVFGLElBQUk7c0JBRFAsS0FBSztnQkFhTixTQUFTO3NCQURSLEtBQUs7Z0JBVU4sVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTZWxlY3RJdGVtLCBpc1NlbGVjdEl0ZW0gfSBmcm9tICcuLi9kb21haW4vZGF0YS1tb2RlbCc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc0pzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gJy4uL3V0aWxzL2xhbmcnO1xuaW1wb3J0IHsgQmFzZUlucHV0IH0gZnJvbSAnLi9iYXNlLmlucHV0JztcblxuLyoqXG4gKiBEZWZpbmVzIHNwZWNpZmljIGJlaGF2aW9yIGZvciBJbnB1dCBjb250cm9scyB3aGljaCBkZWFscyB3aXRoIGxpc3Qgb2YgdmFsdWVzIGluY2x1ZGluZzpcbiAqICAtIFNlbGVjdFxuICogIC0gUmFkaW9Hcm91cFxuICogIC0gQ2hlY2tib3hHcm91cFxuICogIC0gQ29tYm9Cb3hcbiAqICAuLi5cbiAqXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbGxlY3Rpb25CYXNlSW5wdXQgZXh0ZW5kcyBCYXNlSW5wdXQge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgdmFsdWVzLCBpdCBjYW4gYmUgb2YgdHlwZSBTZWxlY3RJdGVtLCBzdHJpbmcgb3IgYW55IG9iamVjdC5cbiAgICAgKiBHZW5lcmljIG9iamVjdCB0eXBlIGlzIGFtb25nIHRoZSBsaXN0IG9mIHR5cGVzLFxuICAgICAqIGJlY2F1c2Ugd2UgYWxsb3cgdG8gZ2V0IGxhYmVscyBhbmQgdmFsdWVzIHVzaW5nIGBkaXNwbGF5S2V5YCBhbmQgYGxvb2t1cEtleWAgaW5wdXRzIGFjY29yZGluZ2x5LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpc3QodmFsdWU6IEFycmF5PFNlbGVjdEl0ZW0gfCBzdHJpbmcgfCBvYmplY3Q+KSB7XG4gICAgICAgIHRoaXMuX2xpc3QgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGxpc3QoKTogQXJyYXk8U2VsZWN0SXRlbSB8IHN0cmluZyB8IG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGlzdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGluIGZpbHRlcnMgYW5kIGFueSBraW5kIG9mIGNvbXBhcmF0b3JzIHdoZW4gd2Ugd29yayB3aXRoIG9iamVjdHMgYW5kIHRoaXMgaWRlbnRpZnlcbiAgICAgKiB1bmlxdWUgZmllbGQgbmFtZSBiYXNlZCBvbiB3aGljaCB3ZSBhcmUgZ29pbmcgdG8gZG8gdGhlIGpvYlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbG9va3VwS2V5OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHdlIGRlYWwgd2l0aCB1bmtub3duIG9iamVjdCB3ZSBjYW4gdXNlIGBkaXNwbGF5S2V5YCB0byByZXRyaWV2ZSB2YWx1ZSBmcm9tIHNwZWNpZmljXG4gICAgICogcHJvcGVydHkgb2YgdGhlIG9iamVjdCB0byBhY3QgYXMgZGlzcGxheSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBTZWUgQ29tYm9Cb3gsIFNlbGVjdCwgUmFkaW9Hcm91cCwgQ2hlY2tCb3ggR3JvdXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlLZXk6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdDogQXJyYXk8U2VsZWN0SXRlbSB8IHN0cmluZyB8IG9iamVjdD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBsb29rdXBWYWx1ZShpdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoaXNTZWxlY3RJdGVtKGl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb29rdXBLZXkgJiYgaXRlbSAmJiBpdGVtLnZhbHVlID8gaXRlbS52YWx1ZVt0aGlzLmxvb2t1cEtleV0gOiBpdGVtLnZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9va3VwS2V5ICYmIGl0ZW0gPyBpdGVtW3RoaXMubG9va3VwS2V5XSA6IGl0ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBkaXNwbGF5VmFsdWUoaXRlbTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGlzU2VsZWN0SXRlbShpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubGFiZWw7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNKc09iamVjdChpdGVtKSAmJiB0aGlzLmRpc3BsYXlLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5vYmplY3RHZXQoaXRlbSwgdGhpcy5kaXNwbGF5S2V5KTtcblxuICAgICAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24oY3VycmVudEl0ZW0pID8gY3VycmVudEl0ZW0oKSA6IGN1cnJlbnRJdGVtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBvYmplY3RHZXQob2JqOiBhbnksIGlzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCk6IGFueSB7XG4gICAgICAgIGlmICghaXNKc09iamVjdChvYmopKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0R2V0KG9iaiwgaXMuc3BsaXQoJy4nKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RHZXQob2JqW2lzWzBdXSwgaXMuc2xpY2UoMSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19","import { FormField } from '@fundamental-ngx/cdk/forms';\n/**\n * FormField base class.\n *\n * This class is used to create form field components.\n *\n */\nexport class PlatformFormField extends FormField {\n}\nexport class FormFieldGroup {\n}\nexport class PlatformFormFieldControl {\n}\n/**\n * FormGroup base class.\n *\n * This class is used to create form group components.\n *\n */\nexport class FormGroupContainer {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2Zvcm0vZm9ybS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLDRCQUE0QixDQUFDO0FBU3pFOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxTQUFTO0NBd0V4RDtBQUVELE1BQU0sT0FBZ0IsY0FBYztDQXdCbkM7QUFJRCxNQUFNLE9BQWdCLHdCQUF3QjtDQWlGN0M7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBZ0Isa0JBQWtCO0NBOER2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkLCBGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZvcm1JbnB1dE1lc3NhZ2VHcm91cENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IFRyaWdnZXJDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQgeyBGb3JtRXJyb3IsIEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlQ29udGV4dCB9IGZyb20gJy4vZm9ybS1lcnJvcic7XG5pbXBvcnQgeyBDb2x1bW4sIENvbHVtbkxheW91dCB9IGZyb20gJy4vZm9ybS1vcHRpb25zJztcblxuLyoqXG4gKiBGb3JtRmllbGQgYmFzZSBjbGFzcy5cbiAqXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gY3JlYXRlIGZvcm0gZmllbGQgY29tcG9uZW50cy5cbiAqXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbGF0Zm9ybUZvcm1GaWVsZCBleHRlbmRzIEZvcm1GaWVsZCB7XG4gICAgLyoqXG4gICAgICogRm9ybSBmaWVsZCBpZFxuICAgICAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogUmFuayBpcyB1c2VkIGZvciBvcmRlcmluZy5cbiAgICAgKiBUaGFuIGxvd2VyIG51bWJlciB0aGVuIGhpZ2hlciBwcmlvcml0eVxuICAgICAqL1xuICAgIHJhbms6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBGb3JtIGZpZWxkIHRlbXBsYXRlIHJlZmVyZW5jZVxuICAgICAqL1xuICAgIHJlbmRlcmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIEZvcm0gZmllbGQgY3VzdG9tIHdpZHRoIGluIGNvbHVtbnMgbXVzdCBiZSBiZXR3ZWVuIDEgLSAxMlxuICAgICAqL1xuICAgIGNvbHVtbnM6IENvbHVtbjtcbiAgICAvKipcbiAgICAgKiBEZWZpbmUgZm9ybSBmaWVsZCBjb2x1bW4gYmVsb25nc1xuICAgICAqL1xuICAgIGNvbHVtbjogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0aW9ucyB0ZW1wbGF0ZSByZWZlcmVuY2VcbiAgICAgKi9cbiAgICBpMThTdHJpbmdzOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyBpZiBmaWVsZCBpcyBlZGl0YWJsZVxuICAgICAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGVuIGZvcm0gZmllbGQgbGFiZWwgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBub0xhYmVsTGF5b3V0OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQSByZWZlcmVuY2UgdG8gdGhlIHVuZGVybHlpbmcgRm9ybUZpZWxkQ29udHJvbC5cbiAgICAgKi9cbiAgICBjb250cm9sOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wgfCBudWxsO1xuICAgIC8qKlxuICAgICAqIFNldCB3aGVuIGZvcm0gZmllbGQgaXMgYSBtYW5kYXRvcnkgb25lLlxuICAgICAqL1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIC8qKiBGb3JtIGZpZWxkIGxhYmVsICovXG4gICAgbGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKiogRm9ybSBmaWVsZHMncyBncm91cC4gKi9cbiAgICBmb3JtRmllbGRHcm91cDogTnVsbGFibGU8Rm9ybUZpZWxkR3JvdXA+O1xuXG4gICAgLyoqIEZybSBmaWVsZCdzIEZvcm0gQ29udGFpbmVyLiAqL1xuICAgIGZvcm1Hcm91cENvbnRhaW5lcjogTnVsbGFibGU8Rm9ybUdyb3VwQ29udGFpbmVyPjtcblxuICAgIC8qKiBHcm91cGVkIGVycm9ycy4gKi9cbiAgICBncm91cGVkRXJyb3JzOiBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZUNvbnRleHRbXTtcblxuICAgIC8qKiBDb21iaW5lZCBFcnJvciBkaXJlY3RpdmVzLiAqL1xuICAgIGVycm9yRGlyZWN0aXZlczogRm9ybUVycm9yW107XG5cbiAgICAvKiogRm9ybSBjb250cm9sICovXG4gICAgbmdDb250cm9sPzogTmdDb250cm9sO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb3JtQ29udHJvbD86IEZvcm1Db250cm9sO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBlcnJvcnMgYmVpbmcgY2hhbmdlZC4gKi9cbiAgICBlcnJvcnNDaGFuZ2UkOiBTdWJqZWN0PHZvaWQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBpbm5lckVycm9yUmVuZGVyZXJzPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBXaGV0aGVyIGZvcm0gZmllbGQgaGFzIHZhbGlkYXRpb24gZXJyb3JzLiAqL1xuICAgIGhhc0Vycm9yczogKCkgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvcm1GaWVsZEdyb3VwIHtcbiAgICAvKiogR3JvdXAgaGVhZGVyKi9cbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIEdyb3VwJ3MgZm9ybSBuYW1lICovXG4gICAgZm9ybU5hbWU6IHN0cmluZztcblxuICAgIC8qKiBHcm91cCBmaWVsZHMgKi9cbiAgICBmaWVsZHM6IFF1ZXJ5TGlzdDxQbGF0Zm9ybUZvcm1GaWVsZD47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGxhYmVsJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBsYWJlbENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBmaWVsZCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgZmllbGRDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZ2FwIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgZ2FwQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQ7XG59XG5cbmV4cG9ydCB0eXBlIEZkcEZvcm1GaWVsZENvbnRyb2w8VCA9IGFueT4gPSBGb3JtRmllbGRDb250cm9sPFQ+O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sPFQgPSBhbnk+IGltcGxlbWVudHMgRm9ybUZpZWxkQ29udHJvbDxUPiB7XG4gICAgLyoqXG4gICAgICogVG8gYWxsb3cgdXNlciB0byBkZXRlcm1pbmUgd2hhdCBldmVudCBoZSB3YW50cyB0byB0cmlnZ2VyIHRoZSBtZXNzYWdlcyB0byBzaG93XG4gICAgICogQWNjZXB0cyBhbnkgW0hUTUwgRE9NIEV2ZW50c10oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9kb21fb2JqX2V2ZW50LmFzcCkuXG4gICAgICovXG4gICAgYWJzdHJhY3QgdHJpZ2dlcnM6IChzdHJpbmcgfCBUcmlnZ2VyQ29uZmlnKVtdO1xuXG4gICAgLyoqIFN0YXRlIG1lc3NhZ2UgY29uZmlndXJhdGlvbi4gVXNlZCBmb3IgY29tcG9uZW50cyB0aGF0IGNhbiByZW5kZXIgZm9ybSBtZXNzYWdlIGluc2lkZSBpdHMgdGVtcGxhdGUuICovXG4gICAgYWJzdHJhY3Qgc3RhdGVNZXNzYWdlQ29uZmlnOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKiBNZXRob2QgZm9yIGZvY3VzaW5nIG9uIHRoZSBlbGVtZW50ICovXG4gICAgYWJzdHJhY3QgZm9jdXMoZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgZXZlbiB3aGVuIHdlIGNsaWNrIG9uIHBhcmVudCBjb250YWluZXIgd2hpY2ggaXMgdGhlIEZvcm1GaWVsZCBXcmFwcGluZyB0aGlzXG4gICAgICogY29udHJvbFxuICAgICAqL1xuICAgIGFic3RyYWN0IG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb3JtTWVzc2FnZTogTnVsbGFibGU8Rm9ybUlucHV0TWVzc2FnZUdyb3VwQ29tcG9uZW50PjtcblxuICAgIC8qKlxuICAgICAqIEVhY2ggaW5wdXQgY29udHJvbCBoYXMgYWx3YXlzIGEgdmFsdWUuIE5lZWQgdG8gbWFrZSBzdXJlIHdlIGtlZXAgYSBjb252ZW50aW9uIGZvclxuICAgICAqIGlucHV0IGZpZWxkc1xuICAgICAqL1xuICAgIHZhbHVlOiBUIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE5lZWQgdG8gaGF2ZSBhIHdheSB0byBzZXQgcGxhY2Vob2xkZXIgdG8gdGhlIGlucHV0XG4gICAgICovXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE5lZWQgdG8gaGF2ZSBhIHdheSB0byBzZXQgTWFuZGF0b3J5IHRvIHRoZSBpbnB1dCBmaWVsZFxuICAgICAqL1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyBpZCBmcm9tIEZGIHRvIElucHV0XG4gICAgICovXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoaXMgc2hvdWxkIGJlIGNvbWluZyBmcm9tIFBhcmVudC5cbiAgICAgKi9cbiAgICBlZGl0YWJsZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBoZWlnaHQgb2YgdGhlIGV4dHJhIGNvbnRlbnQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZm9ybSBjb250cm9sLFxuICAgICAqIHdoaWNoIHNob3VsZCBub3QgYWZmZWN0IHRoZSBhbGlnbm1lbnQgb2YgZm9ybSBjb250cm9sIGFuZCBpdCdzIGxhYmVsXG4gICAgICovXG4gICAgZXh0cmFDb250ZW50SGVpZ2h0UHg/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEZvcm0gRmllbGQgbGlzdGVuIGZvciBhbGwgdGhlIGNoYW5nZXMgaGFwcGVuaW5nIGluc2lkZSB0aGUgaW5wdXRcbiAgICAgKi9cbiAgICByZWFkb25seSBzdGF0ZUNoYW5nZXM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiAgRWFjaCBpbnB1dCBzaG91bGQgaW5qZWN0IGl0cyBvd24gbmdDb250cm9sIGFuZCB3ZSBzaG91bGQgcmV0cmlldmUgaXRcbiAgICAgKi9cbiAgICByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGw7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29udHJvbCBpcyBkaXNhYmxlZC4gKi9cbiAgICByZWFkb25seSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEtlZXBzIHRyYWNrIGlmIHRoZSBmb3JtIGVsZW1lbnQgaXMgaW4gZm9jdXNcbiAgICAgKi9cbiAgICByZWFkb25seSBmb2N1c2VkOiBib29sZWFuO1xuXG4gICAgLyoqIFdoZXRoZXIgY29udHJvbCBoYXMgZXJyb3JzICovXG4gICAgcmVhZG9ubHkgY29udHJvbEludmFsaWQ6IGJvb2xlYW47XG5cbiAgICAvKiogQ29ycmVzcG9uZGluZyBlbGVtZW50IHJlZmVyZW5jZS4gKi9cbiAgICByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEZvcm0gZmllbGQgaW5zdGFuY2UuICovXG4gICAgZm9ybUZpZWxkOiBOdWxsYWJsZTxQbGF0Zm9ybUZvcm1GaWVsZD47XG59XG5cbi8qKlxuICogRm9ybUdyb3VwIGJhc2UgY2xhc3MuXG4gKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIGNyZWF0ZSBmb3JtIGdyb3VwIGNvbXBvbmVudHMuXG4gKlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9ybUdyb3VwQ29udGFpbmVyIHtcbiAgICAvKipcbiAgICAgKiBBbmd1bGFyIEZvcm1Hcm91cCB3aGVyZSBhbGwgdW5kZXJseWluZyBjb250cm9scyB3aWxsIGJlIGF0dGFjaGVkIHRvLlxuICAgICAqL1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0aW9ucyB0ZW1wbGF0ZSByZWZlcmVuY2UuXG4gICAgICovXG4gICAgaTE4U3RyaW5nczogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgd2hlbiBmb3JtIGlzIGVkaXRhYmxlLlxuICAgICAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGVuIGxhYmVscyBzaG91bGQgbm90IGJlIGRpc3BsYXllZC5cbiAgICAgKi9cbiAgICBub0xhYmVsTGF5b3V0OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBsYWJlbCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgbGFiZWxDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZmllbGQncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGZpZWxkQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGdhcCBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGdhcENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRm9ybSdzIG1haW4gdGl0bGUuXG4gICAgICovXG4gICAgbWFpblRpdGxlPzogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEF0dGFjaCB1bmRlcmx5aW5nIGZvcm0gZmllbGQuXG4gICAgICovXG4gICAgYWRkRm9ybUZpZWxkOiAoZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBEZXRhY2ggdW5kZXJseWluZyBmb3JtIGZpZWxkLlxuICAgICAqL1xuICAgIHJlbW92ZUZvcm1GaWVsZDogKGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQXR0YWNoIGZvcm1Db250cm9sLlxuICAgICAqL1xuICAgIGFkZEZvcm1Db250cm9sOiAobmFtZTogc3RyaW5nLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogRGV0YWNoIGZvcm0gZm9ybUNvbnRyb2wuXG4gICAgICovXG4gICAgcmVtb3ZlRm9ybUNvbnRyb2w6IChuYW1lOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQXR0YWNoIHVuZGVybHlpbmcgZm9ybSBmaWVsZCBncm91cC5cbiAgICAgKi9cbiAgICBhZGRGb3JtRmllbGRHcm91cDogKGZvcm1GaWVsZEdyb3VwOiBGb3JtRmllbGRHcm91cCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBEZXRhY2ggdW5kZXJseWluZyBmb3JtIGZpZWxkIGdyb3VwLlxuICAgICAqL1xuICAgIHJlbW92ZUZvcm1GaWVsZEdyb3VwOiAoZm9ybUZpZWxkR3JvdXA6IEZvcm1GaWVsZEdyb3VwKSA9PiB2b2lkO1xufVxuIl19","export var ColumnLayoutGridClass;\n(function (ColumnLayoutGridClass) {\n ColumnLayoutGridClass[\"XL\"] = \"xl\";\n ColumnLayoutGridClass[\"L\"] = \"lg\";\n ColumnLayoutGridClass[\"M\"] = \"md\";\n ColumnLayoutGridClass[\"S\"] = \"sm\";\n})(ColumnLayoutGridClass || (ColumnLayoutGridClass = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zaGFyZWQvZm9ybS9mb3JtLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUM3QixrQ0FBUyxDQUFBO0lBQ1QsaUNBQVEsQ0FBQTtJQUNSLGlDQUFRLENBQUE7SUFDUixpQ0FBUSxDQUFBO0FBQ1osQ0FBQyxFQUxXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFLaEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBMYWJlbExheW91dCA9ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc7XG5cbmV4cG9ydCB0eXBlIEhpbnRQbGFjZW1lbnQgPSAnbGVmdCcgfCAncmlnaHQnO1xuXG5leHBvcnQgdHlwZSBGb3JtWm9uZSA9ICd6VG9wJyB8ICd6Qm90dG9tJyB8ICd6TGVmdCcgfCAnelJpZ2h0JztcblxuZXhwb3J0IHR5cGUgQ29sdW1uID0gMSB8IDIgfCAzIHwgNSB8IDYgfCA3IHwgOCB8IDkgfCAxMCB8IDExIHwgMTI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uTGF5b3V0IHtcbiAgICBYTD86IG51bWJlcjtcbiAgICBMPzogbnVtYmVyO1xuICAgIE0/OiBudW1iZXI7XG4gICAgUz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gQ29sdW1uTGF5b3V0R3JpZENsYXNzIHtcbiAgICBYTCA9ICd4bCcsXG4gICAgTCA9ICdsZycsXG4gICAgTSA9ICdtZCcsXG4gICAgUyA9ICdzbSdcbn1cbiJdfQ==","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Directive, Injectable, InjectionToken, Input, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { CollectionBaseInput } from './collection-base.input';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/cdk/layout\";\nexport var RESPONSIVE_BREAKPOINTS;\n(function (RESPONSIVE_BREAKPOINTS) {\n RESPONSIVE_BREAKPOINTS[RESPONSIVE_BREAKPOINTS[\"S\"] = 600] = \"S\";\n RESPONSIVE_BREAKPOINTS[RESPONSIVE_BREAKPOINTS[\"M\"] = 1024] = \"M\";\n RESPONSIVE_BREAKPOINTS[RESPONSIVE_BREAKPOINTS[\"L\"] = 1440] = \"L\";\n})(RESPONSIVE_BREAKPOINTS || (RESPONSIVE_BREAKPOINTS = {}));\nexport const RESPONSIVE_BREAKPOINTS_CONFIG = new InjectionToken('Default Responsive breakpoint config');\nexport class ResponsiveBreakPointConfig {\n constructor() {\n /** Large screen */\n this.L = RESPONSIVE_BREAKPOINTS['L'];\n /** Medium screen */\n this.M = RESPONSIVE_BREAKPOINTS['M'];\n /** Small screen */\n this.S = RESPONSIVE_BREAKPOINTS['S'];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakPointConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakPointConfig }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakPointConfig, decorators: [{\n type: Injectable\n }] });\nexport class ResponsiveBreakpointsService {\n /** @hidden */\n constructor(_breakpointObserver) {\n this._breakpointObserver = _breakpointObserver;\n /** @hidden */\n this.breakpoints = {};\n /** @hidden */\n this.minWidth = 'min-width';\n /** @hidden */\n this.maxWidth = 'max-width';\n /** @hidden */\n this.unit = 'px';\n }\n /** subscribe to get current screen size based on config provided */\n observeBreakpointByConfig(config) {\n const breakPointName = new BehaviorSubject('S');\n this._breakpointObserver.observe(this._getBreakpoints(config)).subscribe((matchValues) => {\n const breakPoint = this._breakPointMeet(matchValues);\n breakPointName.next(breakPoint);\n });\n return breakPointName;\n }\n /** @hidden when screen size changes from one breakpoint to another */\n _breakPointMeet(breakPointMatches) {\n let breakPointName;\n if (breakPointMatches.matches) {\n for (const breakpoint in breakPointMatches.breakpoints) {\n if (breakPointMatches.breakpoints[breakpoint]) {\n breakPointName = this._getBreakpointName(breakpoint);\n }\n }\n }\n return breakPointName ?? 'S';\n }\n /** @hidden */\n _getBreakpoints(config) {\n let breakPointStr;\n this.activeBreakpoints = [];\n for (const screenSize of Object.keys(config)) {\n switch (screenSize) {\n case 'S':\n breakPointStr = `(${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n break;\n case 'M':\n breakPointStr = `(${this.minWidth}: ${config['S']}${this.unit}) and (${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n break;\n case 'L':\n breakPointStr = `(${this.minWidth}: ${config['M']}${this.unit}) and (${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n // create entry for XL screen\n breakPointStr = `(${this.minWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = 'XL';\n break;\n }\n }\n return this.activeBreakpoints;\n }\n /** @hidden */\n _getBreakpointName(breakpointValue) {\n return this.breakpoints[breakpointValue];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakpointsService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakpointsService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakpointsService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: () => [{ type: i1.BreakpointObserver }] });\nexport class InLineLayoutCollectionBaseInput extends CollectionBaseInput {\n constructor() {\n super(...arguments);\n /** @hidden */\n this._inlineCurrentValue$ = new BehaviorSubject(false);\n /** @hidden */\n this._responsiveBreakpointsService = inject(ResponsiveBreakpointsService);\n /** @hidden */\n this._responsiveBreakPointConfig = inject(RESPONSIVE_BREAKPOINTS_CONFIG, {\n optional: true\n }) || new ResponsiveBreakPointConfig();\n /** @hidden */\n this._isInLineLayoutEnabled = false;\n }\n /** object to change isInline property based on screen size */\n set inlineLayout(layout) {\n if (layout) {\n this._inlineLayout = layout;\n this._isInLineLayoutEnabled = true;\n }\n this._setFieldLayout(layout);\n }\n get inlineLayout() {\n return this._inlineLayout;\n }\n /** @hidden */\n ngOnInit() {\n super.ngOnInit();\n if (this._isInLineLayoutEnabled) {\n this._responsiveBreakpointsService\n .observeBreakpointByConfig(this._responsiveBreakPointConfig)\n .subscribe((breakPointName) => {\n this._updateLayout(breakPointName);\n });\n }\n }\n /** @hidden set values of inline for each screen layout */\n _setFieldLayout(inlineLayout) {\n if (!inlineLayout) {\n this._isInLineLayoutEnabled = false;\n return;\n }\n try {\n this._sIsInline = !!inlineLayout['S'];\n this._mdIsInline = !!inlineLayout['M'];\n this._lgIsInline = !!inlineLayout['L'];\n this._xlIsInline = !!inlineLayout['XL'];\n }\n catch {\n this._isInLineLayoutEnabled = false;\n }\n }\n /** @hidden */\n _updateLayout(currentBreakingPointName) {\n if (this._isInLineLayoutEnabled) {\n switch (currentBreakingPointName) {\n case 'S':\n this._inlineCurrentValue$.next(this._sIsInline);\n break;\n case 'M':\n this._inlineCurrentValue$.next(this._mdIsInline);\n break;\n case 'L':\n this._inlineCurrentValue$.next(this._lgIsInline);\n break;\n case 'XL':\n this._inlineCurrentValue$.next(this._xlIsInline);\n break;\n default:\n this._inlineCurrentValue$.next(this._xlIsInline);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: InLineLayoutCollectionBaseInput, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: InLineLayoutCollectionBaseInput, isStandalone: true, inputs: { inlineLayout: \"inlineLayout\" }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: InLineLayoutCollectionBaseInput, decorators: [{\n type: Directive\n }], propDecorators: { inlineLayout: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWxheW91dC1jb2xsZWN0aW9uLWJhc2UuaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NoYXJlZC9mb3JtL2lubGluZS1sYXlvdXQtY29sbGVjdGlvbi1iYXNlLmlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFXLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFTOUQsTUFBTSxDQUFOLElBQVksc0JBSVg7QUFKRCxXQUFZLHNCQUFzQjtJQUM5QiwrREFBTyxDQUFBO0lBQ1AsZ0VBQVEsQ0FBQTtJQUNSLGdFQUFRLENBQUE7QUFDWixDQUFDLEVBSlcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUlqQztBQUVELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUMzRCxzQ0FBc0MsQ0FDekMsQ0FBQztBQUdGLE1BQU0sT0FBTywwQkFBMEI7SUFEdkM7UUFFSSxtQkFBbUI7UUFDbkIsTUFBQyxHQUFXLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLG9CQUFvQjtRQUNwQixNQUFDLEdBQVcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsbUJBQW1CO1FBQ25CLE1BQUMsR0FBVyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMzQzs4R0FQWSwwQkFBMEI7a0hBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVTs7QUFhWCxNQUFNLE9BQU8sNEJBQTRCO0lBWXJDLGNBQWM7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QkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ04sYUFBYSxDQUFDLHdCQUFnQztRQUNsRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzlCLFFBQVEsd0JBQXdCLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxHQUFHO29CQUNKLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNoRCxNQUFNO2dCQUNWLEtBQUssR0FBRztvQkFDSixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDakQsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ2pELE1BQU07Z0JBQ1YsS0FBSyxJQUFJO29CQUNMLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUNqRCxNQUFNO2dCQUNWO29CQUNJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pELENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzs4R0E3RmlCLCtCQUErQjtrR0FBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQURwRCxTQUFTOzhCQUlGLFlBQVk7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbnB1dCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb2xsZWN0aW9uQmFzZUlucHV0IH0gZnJvbSAnLi9jb2xsZWN0aW9uLWJhc2UuaW5wdXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElubGluZUxheW91dCB7XG4gICAgWEw/OiBib29sZWFuO1xuICAgIEw/OiBib29sZWFuO1xuICAgIE0/OiBib29sZWFuO1xuICAgIFM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZW51bSBSRVNQT05TSVZFX0JSRUFLUE9JTlRTIHtcbiAgICBTID0gNjAwLFxuICAgIE0gPSAxMDI0LFxuICAgIEwgPSAxNDQwXG59XG5cbmV4cG9ydCBjb25zdCBSRVNQT05TSVZFX0JSRUFLUE9JTlRTX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZz4oXG4gICAgJ0RlZmF1bHQgUmVzcG9uc2l2ZSBicmVha3BvaW50IGNvbmZpZydcbik7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZyB7XG4gICAgLyoqIExhcmdlIHNjcmVlbiAqL1xuICAgIEw6IG51bWJlciA9IFJFU1BPTlNJVkVfQlJFQUtQT0lOVFNbJ0wnXTtcbiAgICAvKiogTWVkaXVtIHNjcmVlbiAqL1xuICAgIE06IG51bWJlciA9IFJFU1BPTlNJVkVfQlJFQUtQT0lOVFNbJ00nXTtcbiAgICAvKiogU21hbGwgc2NyZWVuICovXG4gICAgUzogbnVtYmVyID0gUkVTUE9OU0lWRV9CUkVBS1BPSU5UU1snUyddO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpdmVCcmVha3BvaW50c1NlcnZpY2Uge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYnJlYWtwb2ludHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFjdGl2ZUJyZWFrcG9pbnRzOiBzdHJpbmdbXTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1pbldpZHRoID0gJ21pbi13aWR0aCc7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtYXhXaWR0aCA9ICdtYXgtd2lkdGgnO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdW5pdCA9ICdweCc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IF9icmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcikge31cblxuICAgIC8qKiBzdWJzY3JpYmUgdG8gZ2V0IGN1cnJlbnQgc2NyZWVuIHNpemUgYmFzZWQgb24gY29uZmlnIHByb3ZpZGVkICovXG4gICAgb2JzZXJ2ZUJyZWFrcG9pbnRCeUNvbmZpZyhjb25maWc6IFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnKTogU3ViamVjdDxhbnk+IHtcbiAgICAgICAgY29uc3QgYnJlYWtQb2ludE5hbWU6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJ1MnKTtcblxuICAgICAgICB0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9nZXRCcmVha3BvaW50cyhjb25maWcpKS5zdWJzY3JpYmUoKG1hdGNoVmFsdWVzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBicmVha1BvaW50ID0gdGhpcy5fYnJlYWtQb2ludE1lZXQobWF0Y2hWYWx1ZXMpO1xuICAgICAgICAgICAgYnJlYWtQb2ludE5hbWUubmV4dChicmVha1BvaW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGJyZWFrUG9pbnROYW1lO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIHdoZW4gc2NyZWVuIHNpemUgY2hhbmdlcyBmcm9tIG9uZSBicmVha3BvaW50IHRvIGFub3RoZXIgKi9cbiAgICBwcml2YXRlIF9icmVha1BvaW50TWVldChicmVha1BvaW50TWF0Y2hlczogQnJlYWtwb2ludFN0YXRlKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGJyZWFrUG9pbnROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGJyZWFrUG9pbnRNYXRjaGVzLm1hdGNoZXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYnJlYWtwb2ludCBpbiBicmVha1BvaW50TWF0Y2hlcy5icmVha3BvaW50cykge1xuICAgICAgICAgICAgICAgIGlmIChicmVha1BvaW50TWF0Y2hlcy5icmVha3BvaW50c1ticmVha3BvaW50XSkge1xuICAgICAgICAgICAgICAgICAgICBicmVha1BvaW50TmFtZSA9IHRoaXMuX2dldEJyZWFrcG9pbnROYW1lKGJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBicmVha1BvaW50TmFtZSA/PyAnUyc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRCcmVha3BvaW50cyhjb25maWc6IFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnKTogc3RyaW5nW10ge1xuICAgICAgICBsZXQgYnJlYWtQb2ludFN0cjogc3RyaW5nO1xuICAgICAgICB0aGlzLmFjdGl2ZUJyZWFrcG9pbnRzID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBzY3JlZW5TaXplIG9mIE9iamVjdC5rZXlzKGNvbmZpZykpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoc2NyZWVuU2l6ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ1MnOlxuICAgICAgICAgICAgICAgICAgICBicmVha1BvaW50U3RyID0gYCgke3RoaXMubWF4V2lkdGh9OiAke2NvbmZpZ1tzY3JlZW5TaXplXX0ke3RoaXMudW5pdH0pYDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVCcmVha3BvaW50cy5wdXNoKGJyZWFrUG9pbnRTdHIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJyZWFrcG9pbnRzW2JyZWFrUG9pbnRTdHJdID0gc2NyZWVuU2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrUG9pbnRTdHIgPSBgKCR7dGhpcy5taW5XaWR0aH06ICR7Y29uZmlnWydTJ119JHt0aGlzLnVuaXR9KSBhbmQgKCR7dGhpcy5tYXhXaWR0aH06ICR7Y29uZmlnW3NjcmVlblNpemVdfSR7dGhpcy51bml0fSlgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUJyZWFrcG9pbnRzLnB1c2goYnJlYWtQb2ludFN0cik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnJlYWtwb2ludHNbYnJlYWtQb2ludFN0cl0gPSBzY3JlZW5TaXplO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdMJzpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtQb2ludFN0ciA9IGAoJHt0aGlzLm1pbldpZHRofTogJHtjb25maWdbJ00nXX0ke3RoaXMudW5pdH0pIGFuZCAoJHt0aGlzLm1heFdpZHRofTogJHtjb25maWdbc2NyZWVuU2l6ZV19JHt0aGlzLnVuaXR9KWA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlQnJlYWtwb2ludHMucHVzaChicmVha1BvaW50U3RyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVha3BvaW50c1ticmVha1BvaW50U3RyXSA9IHNjcmVlblNpemU7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGVudHJ5IGZvciBYTCBzY3JlZW5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWtQb2ludFN0ciA9IGAoJHt0aGlzLm1pbldpZHRofTogJHtjb25maWdbc2NyZWVuU2l6ZV19JHt0aGlzLnVuaXR9KWA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlQnJlYWtwb2ludHMucHVzaChicmVha1BvaW50U3RyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVha3BvaW50c1ticmVha1BvaW50U3RyXSA9ICdYTCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlQnJlYWtwb2ludHM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRCcmVha3BvaW50TmFtZShicmVha3BvaW50VmFsdWUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5icmVha3BvaW50c1ticmVha3BvaW50VmFsdWVdO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW5MaW5lTGF5b3V0Q29sbGVjdGlvbkJhc2VJbnB1dCBleHRlbmRzIENvbGxlY3Rpb25CYXNlSW5wdXQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKiBvYmplY3QgdG8gY2hhbmdlIGlzSW5saW5lIHByb3BlcnR5IGJhc2VkIG9uIHNjcmVlbiBzaXplICovXG4gICAgQElucHV0KClcbiAgICBzZXQgaW5saW5lTGF5b3V0KGxheW91dDogSW5saW5lTGF5b3V0IHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChsYXlvdXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lubGluZUxheW91dCA9IGxheW91dDtcbiAgICAgICAgICAgIHRoaXMuX2lzSW5MaW5lTGF5b3V0RW5hYmxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0RmllbGRMYXlvdXQobGF5b3V0KTtcbiAgICB9XG4gICAgZ2V0IGlubGluZUxheW91dCgpOiBJbmxpbmVMYXlvdXQge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lTGF5b3V0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9pbmxpbmVDdXJyZW50VmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcmVzcG9uc2l2ZUJyZWFrcG9pbnRzU2VydmljZSA9IGluamVjdChSZXNwb25zaXZlQnJlYWtwb2ludHNTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9yZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZyA9XG4gICAgICAgIGluamVjdChSRVNQT05TSVZFX0JSRUFLUE9JTlRTX0NPTkZJRywge1xuICAgICAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICAgICAgfSkgfHwgbmV3IFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lubGluZUxheW91dDogSW5saW5lTGF5b3V0O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF94bElzSW5saW5lOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sZ0lzSW5saW5lOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tZElzSW5saW5lOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zSXNJbmxpbmU6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzSW5MaW5lTGF5b3V0RW5hYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBpZiAodGhpcy5faXNJbkxpbmVMYXlvdXRFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNwb25zaXZlQnJlYWtwb2ludHNTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLm9ic2VydmVCcmVha3BvaW50QnlDb25maWcodGhpcy5fcmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWcpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoYnJlYWtQb2ludE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTGF5b3V0KGJyZWFrUG9pbnROYW1lKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIHNldCB2YWx1ZXMgb2YgaW5saW5lIGZvciBlYWNoIHNjcmVlbiBsYXlvdXQgKi9cbiAgICBwcml2YXRlIF9zZXRGaWVsZExheW91dChpbmxpbmVMYXlvdXQ/OiBJbmxpbmVMYXlvdXQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpbmxpbmVMYXlvdXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzSW5MaW5lTGF5b3V0RW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLl9zSXNJbmxpbmUgPSAhIWlubGluZUxheW91dFsnUyddO1xuICAgICAgICAgICAgdGhpcy5fbWRJc0lubGluZSA9ICEhaW5saW5lTGF5b3V0WydNJ107XG4gICAgICAgICAgICB0aGlzLl9sZ0lzSW5saW5lID0gISFpbmxpbmVMYXlvdXRbJ0wnXTtcbiAgICAgICAgICAgIHRoaXMuX3hsSXNJbmxpbmUgPSAhIWlubGluZUxheW91dFsnWEwnXTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICB0aGlzLl9pc0luTGluZUxheW91dEVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlTGF5b3V0KGN1cnJlbnRCcmVha2luZ1BvaW50TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc0luTGluZUxheW91dEVuYWJsZWQpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY3VycmVudEJyZWFraW5nUG9pbnROYW1lKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnUyc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lubGluZUN1cnJlbnRWYWx1ZSQubmV4dCh0aGlzLl9zSXNJbmxpbmUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5saW5lQ3VycmVudFZhbHVlJC5uZXh0KHRoaXMuX21kSXNJbmxpbmUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdMJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5saW5lQ3VycmVudFZhbHVlJC5uZXh0KHRoaXMuX2xnSXNJbmxpbmUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdYTCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lubGluZUN1cnJlbnRWYWx1ZSQubmV4dCh0aGlzLl94bElzSW5saW5lKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5saW5lQ3VycmVudFZhbHVlJC5uZXh0KHRoaXMuX3hsSXNJbmxpbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ConvertBytesPipe {\n constructor() {\n /** @hidden */\n this._sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n }\n /** @hidden */\n transform(bytes) {\n return this._convertBytes(bytes);\n }\n /**\n * Convert bytes to KB, MB, GB, ...\n * @param bytes number\n * @param decimals number\n */\n _convertBytes(bytes = 0, decimals = 2) {\n if (bytes <= 0) {\n return '0 Bytes';\n }\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + this._sizes[i];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ConvertBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: ConvertBytesPipe, isStandalone: true, name: \"convertBytes\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ConvertBytesPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'convertBytes',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC1ieXRlcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zaGFyZWQvcGlwZXMvY29udmVydC1ieXRlcy9jb252ZXJ0LWJ5dGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxnQkFBZ0I7SUFKN0I7UUFLSSxjQUFjO1FBQ0csV0FBTSxHQUFhLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztLQXVCakc7SUFyQkcsY0FBYztJQUNkLFNBQVMsQ0FBQyxLQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGFBQWEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxDQUFDO1FBQ3pDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNmLE1BQU0sRUFBRSxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEQsT0FBTyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDOzhHQXhCUSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2NvbnZlcnRCeXRlcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDb252ZXJ0Qnl0ZXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zaXplczogc3RyaW5nW10gPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRyYW5zZm9ybShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRCeXRlcyhieXRlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydCBieXRlcyB0byBLQiwgTUIsIEdCLCAuLi5cbiAgICAgKiBAcGFyYW0gYnl0ZXMgbnVtYmVyXG4gICAgICogQHBhcmFtIGRlY2ltYWxzIG51bWJlclxuICAgICAqL1xuICAgIHByaXZhdGUgX2NvbnZlcnRCeXRlcyhieXRlcyA9IDAsIGRlY2ltYWxzID0gMik6IHN0cmluZyB7XG4gICAgICAgIGlmIChieXRlcyA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gJzAgQnl0ZXMnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgayA9IDEwMjQ7XG4gICAgICAgIGNvbnN0IGRtID0gZGVjaW1hbHMgPCAwID8gMCA6IGRlY2ltYWxzO1xuICAgICAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZG0pKSArICcgJyArIHRoaXMuX3NpemVzW2ldO1xuICAgIH1cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { ConvertBytesPipe } from './convert-bytes/convert-bytes.pipe';\nimport * as i0 from \"@angular/core\";\nexport class PlatformPipeModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformPipeModule, imports: [ConvertBytesPipe], exports: [ConvertBytesPipe] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformPipeModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformPipeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ConvertBytesPipe],\n exports: [ConvertBytesPipe]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NoYXJlZC9waXBlcy9waXBlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQU10RSxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixZQUhqQixnQkFBZ0IsYUFDaEIsZ0JBQWdCOytHQUVqQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbnZlcnRCeXRlc1BpcGUgfSBmcm9tICcuL2NvbnZlcnQtYnl0ZXMvY29udmVydC1ieXRlcy5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29udmVydEJ5dGVzUGlwZV0sXG4gICAgZXhwb3J0czogW0NvbnZlcnRCeXRlc1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtUGlwZU1vZHVsZSB7fVxuIl19","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Creates a browser MouseEvent with the specified options.\n * @docs-private\n */\nexport function createMouseEvent(type, x = 0, y = 0, button = 0) {\n const event = document.createEvent('MouseEvent');\n const originalPreventDefault = event.preventDefault.bind(event);\n event.initMouseEvent(type, true /* canBubble */, true /* cancelable */, window /* view */, 0 /* detail */, x /* screenX */, y /* screenY */, x /* clientX */, y /* clientY */, false /* ctrlKey */, false /* altKey */, false /* shiftKey */, false /* metaKey */, button /* button */, null /* relatedTarget */);\n // `initMouseEvent` doesn't allow us to pass the `buttons` and\n // defaults it to 0 which looks like a fake event.\n Object.defineProperty(event, 'buttons', { get: () => 1 });\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function () {\n Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n return originalPreventDefault();\n };\n return event;\n}\n/**\n * Creates a browser TouchEvent with the specified pointer coordinates.\n * @docs-private\n */\nexport function createTouchEvent(type, pageX = 0, pageY = 0) {\n // In favor of creating events that work for most of the browsers, the event is created\n // as a basic UI Event. The necessary details for the event will be set manually.\n const event = document.createEvent('UIEvent');\n const touchDetails = { pageX, pageY };\n // TS3.6 removes the initUIEvent method and suggests porting to \"new UIEvent()\".\n event.initUIEvent(type, true, true, window, 0);\n // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n // the touch details.\n Object.defineProperties(event, {\n touches: { value: [touchDetails] },\n targetTouches: { value: [touchDetails] },\n changedTouches: { value: [touchDetails] }\n });\n return event;\n}\n/**\n * Dispatches a keydown event from an element.\n * @docs-private\n */\nexport function createKeyboardEvent(type, keyCode = 0, key = '', target, modifiers = {}) {\n const event = document.createEvent('KeyboardEvent');\n const originalPreventDefault = event.preventDefault;\n // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n if (event.initKeyEvent) {\n event.initKeyEvent(type, true, true, window, modifiers.control, modifiers.alt, modifiers.shift, modifiers.meta, keyCode);\n }\n else {\n // `initKeyboardEvent` expects to receive modifiers as a whitespace-delimited string\n // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent\n let modifiersList = '';\n if (modifiers.control) {\n modifiersList += 'Control ';\n }\n if (modifiers.alt) {\n modifiersList += 'Alt ';\n }\n if (modifiers.shift) {\n modifiersList += 'Shift ';\n }\n if (modifiers.meta) {\n modifiersList += 'Meta ';\n }\n event.initKeyboardEvent(type, true /* canBubble */, true /* cancelable */, window /* view */, 0 /* char */, key /* key */, 0 /* location */, modifiersList.trim() /* modifiersList */, false /* repeat */);\n }\n // Webkit Browsers don't set the keyCode when calling the init function.\n // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n Object.defineProperties(event, {\n keyCode: { get: () => keyCode },\n key: { get: () => key },\n target: { get: () => target },\n ctrlKey: { get: () => !!modifiers.control },\n altKey: { get: () => !!modifiers.alt },\n shiftKey: { get: () => !!modifiers.shift },\n metaKey: { get: () => !!modifiers.meta }\n });\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function () {\n Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n // eslint-disable-next-line prefer-rest-params\n return originalPreventDefault.apply(this, arguments);\n };\n return event;\n}\n/**\n * Creates a fake event object with any desired event type.\n * @docs-private\n */\nexport function createFakeEvent(type, canBubble = false, cancelable = true) {\n const event = document.createEvent('Event');\n event.initEvent(type, canBubble, cancelable);\n return event;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtb2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL3Rlc3RpbmcvZXZlbnQtb2JqZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFJSDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQztJQUNuRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFaEUsS0FBSyxDQUFDLGNBQWMsQ0FDaEIsSUFBSSxFQUNKLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsTUFBTSxDQUFDLFVBQVUsRUFDakIsQ0FBQyxDQUFDLFlBQVksRUFDZCxDQUFDLENBQUMsYUFBYSxFQUNmLENBQUMsQ0FBQyxhQUFhLEVBQ2YsQ0FBQyxDQUFDLGFBQWEsRUFDZixDQUFDLENBQUMsYUFBYSxFQUNmLEtBQUssQ0FBQyxhQUFhLEVBQ25CLEtBQUssQ0FBQyxZQUFZLEVBQ2xCLEtBQUssQ0FBQyxjQUFjLEVBQ3BCLEtBQUssQ0FBQyxhQUFhLEVBQ25CLE1BQU0sQ0FBQyxZQUFZLEVBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FDM0IsQ0FBQztJQUVGLDhEQUE4RDtJQUM5RCxrREFBa0Q7SUFDbEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFMUQsb0ZBQW9GO0lBQ3BGLEtBQUssQ0FBQyxjQUFjLEdBQUc7UUFDbkIs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QUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDN0MsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBNb2RpZmllcktleXMgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGJyb3dzZXIgTW91c2VFdmVudCB3aXRoIHRoZSBzcGVjaWZpZWQgb3B0aW9ucy5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1vdXNlRXZlbnQodHlwZTogc3RyaW5nLCB4ID0gMCwgeSA9IDAsIGJ1dHRvbiA9IDApOiBNb3VzZUV2ZW50IHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50Jyk7XG4gICAgY29uc3Qgb3JpZ2luYWxQcmV2ZW50RGVmYXVsdCA9IGV2ZW50LnByZXZlbnREZWZhdWx0LmJpbmQoZXZlbnQpO1xuXG4gICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIHRydWUgLyogY2FuQnViYmxlICovLFxuICAgICAgICB0cnVlIC8qIGNhbmNlbGFibGUgKi8sXG4gICAgICAgIHdpbmRvdyAvKiB2aWV3ICovLFxuICAgICAgICAwIC8qIGRldGFpbCAqLyxcbiAgICAgICAgeCAvKiBzY3JlZW5YICovLFxuICAgICAgICB5IC8qIHNjcmVlblkgKi8sXG4gICAgICAgIHggLyogY2xpZW50WCAqLyxcbiAgICAgICAgeSAvKiBjbGllbnRZICovLFxuICAgICAgICBmYWxzZSAvKiBjdHJsS2V5ICovLFxuICAgICAgICBmYWxzZSAvKiBhbHRLZXkgKi8sXG4gICAgICAgIGZhbHNlIC8qIHNoaWZ0S2V5ICovLFxuICAgICAgICBmYWxzZSAvKiBtZXRhS2V5ICovLFxuICAgICAgICBidXR0b24gLyogYnV0dG9uICovLFxuICAgICAgICBudWxsIC8qIHJlbGF0ZWRUYXJnZXQgKi9cbiAgICApO1xuXG4gICAgLy8gYGluaXRNb3VzZUV2ZW50YCBkb2Vzbid0IGFsbG93IHVzIHRvIHBhc3MgdGhlIGBidXR0b25zYCBhbmRcbiAgICAvLyBkZWZhdWx0cyBpdCB0byAwIHdoaWNoIGxvb2tzIGxpa2UgYSBmYWtlIGV2ZW50LlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShldmVudCwgJ2J1dHRvbnMnLCB7IGdldDogKCkgPT4gMSB9KTtcblxuICAgIC8vIElFIHdvbid0IHNldCBgZGVmYXVsdFByZXZlbnRlZGAgb24gc3ludGhldGljIGV2ZW50cyBzbyB3ZSBuZWVkIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0ID0gZnVuY3Rpb24gKCk6IHZvaWQge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsICdkZWZhdWx0UHJldmVudGVkJywgeyBnZXQ6ICgpID0+IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsUHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGV2ZW50O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBicm93c2VyIFRvdWNoRXZlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIHBvaW50ZXIgY29vcmRpbmF0ZXMuXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb3VjaEV2ZW50KHR5cGU6IHN0cmluZywgcGFnZVggPSAwLCBwYWdlWSA9IDApOiBFdmVudCB7XG4gICAgLy8gSW4gZmF2b3Igb2YgY3JlYXRpbmcgZXZlbnRzIHRoYXQgd29yayBmb3IgbW9zdCBvZiB0aGUgYnJvd3NlcnMsIHRoZSBldmVudCBpcyBjcmVhdGVkXG4gICAgLy8gYXMgYSBiYXNpYyBVSSBFdmVudC4gVGhlIG5lY2Vzc2FyeSBkZXRhaWxzIGZvciB0aGUgZXZlbnQgd2lsbCBiZSBzZXQgbWFudWFsbHkuXG4gICAgY29uc3QgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnVUlFdmVudCcpO1xuICAgIGNvbnN0IHRvdWNoRGV0YWlscyA9IHsgcGFnZVgsIHBhZ2VZIH07XG5cbiAgICAvLyBUUzMuNiByZW1vdmVzIHRoZSBpbml0VUlFdmVudCBtZXRob2QgYW5kIHN1Z2dlc3RzIHBvcnRpbmcgdG8gXCJuZXcgVUlFdmVudCgpXCIuXG4gICAgKGV2ZW50IGFzIGFueSkuaW5pdFVJRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgd2luZG93LCAwKTtcblxuICAgIC8vIE1vc3Qgb2YgdGhlIGJyb3dzZXJzIGRvbid0IGhhdmUgYSBcImluaXRUb3VjaEV2ZW50XCIgbWV0aG9kIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVmaW5lXG4gICAgLy8gdGhlIHRvdWNoIGRldGFpbHMuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZXZlbnQsIHtcbiAgICAgICAgdG91Y2hlczogeyB2YWx1ZTogW3RvdWNoRGV0YWlsc10gfSxcbiAgICAgICAgdGFyZ2V0VG91Y2hlczogeyB2YWx1ZTogW3RvdWNoRGV0YWlsc10gfSxcbiAgICAgICAgY2hhbmdlZFRvdWNoZXM6IHsgdmFsdWU6IFt0b3VjaERldGFpbHNdIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBldmVudDtcbn1cblxuLyoqXG4gKiBEaXNwYXRjaGVzIGEga2V5ZG93biBldmVudCBmcm9tIGFuIGVsZW1lbnQuXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVLZXlib2FyZEV2ZW50KFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBrZXlDb2RlOiBudW1iZXIgPSAwLFxuICAgIGtleTogc3RyaW5nID0gJycsXG4gICAgdGFyZ2V0PzogRWxlbWVudCxcbiAgICBtb2RpZmllcnM6IE1vZGlmaWVyS2V5cyA9IHt9XG4pOiBLZXlib2FyZEV2ZW50IHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50JykgYXMgYW55O1xuICAgIGNvbnN0IG9yaWdpbmFsUHJldmVudERlZmF1bHQgPSBldmVudC5wcmV2ZW50RGVmYXVsdDtcblxuICAgIC8vIEZpcmVmb3ggZG9lcyBub3Qgc3VwcG9ydCBgaW5pdEtleWJvYXJkRXZlbnRgLCBidXQgc3VwcG9ydHMgYGluaXRLZXlFdmVudGAuXG4gICAgaWYgKGV2ZW50LmluaXRLZXlFdmVudCkge1xuICAgICAgICBldmVudC5pbml0S2V5RXZlbnQoXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICB3aW5kb3csXG4gICAgICAgICAgICBtb2RpZmllcnMuY29udHJvbCxcbiAgICAgICAgICAgIG1vZGlmaWVycy5hbHQsXG4gICAgICAgICAgICBtb2RpZmllcnMuc2hpZnQsXG4gICAgICAgICAgICBtb2RpZmllcnMubWV0YSxcbiAgICAgICAgICAgIGtleUNvZGVcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBgaW5pdEtleWJvYXJkRXZlbnRgIGV4cGVjdHMgdG8gcmVjZWl2ZSBtb2RpZmllcnMgYXMgYSB3aGl0ZXNwYWNlLWRlbGltaXRlZCBzdHJpbmdcbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9LZXlib2FyZEV2ZW50L2luaXRLZXlib2FyZEV2ZW50XG4gICAgICAgIGxldCBtb2RpZmllcnNMaXN0ID0gJyc7XG5cbiAgICAgICAgaWYgKG1vZGlmaWVycy5jb250cm9sKSB7XG4gICAgICAgICAgICBtb2RpZmllcnNMaXN0ICs9ICdDb250cm9sICc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9kaWZpZXJzLmFsdCkge1xuICAgICAgICAgICAgbW9kaWZpZXJzTGlzdCArPSAnQWx0ICc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9kaWZpZXJzLnNoaWZ0KSB7XG4gICAgICAgICAgICBtb2RpZmllcnNMaXN0ICs9ICdTaGlmdCAnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vZGlmaWVycy5tZXRhKSB7XG4gICAgICAgICAgICBtb2RpZmllcnNMaXN0ICs9ICdNZXRhICc7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5pbml0S2V5Ym9hcmRFdmVudChcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICB0cnVlIC8qIGNhbkJ1YmJsZSAqLyxcbiAgICAgICAgICAgIHRydWUgLyogY2FuY2VsYWJsZSAqLyxcbiAgICAgICAgICAgIHdpbmRvdyAvKiB2aWV3ICovLFxuICAgICAgICAgICAgMCAvKiBjaGFyICovLFxuICAgICAgICAgICAga2V5IC8qIGtleSAqLyxcbiAgICAgICAgICAgIDAgLyogbG9jYXRpb24gKi8sXG4gICAgICAgICAgICBtb2RpZmllcnNMaXN0LnRyaW0oKSAvKiBtb2RpZmllcnNMaXN0ICovLFxuICAgICAgICAgICAgZmFsc2UgLyogcmVwZWF0ICovXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gV2Via2l0IEJyb3dzZXJzIGRvbid0IHNldCB0aGUga2V5Q29kZSB3aGVuIGNhbGxpbmcgdGhlIGluaXQgZnVuY3Rpb24uXG4gICAgLy8gU2VlIHJlbGF0ZWQgYnVnIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjczNVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGV2ZW50LCB7XG4gICAgICAgIGtleUNvZGU6IHsgZ2V0OiAoKSA9PiBrZXlDb2RlIH0sXG4gICAgICAgIGtleTogeyBnZXQ6ICgpID0+IGtleSB9LFxuICAgICAgICB0YXJnZXQ6IHsgZ2V0OiAoKSA9PiB0YXJnZXQgfSxcbiAgICAgICAgY3RybEtleTogeyBnZXQ6ICgpID0+ICEhbW9kaWZpZXJzLmNvbnRyb2wgfSxcbiAgICAgICAgYWx0S2V5OiB7IGdldDogKCkgPT4gISFtb2RpZmllcnMuYWx0IH0sXG4gICAgICAgIHNoaWZ0S2V5OiB7IGdldDogKCkgPT4gISFtb2RpZmllcnMuc2hpZnQgfSxcbiAgICAgICAgbWV0YUtleTogeyBnZXQ6ICgpID0+ICEhbW9kaWZpZXJzLm1ldGEgfVxuICAgIH0pO1xuXG4gICAgLy8gSUUgd29uJ3Qgc2V0IGBkZWZhdWx0UHJldmVudGVkYCBvbiBzeW50aGV0aWMgZXZlbnRzIHNvIHdlIG5lZWQgdG8gZG8gaXQgbWFudWFsbHkuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQgPSBmdW5jdGlvbiAoKTogRXZlbnQge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsICdkZWZhdWx0UHJldmVudGVkJywgeyBnZXQ6ICgpID0+IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1yZXN0LXBhcmFtc1xuICAgICAgICByZXR1cm4gb3JpZ2luYWxQcmV2ZW50RGVmYXVsdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH07XG5cbiAgICByZXR1cm4gZXZlbnQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZha2UgZXZlbnQgb2JqZWN0IHdpdGggYW55IGRlc2lyZWQgZXZlbnQgdHlwZS5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZha2VFdmVudCh0eXBlOiBzdHJpbmcsIGNhbkJ1YmJsZSA9IGZhbHNlLCBjYW5jZWxhYmxlID0gdHJ1ZSk6IEV2ZW50IHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgIGV2ZW50LmluaXRFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUpO1xuICAgIHJldHVybiBldmVudDtcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const FDP_PRESET_MANAGED_COMPONENT = new InjectionToken('FdpPresetManagedComponent');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LW1hbmFnZW1lbnQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NoYXJlZC9wcmVzZXQtbWFuYWdlbWVudC9wcmVzZXQtbWFuYWdlbWVudC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUFDLDJCQUEyQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRkRQX1BSRVNFVF9NQU5BR0VEX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbignRmRwUHJlc2V0TWFuYWdlZENvbXBvbmVudCcpO1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXBsYXRmb3JtLXNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2Z1bmRhbWVudGFsLW5neC1wbGF0Zm9ybS1zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["randomId"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-platform-shared.mjs","sources":["../tmp-esm2022/shared/base.js","../tmp-esm2022/shared/platform.config.js","../tmp-esm2022/shared/utils/lang.js","../tmp-esm2022/shared/domain/data-source.js","../tmp-esm2022/shared/domain/base-data-provider.js","../tmp-esm2022/shared/domain/array-data-source.js","../tmp-esm2022/shared/domain/data-model.js","../tmp-esm2022/shared/domain/observable-data-source.js","../tmp-esm2022/shared/form/base.input.js","../tmp-esm2022/shared/form/collection-base.input.js","../tmp-esm2022/shared/form/form-field.js","../tmp-esm2022/shared/form/form-options.js","../tmp-esm2022/shared/form/inline-layout-collection-base.input.js","../tmp-esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.js","../tmp-esm2022/shared/pipes/pipe.module.js","../tmp-esm2022/shared/testing/event-objects.js","../tmp-esm2022/shared/preset-management/preset-management.token.js","../tmp-esm2022/shared/fundamental-ngx-platform-shared.js"],"sourcesContent":["import { ChangeDetectorRef, Directive, Input, inject } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nlet randomId = 0;\n/**\n * This class contains common properties used across components.\n * this can be extended to reduce the code duplication across components.\n * @hidden for form related Base , see BaseInput.\n */\nexport class BaseComponent {\n constructor() {\n /** id for the Element */\n this.id = `fdp-id-${randomId++}`;\n /** @hidden */\n this._disabled = false;\n /** @hidden */\n this._subscriptions = new Subscription();\n /**\n * @hidden\n * Change detector ref.\n */\n this._cdr = inject(ChangeDetectorRef);\n }\n /**\n * @deprecated\n * Use `ariaLabelledBy` instead.\n */\n set ariaLabelledby(value) {\n this.ariaDescribedBy = value;\n }\n /** disabled status of the element */\n set disabled(disabled) {\n this._disabled = disabled;\n }\n get disabled() {\n return this._disabled;\n }\n /** @hidden */\n ngOnDestroy() {\n this._subscriptions.unsubscribe();\n }\n /**\n * @hidden\n * For internal usage only\n *\n * Since all components use OnPush strategy in the fundamental lib\n * it's tricky to update a child input directly from a parent component class\n *\n */\n markForCheck() {\n this._cdr.markForCheck();\n }\n /**\n * @hidden\n * For internal usage only\n *\n * Since all components use OnPush strategy in the fundamental lib\n * it's tricky to update a child input directly from a parent component class\n *\n */\n detectChanges() {\n this._cdr.detectChanges();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: BaseComponent, isStandalone: true, inputs: { ariaLabel: \"ariaLabel\", ariaLabelledBy: \"ariaLabelledBy\", ariaLabelledby: \"ariaLabelledby\", ariaDescribedBy: \"ariaDescribedBy\", id: \"id\", name: \"name\", width: \"width\", disabled: \"disabled\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseComponent, decorators: [{\n type: Directive\n }], propDecorators: { ariaLabel: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaLabelledby: [{\n type: Input\n }], ariaDescribedBy: [{\n type: Input\n }], id: [{\n type: Input\n }], name: [{\n type: Input\n }], width: [{\n type: Input\n }], disabled: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSXBDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVqQjs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQixhQUFhO0lBRG5DO1FBdUJJLHlCQUF5QjtRQUV6QixPQUFFLEdBQUcsVUFBVSxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBbUI1QixjQUFjO1FBQ0osY0FBUyxHQUFHLEtBQUssQ0FBQztRQUU1QixjQUFjO1FBQ0osbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlDOzs7V0FHRztRQUNnQixTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0E4QnZEO0lBMUVHOzs7T0FHRztJQUNILElBQ0ksY0FBYyxDQUFDLEtBQXVCO1FBQ3RDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFrQkQscUNBQXFDO0lBQ3JDLElBQ0ksUUFBUSxDQUFDLFFBQWlCO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQWNELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFlBQVk7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsYUFBYTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0FsRmlCLGFBQWE7a0dBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEbEMsU0FBUzs4QkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sY0FBYztzQkFEYixLQUFLO2dCQVFGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLEVBQUU7c0JBREQsS0FBSztnQkFLTixJQUFJO3NCQURILEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtGLFFBQVE7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIElucHV0LCBPbkRlc3Ryb3ksIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5sZXQgcmFuZG9tSWQgPSAwO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgY29udGFpbnMgY29tbW9uIHByb3BlcnRpZXMgdXNlZCBhY3Jvc3MgY29tcG9uZW50cy5cbiAqIHRoaXMgY2FuIGJlIGV4dGVuZGVkIHRvIHJlZHVjZSB0aGUgY29kZSBkdXBsaWNhdGlvbiBhY3Jvc3MgY29tcG9uZW50cy5cbiAqIEBoaWRkZW4gZm9yIGZvcm0gcmVsYXRlZCBCYXNlICwgc2VlIEJhc2VJbnB1dC5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqIFNldHMgdGhlIGBhcmlhLWxhYmVsYCBhdHRyaWJ1dGUgdG8gdGhlIGVsZW1lbnQuICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKiogU2V0cyB0aGUgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlIHRvIHRoZSBlbGVtZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkQnk6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIFVzZSBgYXJpYUxhYmVsbGVkQnlgIGluc3RlYWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYXJpYUxhYmVsbGVkYnkodmFsdWU6IE51bGxhYmxlPHN0cmluZz4pIHtcbiAgICAgICAgdGhpcy5hcmlhRGVzY3JpYmVkQnkgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogU2V0cyB0aGUgYGFyaWEtZGVzY3JpYmVkYnlgIGF0dHJpYnV0ZSB0byB0aGUgZWxlbWVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFEZXNjcmliZWRCeTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBpZCBmb3IgdGhlIEVsZW1lbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIGlkID0gYGZkcC1pZC0ke3JhbmRvbUlkKyt9YDtcblxuICAgIC8qKiBuYW1lIGZvciB0aGUgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIHdpZHRoIG9mIHRoZSBlbGVtZW50ICovXG4gICAgQElucHV0KClcbiAgICB3aWR0aDogc3RyaW5nO1xuXG4gICAgLyoqIGRpc2FibGVkIHN0YXR1cyBvZiB0aGUgZWxlbWVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgfVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2hhbmdlIGRldGVjdG9yIHJlZi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XG4gICAgICpcbiAgICAgKiBTaW5jZSBhbGwgY29tcG9uZW50cyB1c2UgT25QdXNoIHN0cmF0ZWd5IGluIHRoZSBmdW5kYW1lbnRhbCBsaWJcbiAgICAgKiBpdCdzIHRyaWNreSB0byB1cGRhdGUgYSBjaGlsZCBpbnB1dCBkaXJlY3RseSBmcm9tIGEgcGFyZW50IGNvbXBvbmVudCBjbGFzc1xuICAgICAqXG4gICAgICovXG4gICAgbWFya0ZvckNoZWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XG4gICAgICpcbiAgICAgKiBTaW5jZSBhbGwgY29tcG9uZW50cyB1c2UgT25QdXNoIHN0cmF0ZWd5IGluIHRoZSBmdW5kYW1lbnRhbCBsaWJcbiAgICAgKiBpdCdzIHRyaWNreSB0byB1cGRhdGUgYSBjaGlsZCBpbnB1dCBkaXJlY3RseSBmcm9tIGEgcGFyZW50IGNvbXBvbmVudCBjbGFzc1xuICAgICAqXG4gICAgICovXG4gICAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Platform lib Config\n */\nexport class PlatformConfig {\n /** @hidden */\n static { this.injector = null; }\n /** @hidden */\n static setInjector(injector) {\n PlatformConfig.injector = injector;\n }\n /** @hidden */\n static getInjector() {\n return PlatformConfig.injector;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0uY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zaGFyZWQvcGxhdGZvcm0uY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7O0FBSXJEOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFDdkIsY0FBYzthQUNDLGFBQVEsR0FBb0IsSUFBSSxBQUF4QixDQUF5QjtJQU9oRCxjQUFjO0lBQ2QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFrQjtRQUNqQyxjQUFjLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYztJQUNkLE1BQU0sQ0FBQyxXQUFXO1FBQ2QsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDO0lBQ25DLENBQUM7OEdBakJRLGNBQWM7a0hBQWQsY0FBYyxjQURELE1BQU07OzJGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbnRlbnREZW5zaXR5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG4vKipcbiAqIFBsYXRmb3JtIGxpYiBDb25maWdcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQbGF0Zm9ybUNvbmZpZyB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHN0YXRpYyBpbmplY3RvcjogSW5qZWN0b3IgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIENvbnRlbnQgRGVuc2l0eSBvZiBlbGVtZW50LiAnY296eScgfCAnY29tcGFjdCcgfCAnY29uZGVuc2VkJ1xuICAgICAqL1xuICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIHNldEluamVjdG9yKGluamVjdG9yOiBJbmplY3Rvcik6IHZvaWQge1xuICAgICAgICBQbGF0Zm9ybUNvbmZpZy5pbmplY3RvciA9IGluamVjdG9yO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIGdldEluamVjdG9yKCk6IEluamVjdG9yIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBQbGF0Zm9ybUNvbmZpZy5pbmplY3RvcjtcbiAgICB9XG59XG4iXX0=","/** @hidden */\nexport function objectValues(obj) {\n return Object.keys(obj).map((key) => obj[key]);\n}\n/** @hidden */\nexport function objectToName(target) {\n if (isBlank(target) || (!isStringMap(target) && !isType(target))) {\n throw new Error(' Cannot convert. Uknown object');\n }\n return isType(target) ? target.prototype.constructor.name : target.constructor.name;\n}\n/** @hidden */\nexport function isJsObject(o) {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n/** @hidden */\nexport function isPresent(obj) {\n return obj !== undefined && obj !== null;\n}\n/** @hidden */\nexport function isBlank(obj) {\n return obj === undefined || obj === null;\n}\n/** @hidden */\nexport function isBoolean(obj) {\n return typeof obj === 'boolean';\n}\n/** @hidden */\nexport function isNumber(obj) {\n return typeof obj === 'number';\n}\n/** @hidden */\nexport function isString(obj) {\n return typeof obj === 'string';\n}\n/** @hidden */\nexport function isFunction(obj) {\n return typeof obj === 'function';\n}\n/** @hidden */\nexport function isType(obj) {\n return isFunction(obj);\n}\n/** @hidden */\nexport function isStringMap(obj) {\n return typeof obj === 'object' && obj !== null;\n}\n/** @hidden */\nexport function isObject(item) {\n return typeof item === 'object' && !Array.isArray(item) && item !== null;\n}\n/** @hidden */\nexport function isPromise(obj) {\n // allow any Promise/A+ compliant thenable.\n // It's up to the caller to ensure that obj.then conforms to the spec\n return !!obj && isFunction(obj.then);\n}\n/** @hidden */\nexport function isSubscribable(obj) {\n return !!obj && isFunction(obj.subscribe);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL3V0aWxzL2xhbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsY0FBYztBQUNkLE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBUTtJQUNqQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBVztJQUNwQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0FBQ3hGLENBQUM7QUFFRCxjQUFjO0FBQ2QsTUFBTSxVQUFVLFVBQVUsQ0FBQyxDQUFNO0lBQzdCLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQztBQUM1RSxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBUTtJQUM5QixPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUM3QyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBUTtJQUM1QixPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUM3QyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBUTtJQUM5QixPQUFPLE9BQU8sR0FBRyxLQUFLLFNBQVMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUM3QixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUM3QixPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBUTtJQUMvQixPQUFPLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUNyQyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxNQUFNLENBQUMsR0FBUTtJQUMzQixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBUTtJQUNoQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDO0FBQ25ELENBQUM7QUFFRCxjQUFjO0FBQ2QsTUFBTSxVQUFVLFFBQVEsQ0FBSSxJQUFPO0lBQy9CLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDO0FBQzdFLENBQUM7QUFFRCxjQUFjO0FBQ2QsTUFBTSxVQUFVLFNBQVMsQ0FBVSxHQUFRO0lBQ3ZDLDJDQUEyQztJQUMzQyxxRUFBcUU7SUFDckUsT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUsY0FBYyxDQUFDLEdBQTBCO0lBQ3JELE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0VmFsdWVzKG9iajogYW55KTogYW55W10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLm1hcCgoa2V5KSA9PiBvYmpba2V5XSk7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0VG9OYW1lKHRhcmdldDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoaXNCbGFuayh0YXJnZXQpIHx8ICghaXNTdHJpbmdNYXAodGFyZ2V0KSAmJiAhaXNUeXBlKHRhcmdldCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignIENhbm5vdCBjb252ZXJ0LiBVa25vd24gb2JqZWN0Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVHlwZSh0YXJnZXQpID8gdGFyZ2V0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5uYW1lIDogdGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWU7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNKc09iamVjdChvOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbyAhPT0gbnVsbCAmJiAodHlwZW9mIG8gPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIG8gPT09ICdvYmplY3QnKTtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnQob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqICE9PSB1bmRlZmluZWQgJiYgb2JqICE9PSBudWxsO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmxhbmsob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb2JqID09PSB1bmRlZmluZWQgfHwgb2JqID09PSBudWxsO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbihvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSAnYm9vbGVhbic7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIob2JqOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ251bWJlcic7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcob2JqOiBhbnkpOiBvYmogaXMgc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gJ3N0cmluZyc7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbihvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVHlwZShvYmo6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKG9iaik7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmdNYXAob2JqOiBhbnkpOiBvYmogaXMgUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAhPT0gbnVsbDtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdDxUPihpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKSAmJiBpdGVtICE9PSBudWxsO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZTxUID0gYW55PihvYmo6IGFueSk6IG9iaiBpcyBQcm9taXNlPFQ+IHtcbiAgICAvLyBhbGxvdyBhbnkgUHJvbWlzZS9BKyBjb21wbGlhbnQgdGhlbmFibGUuXG4gICAgLy8gSXQncyB1cCB0byB0aGUgY2FsbGVyIHRvIGVuc3VyZSB0aGF0IG9iai50aGVuIGNvbmZvcm1zIHRvIHRoZSBzcGVjXG4gICAgcmV0dXJuICEhb2JqICYmIGlzRnVuY3Rpb24ob2JqLnRoZW4pO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3Vic2NyaWJhYmxlKG9iajogYW55IHwgT2JzZXJ2YWJsZTxhbnk+KTogb2JqIGlzIE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuICEhb2JqICYmIGlzRnVuY3Rpb24ob2JqLnN1YnNjcmliZSk7XG59XG4iXX0=","/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n *\n * When working with large set of data using components such as:\n * - Datatables\n * - InputSearch\n * - ComboBox (Autocomplete)\n * - Tree\n * - List\n * - etc..\n * and for these we need to unify the way we access a data. Currently we leave most of the complex\n * data access or data manipulation on application developer which leads to different\n * implementation approaches and allot of code duplication.\n *\n * It is common practice when working with different data input sources we try to apply some\n * Design patterns e.g. Adapter Pattern that provides us with guidelines how different interfaces\n * can talk to each other and from here we can derive another pattern so called Datasource pattern\n * which is high-level architectural pattern to abstract data and internal resources\n * access (DB calls, Rest calls, domain objects) with a mininal amount a code.\n *\n * What we want to achieve is to define abstract layer where each specific resource type needs to\n * implement and move all the related logic into reusable DataSources. (TableDataSource,\n * ComboBoxDataSource, ... )\n *\n * Observable<T[]> is a reactive stream, that changes its content based on what it pushed\n * into it using .next().\n *\n * Each type of data component such Autocomplete, DataTable, List,.. needs to provide its own\n * specific implementation to handle specific use-case.\n *\n * ```\n * export abstract class DataTableDataSource<T> implements DataSource<T> {\n * data: T[];\n * filterTerm: string;\n * paginator: Paginator | null\n *\n * filterPredicate: ((data: T, filter: string) => boolean;\n *\n * sortData: ((data: T[], sort: Sort) => T[]);\n *\n * //\n * create (t: T): T;\n * update (t: T): T;\n * remove (t: T): T;\n *\n * }\n * ```\n *\n * After we define a format we can start creating concrete implementations based on the usage or\n * resource .e.g:\n *\n *\n * ```\n * export abstract class RestAutoCompleteDataSource<T> extend DataChooserDataSource <T> {\n * // We can use a registry that is able to map a Entity Type = Endpoint\n * // have identical way how to fetch , search ,...\n * }\n * ```\n *\n * Probably when working with data only locally, it can be:\n *\n * ```\n * export abstract class LocalArrayAutoCompleteDataSource<T> extend DataChooserDataSource <T> {\n * }\n * ```\n *\n *\n */\nimport { InjectionToken } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nexport var MatchingStrategy;\n(function (MatchingStrategy) {\n MatchingStrategy[\"STARTS_WITH_PER_TERM\"] = \"starts with per term\";\n MatchingStrategy[\"STARTS_WITH\"] = \"starts with\";\n MatchingStrategy[\"CONTAINS\"] = \"contains\";\n})(MatchingStrategy || (MatchingStrategy = {}));\nexport const DATA_PROVIDERS = new InjectionToken('DataProviderRegistry');\n/** Matching Strategy: StartsWithPerTerm - Reqexp */\nexport function getMatchingStrategyStartsWithPerTermReqexp(value) {\n // We need to escape all special characters in order not to break the regular expression.\n return new RegExp(`(\\\\s|^)(${value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')})`, 'gi');\n}\n/** @hidden */\nexport function isDataSource(value) {\n return value && typeof value.open === 'function';\n}\n/**\n * Provider is a data driver that can access data and retrieve them. It knows how to get 1\n * or more records, maybe do paging and some other things.\n *\n */\nexport class DataProvider {\n constructor() {\n /** @hidden */\n this._matchingStrategy = MatchingStrategy.STARTS_WITH;\n /** @hidden */\n this._matchingBy = null;\n }\n /**\n * Tells if this DataProvider supports INSERT, REMOVE\n *\n */\n canCRUD() {\n return false;\n }\n // Implement to support CRUD operations.\n /** @hidden */\n getOne(params) {\n throw new Error('Not supported');\n }\n /** @hidden */\n insert(payload, params) {\n throw new Error('Not supported');\n }\n /** @hidden */\n remove(params) {\n throw new Error('Not supported');\n }\n /** @hidden */\n update(payload, params) {\n throw new Error('Not supported');\n }\n /** @hidden */\n setLookupKey(key) {\n this._keyPath = key;\n }\n /** @hidden */\n setMatchingBy(matchingBy) {\n this._matchingBy = matchingBy;\n }\n /** @hidden */\n setMatchingStrategy(strategy) {\n this._matchingStrategy = strategy;\n }\n}\nexport class ComboBoxDataSource {\n /** @hidden */\n static { this.MaxLimit = 5; }\n /** @hidden */\n get isDataLoading() {\n return this._dataLoading;\n }\n /** @hidden */\n constructor(dataProvider) {\n this.dataProvider = dataProvider;\n /** @hidden */\n this.limitless = false;\n /** @hidden */\n this._dataChanges = new BehaviorSubject([]);\n /** @hidden */\n this._onDataRequested$ = new Subject();\n /** @hidden */\n this._onDataReceived$ = new Subject();\n /** @hidden */\n this._onDestroy$ = new Subject();\n /** @hidden */\n this._dataLoading = false;\n }\n /** @hidden */\n match(predicate = new Map(), start = 0, end = Infinity) {\n this._onDataRequested$.next();\n this._dataLoading = true;\n const searchParam = new Map();\n if (typeof predicate === 'string') {\n searchParam.set('query', predicate);\n }\n else if (predicate instanceof Map) {\n predicate.forEach((v, k) => searchParam.set(k, v));\n }\n else {\n throw new Error('DataSource.match() predicate can only accepts string and Map');\n }\n if (!searchParam.has('limit') && !this.limitless) {\n searchParam.set('limit', ComboBoxDataSource.MaxLimit);\n }\n this.dataProvider\n .fetch(searchParam, start, end)\n .pipe(takeUntil(this._onDestroy$))\n .subscribe({\n next: (result) => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n this._dataChanges.next(result);\n },\n error: () => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n }\n });\n }\n /** @hidden */\n open() {\n return this._dataChanges.pipe(takeUntil(this._onDestroy$));\n }\n /** @hidden */\n close() {\n this._onDestroy$.next();\n }\n /** @hidden */\n onDataRequested() {\n return this._onDataRequested$.asObservable();\n }\n /** @hidden */\n onDataReceived() {\n return this._onDataReceived$.asObservable();\n }\n}\nexport class MultiComboBoxDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n }\n}\nexport class SearchFieldDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n }\n}\nexport class ListDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n /** @hidden */\n this.limitless = true;\n }\n}\nexport class MultiInputDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n }\n}\nexport class ApprovalFlowUserDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n }\n}\nexport class ApprovalFlowTeamDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NoYXJlZC9kb21haW4vZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0RBQXNEO0FBQ3REOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrRUc7QUFDSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxNQUFNLENBQU4sSUFBWSxnQkFJWDtBQUpELFdBQVksZ0JBQWdCO0lBQ3hCLGlFQUE2QyxDQUFBO0lBQzdDLCtDQUEyQixDQUFBO0lBQzNCLHlDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFKVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSTNCO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFpQyxzQkFBc0IsQ0FBQyxDQUFDO0FBaUJ6RyxvREFBb0Q7QUFDcEQsTUFBTSxVQUFVLDBDQUEwQyxDQUFDLEtBQWE7SUFDcEUseUZBQXlGO0lBQ3pGLE9BQU8sSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUsWUFBWSxDQUFVLEtBQVU7SUFDNUMsT0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUNyRCxDQUFDO0FBR0Q7Ozs7R0FJRztBQUNILE1BQU0sT0FBZ0IsWUFBWTtJQUFsQztRQU1JLGNB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cHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG4vKipcbiAqXG4gKiBXaGVuIHdvcmtpbmcgd2l0aCBsYXJnZSBzZXQgb2YgZGF0YSB1c2luZyBjb21wb25lbnRzIHN1Y2ggYXM6XG4gKiAgLSBEYXRhdGFibGVzXG4gKiAgLSBJbnB1dFNlYXJjaFxuICogIC0gQ29tYm9Cb3ggKEF1dG9jb21wbGV0ZSlcbiAqICAtIFRyZWVcbiAqICAtIExpc3RcbiAqICAtIGV0Yy4uXG4gKiAgYW5kIGZvciB0aGVzZSB3ZSBuZWVkIHRvIHVuaWZ5IHRoZSB3YXkgd2UgYWNjZXNzIGEgZGF0YS4gQ3VycmVudGx5IHdlIGxlYXZlIG1vc3Qgb2YgdGhlIGNvbXBsZXhcbiAqICBkYXRhIGFjY2VzcyBvciBkYXRhIG1hbmlwdWxhdGlvbiBvbiBhcHBsaWNhdGlvbiBkZXZlbG9wZXIgd2hpY2ggbGVhZHMgdG8gZGlmZmVyZW50XG4gKiAgaW1wbGVtZW50YXRpb24gYXBwcm9hY2hlcyBhbmQgYWxsb3Qgb2YgY29kZSBkdXBsaWNhdGlvbi5cbiAqXG4gKiAgSXQgaXMgY29tbW9uIHByYWN0aWNlIHdoZW4gd29ya2luZyB3aXRoIGRpZmZlcmVudCBkYXRhIGlucHV0IHNvdXJjZXMgd2UgdHJ5IHRvIGFwcGx5IHNvbWVcbiAqICBEZXNpZ24gcGF0dGVybnMgZS5nLiBBZGFwdGVyIFBhdHRlcm4gdGhhdCBwcm92aWRlcyB1cyB3aXRoIGd1aWRlbGluZXMgaG93IGRpZmZlcmVudCBpbnRlcmZhY2VzXG4gKiAgY2FuIHRhbGsgdG8gZWFjaCBvdGhlciBhbmQgZnJvbSBoZXJlIHdlIGNhbiBkZXJpdmUgYW5vdGhlciBwYXR0ZXJuIHNvIGNhbGxlZCBEYXRhc291cmNlIHBhdHRlcm5cbiAqICB3aGljaCBpcyBoaWdoLWxldmVsIGFyY2hpdGVjdHVyYWwgcGF0dGVybiB0byBhYnN0cmFjdCBkYXRhIGFuZCBpbnRlcm5hbCByZXNvdXJjZXNcbiAqICBhY2Nlc3MgKERCIGNhbGxzLCBSZXN0IGNhbGxzLCBkb21haW4gb2JqZWN0cykgd2l0aCBhIG1pbmluYWwgYW1vdW50IGEgY29kZS5cbiAqXG4gKiBXaGF0IHdlIHdhbnQgdG8gYWNoaWV2ZSBpcyB0byBkZWZpbmUgYWJzdHJhY3QgbGF5ZXIgd2hlcmUgZWFjaCBzcGVjaWZpYyByZXNvdXJjZSB0eXBlIG5lZWRzIHRvXG4gKiBpbXBsZW1lbnQgYW5kIG1vdmUgYWxsIHRoZSByZWxhdGVkIGxvZ2ljIGludG8gcmV1c2FibGUgRGF0YVNvdXJjZXMuIChUYWJsZURhdGFTb3VyY2UsXG4gKiBDb21ib0JveERhdGFTb3VyY2UsIC4uLiApXG4gKlxuICogT2JzZXJ2YWJsZTxUW10+IGlzIGEgcmVhY3RpdmUgc3RyZWFtLCB0aGF0IGNoYW5nZXMgaXRzIGNvbnRlbnQgYmFzZWQgb24gd2hhdCBpdCBwdXNoZWRcbiAqIGludG8gaXQgdXNpbmcgLm5leHQoKS5cbiAqXG4gKiBFYWNoIHR5cGUgb2YgZGF0YSBjb21wb25lbnQgc3VjaCBBdXRvY29tcGxldGUsIERhdGFUYWJsZSwgTGlzdCwuLiBuZWVkcyB0byBwcm92aWRlIGl0cyBvd25cbiAqIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIHRvIGhhbmRsZSBzcGVjaWZpYyB1c2UtY2FzZS5cbiAqXG4gKiBgYGBcbiAqICBleHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YVRhYmxlRGF0YVNvdXJjZTxUPiBpbXBsZW1lbnRzIERhdGFTb3VyY2U8VD4ge1xuICogICAgZGF0YTogVFtdO1xuICogICAgZmlsdGVyVGVybTogc3RyaW5nO1xuICogICAgcGFnaW5hdG9yOiBQYWdpbmF0b3IgfCBudWxsXG4gKlxuICogICAgZmlsdGVyUHJlZGljYXRlOiAoKGRhdGE6IFQsIGZpbHRlcjogc3RyaW5nKSA9PiBib29sZWFuO1xuICpcbiAqICAgIHNvcnREYXRhOiAoKGRhdGE6IFRbXSwgc29ydDogU29ydCkgPT4gVFtdKTtcbiAqXG4gKiAgICAvL1xuICogICAgY3JlYXRlICh0OiBUKTogVDtcbiAqICAgIHVwZGF0ZSAodDogVCk6IFQ7XG4gKiAgICByZW1vdmUgKHQ6IFQpOiBUO1xuICpcbiAqICB9XG4gKiBgYGBcbiAqXG4gKiBBZnRlciB3ZSBkZWZpbmUgYSBmb3JtYXQgd2UgY2FuIHN0YXJ0IGNyZWF0aW5nIGNvbmNyZXRlIGltcGxlbWVudGF0aW9ucyBiYXNlZCBvbiB0aGUgdXNhZ2Ugb3JcbiAqIHJlc291cmNlIC5lLmc6XG4gKlxuICpcbiAqIGBgYFxuICogZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJlc3RBdXRvQ29tcGxldGVEYXRhU291cmNlPFQ+IGV4dGVuZCBEYXRhQ2hvb3NlckRhdGFTb3VyY2UgPFQ+IHtcbiAqICAgLy8gV2UgY2FuIHVzZSBhIHJlZ2lzdHJ5IHRoYXQgaXMgYWJsZSB0byBtYXAgYSBFbnRpdHkgVHlwZSA9IEVuZHBvaW50XG4gKiAgIC8vIGhhdmUgaWRlbnRpY2FsIHdheSBob3cgdG8gZmV0Y2ggLCBzZWFyY2ggLC4uLlxuICogfVxuICogYGBgXG4gKlxuICogUHJvYmFibHkgd2hlbiB3b3JraW5nIHdpdGggZGF0YSBvbmx5IGxvY2FsbHksIGl0IGNhbiBiZTpcbiAqXG4gKiBgYGBcbiAqIGV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMb2NhbEFycmF5QXV0b0NvbXBsZXRlRGF0YVNvdXJjZTxUPiBleHRlbmQgRGF0YUNob29zZXJEYXRhU291cmNlIDxUPiB7XG4gKiB9XG4gKiBgYGBcbiAqXG4gKlxuICovXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIE1hdGNoaW5nU3RyYXRlZ3kge1xuICAgIFNUQVJUU19XSVRIX1BFUl9URVJNID0gJ3N0YXJ0cyB3aXRoIHBlciB0ZXJtJyxcbiAgICBTVEFSVFNfV0lUSCA9ICdzdGFydHMgd2l0aCcsXG4gICAgQ09OVEFJTlMgPSAnY29udGFpbnMnXG59XG5cbmV4cG9ydCBjb25zdCBEQVRBX1BST1ZJREVSUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxNYXA8c3RyaW5nLCBEYXRhUHJvdmlkZXI8YW55Pj4+KCdEYXRhUHJvdmlkZXJSZWdpc3RyeScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTb3VyY2U8VCwgUCA9IFRbXSwgTCA9IGJvb2xlYW4+IHtcbiAgICBpc0RhdGFMb2FkaW5nOiBMO1xuICAgIG9wZW4oKTogT2JzZXJ2YWJsZTxQPjtcbiAgICBjbG9zZSgpOiB2b2lkO1xuICAgIG9uRGF0YVJlcXVlc3RlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICAgIG9uRGF0YVJlY2VpdmVkKCk6IE9ic2VydmFibGU8dm9pZD47XG59XG5cbmV4cG9ydCB0eXBlIE1hdGNoQnkgPSAoaXRlbTogYW55KSA9PiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWF0Y2hpbmdCeSB7XG4gICAgZmlyc3RCeTogTWF0Y2hCeTtcbiAgICBzZWNvbmRhcnlCeT86IE1hdGNoQnk7XG59XG5cbi8qKiBNYXRjaGluZyBTdHJhdGVneTogU3RhcnRzV2l0aFBlclRlcm0gLSBSZXFleHAgKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXRjaGluZ1N0cmF0ZWd5U3RhcnRzV2l0aFBlclRlcm1SZXFleHAodmFsdWU6IHN0cmluZyk6IFJlZ0V4cCB7XG4gICAgLy8gV2UgbmVlZCB0byBlc2NhcGUgYWxsIHNwZWNpYWwgY2hhcmFjdGVycyBpbiBvcmRlciBub3QgdG8gYnJlYWsgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi5cbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgKFxcXFxzfF4pKCR7dmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKX0pYCwgJ2dpJyk7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRhU291cmNlPFQgPSBhbnk+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlLm9wZW4gPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCB0eXBlIFByb3ZpZGVyUGFyYW1zID0gUmVhZG9ubHlNYXA8c3RyaW5nLCBhbnk+O1xuLyoqXG4gKiBQcm92aWRlciBpcyBhIGRhdGEgZHJpdmVyIHRoYXQgY2FuIGFjY2VzcyBkYXRhIGFuZCByZXRyaWV2ZSB0aGVtLiBJdCBrbm93cyBob3cgdG8gZ2V0IDFcbiAqIG9yIG1vcmUgcmVjb3JkcywgbWF5YmUgZG8gcGFnaW5nIGFuZCBzb21lIG90aGVyIHRoaW5ncy5cbiAqXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhUHJvdmlkZXI8VD4ge1xuICAgIGFic3RyYWN0IGZldGNoKHBhcmFtczogUHJvdmlkZXJQYXJhbXMsIHN0YXJ0PzogbnVtYmVyLCBlbmQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFRbXT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfa2V5UGF0aDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX21hdGNoaW5nU3RyYXRlZ3k6IE1hdGNoaW5nU3RyYXRlZ3kgPSBNYXRjaGluZ1N0cmF0ZWd5LlNUQVJUU19XSVRIO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX21hdGNoaW5nQnk6IE1hdGNoaW5nQnkgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0VG90YWxJdGVtcz8oKTogT2JzZXJ2YWJsZTxudW1iZXI+O1xuXG4gICAgLyoqXG4gICAgICogVGVsbHMgaWYgdGhpcyBEYXRhUHJvdmlkZXIgc3VwcG9ydHMgSU5TRVJULCBSRU1PVkVcbiAgICAgKlxuICAgICAqL1xuICAgIGNhbkNSVUQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBJbXBsZW1lbnQgdG8gc3VwcG9ydCBDUlVEIG9wZXJhdGlvbnMuXG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldE9uZShwYXJhbXM6IFByb3ZpZGVyUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaW5zZXJ0KHBheWxvYWQ6IGFueSwgcGFyYW1zPzogUHJvdmlkZXJQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3Qgc3VwcG9ydGVkJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZW1vdmUocGFyYW1zOiBQcm92aWRlclBhcmFtcyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHVwZGF0ZShwYXlsb2FkOiBhbnksIHBhcmFtcz86IFByb3ZpZGVyUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCcpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0TG9va3VwS2V5KGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleVBhdGggPSBrZXk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRNYXRjaGluZ0J5KG1hdGNoaW5nQnk6IE1hdGNoaW5nQnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWF0Y2hpbmdCeSA9IG1hdGNoaW5nQnk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRNYXRjaGluZ1N0cmF0ZWd5KHN0cmF0ZWd5OiBNYXRjaGluZ1N0cmF0ZWd5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21hdGNoaW5nU3RyYXRlZ3kgPSBzdHJhdGVneTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21ib0JveERhdGFTb3VyY2U8VD4gaW1wbGVtZW50cyBEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0YXRpYyByZWFkb25seSBNYXhMaW1pdCA9IDU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGxpbWl0bGVzcyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8VFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX29uRGF0YVJlcXVlc3RlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9vbkRhdGFSZWNlaXZlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9vbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGF0YUxvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGlzRGF0YUxvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhTG9hZGluZztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxhbnk+KSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtYXRjaChwcmVkaWNhdGU6IHN0cmluZyB8IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpLCBzdGFydCA9IDAsIGVuZCA9IEluZmluaXR5KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGF0YVJlcXVlc3RlZCQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kYXRhTG9hZGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IHNlYXJjaFBhcmFtID0gbmV3IE1hcCgpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgcHJlZGljYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgc2VhcmNoUGFyYW0uc2V0KCdxdWVyeScsIHByZWRpY2F0ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAocHJlZGljYXRlIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICBwcmVkaWNhdGUuZm9yRWFjaCgodiwgaykgPT4gc2VhcmNoUGFyYW0uc2V0KGssIHYpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YVNvdXJjZS5tYXRjaCgpIHByZWRpY2F0ZSBjYW4gb25seSBhY2NlcHRzIHN0cmluZyBhbmQgTWFwJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXNlYXJjaFBhcmFtLmhhcygnbGltaXQnKSAmJiAhdGhpcy5saW1pdGxlc3MpIHtcbiAgICAgICAgICAgIHNlYXJjaFBhcmFtLnNldCgnbGltaXQnLCBDb21ib0JveERhdGFTb3VyY2UuTWF4TGltaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXJcbiAgICAgICAgICAgIC5mZXRjaChzZWFyY2hQYXJhbSwgc3RhcnQsIGVuZClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IChyZXN1bHQ6IFRbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkRhdGFSZWNlaXZlZCQubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhQ2hhbmdlcy5uZXh0KHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkRhdGFSZWNlaXZlZCQubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3BlbigpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25EYXRhUmVxdWVzdGVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb25EYXRhUmVxdWVzdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uRGF0YVJlY2VpdmVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb25EYXRhUmVjZWl2ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE11bHRpQ29tYm9Cb3hEYXRhU291cmNlPFQ+IGV4dGVuZHMgQ29tYm9Cb3hEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxhbnk+KSB7XG4gICAgICAgIHN1cGVyKGRhdGFQcm92aWRlcik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VhcmNoRmllbGREYXRhU291cmNlPFQ+IGV4dGVuZHMgQ29tYm9Cb3hEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxhbnk+KSB7XG4gICAgICAgIHN1cGVyKGRhdGFQcm92aWRlcik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTGlzdERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGltaXRsZXNzID0gdHJ1ZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhUHJvdmlkZXI6IERhdGFQcm92aWRlcjxhbnk+KSB7XG4gICAgICAgIHN1cGVyKGRhdGFQcm92aWRlcik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTXVsdGlJbnB1dERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRhdGFQcm92aWRlcjogRGF0YVByb3ZpZGVyPGFueT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHByb3ZhbEZsb3dVc2VyRGF0YVNvdXJjZTxUPiBleHRlbmRzIENvbWJvQm94RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVByb3ZpZGVyOiBEYXRhUHJvdmlkZXI8VD4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHByb3ZhbEZsb3dUZWFtRGF0YVNvdXJjZTxUPiBleHRlbmRzIENvbWJvQm94RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVByb3ZpZGVyOiBEYXRhUHJvdmlkZXI8VD4pIHtcbiAgICAgICAgc3VwZXIoZGF0YVByb3ZpZGVyKTtcbiAgICB9XG59XG4iXX0=","/**\n * Default implementation for Observable Arrays and Arrays.\n */\nimport { isObservable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { isFunction, isJsObject, objectToName, objectValues } from '../utils/lang';\nimport { DataProvider, MatchingStrategy, getMatchingStrategyStartsWithPerTermReqexp } from './data-source';\n/**\n * In Memory implementation of DataProvider that supports fulltext search\n */\nexport class BaseDataProvider extends DataProvider {\n /** @hidden */\n constructor(values) {\n super();\n this.values = values;\n }\n /** @hidden */\n fetch(params) {\n const observable = isObservable(this.values) ? this.values : of(this.values);\n const queryString = params.get('query');\n const limit = params.get('limit') || 50;\n if (!queryString || queryString === '*') {\n return observable.pipe(map((items) => this.withLimit(items, limit)));\n }\n const toLowerPattern = queryString.toLowerCase();\n return observable.pipe(map((items) => {\n const result = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (this.matches(item, toLowerPattern)) {\n result.push(item);\n if (result.length >= limit) {\n break;\n }\n }\n }\n return result;\n }));\n }\n /**\n * Warning: If you dont supply search Key and you want fulltext search and you use this\n * default implementation be aware that it can perform poorly as it is naive implementation\n * that does not do deep compare.\n */\n matches(item, pattern) {\n if (!this._matchingBy) {\n return false;\n }\n const { firstBy, secondaryBy } = this._matchingBy;\n let matched = this.matchesBy(item, pattern, firstBy);\n if (!matched && secondaryBy) {\n matched = this.matchesBy(item, pattern, secondaryBy);\n }\n return matched;\n }\n /** @hidden */\n matchesBy(item, pattern, matchingBy) {\n const value = isJsObject(item) && matchingBy ? matchingBy(item) : item;\n if (isFunction(value)) {\n return value.call(item);\n }\n else if (isJsObject(value)) {\n return this.hasObjectValue(item, pattern);\n }\n else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH_PER_TERM) {\n const reqexp = getMatchingStrategyStartsWithPerTermReqexp(pattern);\n return !!pattern && !!value && !!value.match(reqexp);\n }\n else if (this._matchingStrategy === MatchingStrategy.STARTS_WITH) {\n return !!pattern && !!value && value.toString().toLowerCase().startsWith(pattern.toLowerCase());\n }\n else if (this._matchingStrategy === MatchingStrategy.CONTAINS) {\n return !!pattern && !!value && value.toString().toLowerCase().indexOf(pattern) > -1;\n }\n else {\n return !!pattern && !!value && value.toString().toLowerCase() === pattern;\n }\n }\n /** @hidden */\n hasObjectValue(obj, pattern) {\n const values = objectValues(obj);\n const parentObj = objectToName(obj);\n const length2 = values.filter((value) => {\n if (!value || Array.isArray(value)) {\n return false;\n }\n else if (!isJsObject(value) && !isFunction(value)) {\n return value.toString().toLowerCase().indexOf(pattern) !== -1;\n }\n else if (isJsObject(value) && objectToName(value) !== parentObj) {\n return this.hasObjectValue(value, pattern);\n }\n return false;\n }).length;\n return length2 > 0;\n }\n /** @hidden */\n withLimit(data, limit) {\n if (limit && data.length > limit) {\n return data.slice(0, limit);\n }\n return data;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRhLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zaGFyZWQvZG9tYWluL2Jhc2UtZGF0YS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBYyxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQVcsZ0JBQWdCLEVBQUUsMENBQTBDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEg7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQW9CLFNBQVEsWUFBZTtJQUNwRCxjQUFjO0lBQ2QsWUFBc0IsTUFBNkI7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFEVSxXQUFNLEdBQU4sTUFBTSxDQUF1QjtJQUVuRCxDQUFDO0lBRUQsY0FBYztJQUNkLEtBQUssQ0FBQyxNQUF3QjtRQUMxQixNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTdFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdEMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFD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QUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDVixPQUFPLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELGNBQWM7SUFDTixTQUFTLENBQUMsSUFBYyxFQUFFLEtBQWM7UUFDNUMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIE9ic2VydmFibGUgQXJyYXlzIGFuZCBBcnJheXMuXG4gKi9cbmltcG9ydCB7IE9ic2VydmFibGUsIGlzT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNKc09iamVjdCwgb2JqZWN0VG9OYW1lLCBvYmplY3RWYWx1ZXMgfSBmcm9tICcuLi91dGlscy9sYW5nJztcbmltcG9ydCB7IERhdGFQcm92aWRlciwgTWF0Y2hCeSwgTWF0Y2hpbmdTdHJhdGVneSwgZ2V0TWF0Y2hpbmdTdHJhdGVneVN0YXJ0c1dpdGhQZXJUZXJtUmVxZXhwIH0gZnJvbSAnLi9kYXRhLXNvdXJjZSc7XG5cbi8qKlxuICogSW4gTWVtb3J5IGltcGxlbWVudGF0aW9uIG9mIERhdGFQcm92aWRlciB0aGF0IHN1cHBvcnRzIGZ1bGx0ZXh0IHNlYXJjaFxuICovXG5leHBvcnQgY2xhc3MgQmFzZURhdGFQcm92aWRlcjxUPiBleHRlbmRzIERhdGFQcm92aWRlcjxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdmFsdWVzOiBPYnNlcnZhYmxlPFRbXT4gfCBUW10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZldGNoKHBhcmFtczogTWFwPHN0cmluZywgYW55Pik6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSBpc09ic2VydmFibGUodGhpcy52YWx1ZXMpID8gdGhpcy52YWx1ZXMgOiBvZih0aGlzLnZhbHVlcyk7XG5cbiAgICAgICAgY29uc3QgcXVlcnlTdHJpbmcgPSBwYXJhbXMuZ2V0KCdxdWVyeScpO1xuICAgICAgICBjb25zdCBsaW1pdCA9IHBhcmFtcy5nZXQoJ2xpbWl0JykgfHwgNTA7XG5cbiAgICAgICAgaWYgKCFxdWVyeVN0cmluZyB8fCBxdWVyeVN0cmluZyA9PT0gJyonKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKG1hcCgoaXRlbXMpID0+IHRoaXMud2l0aExpbWl0KGl0ZW1zLCBsaW1pdCkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRvTG93ZXJQYXR0ZXJuID0gcXVlcnlTdHJpbmcudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZS5waXBlKFxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogYW55W10gPSBbXTtcblxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXRjaGVzKGl0ZW0sIHRvTG93ZXJQYXR0ZXJuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+PSBsaW1pdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2FybmluZzogSWYgeW91IGRvbnQgc3VwcGx5IHNlYXJjaCBLZXkgYW5kIHlvdSB3YW50IGZ1bGx0ZXh0IHNlYXJjaCBhbmQgeW91IHVzZSB0aGlzXG4gICAgICogZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBiZSBhd2FyZSB0aGF0IGl0IGNhbiAgcGVyZm9ybSBwb29ybHkgYXMgaXQgaXMgbmFpdmUgaW1wbGVtZW50YXRpb25cbiAgICAgKiB0aGF0IGRvZXMgbm90IGRvIGRlZXAgY29tcGFyZS5cbiAgICAgKi9cbiAgICBtYXRjaGVzKGl0ZW06IFQsIHBhdHRlcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX21hdGNoaW5nQnkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGZpcnN0QnksIHNlY29uZGFyeUJ5IH0gPSB0aGlzLl9tYXRjaGluZ0J5O1xuXG4gICAgICAgIGxldCBtYXRjaGVkID0gdGhpcy5tYXRjaGVzQnkoaXRlbSwgcGF0dGVybiwgZmlyc3RCeSk7XG4gICAgICAgIGlmICghbWF0Y2hlZCAmJiBzZWNvbmRhcnlCeSkge1xuICAgICAgICAgICAgbWF0Y2hlZCA9IHRoaXMubWF0Y2hlc0J5KGl0ZW0sIHBhdHRlcm4sIHNlY29uZGFyeUJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXRjaGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbWF0Y2hlc0J5KGl0ZW06IGFueSwgcGF0dGVybjogc3RyaW5nLCBtYXRjaGluZ0J5OiBNYXRjaEJ5KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXNKc09iamVjdChpdGVtKSAmJiBtYXRjaGluZ0J5ID8gbWF0Y2hpbmdCeShpdGVtKSA6IGl0ZW07XG5cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24odmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUuY2FsbChpdGVtKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0pzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzT2JqZWN0VmFsdWUoaXRlbSwgcGF0dGVybik7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fbWF0Y2hpbmdTdHJhdGVneSA9PT0gTWF0Y2hpbmdTdHJhdGVneS5TVEFSVFNfV0lUSF9QRVJfVEVSTSkge1xuICAgICAgICAgICAgY29uc3QgcmVxZXhwID0gZ2V0TWF0Y2hpbmdTdHJhdGVneVN0YXJ0c1dpdGhQZXJUZXJtUmVxZXhwKHBhdHRlcm4pO1xuICAgICAgICAgICAgcmV0dXJuICEhcGF0dGVybiAmJiAhIXZhbHVlICYmICEhdmFsdWUubWF0Y2gocmVxZXhwKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9tYXRjaGluZ1N0cmF0ZWd5ID09PSBNYXRjaGluZ1N0cmF0ZWd5LlNUQVJUU19XSVRIKSB7XG4gICAgICAgICAgICByZXR1cm4gISFwYXR0ZXJuICYmICEhdmFsdWUgJiYgdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgocGF0dGVybi50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9tYXRjaGluZ1N0cmF0ZWd5ID09PSBNYXRjaGluZ1N0cmF0ZWd5LkNPTlRBSU5TKSB7XG4gICAgICAgICAgICByZXR1cm4gISFwYXR0ZXJuICYmICEhdmFsdWUgJiYgdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YocGF0dGVybikgPiAtMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAhIXBhdHRlcm4gJiYgISF2YWx1ZSAmJiB2YWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09IHBhdHRlcm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBoYXNPYmplY3RWYWx1ZShvYmo6IGFueSwgcGF0dGVybjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG9iamVjdFZhbHVlcyhvYmopO1xuICAgICAgICBjb25zdCBwYXJlbnRPYmogPSBvYmplY3RUb05hbWUob2JqKTtcbiAgICAgICAgY29uc3QgbGVuZ3RoMiA9IHZhbHVlcy5maWx0ZXIoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICghdmFsdWUgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFpc0pzT2JqZWN0KHZhbHVlKSAmJiAhaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YocGF0dGVybikgIT09IC0xO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0pzT2JqZWN0KHZhbHVlKSAmJiBvYmplY3RUb05hbWUodmFsdWUpICE9PSBwYXJlbnRPYmopIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYXNPYmplY3RWYWx1ZSh2YWx1ZSwgcGF0dGVybik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSkubGVuZ3RoO1xuICAgICAgICByZXR1cm4gbGVuZ3RoMiA+IDA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHdpdGhMaW1pdChkYXRhOiBBcnJheTxUPiwgbGltaXQ/OiBudW1iZXIpOiBBcnJheTxUPiB7XG4gICAgICAgIGlmIChsaW1pdCAmJiBkYXRhLmxlbmd0aCA+IGxpbWl0KSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5zbGljZSgwLCBsaW1pdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuIl19","/**\n * Default implementation for Arrays.\n */\nimport { BaseDataProvider } from './base-data-provider';\nimport { ComboBoxDataSource, ListDataSource, MultiComboBoxDataSource, MultiInputDataSource } from './data-source';\nexport class ArrayComboBoxDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ArrayMultiComboBoxDataSource extends MultiComboBoxDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ArrayListDataSource extends ListDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ArrayMultiInputDataSource extends MultiInputDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NoYXJlZC9kb21haW4vYXJyYXktZGF0YS1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxILE1BQU0sT0FBTyx1QkFBMkIsU0FBUSxrQkFBcUI7SUFDakUsY0FBYztJQUNkLFlBQW9CLElBQVM7UUFDekIsS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQURsQixTQUFJLEdBQUosSUFBSSxDQUFLO0lBRTdCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyw0QkFBZ0MsU0FBUSx1QkFBMEI7SUFDM0UsY0FBYztJQUNkLFlBQW9CLElBQVM7UUFDekIsS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQURsQixTQUFJLEdBQUosSUFBSSxDQUFLO0lBRTdCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxtQkFBdUIsU0FBUSxjQUFpQjtJQUN6RCxjQUFjO0lBQ2QsWUFBb0IsSUFBUztRQUN6QixLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRGxCLFNBQUksR0FBSixJQUFJLENBQUs7SUFFN0IsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHlCQUE2QixTQUFRLG9CQUF1QjtJQUNyRSxjQUFjO0lBQ2QsWUFBb0IsSUFBUztRQUN6QixLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRGxCLFNBQUksR0FBSixJQUFJLENBQUs7SUFFN0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBBcnJheXMuXG4gKi9cbmltcG9ydCB7IEJhc2VEYXRhUHJvdmlkZXIgfSBmcm9tICcuL2Jhc2UtZGF0YS1wcm92aWRlcic7XG5pbXBvcnQgeyBDb21ib0JveERhdGFTb3VyY2UsIExpc3REYXRhU291cmNlLCBNdWx0aUNvbWJvQm94RGF0YVNvdXJjZSwgTXVsdGlJbnB1dERhdGFTb3VyY2UgfSBmcm9tICcuL2RhdGEtc291cmNlJztcblxuZXhwb3J0IGNsYXNzIEFycmF5Q29tYm9Cb3hEYXRhU291cmNlPFQ+IGV4dGVuZHMgQ29tYm9Cb3hEYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YTogVFtdKSB7XG4gICAgICAgIHN1cGVyKG5ldyBCYXNlRGF0YVByb3ZpZGVyKGRhdGEpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcnJheU11bHRpQ29tYm9Cb3hEYXRhU291cmNlPFQ+IGV4dGVuZHMgTXVsdGlDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhOiBUW10pIHtcbiAgICAgICAgc3VwZXIobmV3IEJhc2VEYXRhUHJvdmlkZXIoZGF0YSkpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFycmF5TGlzdERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBMaXN0RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGE6IFRbXSkge1xuICAgICAgICBzdXBlcihuZXcgQmFzZURhdGFQcm92aWRlcihkYXRhKSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXJyYXlNdWx0aUlucHV0RGF0YVNvdXJjZTxUPiBleHRlbmRzIE11bHRpSW5wdXREYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YTogVFtdKSB7XG4gICAgICAgIHN1cGVyKG5ldyBCYXNlRGF0YVByb3ZpZGVyKGRhdGEpKTtcbiAgICB9XG59XG4iXX0=","import { coerceArray } from '@angular/cdk/coercion';\nimport { isBlank } from '../utils/lang';\n/** @hidden */\nexport function isSelectableItem(item) {\n return (item &&\n item.label !== undefined &&\n item.value !== undefined &&\n Object.prototype.hasOwnProperty.call(item, 'selected'));\n}\n/** @hidden */\nexport function isSelectItem(item) {\n return item && item.label !== undefined && item.value !== undefined;\n}\nexport const isOptionItem = isSelectItem;\nexport const isSelectableOptionItem = isSelectableItem;\n/**\n * Wraps the provided value in an array, unless it is an array already.\n * If `null` or `undefined` is received, will return an empty array.\n */\nexport function coerceArraySafe(value) {\n return isBlank(value) ? [] : coerceArray(value);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2RvbWFpbi9kYXRhLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBOER4QyxjQUFjO0FBQ2QsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQWdCO0lBQzdDLE9BQU8sQ0FDSCxJQUFJO1FBQ0osSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUztRQUN4QixNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUN6RCxDQUFDO0FBQ04sQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQWdCO0lBQ3pDLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQ3hFLENBQUM7QUFxQkQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUV2RDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFJLEtBQWM7SUFDN0MsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNCbGFuayB9IGZyb20gJy4uL3V0aWxzL2xhbmcnO1xuXG4vKipcbiAqIEludGVyZmFjZSBTZWxlY3RJdGVtIGlzIHVzZWQgdG8gZGVhbCB3aXRoIGNvbXBsZXggb2JqZWN0IGluIG9yZGVyIHRvIGJlIGFibGUgdG8gZm9ybWF0XG4gKiBjdXN0b20gbGFiZWwgdGhhdCBpcyBzaG93biBpbiB0aGUgb3B0aW9ucy5cbiAqXG4gKiBVc2VkIGluIHZhcmlvdXMgY29udHJvbHM6IFNlbGVjdCwgUmFkaW9Hcm91cCwgQ2hlY2tib3hHcm91cCwgQ29tYm9ib3hcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RJdGVtPFQgPSBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBJdGVtIHRleHQgc2hvd24gaW4gdGhlIHBvcHVwXG4gICAgICovXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZXMgdG8gdGhlIG9iamVjdCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHZhbHVlOiBUO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAgIGljb24/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVHJpZ2dlciB2YWx1ZXMgaXMgYSB0ZXh0IGZvciBzZWxlY3RlZCBpdGVtXG4gICAgICovXG4gICAgdHJpZ2dlclZhbHVlPzogc3RyaW5nO1xuXG4gICAgaXNHcm91cD86IGJvb2xlYW47XG4gICAgc2Vjb25kYXJ5VGV4dD86IHN0cmluZztcbiAgICBjaGlsZHJlbj86IFNlbGVjdEl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBVc2VkIGluIHNldHRpbmdzIGdlbmVyYXRvciBvbmx5LlxuICAgICAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFVzZWQgaW4gc2V0dGluZ3MgZ2VuZXJhdG9yIG9ubHkuXG4gICAgICovXG4gICAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvbkl0ZW0ge1xuICAgIC8qKiBJdGVtIHRleHQgKi9cbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlcyB0byB0aGUgb2JqZWN0IGluc3RhbmNlXG4gICAgICovXG4gICAgdmFsdWU6IGFueTtcbiAgICBpZD86IHN0cmluZztcbiAgICBpc0dyb3VwPzogYm9vbGVhbjtcbiAgICBzZWNvbmRhcnlUZXh0Pzogc3RyaW5nO1xuICAgIGNoaWxkcmVuPzogT3B0aW9uSXRlbVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGFibGVPcHRpb25JdGVtIGV4dGVuZHMgT3B0aW9uSXRlbSB7XG4gICAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIGNoaWxkcmVuPzogU2VsZWN0YWJsZU9wdGlvbkl0ZW1bXTtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlbGVjdGFibGVJdGVtKGl0ZW06IFNlbGVjdEl0ZW0pOiBpdGVtIGlzIFNlbGVjdEl0ZW0ge1xuICAgIHJldHVybiAoXG4gICAgICAgIGl0ZW0gJiZcbiAgICAgICAgaXRlbS5sYWJlbCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIGl0ZW0udmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbSwgJ3NlbGVjdGVkJylcbiAgICApO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0SXRlbShpdGVtOiBTZWxlY3RJdGVtKTogaXRlbSBpcyBTZWxlY3RJdGVtIHtcbiAgICByZXR1cm4gaXRlbSAmJiBpdGVtLmxhYmVsICE9PSB1bmRlZmluZWQgJiYgaXRlbS52YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpSW5wdXRPcHRpb24ge1xuICAgIC8qKiBJdGVtIHRleHQgKi9cbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlcyB0byB0aGUgb2JqZWN0IGluc3RhbmNlXG4gICAgICovXG4gICAgdmFsdWU6IGFueTtcblxuICAgIC8qKlxuICAgICAqIEl0ZW0gQXZhdGFyXG4gICAgICovXG4gICAgYXZhdGFyU3JjPzogc3RyaW5nO1xuXG4gICAgaXNHcm91cD86IGJvb2xlYW47XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgY2hpbGRyZW4/OiBNdWx0aUlucHV0T3B0aW9uW107XG59XG5cbmV4cG9ydCBjb25zdCBpc09wdGlvbkl0ZW0gPSBpc1NlbGVjdEl0ZW07XG5leHBvcnQgY29uc3QgaXNTZWxlY3RhYmxlT3B0aW9uSXRlbSA9IGlzU2VsZWN0YWJsZUl0ZW07XG5cbi8qKlxuICogV3JhcHMgdGhlIHByb3ZpZGVkIHZhbHVlIGluIGFuIGFycmF5LCB1bmxlc3MgaXQgaXMgYW4gYXJyYXkgYWxyZWFkeS5cbiAqIElmIGBudWxsYCBvciBgdW5kZWZpbmVkYCBpcyByZWNlaXZlZCwgd2lsbCByZXR1cm4gYW4gZW1wdHkgYXJyYXkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VBcnJheVNhZmU8VD4odmFsdWU6IFQgfCBUW10pOiBUW10ge1xuICAgIHJldHVybiBpc0JsYW5rKHZhbHVlKSA/IFtdIDogY29lcmNlQXJyYXkodmFsdWUpO1xufVxuIl19","import { BaseDataProvider } from './base-data-provider';\nimport { ComboBoxDataSource, ListDataSource, MultiComboBoxDataSource, MultiInputDataSource } from './data-source';\nexport class ObservableComboBoxDataSource extends ComboBoxDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ObservableMultiComboBoxDataSource extends MultiComboBoxDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ObservableListDataSource extends ListDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\nexport class ObservableMultiInputDataSource extends MultiInputDataSource {\n /** @hidden */\n constructor(data) {\n super(new BaseDataProvider(data));\n this.data = data;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS1kYXRhLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2RvbWFpbi9vYnNlcnZhYmxlLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEgsTUFBTSxPQUFPLDRCQUFnQyxTQUFRLGtCQUFxQjtJQUN0RSxjQUFjO0lBQ2QsWUFBb0IsSUFBcUI7UUFDckMsS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQURsQixTQUFJLEdBQUosSUFBSSxDQUFpQjtJQUV6QyxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8saUNBQXFDLFNBQVEsdUJBQTBCO0lBQ2hGLGNBQWM7SUFDZCxZQUFvQixJQUFxQjtRQUNyQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRGxCLFNBQUksR0FBSixJQUFJLENBQWlCO0lBRXpDLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyx3QkFBNEIsU0FBUSxjQUFpQjtJQUM5RCxjQUFjO0lBQ2QsWUFBb0IsSUFBcUI7UUFDckMsS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQURsQixTQUFJLEdBQUosSUFBSSxDQUFpQjtJQUV6QyxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sOEJBQWtDLFNBQVEsb0JBQXVCO0lBQzFFLGNBQWM7SUFDZCxZQUFvQixJQUFxQjtRQUNyQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRGxCLFNBQUksR0FBSixJQUFJLENBQWlCO0lBRXpDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgT2JzZXJ2YWJsZSBBcnJheXMuXG4gKi9cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQmFzZURhdGFQcm92aWRlciB9IGZyb20gJy4vYmFzZS1kYXRhLXByb3ZpZGVyJztcbmltcG9ydCB7IENvbWJvQm94RGF0YVNvdXJjZSwgTGlzdERhdGFTb3VyY2UsIE11bHRpQ29tYm9Cb3hEYXRhU291cmNlLCBNdWx0aUlucHV0RGF0YVNvdXJjZSB9IGZyb20gJy4vZGF0YS1zb3VyY2UnO1xuXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZUNvbWJvQm94RGF0YVNvdXJjZTxUPiBleHRlbmRzIENvbWJvQm94RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGE6IE9ic2VydmFibGU8VFtdPikge1xuICAgICAgICBzdXBlcihuZXcgQmFzZURhdGFQcm92aWRlcihkYXRhKSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZU11bHRpQ29tYm9Cb3hEYXRhU291cmNlPFQ+IGV4dGVuZHMgTXVsdGlDb21ib0JveERhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhOiBPYnNlcnZhYmxlPFRbXT4pIHtcbiAgICAgICAgc3VwZXIobmV3IEJhc2VEYXRhUHJvdmlkZXIoZGF0YSkpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9ic2VydmFibGVMaXN0RGF0YVNvdXJjZTxUPiBleHRlbmRzIExpc3REYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YTogT2JzZXJ2YWJsZTxUW10+KSB7XG4gICAgICAgIHN1cGVyKG5ldyBCYXNlRGF0YVByb3ZpZGVyKGRhdGEpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmxlTXVsdGlJbnB1dERhdGFTb3VyY2U8VD4gZXh0ZW5kcyBNdWx0aUlucHV0RGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGE6IE9ic2VydmFibGU8VFtdPikge1xuICAgICAgICBzdXBlcihuZXcgQmFzZURhdGFQcm92aWRlcihkYXRhKSk7XG4gICAgfVxufVxuIl19","import { DestroyRef, Directive, ElementRef, InjectionToken, Input, ViewChild, booleanAttribute, inject, isDevMode } from '@angular/core';\nimport { ControlContainer, NgControl, NgForm } from '@angular/forms';\nimport { Subject, filter } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FD_FORM_FIELD, FD_FORM_FIELD_CONTROL, isValidControlState } from '@fundamental-ngx/cdk/forms';\nimport { BaseComponent } from '../base';\nimport * as i0 from \"@angular/core\";\nexport const FDP_DO_CHECK = new InjectionToken('FdpInputDoCheckTrigger');\nexport const FDP_FORM_SUBMIT = new InjectionToken('FdpFormSubmitTrigger');\nlet randomId = 0;\n/**\n * All form components share the same information (value, name, placeholder,.. ) as well as\n * the same behavior given by ControlValueAccessor.\n *\n * Even this is not ideal solution there is no other way then use inheritance to reuse some of the\n * common logic. It should be possible to use some kind of compositions with Proxies but something\n * similar that exists in Aspect Oriented Programing.\n *\n * Usually try to fire stateChange only for things that can change dynamically in runtime. We don't expect\n * that e.g. placeholder will change after component is created\n */\nexport class BaseInput extends BaseComponent {\n /**\n * The state of the form control - applies css classes.\n * Can be 'success', 'error', 'warning', 'default', 'information'.\n *\n * @default 'default'\n */\n set state(state) {\n if (!state || isValidControlState(state)) {\n this._state = state;\n }\n else if (isDevMode()) {\n console.warn(`Provided value \"${state}\" is not a valid option for FormStates type`);\n }\n }\n get state() {\n if (this._state) {\n return this._state;\n }\n if (!this.controlInvalid) {\n return 'default';\n }\n return this.formField?.getPriorityState() || 'error';\n }\n /** Whether the input is disabled */\n set disabled(value) {\n this.setDisabledState(value);\n }\n get disabled() {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n /**\n * Tell the component if we are in editing mode.\n */\n set editable(value) {\n if (this._editable === value) {\n return;\n }\n this._editable = value;\n this.markForCheck();\n this.stateChanges.next('editable');\n }\n get editable() {\n return this._editable;\n }\n /** Whether control has errors */\n get controlInvalid() {\n return this._controlInvalid;\n }\n /** @hidden */\n constructor() {\n /**\n * We do not use Injector.get() approach here because there is a bug\n * with this signature https://github.com/angular/angular/issues/31776\n * where \"get()\" method doesn't take into account \"flag\" option\"\n *\n */\n super();\n /**\n * To allow user to determine what event he wants to trigger the messages to show\n * Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp).\n */\n this.triggers = [\n {\n trigger: 'focusin',\n openAction: true,\n closeAction: false\n },\n {\n trigger: 'focusout',\n openAction: false,\n closeAction: true\n }\n ];\n /** Form control validation event strategy. */\n this.validationStrategy = ['touched', 'dirty', 'submitted'];\n /**\n * See @FormFieldControl\n */\n this.focused = false;\n /**\n * See @FormFieldControl\n */\n this.stateChanges = new Subject();\n /** @hidden */\n this.formField = null;\n /** @hidden */\n this._doCheck$ = inject(FDP_DO_CHECK, { optional: true });\n /** Element reference. */\n this.elementRef = inject(ElementRef);\n /** NgControl reference. */\n this.ngControl = inject(NgControl, {\n optional: true,\n self: true\n });\n /** Control container reference. */\n this.controlContainer = inject(ControlContainer, {\n optional: true,\n skipSelf: true\n });\n /** Form reference. */\n this.ngForm = inject(NgForm, {\n optional: true,\n skipSelf: true\n });\n /** @hidden */\n this.defaultId = `fdp-input-id-${randomId++}`;\n /** @hidden */\n this._editable = true;\n /** @hidden */\n this._destroyed = inject(DestroyRef);\n /** @hidden */\n this._externalSubmit = inject(FDP_FORM_SUBMIT, { optional: true });\n /** @hidden */\n this._externalFormSubmitted = false;\n /**\n * @hidden\n */\n this._controlInvalid = false;\n /** @hidden */\n this.onChange = () => { };\n /** @hidden */\n this.onTouched = () => { };\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n const formField = inject(FD_FORM_FIELD, {\n optional: true,\n skipSelf: true,\n host: true\n });\n const formControl = inject(FD_FORM_FIELD_CONTROL, {\n optional: true,\n skipSelf: true,\n host: true\n });\n // We have to ignore \"formField\" if there is \"formControl\" wrapper\n this.formField = formField && !formControl ? formField : null;\n this._doCheck$?.pipe(takeUntilDestroyed(this._destroyed)).subscribe(() => {\n this.ngDoCheck();\n });\n this._externalSubmit?.pipe(takeUntilDestroyed(this._destroyed)).subscribe(() => {\n this._externalFormSubmitted = true;\n });\n }\n /** @hidden */\n ngOnInit() {\n if (this.formField) {\n this.formField.registerFormFieldControl(this);\n }\n }\n /**\n * Re-validate and emit event to parent container on every CD cycle as they are some errors\n * that we can't subscribe to.\n */\n ngDoCheck() {\n if (this.ngControl) {\n this.updateErrorState();\n }\n }\n /** @hidden */\n ngAfterViewInit() {\n if (this.ngControl) {\n this._subscriptions.add(this.ngControl.statusChanges?.subscribe(() => {\n this.markForCheck();\n }));\n }\n const labelAndHelpId = `fdp-form-label-content-${this.id}`;\n // if not specified, associate label and inline help ids with the input,\n // else add these ids to the specified ones\n if (this.formField) {\n if (!this.ariaLabelledBy) {\n this.ariaLabelledBy = labelAndHelpId;\n }\n else {\n this.ariaLabelledBy += ' ' + labelAndHelpId;\n }\n }\n this.innerErrorsTemplate = this.formField?.innerErrorRenderers;\n this.stateChanges\n .pipe(filter(() => !!this.formField), takeUntilDestroyed(this._destroyed))\n .subscribe(() => {\n this.advancedStateMessage = {\n template: this.formField.innerErrorRenderers,\n hasErrors: this.formField.hasErrors()\n };\n this.detectChanges();\n });\n this.detectChanges();\n }\n /** @hidden */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /** @hidden */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /** @hidden */\n ngOnDestroy() {\n super.ngOnDestroy();\n this.stateChanges.complete();\n if (this.formField) {\n this.formField.unregisterFormFieldControl(this);\n }\n }\n /** @hidden */\n setDisabledState(isDisabled) {\n const newState = booleanAttribute(isDisabled);\n this.markForCheck();\n if (newState !== this._disabled) {\n this._disabled = newState;\n this.stateChanges.next('setDisabledState');\n }\n }\n /**\n * Each sub class must override this method as inheritance does not work\n */\n writeValue(value) {\n this._value = value;\n this.stateChanges.next('writeValue');\n this.markForCheck();\n }\n /**\n *\n * Keeps track of element focus\n */\n _onFocusChanged(isFocused) {\n if (isFocused !== this.focused && (!this.disabled || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next('_onFocusChanged');\n }\n if (!isFocused) {\n this.onTouched();\n }\n }\n /**\n * Handles even when we click on parent container which is the FormField Wrapping this\n * control\n */\n onContainerClick(event) {\n this.focus(event);\n }\n /**\n * In most of the cases when working with input element directly you should be just find to assing\n * variable to this element\n *\n * ```\n * <input #inputElementRef fd-form-control ...>\n * ```\n *\n * and this default behavior used. For other cases implement focus.\n *\n */\n focus(event) {\n if (this._elementRef && !this.focused) {\n this._elementRef.nativeElement.focus(event);\n }\n }\n /**\n * Need re-validates errors on every CD iteration to make sure we are also\n * covering non-control errors, errors that happens outside of this control\n */\n updateErrorState() {\n const parent = this.ngForm;\n const parentControlContainer = this.controlContainer;\n const control = this.ngControl ? this.ngControl.control : null;\n const newStatusIsError = !!(control?.invalid &&\n ((this.validationStrategy.includes('dirty') && control.dirty) ||\n (this.validationStrategy.includes('touched') && control.touched) ||\n (this.validationStrategy.includes('submitted') && parent?.submitted) ||\n parentControlContainer?.submitted ||\n this._externalFormSubmitted));\n if (newStatusIsError !== this.controlInvalid) {\n this._controlInvalid = newStatusIsError;\n this.stateChanges.next('updateErrorState');\n this.markForCheck();\n }\n }\n /**\n * Used to change the value of a control.\n * @param value the value to be applied\n * @param emitOnChange whether to emit \"onChange\" event.\n * Should be \"false\", if the change is made programmatically (internally) by the control, \"true\" otherwise\n */\n setValue(value, emitOnChange = true) {\n if (value !== this._value) {\n this.writeValue(value);\n if (emitOnChange) {\n this.onChange(value);\n }\n this.markForCheck();\n }\n }\n /** @hidden */\n getValue() {\n return this._value;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"20.1.4\", type: BaseInput, isStandalone: true, inputs: { placeholder: \"placeholder\", triggers: \"triggers\", state: \"state\", stateMessage: \"stateMessage\", stateMessageConfig: \"stateMessageConfig\", disabled: \"disabled\", readonly: \"readonly\", editable: [\"editable\", \"editable\", booleanAttribute], validationStrategy: \"validationStrategy\" }, viewQueries: [{ propertyName: \"_elementRef\", first: true, predicate: [\"inputElementRef\"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseInput, decorators: [{\n type: Directive\n }], ctorParameters: () => [], propDecorators: { placeholder: [{\n type: Input\n }], triggers: [{\n type: Input\n }], state: [{\n type: Input\n }], stateMessage: [{\n type: Input\n }], stateMessageConfig: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], editable: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], validationStrategy: [{\n type: Input\n }], _elementRef: [{\n type: ViewChild,\n args: ['inputElementRef', { static: true, read: ElementRef }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2Zvcm0vYmFzZS5pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBRUgsVUFBVSxFQUNWLFNBQVMsRUFFVCxVQUFVLEVBQ1YsY0FBYyxFQUNkLEtBQUssRUFJTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFxQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEcsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUNILGFBQWEsRUFDYixxQkFBcUIsRUFHckIsbUJBQW1CLEVBQ3RCLE1BQU0sNEJBQTRCLENBQUM7QUFHcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFHeEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFtQix3QkFBd0IsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsc0JBQXNCLENBQUMsQ0FBQztBQUU1RixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFFakI7Ozs7Ozs7Ozs7R0FVRztBQUVILE1BQU0sT0FBZ0IsU0FDbEIsU0FBUSxhQUFhO0lBeUJyQjs7Ozs7T0FLRztJQUNILElBQ0ksS0FBSyxDQUFDLEtBQTZCO1FBQ25DLElBQUksQ0FBQyxLQUFLLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN4QixDQUFD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QztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLFFBQVEsQ0FBQyxLQUFVLEVBQUUsWUFBWSxHQUFHLElBQUk7UUFDOUMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ0osUUFBUTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDOzhHQWhhaUIsU0FBUztrR0FBVCxTQUFTLHlQQWlGUCxnQkFBZ0Isa0tBb0JnQixVQUFVOzsyRkFyRzVDLFNBQVM7a0JBRDlCLFNBQVM7d0RBT04sV0FBVztzQkFEVixLQUFLO2dCQVFOLFFBQVE7c0JBRFAsS0FBSztnQkFxQkYsS0FBSztzQkFEUixLQUFLO2dCQXNCTixZQUFZO3NCQURYLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUtGLFFBQVE7c0JBRFgsS0FBSztnQkFlTixRQUFRO3NCQURQLEtBQUs7Z0JBT0YsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWV0QyxrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBT0ksV0FBVztzQkFEcEIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgaW5qZWN0LFxuICAgIGlzRGV2TW9kZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgTmdDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBIYXNFbGVtZW50UmVmLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICAgIEZEX0ZPUk1fRklFTEQsXG4gICAgRkRfRk9STV9GSUVMRF9DT05UUk9MLFxuICAgIEZvcm1GaWVsZEFkdmFuY2VkU3RhdGVNZXNzYWdlLFxuICAgIEZvcm1TdGF0ZXMsXG4gICAgaXNWYWxpZENvbnRyb2xTdGF0ZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtSW5wdXRNZXNzYWdlR3JvdXBDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZm9ybSc7XG5pbXBvcnQgeyBUcmlnZ2VyQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UnO1xuaW1wb3J0IHsgUGxhdGZvcm1Gb3JtRmllbGQsIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJy4vZm9ybS1maWVsZCc7XG5cbmV4cG9ydCBjb25zdCBGRFBfRE9fQ0hFQ0sgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTx2b2lkPj4oJ0ZkcElucHV0RG9DaGVja1RyaWdnZXInKTtcbmV4cG9ydCBjb25zdCBGRFBfRk9STV9TVUJNSVQgPSBuZXcgSW5qZWN0aW9uVG9rZW48T2JzZXJ2YWJsZTx2b2lkPj4oJ0ZkcEZvcm1TdWJtaXRUcmlnZ2VyJyk7XG5cbmxldCByYW5kb21JZCA9IDA7XG5cbi8qKlxuICogQWxsIGZvcm0gY29tcG9uZW50cyBzaGFyZSB0aGUgc2FtZSBpbmZvcm1hdGlvbiAodmFsdWUsIG5hbWUsIHBsYWNlaG9sZGVyLC4uICkgYXMgd2VsbCBhc1xuICogdGhlIHNhbWUgYmVoYXZpb3IgZ2l2ZW4gYnkgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gKlxuICogRXZlbiB0aGlzIGlzIG5vdCBpZGVhbCBzb2x1dGlvbiB0aGVyZSBpcyBubyBvdGhlciB3YXkgdGhlbiB1c2UgaW5oZXJpdGFuY2UgdG8gcmV1c2Ugc29tZSBvZiB0aGVcbiAqIGNvbW1vbiBsb2dpYy4gSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSBzb21lIGtpbmQgb2YgY29tcG9zaXRpb25zIHdpdGggUHJveGllcyBidXQgc29tZXRoaW5nXG4gKiBzaW1pbGFyIHRoYXQgZXhpc3RzIGluIEFzcGVjdCBPcmllbnRlZCBQcm9ncmFtaW5nLlxuICpcbiAqIFVzdWFsbHkgdHJ5IHRvIGZpcmUgc3RhdGVDaGFuZ2Ugb25seSBmb3IgdGhpbmdzIHRoYXQgY2FuIGNoYW5nZSBkeW5hbWljYWxseSBpbiBydW50aW1lLiBXZSBkb24ndCBleHBlY3RcbiAqIHRoYXQgZS5nLiBwbGFjZWhvbGRlciB3aWxsIGNoYW5nZSBhZnRlciBjb21wb25lbnQgaXMgY3JlYXRlZFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlSW5wdXRcbiAgICBleHRlbmRzIEJhc2VDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIFBsYXRmb3JtRm9ybUZpZWxkQ29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBIYXNFbGVtZW50UmVmXG57XG4gICAgLyoqIElucHV0IHBsYWNlaG9sZGVyICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVG8gYWxsb3cgdXNlciB0byBkZXRlcm1pbmUgd2hhdCBldmVudCBoZSB3YW50cyB0byB0cmlnZ2VyIHRoZSBtZXNzYWdlcyB0byBzaG93XG4gICAgICogQWNjZXB0cyBhbnkgW0hUTUwgRE9NIEV2ZW50c10oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9kb21fb2JqX2V2ZW50LmFzcCkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB0cmlnZ2VyczogKHN0cmluZyB8IFRyaWdnZXJDb25maWcpW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRyaWdnZXI6ICdmb2N1c2luJyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IHRydWUsXG4gICAgICAgICAgICBjbG9zZUFjdGlvbjogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdHJpZ2dlcjogJ2ZvY3Vzb3V0JyxcbiAgICAgICAgICAgIG9wZW5BY3Rpb246IGZhbHNlLFxuICAgICAgICAgICAgY2xvc2VBY3Rpb246IHRydWVcbiAgICAgICAgfVxuICAgIF07XG5cbiAgICAvKipcbiAgICAgKiAgVGhlIHN0YXRlIG9mIHRoZSBmb3JtIGNvbnRyb2wgLSBhcHBsaWVzIGNzcyBjbGFzc2VzLlxuICAgICAqICBDYW4gYmUgJ3N1Y2Nlc3MnLCAnZXJyb3InLCAnd2FybmluZycsICdkZWZhdWx0JywgJ2luZm9ybWF0aW9uJy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICdkZWZhdWx0J1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlKHN0YXRlOiBGb3JtU3RhdGVzIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghc3RhdGUgfHwgaXNWYWxpZENvbnRyb2xTdGF0ZShzdGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlID0gc3RhdGU7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgUHJvdmlkZWQgdmFsdWUgXCIke3N0YXRlfVwiIGlzIG5vdCBhIHZhbGlkIG9wdGlvbiBmb3IgRm9ybVN0YXRlcyB0eXBlYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHN0YXRlKCk6IEZvcm1TdGF0ZXMge1xuICAgICAgICBpZiAodGhpcy5fc3RhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5jb250cm9sSW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuICdkZWZhdWx0JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1GaWVsZD8uZ2V0UHJpb3JpdHlTdGF0ZSgpIHx8ICdlcnJvcic7XG4gICAgfVxuXG4gICAgLyoqIEhvbGRzIHRoZSBtZXNzYWdlIHdpdGggcmVzcGVjdCB0byBzdGF0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhdGVNZXNzYWdlOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEFkdmFuY2VkIGZvcm0gbWVzc2FnZSBjb25maWd1cmF0aW9uLiBVc2VkIGZvciBjb21wb25lbnRzIHRoYXQgY2FuIHJlbmRlciBmb3JtIG1lc3NhZ2VzIGluIGl0cyB0ZW1wbGF0ZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlTWVzc2FnZUNvbmZpZzogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZGlzYWJsZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCAmJiB0aGlzLm5nQ29udHJvbC5kaXNhYmxlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sLmRpc2FibGVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZWFkT25seSBWYWx1ZSB0byBNYXJrIGNvbXBvbmVudCByZWFkIG9ubHlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGVsbCB0aGUgY29tcG9uZW50IGlmIHdlIGFyZSBpbiBlZGl0aW5nIG1vZGUuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IGVkaXRhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLl9lZGl0YWJsZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lZGl0YWJsZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCdlZGl0YWJsZScpO1xuICAgIH1cbiAgICBnZXQgZWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0YWJsZTtcbiAgICB9XG5cbiAgICAvKiogRm9ybSBjb250cm9sIHZhbGlkYXRpb24gZXZlbnQgc3RyYXRlZ3kuICovXG4gICAgQElucHV0KClcbiAgICB2YWxpZGF0aW9uU3RyYXRlZ3k6ICgndG91Y2hlZCcgfCAnZGlydHknIHwgJ3N1Ym1pdHRlZCcpW10gPSBbJ3RvdWNoZWQnLCAnZGlydHknLCAnc3VibWl0dGVkJ107XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gaW50ZXJuYWwgSW5wdXQgZWxlbWVudFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudFJlZicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogbmVlZCB0byBtYWtlICB0aGVzZSB2YWx1ZSBhY2Nlc3NvciBhcyBhYnN0cmFjdCB0byBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLiBIYXZpbmcgdGhlbVxuICAgICAqIGluIHN1cGVyY2xhc3MgaGF2ZSBpc3N1ZSBnZXR0aW5nIHJlZmVyZW5jZSB0byB0aGVtIHdpdGggT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvblxuICAgICAqIHdoaWNoIHdlIG5lZWQgdG8gcHJvZ3JhbW1hdGljYWxseSB3cmFwcyBjb21wb25lbnRzIHNldC9nZXQgdmFsdWVcbiAgICAgKlxuICAgICAqL1xuICAgIGFic3RyYWN0IGdldCB2YWx1ZSgpOiBhbnk7XG5cbiAgICBhYnN0cmFjdCBzZXQgdmFsdWUodmFsdWU6IGFueSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZvcm1NZXNzYWdlOiBOdWxsYWJsZTxGb3JtSW5wdXRNZXNzYWdlR3JvdXBDb21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogU2VlIEBGb3JtRmllbGRDb250cm9sXG4gICAgICovXG4gICAgZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgLyoqIHNldCB3aGVuIGlucHV0IGZpZWxkIGlzIG1hbmRhdG9yeSBmb3JtIGZpZWxkICovXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGlubmVyRXJyb3JzVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIFdoZXRoZXIgY29udHJvbCBoYXMgZXJyb3JzICovXG4gICAgZ2V0IGNvbnRyb2xJbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udHJvbEludmFsaWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBhZHZhbmNlZFN0YXRlTWVzc2FnZTogTnVsbGFibGU8Rm9ybUZpZWxkQWR2YW5jZWRTdGF0ZU1lc3NhZ2U+O1xuXG4gICAgLyoqXG4gICAgICogU2VlIEBGb3JtRmllbGRDb250cm9sXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2RvQ2hlY2skID0gaW5qZWN0KEZEUF9ET19DSEVDSywgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIC8qKiBFbGVtZW50IHJlZmVyZW5jZS4gKi9cbiAgICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIE5nQ29udHJvbCByZWZlcmVuY2UuICovXG4gICAgcmVhZG9ubHkgbmdDb250cm9sID0gaW5qZWN0KE5nQ29udHJvbCwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgc2VsZjogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIENvbnRyb2wgY29udGFpbmVyIHJlZmVyZW5jZS4gKi9cbiAgICByZWFkb25seSBjb250cm9sQ29udGFpbmVyID0gaW5qZWN0KENvbnRyb2xDb250YWluZXIsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgIHNraXBTZWxmOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogRm9ybSByZWZlcmVuY2UuICovXG4gICAgcmVhZG9ubHkgbmdGb3JtID0gaW5qZWN0KE5nRm9ybSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgc2tpcFNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBUaGUgc3RhdGUgb2YgdGhlIGZvcm0gY29udHJvbCAtIGFwcGxpZXMgY3NzIGNsYXNzZXMuXG4gICAgICogQ2FuIGJlIGBzdWNjZXNzYCwgYGVycm9yYCwgYHdhcm5pbmdgLCBgaW5mb3JtYXRpb25gIG9yICdkZWZhdWx0J1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBfc3RhdGU6IEZvcm1TdGF0ZXMgfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBkZWZhdWx0SWQgPSBgZmRwLWlucHV0LWlkLSR7cmFuZG9tSWQrK31gO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2VkaXRhYmxlID0gdHJ1ZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZGVzdHJveWVkID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9leHRlcm5hbFN1Ym1pdCA9IGluamVjdChGRFBfRk9STV9TVUJNSVQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2V4dGVybmFsRm9ybVN1Ym1pdHRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2NvbnRyb2xJbnZhbGlkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogV2UgZG8gbm90IHVzZSBJbmplY3Rvci5nZXQoKSBhcHByb2FjaCBoZXJlIGJlY2F1c2UgdGhlcmUgaXMgYSBidWdcbiAgICAgICAgICogd2l0aCB0aGlzIHNpZ25hdHVyZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8zMTc3NlxuICAgICAgICAgKiB3aGVyZSBcImdldCgpXCIgbWV0aG9kIGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgXCJmbGFnXCIgb3B0aW9uXCJcbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1GaWVsZCA9IGluamVjdDxQbGF0Zm9ybUZvcm1GaWVsZD4oRkRfRk9STV9GSUVMRCwge1xuICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgICAgICBza2lwU2VsZjogdHJ1ZSxcbiAgICAgICAgICAgIGhvc3Q6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBpbmplY3Q8UGxhdGZvcm1Gb3JtRmllbGRDb250cm9sPihGRF9GT1JNX0ZJRUxEX0NPTlRST0wsIHtcbiAgICAgICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICAgICAgc2tpcFNlbGY6IHRydWUsXG4gICAgICAgICAgICBob3N0OiB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFdlIGhhdmUgdG8gaWdub3JlIFwiZm9ybUZpZWxkXCIgaWYgdGhlcmUgaXMgXCJmb3JtQ29udHJvbFwiIHdyYXBwZXJcbiAgICAgICAgdGhpcy5mb3JtRmllbGQgPSBmb3JtRmllbGQgJiYgIWZvcm1Db250cm9sID8gZm9ybUZpZWxkIDogbnVsbDtcblxuICAgICAgICB0aGlzLl9kb0NoZWNrJD8ucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubmdEb0NoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9leHRlcm5hbFN1Ym1pdD8ucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2V4dGVybmFsRm9ybVN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25DaGFuZ2U6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUZpZWxkKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1GaWVsZC5yZWdpc3RlckZvcm1GaWVsZENvbnRyb2wodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZS12YWxpZGF0ZSBhbmQgZW1pdCBldmVudCB0byBwYXJlbnQgY29udGFpbmVyIG9uIGV2ZXJ5IENEIGN5Y2xlIGFzIHRoZXkgYXJlIHNvbWUgZXJyb3JzXG4gICAgICogdGhhdCB3ZSBjYW4ndCBzdWJzY3JpYmUgdG8uXG4gICAgICovXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRXJyb3JTdGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcz8uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxhYmVsQW5kSGVscElkID0gYGZkcC1mb3JtLWxhYmVsLWNvbnRlbnQtJHt0aGlzLmlkfWA7XG4gICAgICAgIC8vIGlmIG5vdCBzcGVjaWZpZWQsIGFzc29jaWF0ZSBsYWJlbCBhbmQgaW5saW5lIGhlbHAgaWRzIHdpdGggdGhlIGlucHV0LFxuICAgICAgICAvLyBlbHNlIGFkZCB0aGVzZSBpZHMgdG8gdGhlIHNwZWNpZmllZCBvbmVzXG4gICAgICAgIGlmICh0aGlzLmZvcm1GaWVsZCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFyaWFMYWJlbGxlZEJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcmlhTGFiZWxsZWRCeSA9IGxhYmVsQW5kSGVscElkO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ICs9ICcgJyArIGxhYmVsQW5kSGVscElkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbm5lckVycm9yc1RlbXBsYXRlID0gdGhpcy5mb3JtRmllbGQ/LmlubmVyRXJyb3JSZW5kZXJlcnM7XG5cbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiAhIXRoaXMuZm9ybUZpZWxkKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveWVkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZHZhbmNlZFN0YXRlTWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IHRoaXMuZm9ybUZpZWxkIS5pbm5lckVycm9yUmVuZGVyZXJzLFxuICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnM6IHRoaXMuZm9ybUZpZWxkIS5oYXNFcnJvcnMoKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xuICAgICAgICBpZiAodGhpcy5mb3JtRmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUZpZWxkLnVucmVnaXN0ZXJGb3JtRmllbGRDb250cm9sKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IEJvb2xlYW5JbnB1dCk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IGJvb2xlYW5BdHRyaWJ1dGUoaXNEaXNhYmxlZCk7XG4gICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIGlmIChuZXdTdGF0ZSAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gbmV3U3RhdGU7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCdzZXREaXNhYmxlZFN0YXRlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFYWNoIHN1YiBjbGFzcyBtdXN0IG92ZXJyaWRlIHRoaXMgbWV0aG9kIGFzIGluaGVyaXRhbmNlIGRvZXMgbm90IHdvcmtcbiAgICAgKi9cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnd3JpdGVWYWx1ZScpO1xuICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogS2VlcHMgdHJhY2sgb2YgZWxlbWVudCBmb2N1c1xuICAgICAqL1xuICAgIF9vbkZvY3VzQ2hhbmdlZChpc0ZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRm9jdXNlZCAhPT0gdGhpcy5mb2N1c2VkICYmICghdGhpcy5kaXNhYmxlZCB8fCAhaXNGb2N1c2VkKSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gaXNGb2N1c2VkO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgnX29uRm9jdXNDaGFuZ2VkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzRm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgZXZlbiB3aGVuIHdlIGNsaWNrIG9uIHBhcmVudCBjb250YWluZXIgd2hpY2ggaXMgdGhlIEZvcm1GaWVsZCBXcmFwcGluZyB0aGlzXG4gICAgICogY29udHJvbFxuICAgICAqL1xuICAgIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1cyhldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW4gbW9zdCBvZiB0aGUgY2FzZXMgd2hlbiB3b3JraW5nIHdpdGggaW5wdXQgZWxlbWVudCBkaXJlY3RseSB5b3Ugc2hvdWxkIGJlIGp1c3QgZmluZCB0byBhc3NpbmdcbiAgICAgKiB2YXJpYWJsZSB0byB0aGlzIGVsZW1lbnRcbiAgICAgKlxuICAgICAqIGBgYFxuICAgICAqIDxpbnB1dCAjaW5wdXRFbGVtZW50UmVmIGZkLWZvcm0tY29udHJvbCAuLi4+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBhbmQgdGhpcyBkZWZhdWx0IGJlaGF2aW9yIHVzZWQuIEZvciBvdGhlciBjYXNlcyBpbXBsZW1lbnQgZm9jdXMuXG4gICAgICpcbiAgICAgKi9cbiAgICBmb2N1cyhldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRSZWYgJiYgIXRoaXMuZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBOZWVkIHJlLXZhbGlkYXRlcyBlcnJvcnMgb24gZXZlcnkgQ0QgaXRlcmF0aW9uIHRvIG1ha2Ugc3VyZSB3ZSBhcmUgYWxzb1xuICAgICAqICBjb3ZlcmluZyBub24tY29udHJvbCBlcnJvcnMsIGVycm9ycyB0aGF0IGhhcHBlbnMgb3V0c2lkZSBvZiB0aGlzIGNvbnRyb2xcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdXBkYXRlRXJyb3JTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5uZ0Zvcm07XG4gICAgICAgIGNvbnN0IHBhcmVudENvbnRyb2xDb250YWluZXIgPSB0aGlzLmNvbnRyb2xDb250YWluZXI7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbCA/ICh0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IG5ld1N0YXR1c0lzRXJyb3IgPSAhIShcbiAgICAgICAgICAgIGNvbnRyb2w/LmludmFsaWQgJiZcbiAgICAgICAgICAgICgodGhpcy52YWxpZGF0aW9uU3RyYXRlZ3kuaW5jbHVkZXMoJ2RpcnR5JykgJiYgY29udHJvbC5kaXJ0eSkgfHxcbiAgICAgICAgICAgICAgICAodGhpcy52YWxpZGF0aW9uU3RyYXRlZ3kuaW5jbHVkZXMoJ3RvdWNoZWQnKSAmJiBjb250cm9sLnRvdWNoZWQpIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMudmFsaWRhdGlvblN0cmF0ZWd5LmluY2x1ZGVzKCdzdWJtaXR0ZWQnKSAmJiBwYXJlbnQ/LnN1Ym1pdHRlZCkgfHxcbiAgICAgICAgICAgICAgICAocGFyZW50Q29udHJvbENvbnRhaW5lciBhcyBhbnkpPy5zdWJtaXR0ZWQgfHxcbiAgICAgICAgICAgICAgICB0aGlzLl9leHRlcm5hbEZvcm1TdWJtaXR0ZWQpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKG5ld1N0YXR1c0lzRXJyb3IgIT09IHRoaXMuY29udHJvbEludmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRyb2xJbnZhbGlkID0gbmV3U3RhdHVzSXNFcnJvcjtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoJ3VwZGF0ZUVycm9yU3RhdGUnKTtcbiAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgYSBjb250cm9sLlxuICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gYmUgYXBwbGllZFxuICAgICAqIEBwYXJhbSBlbWl0T25DaGFuZ2Ugd2hldGhlciB0byBlbWl0IFwib25DaGFuZ2VcIiBldmVudC5cbiAgICAgKiBTaG91bGQgYmUgXCJmYWxzZVwiLCBpZiB0aGUgY2hhbmdlIGlzIG1hZGUgcHJvZ3JhbW1hdGljYWxseSAoaW50ZXJuYWxseSkgYnkgdGhlIGNvbnRyb2wsIFwidHJ1ZVwiIG90aGVyd2lzZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZXRWYWx1ZSh2YWx1ZTogYW55LCBlbWl0T25DaGFuZ2UgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoZW1pdE9uQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgZ2V0VmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cbn1cbiJdfQ==","import { Directive, Input } from '@angular/core';\nimport { isSelectItem } from '../domain/data-model';\nimport { isFunction, isJsObject, isString } from '../utils/lang';\nimport { BaseInput } from './base.input';\nimport * as i0 from \"@angular/core\";\n/**\n * Defines specific behavior for Input controls which deals with list of values including:\n * - Select\n * - RadioGroup\n * - CheckboxGroup\n * - ComboBox\n * ...\n *\n */\nexport class CollectionBaseInput extends BaseInput {\n /**\n * List of values, it can be of type SelectItem, string or any object.\n * Generic object type is among the list of types,\n * because we allow to get labels and values using `displayKey` and `lookupKey` inputs accordingly.\n */\n set list(value) {\n this._list = value;\n }\n get list() {\n return this._list;\n }\n /** @hidden */\n lookupValue(item) {\n if (isSelectItem(item)) {\n return this.lookupKey && item && item.value ? item.value[this.lookupKey] : item.value;\n }\n else {\n return this.lookupKey && item ? item[this.lookupKey] : item;\n }\n }\n /** @hidden */\n displayValue(item) {\n if (isSelectItem(item)) {\n return item.label;\n }\n else if (isJsObject(item) && this.displayKey) {\n const currentItem = this.objectGet(item, this.displayKey);\n return isFunction(currentItem) ? currentItem() : currentItem;\n }\n else {\n return item;\n }\n }\n /** @hidden */\n objectGet(obj, is) {\n if (!isJsObject(obj)) {\n return obj;\n }\n else if (isString(is)) {\n return this.objectGet(obj, is.split('.'));\n }\n else if (!is?.length) {\n return obj;\n }\n else {\n return this.objectGet(obj[is[0]], is.slice(1));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CollectionBaseInput, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: CollectionBaseInput, isStandalone: true, inputs: { list: \"list\", lookupKey: \"lookupKey\", displayKey: \"displayKey\" }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CollectionBaseInput, decorators: [{\n type: Directive\n }], propDecorators: { list: [{\n type: Input\n }], lookupKey: [{\n type: Input\n }], displayKey: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1iYXNlLmlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zaGFyZWQvZm9ybS9jb2xsZWN0aW9uLWJhc2UuaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUV6Qzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsU0FBUztJQUN2RDs7OztPQUlHO0lBQ0gsSUFDSSxJQUFJLENBQUMsS0FBMEM7UUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBcUJELGNBQWM7SUFDUCxXQUFXLENBQUMsSUFBUztRQUN4QixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDMUYsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEUsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ1AsWUFBWSxDQUFDLElBQVM7UUFDekIsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQzthQUFNLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFMUQsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDakUsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDUCxTQUFTLENBQUMsR0FBUSxFQUFFLEVBQWlDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQixPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7YUFBTSxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0wsQ0FBQzs4R0FsRWlCLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUR4QyxTQUFTOzhCQVFGLElBQUk7c0JBRFAsS0FBSztnQkFhTixTQUFTO3NCQURSLEtBQUs7Z0JBVU4sVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTZWxlY3RJdGVtLCBpc1NlbGVjdEl0ZW0gfSBmcm9tICcuLi9kb21haW4vZGF0YS1tb2RlbCc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc0pzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gJy4uL3V0aWxzL2xhbmcnO1xuaW1wb3J0IHsgQmFzZUlucHV0IH0gZnJvbSAnLi9iYXNlLmlucHV0JztcblxuLyoqXG4gKiBEZWZpbmVzIHNwZWNpZmljIGJlaGF2aW9yIGZvciBJbnB1dCBjb250cm9scyB3aGljaCBkZWFscyB3aXRoIGxpc3Qgb2YgdmFsdWVzIGluY2x1ZGluZzpcbiAqICAtIFNlbGVjdFxuICogIC0gUmFkaW9Hcm91cFxuICogIC0gQ2hlY2tib3hHcm91cFxuICogIC0gQ29tYm9Cb3hcbiAqICAuLi5cbiAqXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbGxlY3Rpb25CYXNlSW5wdXQgZXh0ZW5kcyBCYXNlSW5wdXQge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgdmFsdWVzLCBpdCBjYW4gYmUgb2YgdHlwZSBTZWxlY3RJdGVtLCBzdHJpbmcgb3IgYW55IG9iamVjdC5cbiAgICAgKiBHZW5lcmljIG9iamVjdCB0eXBlIGlzIGFtb25nIHRoZSBsaXN0IG9mIHR5cGVzLFxuICAgICAqIGJlY2F1c2Ugd2UgYWxsb3cgdG8gZ2V0IGxhYmVscyBhbmQgdmFsdWVzIHVzaW5nIGBkaXNwbGF5S2V5YCBhbmQgYGxvb2t1cEtleWAgaW5wdXRzIGFjY29yZGluZ2x5LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpc3QodmFsdWU6IEFycmF5PFNlbGVjdEl0ZW0gfCBzdHJpbmcgfCBvYmplY3Q+KSB7XG4gICAgICAgIHRoaXMuX2xpc3QgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGxpc3QoKTogQXJyYXk8U2VsZWN0SXRlbSB8IHN0cmluZyB8IG9iamVjdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGlzdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGluIGZpbHRlcnMgYW5kIGFueSBraW5kIG9mIGNvbXBhcmF0b3JzIHdoZW4gd2Ugd29yayB3aXRoIG9iamVjdHMgYW5kIHRoaXMgaWRlbnRpZnlcbiAgICAgKiB1bmlxdWUgZmllbGQgbmFtZSBiYXNlZCBvbiB3aGljaCB3ZSBhcmUgZ29pbmcgdG8gZG8gdGhlIGpvYlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbG9va3VwS2V5OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHdlIGRlYWwgd2l0aCB1bmtub3duIG9iamVjdCB3ZSBjYW4gdXNlIGBkaXNwbGF5S2V5YCB0byByZXRyaWV2ZSB2YWx1ZSBmcm9tIHNwZWNpZmljXG4gICAgICogcHJvcGVydHkgb2YgdGhlIG9iamVjdCB0byBhY3QgYXMgZGlzcGxheSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBTZWUgQ29tYm9Cb3gsIFNlbGVjdCwgUmFkaW9Hcm91cCwgQ2hlY2tCb3ggR3JvdXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXlLZXk6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdDogQXJyYXk8U2VsZWN0SXRlbSB8IHN0cmluZyB8IG9iamVjdD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBsb29rdXBWYWx1ZShpdGVtOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoaXNTZWxlY3RJdGVtKGl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb29rdXBLZXkgJiYgaXRlbSAmJiBpdGVtLnZhbHVlID8gaXRlbS52YWx1ZVt0aGlzLmxvb2t1cEtleV0gOiBpdGVtLnZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9va3VwS2V5ICYmIGl0ZW0gPyBpdGVtW3RoaXMubG9va3VwS2V5XSA6IGl0ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBkaXNwbGF5VmFsdWUoaXRlbTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGlzU2VsZWN0SXRlbShpdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubGFiZWw7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNKc09iamVjdChpdGVtKSAmJiB0aGlzLmRpc3BsYXlLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gdGhpcy5vYmplY3RHZXQoaXRlbSwgdGhpcy5kaXNwbGF5S2V5KTtcblxuICAgICAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb24oY3VycmVudEl0ZW0pID8gY3VycmVudEl0ZW0oKSA6IGN1cnJlbnRJdGVtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHB1YmxpYyBvYmplY3RHZXQob2JqOiBhbnksIGlzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCk6IGFueSB7XG4gICAgICAgIGlmICghaXNKc09iamVjdChvYmopKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKGlzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub2JqZWN0R2V0KG9iaiwgaXMuc3BsaXQoJy4nKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vYmplY3RHZXQob2JqW2lzWzBdXSwgaXMuc2xpY2UoMSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19","import { FormField } from '@fundamental-ngx/cdk/forms';\n/**\n * FormField base class.\n *\n * This class is used to create form field components.\n *\n */\nexport class PlatformFormField extends FormField {\n}\nexport class FormFieldGroup {\n}\nexport class PlatformFormFieldControl {\n}\n/**\n * FormGroup base class.\n *\n * This class is used to create form group components.\n *\n */\nexport class FormGroupContainer {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2Zvcm0vZm9ybS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLDRCQUE0QixDQUFDO0FBU3pFOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxTQUFTO0NBd0V4RDtBQUVELE1BQU0sT0FBZ0IsY0FBYztDQXdCbkM7QUFJRCxNQUFNLE9BQWdCLHdCQUF3QjtDQWlGN0M7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBZ0Isa0JBQWtCO0NBOER2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkLCBGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZm9ybXMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZvcm1JbnB1dE1lc3NhZ2VHcm91cENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9mb3JtJztcbmltcG9ydCB7IFRyaWdnZXJDb25maWcgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcG9wb3Zlcic7XG5pbXBvcnQgeyBGb3JtRXJyb3IsIEZvcm1GaWVsZEVycm9yRGlyZWN0aXZlQ29udGV4dCB9IGZyb20gJy4vZm9ybS1lcnJvcic7XG5pbXBvcnQgeyBDb2x1bW4sIENvbHVtbkxheW91dCB9IGZyb20gJy4vZm9ybS1vcHRpb25zJztcblxuLyoqXG4gKiBGb3JtRmllbGQgYmFzZSBjbGFzcy5cbiAqXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gY3JlYXRlIGZvcm0gZmllbGQgY29tcG9uZW50cy5cbiAqXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQbGF0Zm9ybUZvcm1GaWVsZCBleHRlbmRzIEZvcm1GaWVsZCB7XG4gICAgLyoqXG4gICAgICogRm9ybSBmaWVsZCBpZFxuICAgICAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogUmFuayBpcyB1c2VkIGZvciBvcmRlcmluZy5cbiAgICAgKiBUaGFuIGxvd2VyIG51bWJlciB0aGVuIGhpZ2hlciBwcmlvcml0eVxuICAgICAqL1xuICAgIHJhbms6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBGb3JtIGZpZWxkIHRlbXBsYXRlIHJlZmVyZW5jZVxuICAgICAqL1xuICAgIHJlbmRlcmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIEZvcm0gZmllbGQgY3VzdG9tIHdpZHRoIGluIGNvbHVtbnMgbXVzdCBiZSBiZXR3ZWVuIDEgLSAxMlxuICAgICAqL1xuICAgIGNvbHVtbnM6IENvbHVtbjtcbiAgICAvKipcbiAgICAgKiBEZWZpbmUgZm9ybSBmaWVsZCBjb2x1bW4gYmVsb25nc1xuICAgICAqL1xuICAgIGNvbHVtbjogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0aW9ucyB0ZW1wbGF0ZSByZWZlcmVuY2VcbiAgICAgKi9cbiAgICBpMThTdHJpbmdzOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyBpZiBmaWVsZCBpcyBlZGl0YWJsZVxuICAgICAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGVuIGZvcm0gZmllbGQgbGFiZWwgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBub0xhYmVsTGF5b3V0OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQSByZWZlcmVuY2UgdG8gdGhlIHVuZGVybHlpbmcgRm9ybUZpZWxkQ29udHJvbC5cbiAgICAgKi9cbiAgICBjb250cm9sOiBQbGF0Zm9ybUZvcm1GaWVsZENvbnRyb2wgfCBudWxsO1xuICAgIC8qKlxuICAgICAqIFNldCB3aGVuIGZvcm0gZmllbGQgaXMgYSBtYW5kYXRvcnkgb25lLlxuICAgICAqL1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIC8qKiBGb3JtIGZpZWxkIGxhYmVsICovXG4gICAgbGFiZWw/OiBzdHJpbmc7XG5cbiAgICAvKiogRm9ybSBmaWVsZHMncyBncm91cC4gKi9cbiAgICBmb3JtRmllbGRHcm91cDogTnVsbGFibGU8Rm9ybUZpZWxkR3JvdXA+O1xuXG4gICAgLyoqIEZybSBmaWVsZCdzIEZvcm0gQ29udGFpbmVyLiAqL1xuICAgIGZvcm1Hcm91cENvbnRhaW5lcjogTnVsbGFibGU8Rm9ybUdyb3VwQ29udGFpbmVyPjtcblxuICAgIC8qKiBHcm91cGVkIGVycm9ycy4gKi9cbiAgICBncm91cGVkRXJyb3JzOiBGb3JtRmllbGRFcnJvckRpcmVjdGl2ZUNvbnRleHRbXTtcblxuICAgIC8qKiBDb21iaW5lZCBFcnJvciBkaXJlY3RpdmVzLiAqL1xuICAgIGVycm9yRGlyZWN0aXZlczogRm9ybUVycm9yW107XG5cbiAgICAvKiogRm9ybSBjb250cm9sICovXG4gICAgbmdDb250cm9sPzogTmdDb250cm9sO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb3JtQ29udHJvbD86IEZvcm1Db250cm9sO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBlcnJvcnMgYmVpbmcgY2hhbmdlZC4gKi9cbiAgICBlcnJvcnNDaGFuZ2UkOiBTdWJqZWN0PHZvaWQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBpbm5lckVycm9yUmVuZGVyZXJzPzogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBXaGV0aGVyIGZvcm0gZmllbGQgaGFzIHZhbGlkYXRpb24gZXJyb3JzLiAqL1xuICAgIGhhc0Vycm9yczogKCkgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZvcm1GaWVsZEdyb3VwIHtcbiAgICAvKiogR3JvdXAgaGVhZGVyKi9cbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIEdyb3VwJ3MgZm9ybSBuYW1lICovXG4gICAgZm9ybU5hbWU6IHN0cmluZztcblxuICAgIC8qKiBHcm91cCBmaWVsZHMgKi9cbiAgICBmaWVsZHM6IFF1ZXJ5TGlzdDxQbGF0Zm9ybUZvcm1GaWVsZD47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGxhYmVsJ3MgY29sdW1uIGxheW91dC5cbiAgICAgKi9cbiAgICBsYWJlbENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBmaWVsZCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgZmllbGRDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZ2FwIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgZ2FwQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQ7XG59XG5cbmV4cG9ydCB0eXBlIEZkcEZvcm1GaWVsZENvbnRyb2w8VCA9IGFueT4gPSBGb3JtRmllbGRDb250cm9sPFQ+O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGxhdGZvcm1Gb3JtRmllbGRDb250cm9sPFQgPSBhbnk+IGltcGxlbWVudHMgRm9ybUZpZWxkQ29udHJvbDxUPiB7XG4gICAgLyoqXG4gICAgICogVG8gYWxsb3cgdXNlciB0byBkZXRlcm1pbmUgd2hhdCBldmVudCBoZSB3YW50cyB0byB0cmlnZ2VyIHRoZSBtZXNzYWdlcyB0byBzaG93XG4gICAgICogQWNjZXB0cyBhbnkgW0hUTUwgRE9NIEV2ZW50c10oaHR0cHM6Ly93d3cudzNzY2hvb2xzLmNvbS9qc3JlZi9kb21fb2JqX2V2ZW50LmFzcCkuXG4gICAgICovXG4gICAgYWJzdHJhY3QgdHJpZ2dlcnM6IChzdHJpbmcgfCBUcmlnZ2VyQ29uZmlnKVtdO1xuXG4gICAgLyoqIFN0YXRlIG1lc3NhZ2UgY29uZmlndXJhdGlvbi4gVXNlZCBmb3IgY29tcG9uZW50cyB0aGF0IGNhbiByZW5kZXIgZm9ybSBtZXNzYWdlIGluc2lkZSBpdHMgdGVtcGxhdGUuICovXG4gICAgYWJzdHJhY3Qgc3RhdGVNZXNzYWdlQ29uZmlnOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxhbnk+PjtcblxuICAgIC8qKiBNZXRob2QgZm9yIGZvY3VzaW5nIG9uIHRoZSBlbGVtZW50ICovXG4gICAgYWJzdHJhY3QgZm9jdXMoZXZlbnQ/OiBNb3VzZUV2ZW50KTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgZXZlbiB3aGVuIHdlIGNsaWNrIG9uIHBhcmVudCBjb250YWluZXIgd2hpY2ggaXMgdGhlIEZvcm1GaWVsZCBXcmFwcGluZyB0aGlzXG4gICAgICogY29udHJvbFxuICAgICAqL1xuICAgIGFic3RyYWN0IG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb3JtTWVzc2FnZTogTnVsbGFibGU8Rm9ybUlucHV0TWVzc2FnZUdyb3VwQ29tcG9uZW50PjtcblxuICAgIC8qKlxuICAgICAqIEVhY2ggaW5wdXQgY29udHJvbCBoYXMgYWx3YXlzIGEgdmFsdWUuIE5lZWQgdG8gbWFrZSBzdXJlIHdlIGtlZXAgYSBjb252ZW50aW9uIGZvclxuICAgICAqIGlucHV0IGZpZWxkc1xuICAgICAqL1xuICAgIHZhbHVlOiBUIHwgbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE5lZWQgdG8gaGF2ZSBhIHdheSB0byBzZXQgcGxhY2Vob2xkZXIgdG8gdGhlIGlucHV0XG4gICAgICovXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE5lZWQgdG8gaGF2ZSBhIHdheSB0byBzZXQgTWFuZGF0b3J5IHRvIHRoZSBpbnB1dCBmaWVsZFxuICAgICAqL1xuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyBpZCBmcm9tIEZGIHRvIElucHV0XG4gICAgICovXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoaXMgc2hvdWxkIGJlIGNvbWluZyBmcm9tIFBhcmVudC5cbiAgICAgKi9cbiAgICBlZGl0YWJsZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBoZWlnaHQgb2YgdGhlIGV4dHJhIGNvbnRlbnQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZm9ybSBjb250cm9sLFxuICAgICAqIHdoaWNoIHNob3VsZCBub3QgYWZmZWN0IHRoZSBhbGlnbm1lbnQgb2YgZm9ybSBjb250cm9sIGFuZCBpdCdzIGxhYmVsXG4gICAgICovXG4gICAgZXh0cmFDb250ZW50SGVpZ2h0UHg/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEZvcm0gRmllbGQgbGlzdGVuIGZvciBhbGwgdGhlIGNoYW5nZXMgaGFwcGVuaW5nIGluc2lkZSB0aGUgaW5wdXRcbiAgICAgKi9cbiAgICByZWFkb25seSBzdGF0ZUNoYW5nZXM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiAgRWFjaCBpbnB1dCBzaG91bGQgaW5qZWN0IGl0cyBvd24gbmdDb250cm9sIGFuZCB3ZSBzaG91bGQgcmV0cmlldmUgaXRcbiAgICAgKi9cbiAgICByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGw7XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29udHJvbCBpcyBkaXNhYmxlZC4gKi9cbiAgICByZWFkb25seSBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEtlZXBzIHRyYWNrIGlmIHRoZSBmb3JtIGVsZW1lbnQgaXMgaW4gZm9jdXNcbiAgICAgKi9cbiAgICByZWFkb25seSBmb2N1c2VkOiBib29sZWFuO1xuXG4gICAgLyoqIFdoZXRoZXIgY29udHJvbCBoYXMgZXJyb3JzICovXG4gICAgcmVhZG9ubHkgY29udHJvbEludmFsaWQ6IGJvb2xlYW47XG5cbiAgICAvKiogQ29ycmVzcG9uZGluZyBlbGVtZW50IHJlZmVyZW5jZS4gKi9cbiAgICByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEZvcm0gZmllbGQgaW5zdGFuY2UuICovXG4gICAgZm9ybUZpZWxkOiBOdWxsYWJsZTxQbGF0Zm9ybUZvcm1GaWVsZD47XG59XG5cbi8qKlxuICogRm9ybUdyb3VwIGJhc2UgY2xhc3MuXG4gKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIGNyZWF0ZSBmb3JtIGdyb3VwIGNvbXBvbmVudHMuXG4gKlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9ybUdyb3VwQ29udGFpbmVyIHtcbiAgICAvKipcbiAgICAgKiBBbmd1bGFyIEZvcm1Hcm91cCB3aGVyZSBhbGwgdW5kZXJseWluZyBjb250cm9scyB3aWxsIGJlIGF0dGFjaGVkIHRvLlxuICAgICAqL1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0aW9ucyB0ZW1wbGF0ZSByZWZlcmVuY2UuXG4gICAgICovXG4gICAgaTE4U3RyaW5nczogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgd2hlbiBmb3JtIGlzIGVkaXRhYmxlLlxuICAgICAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGVuIGxhYmVscyBzaG91bGQgbm90IGJlIGRpc3BsYXllZC5cbiAgICAgKi9cbiAgICBub0xhYmVsTGF5b3V0OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBsYWJlbCdzIGNvbHVtbiBsYXlvdXQuXG4gICAgICovXG4gICAgbGFiZWxDb2x1bW5MYXlvdXQ6IENvbHVtbkxheW91dDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgZmllbGQncyBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGZpZWxkQ29sdW1uTGF5b3V0OiBDb2x1bW5MYXlvdXQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGdhcCBjb2x1bW4gbGF5b3V0LlxuICAgICAqL1xuICAgIGdhcENvbHVtbkxheW91dDogQ29sdW1uTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogRm9ybSdzIG1haW4gdGl0bGUuXG4gICAgICovXG4gICAgbWFpblRpdGxlPzogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEF0dGFjaCB1bmRlcmx5aW5nIGZvcm0gZmllbGQuXG4gICAgICovXG4gICAgYWRkRm9ybUZpZWxkOiAoZm9ybUZpZWxkOiBQbGF0Zm9ybUZvcm1GaWVsZCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBEZXRhY2ggdW5kZXJseWluZyBmb3JtIGZpZWxkLlxuICAgICAqL1xuICAgIHJlbW92ZUZvcm1GaWVsZDogKGZvcm1GaWVsZDogUGxhdGZvcm1Gb3JtRmllbGQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQXR0YWNoIGZvcm1Db250cm9sLlxuICAgICAqL1xuICAgIGFkZEZvcm1Db250cm9sOiAobmFtZTogc3RyaW5nLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogRGV0YWNoIGZvcm0gZm9ybUNvbnRyb2wuXG4gICAgICovXG4gICAgcmVtb3ZlRm9ybUNvbnRyb2w6IChuYW1lOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogQXR0YWNoIHVuZGVybHlpbmcgZm9ybSBmaWVsZCBncm91cC5cbiAgICAgKi9cbiAgICBhZGRGb3JtRmllbGRHcm91cDogKGZvcm1GaWVsZEdyb3VwOiBGb3JtRmllbGRHcm91cCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBEZXRhY2ggdW5kZXJseWluZyBmb3JtIGZpZWxkIGdyb3VwLlxuICAgICAqL1xuICAgIHJlbW92ZUZvcm1GaWVsZEdyb3VwOiAoZm9ybUZpZWxkR3JvdXA6IEZvcm1GaWVsZEdyb3VwKSA9PiB2b2lkO1xufVxuIl19","export var ColumnLayoutGridClass;\n(function (ColumnLayoutGridClass) {\n ColumnLayoutGridClass[\"XL\"] = \"xl\";\n ColumnLayoutGridClass[\"L\"] = \"lg\";\n ColumnLayoutGridClass[\"M\"] = \"md\";\n ColumnLayoutGridClass[\"S\"] = \"sm\";\n})(ColumnLayoutGridClass || (ColumnLayoutGridClass = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zaGFyZWQvZm9ybS9mb3JtLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUM3QixrQ0FBUyxDQUFBO0lBQ1QsaUNBQVEsQ0FBQTtJQUNSLGlDQUFRLENBQUE7SUFDUixpQ0FBUSxDQUFBO0FBQ1osQ0FBQyxFQUxXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFLaEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBMYWJlbExheW91dCA9ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc7XG5cbmV4cG9ydCB0eXBlIEhpbnRQbGFjZW1lbnQgPSAnbGVmdCcgfCAncmlnaHQnO1xuXG5leHBvcnQgdHlwZSBGb3JtWm9uZSA9ICd6VG9wJyB8ICd6Qm90dG9tJyB8ICd6TGVmdCcgfCAnelJpZ2h0JztcblxuZXhwb3J0IHR5cGUgQ29sdW1uID0gMSB8IDIgfCAzIHwgNSB8IDYgfCA3IHwgOCB8IDkgfCAxMCB8IDExIHwgMTI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uTGF5b3V0IHtcbiAgICBYTD86IG51bWJlcjtcbiAgICBMPzogbnVtYmVyO1xuICAgIE0/OiBudW1iZXI7XG4gICAgUz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gQ29sdW1uTGF5b3V0R3JpZENsYXNzIHtcbiAgICBYTCA9ICd4bCcsXG4gICAgTCA9ICdsZycsXG4gICAgTSA9ICdtZCcsXG4gICAgUyA9ICdzbSdcbn1cbiJdfQ==","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Directive, Injectable, InjectionToken, Input, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { CollectionBaseInput } from './collection-base.input';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/cdk/layout\";\nexport var RESPONSIVE_BREAKPOINTS;\n(function (RESPONSIVE_BREAKPOINTS) {\n RESPONSIVE_BREAKPOINTS[RESPONSIVE_BREAKPOINTS[\"S\"] = 600] = \"S\";\n RESPONSIVE_BREAKPOINTS[RESPONSIVE_BREAKPOINTS[\"M\"] = 1024] = \"M\";\n RESPONSIVE_BREAKPOINTS[RESPONSIVE_BREAKPOINTS[\"L\"] = 1440] = \"L\";\n})(RESPONSIVE_BREAKPOINTS || (RESPONSIVE_BREAKPOINTS = {}));\nexport const RESPONSIVE_BREAKPOINTS_CONFIG = new InjectionToken('Default Responsive breakpoint config');\nexport class ResponsiveBreakPointConfig {\n constructor() {\n /** Large screen */\n this.L = RESPONSIVE_BREAKPOINTS['L'];\n /** Medium screen */\n this.M = RESPONSIVE_BREAKPOINTS['M'];\n /** Small screen */\n this.S = RESPONSIVE_BREAKPOINTS['S'];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakPointConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakPointConfig }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakPointConfig, decorators: [{\n type: Injectable\n }] });\nexport class ResponsiveBreakpointsService {\n /** @hidden */\n constructor(_breakpointObserver) {\n this._breakpointObserver = _breakpointObserver;\n /** @hidden */\n this.breakpoints = {};\n /** @hidden */\n this.minWidth = 'min-width';\n /** @hidden */\n this.maxWidth = 'max-width';\n /** @hidden */\n this.unit = 'px';\n }\n /** subscribe to get current screen size based on config provided */\n observeBreakpointByConfig(config) {\n const breakPointName = new BehaviorSubject('S');\n this._breakpointObserver.observe(this._getBreakpoints(config)).subscribe((matchValues) => {\n const breakPoint = this._breakPointMeet(matchValues);\n breakPointName.next(breakPoint);\n });\n return breakPointName;\n }\n /** @hidden when screen size changes from one breakpoint to another */\n _breakPointMeet(breakPointMatches) {\n let breakPointName;\n if (breakPointMatches.matches) {\n for (const breakpoint in breakPointMatches.breakpoints) {\n if (breakPointMatches.breakpoints[breakpoint]) {\n breakPointName = this._getBreakpointName(breakpoint);\n }\n }\n }\n return breakPointName ?? 'S';\n }\n /** @hidden */\n _getBreakpoints(config) {\n let breakPointStr;\n this.activeBreakpoints = [];\n for (const screenSize of Object.keys(config)) {\n switch (screenSize) {\n case 'S':\n breakPointStr = `(${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n break;\n case 'M':\n breakPointStr = `(${this.minWidth}: ${config['S']}${this.unit}) and (${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n break;\n case 'L':\n breakPointStr = `(${this.minWidth}: ${config['M']}${this.unit}) and (${this.maxWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = screenSize;\n // create entry for XL screen\n breakPointStr = `(${this.minWidth}: ${config[screenSize]}${this.unit})`;\n this.activeBreakpoints.push(breakPointStr);\n this.breakpoints[breakPointStr] = 'XL';\n break;\n }\n }\n return this.activeBreakpoints;\n }\n /** @hidden */\n _getBreakpointName(breakpointValue) {\n return this.breakpoints[breakpointValue];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakpointsService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakpointsService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ResponsiveBreakpointsService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: () => [{ type: i1.BreakpointObserver }] });\nexport class InLineLayoutCollectionBaseInput extends CollectionBaseInput {\n constructor() {\n super(...arguments);\n /** @hidden */\n this._inlineCurrentValue$ = new BehaviorSubject(false);\n /** @hidden */\n this._responsiveBreakpointsService = inject(ResponsiveBreakpointsService);\n /** @hidden */\n this._responsiveBreakPointConfig = inject(RESPONSIVE_BREAKPOINTS_CONFIG, {\n optional: true\n }) || new ResponsiveBreakPointConfig();\n /** @hidden */\n this._isInLineLayoutEnabled = false;\n }\n /** object to change isInline property based on screen size */\n set inlineLayout(layout) {\n if (layout) {\n this._inlineLayout = layout;\n this._isInLineLayoutEnabled = true;\n }\n this._setFieldLayout(layout);\n }\n get inlineLayout() {\n return this._inlineLayout;\n }\n /** @hidden */\n ngOnInit() {\n super.ngOnInit();\n if (this._isInLineLayoutEnabled) {\n this._responsiveBreakpointsService\n .observeBreakpointByConfig(this._responsiveBreakPointConfig)\n .subscribe((breakPointName) => {\n this._updateLayout(breakPointName);\n });\n }\n }\n /** @hidden set values of inline for each screen layout */\n _setFieldLayout(inlineLayout) {\n if (!inlineLayout) {\n this._isInLineLayoutEnabled = false;\n return;\n }\n try {\n this._sIsInline = !!inlineLayout['S'];\n this._mdIsInline = !!inlineLayout['M'];\n this._lgIsInline = !!inlineLayout['L'];\n this._xlIsInline = !!inlineLayout['XL'];\n }\n catch {\n this._isInLineLayoutEnabled = false;\n }\n }\n /** @hidden */\n _updateLayout(currentBreakingPointName) {\n if (this._isInLineLayoutEnabled) {\n switch (currentBreakingPointName) {\n case 'S':\n this._inlineCurrentValue$.next(this._sIsInline);\n break;\n case 'M':\n this._inlineCurrentValue$.next(this._mdIsInline);\n break;\n case 'L':\n this._inlineCurrentValue$.next(this._lgIsInline);\n break;\n case 'XL':\n this._inlineCurrentValue$.next(this._xlIsInline);\n break;\n default:\n this._inlineCurrentValue$.next(this._xlIsInline);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: InLineLayoutCollectionBaseInput, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: InLineLayoutCollectionBaseInput, isStandalone: true, inputs: { inlineLayout: \"inlineLayout\" }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: InLineLayoutCollectionBaseInput, decorators: [{\n type: Directive\n }], propDecorators: { inlineLayout: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWxheW91dC1jb2xsZWN0aW9uLWJhc2UuaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NoYXJlZC9mb3JtL2lubGluZS1sYXlvdXQtY29sbGVjdGlvbi1iYXNlLmlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBbUIsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFXLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFTOUQsTUFBTSxDQUFOLElBQVksc0JBSVg7QUFKRCxXQUFZLHNCQUFzQjtJQUM5QiwrREFBTyxDQUFBO0lBQ1AsZ0VBQVEsQ0FBQTtJQUNSLGdFQUFRLENBQUE7QUFDWixDQUFDLEVBSlcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUlqQztBQUVELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUMzRCxzQ0FBc0MsQ0FDekMsQ0FBQztBQUdGLE1BQU0sT0FBTywwQkFBMEI7SUFEdkM7UUFFSSxtQkFBbUI7UUFDbkIsTUFBQyxHQUFXLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLG9CQUFvQjtRQUNwQixNQUFDLEdBQVcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsbUJBQW1CO1FBQ25CLE1BQUMsR0FBVyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMzQzs4R0FQWSwwQkFBMEI7a0hBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVTs7QUFhWCxNQUFNLE9BQU8sNEJBQTRCO0lBWXJDLGNBQWM7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QkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ04sYUFBYSxDQUFDLHdCQUFnQztRQUNsRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzlCLFFBQVEsd0JBQXdCLEVBQUUsQ0FBQztnQkFDL0IsS0FBSyxHQUFHO29CQUNKLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNoRCxNQUFNO2dCQUNWLEtBQUssR0FBRztvQkFDSixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDakQsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ2pELE1BQU07Z0JBQ1YsS0FBSyxJQUFJO29CQUNMLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUNqRCxNQUFNO2dCQUNWO29CQUNJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pELENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQzs4R0E3RmlCLCtCQUErQjtrR0FBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQURwRCxTQUFTOzhCQUlGLFlBQVk7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbnB1dCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb2xsZWN0aW9uQmFzZUlucHV0IH0gZnJvbSAnLi9jb2xsZWN0aW9uLWJhc2UuaW5wdXQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElubGluZUxheW91dCB7XG4gICAgWEw/OiBib29sZWFuO1xuICAgIEw/OiBib29sZWFuO1xuICAgIE0/OiBib29sZWFuO1xuICAgIFM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZW51bSBSRVNQT05TSVZFX0JSRUFLUE9JTlRTIHtcbiAgICBTID0gNjAwLFxuICAgIE0gPSAxMDI0LFxuICAgIEwgPSAxNDQwXG59XG5cbmV4cG9ydCBjb25zdCBSRVNQT05TSVZFX0JSRUFLUE9JTlRTX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZz4oXG4gICAgJ0RlZmF1bHQgUmVzcG9uc2l2ZSBicmVha3BvaW50IGNvbmZpZydcbik7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZyB7XG4gICAgLyoqIExhcmdlIHNjcmVlbiAqL1xuICAgIEw6IG51bWJlciA9IFJFU1BPTlNJVkVfQlJFQUtQT0lOVFNbJ0wnXTtcbiAgICAvKiogTWVkaXVtIHNjcmVlbiAqL1xuICAgIE06IG51bWJlciA9IFJFU1BPTlNJVkVfQlJFQUtQT0lOVFNbJ00nXTtcbiAgICAvKiogU21hbGwgc2NyZWVuICovXG4gICAgUzogbnVtYmVyID0gUkVTUE9OU0lWRV9CUkVBS1BPSU5UU1snUyddO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpdmVCcmVha3BvaW50c1NlcnZpY2Uge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgYnJlYWtwb2ludHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFjdGl2ZUJyZWFrcG9pbnRzOiBzdHJpbmdbXTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG1pbldpZHRoID0gJ21pbi13aWR0aCc7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtYXhXaWR0aCA9ICdtYXgtd2lkdGgnO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdW5pdCA9ICdweCc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHJlYWRvbmx5IF9icmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcikge31cblxuICAgIC8qKiBzdWJzY3JpYmUgdG8gZ2V0IGN1cnJlbnQgc2NyZWVuIHNpemUgYmFzZWQgb24gY29uZmlnIHByb3ZpZGVkICovXG4gICAgb2JzZXJ2ZUJyZWFrcG9pbnRCeUNvbmZpZyhjb25maWc6IFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnKTogU3ViamVjdDxhbnk+IHtcbiAgICAgICAgY29uc3QgYnJlYWtQb2ludE5hbWU6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoJ1MnKTtcblxuICAgICAgICB0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9nZXRCcmVha3BvaW50cyhjb25maWcpKS5zdWJzY3JpYmUoKG1hdGNoVmFsdWVzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBicmVha1BvaW50ID0gdGhpcy5fYnJlYWtQb2ludE1lZXQobWF0Y2hWYWx1ZXMpO1xuICAgICAgICAgICAgYnJlYWtQb2ludE5hbWUubmV4dChicmVha1BvaW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGJyZWFrUG9pbnROYW1lO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIHdoZW4gc2NyZWVuIHNpemUgY2hhbmdlcyBmcm9tIG9uZSBicmVha3BvaW50IHRvIGFub3RoZXIgKi9cbiAgICBwcml2YXRlIF9icmVha1BvaW50TWVldChicmVha1BvaW50TWF0Y2hlczogQnJlYWtwb2ludFN0YXRlKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGJyZWFrUG9pbnROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKGJyZWFrUG9pbnRNYXRjaGVzLm1hdGNoZXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYnJlYWtwb2ludCBpbiBicmVha1BvaW50TWF0Y2hlcy5icmVha3BvaW50cykge1xuICAgICAgICAgICAgICAgIGlmIChicmVha1BvaW50TWF0Y2hlcy5icmVha3BvaW50c1ticmVha3BvaW50XSkge1xuICAgICAgICAgICAgICAgICAgICBicmVha1BvaW50TmFtZSA9IHRoaXMuX2dldEJyZWFrcG9pbnROYW1lKGJyZWFrcG9pbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBicmVha1BvaW50TmFtZSA/PyAnUyc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRCcmVha3BvaW50cyhjb25maWc6IFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnKTogc3RyaW5nW10ge1xuICAgICAgICBsZXQgYnJlYWtQb2ludFN0cjogc3RyaW5nO1xuICAgICAgICB0aGlzLmFjdGl2ZUJyZWFrcG9pbnRzID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBzY3JlZW5TaXplIG9mIE9iamVjdC5rZXlzKGNvbmZpZykpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoc2NyZWVuU2l6ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ1MnOlxuICAgICAgICAgICAgICAgICAgICBicmVha1BvaW50U3RyID0gYCgke3RoaXMubWF4V2lkdGh9OiAke2NvbmZpZ1tzY3JlZW5TaXplXX0ke3RoaXMudW5pdH0pYDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVCcmVha3BvaW50cy5wdXNoKGJyZWFrUG9pbnRTdHIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJyZWFrcG9pbnRzW2JyZWFrUG9pbnRTdHJdID0gc2NyZWVuU2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrUG9pbnRTdHIgPSBgKCR7dGhpcy5taW5XaWR0aH06ICR7Y29uZmlnWydTJ119JHt0aGlzLnVuaXR9KSBhbmQgKCR7dGhpcy5tYXhXaWR0aH06ICR7Y29uZmlnW3NjcmVlblNpemVdfSR7dGhpcy51bml0fSlgO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUJyZWFrcG9pbnRzLnB1c2goYnJlYWtQb2ludFN0cik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnJlYWtwb2ludHNbYnJlYWtQb2ludFN0cl0gPSBzY3JlZW5TaXplO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdMJzpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtQb2ludFN0ciA9IGAoJHt0aGlzLm1pbldpZHRofTogJHtjb25maWdbJ00nXX0ke3RoaXMudW5pdH0pIGFuZCAoJHt0aGlzLm1heFdpZHRofTogJHtjb25maWdbc2NyZWVuU2l6ZV19JHt0aGlzLnVuaXR9KWA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlQnJlYWtwb2ludHMucHVzaChicmVha1BvaW50U3RyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVha3BvaW50c1ticmVha1BvaW50U3RyXSA9IHNjcmVlblNpemU7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGVudHJ5IGZvciBYTCBzY3JlZW5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWtQb2ludFN0ciA9IGAoJHt0aGlzLm1pbldpZHRofTogJHtjb25maWdbc2NyZWVuU2l6ZV19JHt0aGlzLnVuaXR9KWA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlQnJlYWtwb2ludHMucHVzaChicmVha1BvaW50U3RyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5icmVha3BvaW50c1ticmVha1BvaW50U3RyXSA9ICdYTCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlQnJlYWtwb2ludHM7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRCcmVha3BvaW50TmFtZShicmVha3BvaW50VmFsdWUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5icmVha3BvaW50c1ticmVha3BvaW50VmFsdWVdO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW5MaW5lTGF5b3V0Q29sbGVjdGlvbkJhc2VJbnB1dCBleHRlbmRzIENvbGxlY3Rpb25CYXNlSW5wdXQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKiBvYmplY3QgdG8gY2hhbmdlIGlzSW5saW5lIHByb3BlcnR5IGJhc2VkIG9uIHNjcmVlbiBzaXplICovXG4gICAgQElucHV0KClcbiAgICBzZXQgaW5saW5lTGF5b3V0KGxheW91dDogSW5saW5lTGF5b3V0IHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChsYXlvdXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lubGluZUxheW91dCA9IGxheW91dDtcbiAgICAgICAgICAgIHRoaXMuX2lzSW5MaW5lTGF5b3V0RW5hYmxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0RmllbGRMYXlvdXQobGF5b3V0KTtcbiAgICB9XG4gICAgZ2V0IGlubGluZUxheW91dCgpOiBJbmxpbmVMYXlvdXQge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lTGF5b3V0O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIF9pbmxpbmVDdXJyZW50VmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcmVzcG9uc2l2ZUJyZWFrcG9pbnRzU2VydmljZSA9IGluamVjdChSZXNwb25zaXZlQnJlYWtwb2ludHNTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9yZXNwb25zaXZlQnJlYWtQb2ludENvbmZpZyA9XG4gICAgICAgIGluamVjdChSRVNQT05TSVZFX0JSRUFLUE9JTlRTX0NPTkZJRywge1xuICAgICAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICAgICAgfSkgfHwgbmV3IFJlc3BvbnNpdmVCcmVha1BvaW50Q29uZmlnKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lubGluZUxheW91dDogSW5saW5lTGF5b3V0O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF94bElzSW5saW5lOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9sZ0lzSW5saW5lOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9tZElzSW5saW5lOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zSXNJbmxpbmU6IGJvb2xlYW47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzSW5MaW5lTGF5b3V0RW5hYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBpZiAodGhpcy5faXNJbkxpbmVMYXlvdXRFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNwb25zaXZlQnJlYWtwb2ludHNTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLm9ic2VydmVCcmVha3BvaW50QnlDb25maWcodGhpcy5fcmVzcG9uc2l2ZUJyZWFrUG9pbnRDb25maWcpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoYnJlYWtQb2ludE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTGF5b3V0KGJyZWFrUG9pbnROYW1lKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIHNldCB2YWx1ZXMgb2YgaW5saW5lIGZvciBlYWNoIHNjcmVlbiBsYXlvdXQgKi9cbiAgICBwcml2YXRlIF9zZXRGaWVsZExheW91dChpbmxpbmVMYXlvdXQ/OiBJbmxpbmVMYXlvdXQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpbmxpbmVMYXlvdXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzSW5MaW5lTGF5b3V0RW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLl9zSXNJbmxpbmUgPSAhIWlubGluZUxheW91dFsnUyddO1xuICAgICAgICAgICAgdGhpcy5fbWRJc0lubGluZSA9ICEhaW5saW5lTGF5b3V0WydNJ107XG4gICAgICAgICAgICB0aGlzLl9sZ0lzSW5saW5lID0gISFpbmxpbmVMYXlvdXRbJ0wnXTtcbiAgICAgICAgICAgIHRoaXMuX3hsSXNJbmxpbmUgPSAhIWlubGluZUxheW91dFsnWEwnXTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICB0aGlzLl9pc0luTGluZUxheW91dEVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlTGF5b3V0KGN1cnJlbnRCcmVha2luZ1BvaW50TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc0luTGluZUxheW91dEVuYWJsZWQpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoY3VycmVudEJyZWFraW5nUG9pbnROYW1lKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnUyc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lubGluZUN1cnJlbnRWYWx1ZSQubmV4dCh0aGlzLl9zSXNJbmxpbmUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5saW5lQ3VycmVudFZhbHVlJC5uZXh0KHRoaXMuX21kSXNJbmxpbmUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdMJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5saW5lQ3VycmVudFZhbHVlJC5uZXh0KHRoaXMuX2xnSXNJbmxpbmUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdYTCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lubGluZUN1cnJlbnRWYWx1ZSQubmV4dCh0aGlzLl94bElzSW5saW5lKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5saW5lQ3VycmVudFZhbHVlJC5uZXh0KHRoaXMuX3hsSXNJbmxpbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ConvertBytesPipe {\n constructor() {\n /** @hidden */\n this._sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n }\n /** @hidden */\n transform(bytes) {\n return this._convertBytes(bytes);\n }\n /**\n * Convert bytes to KB, MB, GB, ...\n * @param bytes number\n * @param decimals number\n */\n _convertBytes(bytes = 0, decimals = 2) {\n if (bytes <= 0) {\n return '0 Bytes';\n }\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + this._sizes[i];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ConvertBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: ConvertBytesPipe, isStandalone: true, name: \"convertBytes\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ConvertBytesPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'convertBytes',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC1ieXRlcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zaGFyZWQvcGlwZXMvY29udmVydC1ieXRlcy9jb252ZXJ0LWJ5dGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxnQkFBZ0I7SUFKN0I7UUFLSSxjQUFjO1FBQ0csV0FBTSxHQUFhLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztLQXVCakc7SUFyQkcsY0FBYztJQUNkLFNBQVMsQ0FBQyxLQUFhO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGFBQWEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLFFBQVEsR0FBRyxDQUFDO1FBQ3pDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNmLE1BQU0sRUFBRSxHQUFHLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEQsT0FBTyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDOzhHQXhCUSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsY0FBYztvQkFDcEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ2NvbnZlcnRCeXRlcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDb252ZXJ0Qnl0ZXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zaXplczogc3RyaW5nW10gPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRyYW5zZm9ybShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRCeXRlcyhieXRlcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29udmVydCBieXRlcyB0byBLQiwgTUIsIEdCLCAuLi5cbiAgICAgKiBAcGFyYW0gYnl0ZXMgbnVtYmVyXG4gICAgICogQHBhcmFtIGRlY2ltYWxzIG51bWJlclxuICAgICAqL1xuICAgIHByaXZhdGUgX2NvbnZlcnRCeXRlcyhieXRlcyA9IDAsIGRlY2ltYWxzID0gMik6IHN0cmluZyB7XG4gICAgICAgIGlmIChieXRlcyA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gJzAgQnl0ZXMnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgayA9IDEwMjQ7XG4gICAgICAgIGNvbnN0IGRtID0gZGVjaW1hbHMgPCAwID8gMCA6IGRlY2ltYWxzO1xuICAgICAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZG0pKSArICcgJyArIHRoaXMuX3NpemVzW2ldO1xuICAgIH1cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { ConvertBytesPipe } from './convert-bytes/convert-bytes.pipe';\nimport * as i0 from \"@angular/core\";\nexport class PlatformPipeModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformPipeModule, imports: [ConvertBytesPipe], exports: [ConvertBytesPipe] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformPipeModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformPipeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ConvertBytesPipe],\n exports: [ConvertBytesPipe]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NoYXJlZC9waXBlcy9waXBlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQU10RSxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixZQUhqQixnQkFBZ0IsYUFDaEIsZ0JBQWdCOytHQUVqQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbnZlcnRCeXRlc1BpcGUgfSBmcm9tICcuL2NvbnZlcnQtYnl0ZXMvY29udmVydC1ieXRlcy5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29udmVydEJ5dGVzUGlwZV0sXG4gICAgZXhwb3J0czogW0NvbnZlcnRCeXRlc1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtUGlwZU1vZHVsZSB7fVxuIl19","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Creates a browser MouseEvent with the specified options.\n * @docs-private\n */\nexport function createMouseEvent(type, x = 0, y = 0, button = 0) {\n const event = document.createEvent('MouseEvent');\n const originalPreventDefault = event.preventDefault.bind(event);\n event.initMouseEvent(type, true /* canBubble */, true /* cancelable */, window /* view */, 0 /* detail */, x /* screenX */, y /* screenY */, x /* clientX */, y /* clientY */, false /* ctrlKey */, false /* altKey */, false /* shiftKey */, false /* metaKey */, button /* button */, null /* relatedTarget */);\n // `initMouseEvent` doesn't allow us to pass the `buttons` and\n // defaults it to 0 which looks like a fake event.\n Object.defineProperty(event, 'buttons', { get: () => 1 });\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function () {\n Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n return originalPreventDefault();\n };\n return event;\n}\n/**\n * Creates a browser TouchEvent with the specified pointer coordinates.\n * @docs-private\n */\nexport function createTouchEvent(type, pageX = 0, pageY = 0) {\n // In favor of creating events that work for most of the browsers, the event is created\n // as a basic UI Event. The necessary details for the event will be set manually.\n const event = document.createEvent('UIEvent');\n const touchDetails = { pageX, pageY };\n // TS3.6 removes the initUIEvent method and suggests porting to \"new UIEvent()\".\n event.initUIEvent(type, true, true, window, 0);\n // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n // the touch details.\n Object.defineProperties(event, {\n touches: { value: [touchDetails] },\n targetTouches: { value: [touchDetails] },\n changedTouches: { value: [touchDetails] }\n });\n return event;\n}\n/**\n * Dispatches a keydown event from an element.\n * @docs-private\n */\nexport function createKeyboardEvent(type, keyCode = 0, key = '', target, modifiers = {}) {\n const event = document.createEvent('KeyboardEvent');\n const originalPreventDefault = event.preventDefault;\n // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n if (event.initKeyEvent) {\n event.initKeyEvent(type, true, true, window, modifiers.control, modifiers.alt, modifiers.shift, modifiers.meta, keyCode);\n }\n else {\n // `initKeyboardEvent` expects to receive modifiers as a whitespace-delimited string\n // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent\n let modifiersList = '';\n if (modifiers.control) {\n modifiersList += 'Control ';\n }\n if (modifiers.alt) {\n modifiersList += 'Alt ';\n }\n if (modifiers.shift) {\n modifiersList += 'Shift ';\n }\n if (modifiers.meta) {\n modifiersList += 'Meta ';\n }\n event.initKeyboardEvent(type, true /* canBubble */, true /* cancelable */, window /* view */, 0 /* char */, key /* key */, 0 /* location */, modifiersList.trim() /* modifiersList */, false /* repeat */);\n }\n // Webkit Browsers don't set the keyCode when calling the init function.\n // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n Object.defineProperties(event, {\n keyCode: { get: () => keyCode },\n key: { get: () => key },\n target: { get: () => target },\n ctrlKey: { get: () => !!modifiers.control },\n altKey: { get: () => !!modifiers.alt },\n shiftKey: { get: () => !!modifiers.shift },\n metaKey: { get: () => !!modifiers.meta }\n });\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function () {\n Object.defineProperty(event, 'defaultPrevented', { get: () => true, configurable: true });\n // eslint-disable-next-line prefer-rest-params\n return originalPreventDefault.apply(this, arguments);\n };\n return event;\n}\n/**\n * Creates a fake event object with any desired event type.\n * @docs-private\n */\nexport function createFakeEvent(type, canBubble = false, cancelable = true) {\n const event = document.createEvent('Event');\n event.initEvent(type, canBubble, cancelable);\n return event;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtb2JqZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL3Rlc3RpbmcvZXZlbnQtb2JqZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFJSDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQztJQUNuRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFaEUsS0FBSyxDQUFDLGNBQWMsQ0FDaEIsSUFBSSxFQUNKLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsTUFBTSxDQUFDLFVBQVUsRUFDakIsQ0FBQyxDQUFDLFlBQVksRUFDZCxDQUFDLENBQUMsYUFBYSxFQUNmLENBQUMsQ0FBQyxhQUFhLEVBQ2YsQ0FBQyxDQUFDLGFBQWEsRUFDZixDQUFDLENBQUMsYUFBYSxFQUNmLEtBQUssQ0FBQyxhQUFhLEVBQ25CLEtBQUssQ0FBQyxZQUFZLEVBQ2xCLEtBQUssQ0FBQyxjQUFjLEVBQ3BCLEtBQUssQ0FBQyxhQUFhLEVBQ25CLE1BQU0sQ0FBQyxZQUFZLEVBQ25CLElBQUksQ0FBQyxtQkFBbUIsQ0FDM0IsQ0FBQztJQUVGLDhEQUE4RDtJQUM5RCxrREFBa0Q7SUFDbEQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFMUQsb0ZBQW9GO0lBQ3BGLEtBQUssQ0FBQyxjQUFjLEdBQUc7UUFDbkIs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QUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDN0MsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBNb2RpZmllcktleXMgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGJyb3dzZXIgTW91c2VFdmVudCB3aXRoIHRoZSBzcGVjaWZpZWQgb3B0aW9ucy5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1vdXNlRXZlbnQodHlwZTogc3RyaW5nLCB4ID0gMCwgeSA9IDAsIGJ1dHRvbiA9IDApOiBNb3VzZUV2ZW50IHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50Jyk7XG4gICAgY29uc3Qgb3JpZ2luYWxQcmV2ZW50RGVmYXVsdCA9IGV2ZW50LnByZXZlbnREZWZhdWx0LmJpbmQoZXZlbnQpO1xuXG4gICAgZXZlbnQuaW5pdE1vdXNlRXZlbnQoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIHRydWUgLyogY2FuQnViYmxlICovLFxuICAgICAgICB0cnVlIC8qIGNhbmNlbGFibGUgKi8sXG4gICAgICAgIHdpbmRvdyAvKiB2aWV3ICovLFxuICAgICAgICAwIC8qIGRldGFpbCAqLyxcbiAgICAgICAgeCAvKiBzY3JlZW5YICovLFxuICAgICAgICB5IC8qIHNjcmVlblkgKi8sXG4gICAgICAgIHggLyogY2xpZW50WCAqLyxcbiAgICAgICAgeSAvKiBjbGllbnRZICovLFxuICAgICAgICBmYWxzZSAvKiBjdHJsS2V5ICovLFxuICAgICAgICBmYWxzZSAvKiBhbHRLZXkgKi8sXG4gICAgICAgIGZhbHNlIC8qIHNoaWZ0S2V5ICovLFxuICAgICAgICBmYWxzZSAvKiBtZXRhS2V5ICovLFxuICAgICAgICBidXR0b24gLyogYnV0dG9uICovLFxuICAgICAgICBudWxsIC8qIHJlbGF0ZWRUYXJnZXQgKi9cbiAgICApO1xuXG4gICAgLy8gYGluaXRNb3VzZUV2ZW50YCBkb2Vzbid0IGFsbG93IHVzIHRvIHBhc3MgdGhlIGBidXR0b25zYCBhbmRcbiAgICAvLyBkZWZhdWx0cyBpdCB0byAwIHdoaWNoIGxvb2tzIGxpa2UgYSBmYWtlIGV2ZW50LlxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShldmVudCwgJ2J1dHRvbnMnLCB7IGdldDogKCkgPT4gMSB9KTtcblxuICAgIC8vIElFIHdvbid0IHNldCBgZGVmYXVsdFByZXZlbnRlZGAgb24gc3ludGhldGljIGV2ZW50cyBzbyB3ZSBuZWVkIHRvIGRvIGl0IG1hbnVhbGx5LlxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0ID0gZnVuY3Rpb24gKCk6IHZvaWQge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsICdkZWZhdWx0UHJldmVudGVkJywgeyBnZXQ6ICgpID0+IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsUHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGV2ZW50O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBicm93c2VyIFRvdWNoRXZlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIHBvaW50ZXIgY29vcmRpbmF0ZXMuXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb3VjaEV2ZW50KHR5cGU6IHN0cmluZywgcGFnZVggPSAwLCBwYWdlWSA9IDApOiBFdmVudCB7XG4gICAgLy8gSW4gZmF2b3Igb2YgY3JlYXRpbmcgZXZlbnRzIHRoYXQgd29yayBmb3IgbW9zdCBvZiB0aGUgYnJvd3NlcnMsIHRoZSBldmVudCBpcyBjcmVhdGVkXG4gICAgLy8gYXMgYSBiYXNpYyBVSSBFdmVudC4gVGhlIG5lY2Vzc2FyeSBkZXRhaWxzIGZvciB0aGUgZXZlbnQgd2lsbCBiZSBzZXQgbWFudWFsbHkuXG4gICAgY29uc3QgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnVUlFdmVudCcpO1xuICAgIGNvbnN0IHRvdWNoRGV0YWlscyA9IHsgcGFnZVgsIHBhZ2VZIH07XG5cbiAgICAvLyBUUzMuNiByZW1vdmVzIHRoZSBpbml0VUlFdmVudCBtZXRob2QgYW5kIHN1Z2dlc3RzIHBvcnRpbmcgdG8gXCJuZXcgVUlFdmVudCgpXCIuXG4gICAgKGV2ZW50IGFzIGFueSkuaW5pdFVJRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSwgd2luZG93LCAwKTtcblxuICAgIC8vIE1vc3Qgb2YgdGhlIGJyb3dzZXJzIGRvbid0IGhhdmUgYSBcImluaXRUb3VjaEV2ZW50XCIgbWV0aG9kIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVmaW5lXG4gICAgLy8gdGhlIHRvdWNoIGRldGFpbHMuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZXZlbnQsIHtcbiAgICAgICAgdG91Y2hlczogeyB2YWx1ZTogW3RvdWNoRGV0YWlsc10gfSxcbiAgICAgICAgdGFyZ2V0VG91Y2hlczogeyB2YWx1ZTogW3RvdWNoRGV0YWlsc10gfSxcbiAgICAgICAgY2hhbmdlZFRvdWNoZXM6IHsgdmFsdWU6IFt0b3VjaERldGFpbHNdIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBldmVudDtcbn1cblxuLyoqXG4gKiBEaXNwYXRjaGVzIGEga2V5ZG93biBldmVudCBmcm9tIGFuIGVsZW1lbnQuXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVLZXlib2FyZEV2ZW50KFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBrZXlDb2RlOiBudW1iZXIgPSAwLFxuICAgIGtleTogc3RyaW5nID0gJycsXG4gICAgdGFyZ2V0PzogRWxlbWVudCxcbiAgICBtb2RpZmllcnM6IE1vZGlmaWVyS2V5cyA9IHt9XG4pOiBLZXlib2FyZEV2ZW50IHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdLZXlib2FyZEV2ZW50JykgYXMgYW55O1xuICAgIGNvbnN0IG9yaWdpbmFsUHJldmVudERlZmF1bHQgPSBldmVudC5wcmV2ZW50RGVmYXVsdDtcblxuICAgIC8vIEZpcmVmb3ggZG9lcyBub3Qgc3VwcG9ydCBgaW5pdEtleWJvYXJkRXZlbnRgLCBidXQgc3VwcG9ydHMgYGluaXRLZXlFdmVudGAuXG4gICAgaWYgKGV2ZW50LmluaXRLZXlFdmVudCkge1xuICAgICAgICBldmVudC5pbml0S2V5RXZlbnQoXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICB3aW5kb3csXG4gICAgICAgICAgICBtb2RpZmllcnMuY29udHJvbCxcbiAgICAgICAgICAgIG1vZGlmaWVycy5hbHQsXG4gICAgICAgICAgICBtb2RpZmllcnMuc2hpZnQsXG4gICAgICAgICAgICBtb2RpZmllcnMubWV0YSxcbiAgICAgICAgICAgIGtleUNvZGVcbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBgaW5pdEtleWJvYXJkRXZlbnRgIGV4cGVjdHMgdG8gcmVjZWl2ZSBtb2RpZmllcnMgYXMgYSB3aGl0ZXNwYWNlLWRlbGltaXRlZCBzdHJpbmdcbiAgICAgICAgLy8gU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9LZXlib2FyZEV2ZW50L2luaXRLZXlib2FyZEV2ZW50XG4gICAgICAgIGxldCBtb2RpZmllcnNMaXN0ID0gJyc7XG5cbiAgICAgICAgaWYgKG1vZGlmaWVycy5jb250cm9sKSB7XG4gICAgICAgICAgICBtb2RpZmllcnNMaXN0ICs9ICdDb250cm9sICc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9kaWZpZXJzLmFsdCkge1xuICAgICAgICAgICAgbW9kaWZpZXJzTGlzdCArPSAnQWx0ICc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobW9kaWZpZXJzLnNoaWZ0KSB7XG4gICAgICAgICAgICBtb2RpZmllcnNMaXN0ICs9ICdTaGlmdCAnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1vZGlmaWVycy5tZXRhKSB7XG4gICAgICAgICAgICBtb2RpZmllcnNMaXN0ICs9ICdNZXRhICc7XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5pbml0S2V5Ym9hcmRFdmVudChcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICB0cnVlIC8qIGNhbkJ1YmJsZSAqLyxcbiAgICAgICAgICAgIHRydWUgLyogY2FuY2VsYWJsZSAqLyxcbiAgICAgICAgICAgIHdpbmRvdyAvKiB2aWV3ICovLFxuICAgICAgICAgICAgMCAvKiBjaGFyICovLFxuICAgICAgICAgICAga2V5IC8qIGtleSAqLyxcbiAgICAgICAgICAgIDAgLyogbG9jYXRpb24gKi8sXG4gICAgICAgICAgICBtb2RpZmllcnNMaXN0LnRyaW0oKSAvKiBtb2RpZmllcnNMaXN0ICovLFxuICAgICAgICAgICAgZmFsc2UgLyogcmVwZWF0ICovXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gV2Via2l0IEJyb3dzZXJzIGRvbid0IHNldCB0aGUga2V5Q29kZSB3aGVuIGNhbGxpbmcgdGhlIGluaXQgZnVuY3Rpb24uXG4gICAgLy8gU2VlIHJlbGF0ZWQgYnVnIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjczNVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGV2ZW50LCB7XG4gICAgICAgIGtleUNvZGU6IHsgZ2V0OiAoKSA9PiBrZXlDb2RlIH0sXG4gICAgICAgIGtleTogeyBnZXQ6ICgpID0+IGtleSB9LFxuICAgICAgICB0YXJnZXQ6IHsgZ2V0OiAoKSA9PiB0YXJnZXQgfSxcbiAgICAgICAgY3RybEtleTogeyBnZXQ6ICgpID0+ICEhbW9kaWZpZXJzLmNvbnRyb2wgfSxcbiAgICAgICAgYWx0S2V5OiB7IGdldDogKCkgPT4gISFtb2RpZmllcnMuYWx0IH0sXG4gICAgICAgIHNoaWZ0S2V5OiB7IGdldDogKCkgPT4gISFtb2RpZmllcnMuc2hpZnQgfSxcbiAgICAgICAgbWV0YUtleTogeyBnZXQ6ICgpID0+ICEhbW9kaWZpZXJzLm1ldGEgfVxuICAgIH0pO1xuXG4gICAgLy8gSUUgd29uJ3Qgc2V0IGBkZWZhdWx0UHJldmVudGVkYCBvbiBzeW50aGV0aWMgZXZlbnRzIHNvIHdlIG5lZWQgdG8gZG8gaXQgbWFudWFsbHkuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQgPSBmdW5jdGlvbiAoKTogRXZlbnQge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsICdkZWZhdWx0UHJldmVudGVkJywgeyBnZXQ6ICgpID0+IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1yZXN0LXBhcmFtc1xuICAgICAgICByZXR1cm4gb3JpZ2luYWxQcmV2ZW50RGVmYXVsdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH07XG5cbiAgICByZXR1cm4gZXZlbnQ7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZha2UgZXZlbnQgb2JqZWN0IHdpdGggYW55IGRlc2lyZWQgZXZlbnQgdHlwZS5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZha2VFdmVudCh0eXBlOiBzdHJpbmcsIGNhbkJ1YmJsZSA9IGZhbHNlLCBjYW5jZWxhYmxlID0gdHJ1ZSk6IEV2ZW50IHtcbiAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgIGV2ZW50LmluaXRFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUpO1xuICAgIHJldHVybiBldmVudDtcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const FDP_PRESET_MANAGED_COMPONENT = new InjectionToken('FdpPresetManagedComponent');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LW1hbmFnZW1lbnQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NoYXJlZC9wcmVzZXQtbWFuYWdlbWVudC9wcmVzZXQtbWFuYWdlbWVudC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUFDLDJCQUEyQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRkRQX1BSRVNFVF9NQU5BR0VEX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbignRmRwUHJlc2V0TWFuYWdlZENvbXBvbmVudCcpO1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXBsYXRmb3JtLXNoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2hhcmVkL2Z1bmRhbWVudGFsLW5neC1wbGF0Zm9ybS1zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["randomId"],"mappings":";;;;;;;;;;AAGA,IAAIA,UAAQ,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA;AACO,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,EAAEA,UAAQ,EAAE,CAAC,CAAC;AACxC;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK;AAC9B;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,EAAE;AAChD;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC7C,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE;AAC9B,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK;AACpC,IAAI;AACJ;AACA,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ;AACjC,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS;AAC7B,IAAI;AACJ;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;AACzC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACjC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC/V;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,CAAC;AAC1C,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;AACrB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;AClFnB;AACA;AACA;AACO,MAAM,cAAc,CAAC;AAC5B;AACA,IAAI,SAAS,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAClC;AACA,IAAI,OAAO,WAAW,CAAC,QAAQ,EAAE;AACjC,QAAQ,cAAc,CAAC,QAAQ,GAAG,QAAQ;AAC1C,IAAI;AACJ;AACA,IAAI,OAAO,WAAW,GAAG;AACzB,QAAQ,OAAO,cAAc,CAAC,QAAQ;AACtC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACjL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACxJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;ACtBb;AACO,SAAS,YAAY,CAAC,GAAG,EAAE;AAClC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAClD;AACA;AACO,SAAS,YAAY,CAAC,MAAM,EAAE;AACrC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;AACtE,QAAQ,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;AACzD,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI;AACvF;AACA;AACO,SAAS,UAAU,CAAC,CAAC,EAAE;AAC9B,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAC3E;AACA;AACO,SAAS,SAAS,CAAC,GAAG,EAAE;AAC/B,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;AAC5C;AACA;AACO,SAAS,OAAO,CAAC,GAAG,EAAE;AAC7B,IAAI,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;AAC5C;AACA;AACO,SAAS,SAAS,CAAC,GAAG,EAAE;AAC/B,IAAI,OAAO,OAAO,GAAG,KAAK,SAAS;AACnC;AACA;AACO,SAAS,QAAQ,CAAC,GAAG,EAAE;AAC9B,IAAI,OAAO,OAAO,GAAG,KAAK,QAAQ;AAClC;AACA;AACO,SAAS,QAAQ,CAAC,GAAG,EAAE;AAC9B,IAAI,OAAO,OAAO,GAAG,KAAK,QAAQ;AAClC;AACA;AACO,SAAS,UAAU,CAAC,GAAG,EAAE;AAChC,IAAI,OAAO,OAAO,GAAG,KAAK,UAAU;AACpC;AACA;AACO,SAAS,MAAM,CAAC,GAAG,EAAE;AAC5B,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC;AAC1B;AACA;AACO,SAAS,WAAW,CAAC,GAAG,EAAE;AACjC,IAAI,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;AAClD;AACA;AACO,SAAS,QAAQ,CAAC,IAAI,EAAE;AAC/B,IAAI,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI;AAC5E;AACA;AACO,SAAS,SAAS,CAAC,GAAG,EAAE;AAC/B;AACA;AACA,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACxC;AACA;AACO,SAAS,cAAc,CAAC,GAAG,EAAE;AACpC,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;AAC7C;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIU,IAAC;AACX,CAAC,UAAU,gBAAgB,EAAE;AAC7B,IAAI,gBAAgB,CAAC,sBAAsB,CAAC,GAAG,sBAAsB;AACrE,IAAI,gBAAgB,CAAC,aAAa,CAAC,GAAG,aAAa;AACnD,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG,UAAU;AAC7C,CAAC,EAAE,gBAAgB,KAAK,gBAAgB,GAAG,EAAE,CAAC,CAAC;AACnC,MAAC,cAAc,GAAG,IAAI,cAAc,CAAC,sBAAsB;AACvE;AACO,SAAS,0CAA0C,CAAC,KAAK,EAAE;AAClE;AACA,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACvF;AACA;AACO,SAAS,YAAY,CAAC,KAAK,EAAE;AACpC,IAAI,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,GAAG;AAClB;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,WAAW;AAC7D;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI;AAC/B,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA;AACA,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,QAAQ,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC;AACxC,IAAI;AACJ;AACA,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;AAC5B,QAAQ,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC;AACxC,IAAI;AACJ;AACA,IAAI,MAAM,CAAC,MAAM,EAAE;AACnB,QAAQ,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC;AACxC,IAAI;AACJ;AACA,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;AAC5B,QAAQ,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC;AACxC,IAAI;AACJ;AACA,IAAI,YAAY,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,QAAQ,GAAG,GAAG;AAC3B,IAAI;AACJ;AACA,IAAI,aAAa,CAAC,UAAU,EAAE;AAC9B,QAAQ,IAAI,CAAC,WAAW,GAAG,UAAU;AACrC,IAAI;AACJ;AACA,IAAI,mBAAmB,CAAC,QAAQ,EAAE;AAClC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ;AACzC,IAAI;AACJ;AACO,MAAM,kBAAkB,CAAC;AAChC;AACA,IAAI,SAAS,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC/B;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,YAAY;AAChC,IAAI;AACJ;AACA,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK;AAC9B;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC;AACnD;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,EAAE;AAC9C;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,OAAO,EAAE;AAC7C;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,EAAE;AACxC;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,KAAK;AACjC,IAAI;AACJ;AACA,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE;AAC5D,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;AACrC,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI;AAChC,QAAQ,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE;AACrC,QAAQ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AAC3C,YAAY,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;AAC/C,QAAQ;AACR,aAAa,IAAI,SAAS,YAAY,GAAG,EAAE;AAC3C,YAAY,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9D,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC;AAC3F,QAAQ;AACR,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AAC1D,YAAY,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC;AACjE,QAAQ;AACR,QAAQ,IAAI,CAAC;AACb,aAAa,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG;AAC1C,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;AAC7C,aAAa,SAAS,CAAC;AACvB,YAAY,IAAI,EAAE,CAAC,MAAM,KAAK;AAC9B,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAC5C,gBAAgB,IAAI,CAAC,YAAY,GAAG,KAAK;AACzC,gBAAgB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9C,YAAY,CAAC;AACb,YAAY,KAAK,EAAE,MAAM;AACzB,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;AAC5C,gBAAgB,IAAI,CAAC,YAAY,GAAG,KAAK;AACzC,YAAY;AACZ,SAAS,CAAC;AACV,IAAI;AACJ;AACA,IAAI,IAAI,GAAG;AACX,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAClE,IAAI;AACJ;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AAC/B,IAAI;AACJ;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACpD,IAAI;AACJ;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;AACnD,IAAI;AACJ;AACO,MAAM,uBAAuB,SAAS,kBAAkB,CAAC;AAChE;AACA,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,KAAK,CAAC,YAAY,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,IAAI;AACJ;AACO,MAAM,qBAAqB,SAAS,kBAAkB,CAAC;AAC9D;AACA,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,KAAK,CAAC,YAAY,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,IAAI;AACJ;AACO,MAAM,cAAc,SAAS,kBAAkB,CAAC;AACvD;AACA,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,KAAK,CAAC,YAAY,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B,IAAI;AACJ;AACO,MAAM,oBAAoB,SAAS,kBAAkB,CAAC;AAC7D;AACA,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,KAAK,CAAC,YAAY,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,IAAI;AACJ;AACO,MAAM,0BAA0B,SAAS,kBAAkB,CAAC;AACnE;AACA,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,KAAK,CAAC,YAAY,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,IAAI;AACJ;AACO,MAAM,0BAA0B,SAAS,kBAAkB,CAAC;AACnE;AACA,IAAI,WAAW,CAAC,YAAY,EAAE;AAC9B,QAAQ,KAAK,CAAC,YAAY,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,IAAI;AACJ;;AC3PA;AACA;AACA;AAKA;AACA;AACA;AACO,MAAM,gBAAgB,SAAS,YAAY,CAAC;AACnD;AACA,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,IAAI;AACJ;AACA,IAAI,KAAK,CAAC,MAAM,EAAE;AAClB,QAAQ,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;AACpF,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/C,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;AAC/C,QAAQ,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,GAAG,EAAE;AACjD,YAAY,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAChF,QAAQ;AACR,QAAQ,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,EAAE;AACxD,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AAC9C,YAAY,MAAM,MAAM,GAAG,EAAE;AAC7B,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnD,gBAAgB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;AACrC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE;AACxD,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,oBAAoB,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,EAAE;AAChD,wBAAwB;AACxB,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO,MAAM;AACzB,QAAQ,CAAC,CAAC,CAAC;AACX,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE;AAC3B,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC/B,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW;AACzD,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;AAC5D,QAAQ,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE;AACrC,YAAY,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC;AAChE,QAAQ;AACR,QAAQ,OAAO,OAAO;AACtB,IAAI;AACJ;AACA,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE;AACzC,QAAQ,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI;AAC9E,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AAC/B,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,QAAQ;AACR,aAAa,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;AACpC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;AACrD,QAAQ;AACR,aAAa,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,CAAC,oBAAoB,EAAE;AACnF,YAAY,MAAM,MAAM,GAAG,0CAA0C,CAAC,OAAO,CAAC;AAC9E,YAAY,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;AAChE,QAAQ;AACR,aAAa,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,CAAC,WAAW,EAAE;AAC1E,YAAY,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC3G,QAAQ;AACR,aAAa,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,CAAC,QAAQ,EAAE;AACvE,YAAY,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/F,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO;AACrF,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE;AACjC,QAAQ,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC;AACxC,QAAQ,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC;AAC3C,QAAQ,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK;AACjD,YAAY,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAChD,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,iBAAiB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAC/D,gBAAgB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,YAAY;AACZ,iBAAiB,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;AAC7E,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1D,YAAY;AACZ,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC,CAAC,CAAC,MAAM;AACjB,QAAQ,OAAO,OAAO,GAAG,CAAC;AAC1B,IAAI;AACJ;AACA,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;AAC3B,QAAQ,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;AAC1C,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;AACvC,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;;ACvGA;AACA;AACA;AAGO,MAAM,uBAAuB,SAAS,kBAAkB,CAAC;AAChE;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ;AACO,MAAM,4BAA4B,SAAS,uBAAuB,CAAC;AAC1E;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ;AACO,MAAM,mBAAmB,SAAS,cAAc,CAAC;AACxD;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ;AACO,MAAM,yBAAyB,SAAS,oBAAoB,CAAC;AACpE;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ;;AC9BA;AACO,SAAS,gBAAgB,CAAC,IAAI,EAAE;AACvC,IAAI,QAAQ,IAAI;AAChB,QAAQ,IAAI,CAAC,KAAK,KAAK,SAAS;AAChC,QAAQ,IAAI,CAAC,KAAK,KAAK,SAAS;AAChC,QAAQ,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;AAC9D;AACA;AACO,SAAS,YAAY,CAAC,IAAI,EAAE;AACnC,IAAI,OAAO,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;AACvE;AACY,MAAC,YAAY,GAAG;AAChB,MAAC,sBAAsB,GAAG;AACtC;AACA;AACA;AACA;AACO,SAAS,eAAe,CAAC,KAAK,EAAE;AACvC,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC;AACnD;;ACnBO,MAAM,4BAA4B,SAAS,kBAAkB,CAAC;AACrE;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ;AACO,MAAM,iCAAiC,SAAS,uBAAuB,CAAC;AAC/E;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ;AACO,MAAM,wBAAwB,SAAS,cAAc,CAAC;AAC7D;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ;AACO,MAAM,8BAA8B,SAAS,oBAAoB,CAAC;AACzE;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ;;ACtBY,MAAC,YAAY,GAAG,IAAI,cAAc,CAAC,wBAAwB;AAC3D,MAAC,eAAe,GAAG,IAAI,cAAc,CAAC,sBAAsB;AACxE,IAAI,QAAQ,GAAG,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,SAAS,SAAS,aAAa,CAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE;AACrB,QAAQ,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;AAClD,YAAY,IAAI,CAAC,MAAM,GAAG,KAAK;AAC/B,QAAQ;AACR,aAAa,IAAI,SAAS,EAAE,EAAE;AAC9B,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,2CAA2C,CAAC,CAAC;AAC/F,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;AACzB,YAAY,OAAO,IAAI,CAAC,MAAM;AAC9B,QAAQ;AACR,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAClC,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,OAAO;AAC5D,IAAI;AACJ;AACA,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACpC,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE;AAChE,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ;AAC1C,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,SAAS;AAC7B,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;AACxB,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;AACtC,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK;AAC9B,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1C,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS;AAC7B,IAAI;AACJ;AACA,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC,eAAe;AACnC,IAAI;AACJ;AACA,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE;AACf;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG;AACxB,YAAY;AACZ,gBAAgB,OAAO,EAAE,SAAS;AAClC,gBAAgB,UAAU,EAAE,IAAI;AAChC,gBAAgB,WAAW,EAAE;AAC7B,aAAa;AACb,YAAY;AACZ,gBAAgB,OAAO,EAAE,UAAU;AACnC,gBAAgB,UAAU,EAAE,KAAK;AACjC,gBAAgB,WAAW,EAAE;AAC7B;AACA,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC;AACnE;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK;AAC5B;AACA;AACA;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAE;AACzC;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjE;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE;AAC3C,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,EAAE;AACzD,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,QAAQ,EAAE;AACtB,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;AACrC,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,QAAQ,EAAE;AACtB,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;AACrD;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI;AAC7B;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1E;AACA,QAAQ,IAAI,CAAC,sBAAsB,GAAG,KAAK;AAC3C;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK;AACpC;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC;AACjC;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;AAClC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI;AAC/C,QAAQ;AACR,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,EAAE;AAChD,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC;AACV,QAAQ,MAAM,WAAW,GAAG,MAAM,CAAC,qBAAqB,EAAE;AAC1D,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC,WAAW,GAAG,SAAS,GAAG,IAAI;AACrE,QAAQ,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM;AAClF,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM;AACxF,YAAY,IAAI,CAAC,sBAAsB,GAAG,IAAI;AAC9C,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC;AACzD,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI,CAAC,gBAAgB,EAAE;AACnC,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM;AAClF,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC,YAAY,CAAC,CAAC,CAAC;AACf,QAAQ;AACR,QAAQ,MAAM,cAAc,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAClE;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtC,gBAAgB,IAAI,CAAC,cAAc,GAAG,cAAc;AACpD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,cAAc,IAAI,GAAG,GAAG,cAAc;AAC3D,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,EAAE,mBAAmB;AACtE,QAAQ,IAAI,CAAC;AACb,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACrF,aAAa,SAAS,CAAC,MAAM;AAC7B,YAAY,IAAI,CAAC,oBAAoB,GAAG;AACxC,gBAAgB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB;AAC5D,gBAAgB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS;AACnD,aAAa;AACb,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,IAAI;AACJ;AACA,IAAI,gBAAgB,CAAC,EAAE,EAAE;AACzB,QAAQ,IAAI,CAAC,QAAQ,GAAG,EAAE;AAC1B,IAAI;AACJ;AACA,IAAI,iBAAiB,CAAC,EAAE,EAAE;AAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE;AAC3B,IAAI;AACJ;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,WAAW,EAAE;AAC3B,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AACpC,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,IAAI,CAAC;AAC3D,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,gBAAgB,CAAC,UAAU,EAAE;AACjC,QAAQ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC;AACrD,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE;AACzC,YAAY,IAAI,CAAC,SAAS,GAAG,QAAQ;AACrC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACtD,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AAC5C,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,SAAS,EAAE;AAC/B,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,EAAE;AAC1E,YAAY,IAAI,CAAC,OAAO,GAAG,SAAS;AACpC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACrD,QAAQ;AACR,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACzB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,KAAK,EAAE;AACjB,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAC/C,YAAY,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;AACvD,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAClC,QAAQ,MAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB;AAC5D,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI;AACtE,QAAQ,MAAM,gBAAgB,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO;AACpD,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK;AACxE,iBAAiB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC;AAChF,iBAAiB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,MAAM,EAAE,SAAS,CAAC;AACpF,gBAAgB,sBAAsB,EAAE,SAAS;AACjD,gBAAgB,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC7C,QAAQ,IAAI,gBAAgB,KAAK,IAAI,CAAC,cAAc,EAAE;AACtD,YAAY,IAAI,CAAC,eAAe,GAAG,gBAAgB;AACnD,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;AACtD,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE;AACzC,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;AACnC,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AAClC,YAAY,IAAI,YAAY,EAAE;AAC9B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpC,YAAY;AACZ,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,MAAM;AAC1B,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1lB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnH,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC;AACtE,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE,KAAK;AAC3B,gBAAgB,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;AACtD,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;AAC5E,aAAa,CAAC,EAAE,EAAE,CAAC;;ACxVnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,SAAS,SAAS,CAAC;AACnD;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,KAAK;AACzB,IAAI;AACJ;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;AAChC,YAAY,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK;AACjG,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI;AACvE,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,YAAY,CAAC,IAAI,EAAE;AACvB,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE;AAChC,YAAY,OAAO,IAAI,CAAC,KAAK;AAC7B,QAAQ;AACR,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;AACtD,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AACrE,YAAY,OAAO,UAAU,CAAC,WAAW,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW;AACxE,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE;AACvB,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC9B,YAAY,OAAO,GAAG;AACtB,QAAQ;AACR,aAAa,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE;AAC/B,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrD,QAAQ;AACR,aAAa,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE;AAC9B,YAAY,OAAO,GAAG;AACtB,QAAQ;AACR,aAAa;AACb,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1D,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACvL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9P;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;ACzEnB;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,iBAAiB,SAAS,SAAS,CAAC;AACjD;AACO,MAAM,cAAc,CAAC;AAC5B;AACO,MAAM,wBAAwB,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,kBAAkB,CAAC;AAChC;;ACpBU,IAAC;AACX,CAAC,UAAU,qBAAqB,EAAE;AAClC,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,IAAI;AACtC,IAAI,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI;AACrC,IAAI,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI;AACrC,IAAI,qBAAqB,CAAC,GAAG,CAAC,GAAG,IAAI;AACrC,CAAC,EAAE,qBAAqB,KAAK,qBAAqB,GAAG,EAAE,CAAC,CAAC;;ACA/C,IAAC;AACX,CAAC,UAAU,sBAAsB,EAAE;AACnC,IAAI,sBAAsB,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG;AACnE,IAAI,sBAAsB,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG;AACpE,IAAI,sBAAsB,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG;AACpE,CAAC,EAAE,sBAAsB,KAAK,sBAAsB,GAAG,EAAE,CAAC,CAAC;AAC/C,MAAC,6BAA6B,GAAG,IAAI,cAAc,CAAC,sCAAsC;AAC/F,MAAM,0BAA0B,CAAC;AACxC,IAAI,WAAW,GAAG;AAClB;AACA,QAAQ,IAAI,CAAC,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC;AAC5C;AACA,QAAQ,IAAI,CAAC,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC;AAC5C;AACA,QAAQ,IAAI,CAAC,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC;AAC5C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC7L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;AAChJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;AACpI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACN,MAAM,4BAA4B,CAAC;AAC1C;AACA,IAAI,WAAW,CAAC,mBAAmB,EAAE;AACrC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,mBAAmB;AACtD;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE;AAC7B;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,WAAW;AACnC;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,WAAW;AACnC;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,IAAI;AACJ;AACA,IAAI,yBAAyB,CAAC,MAAM,EAAE;AACtC,QAAQ,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC;AACvD,QAAQ,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AAClG,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;AAChE,YAAY,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,cAAc;AAC7B,IAAI;AACJ;AACA,IAAI,eAAe,CAAC,iBAAiB,EAAE;AACvC,QAAQ,IAAI,cAAc;AAC1B,QAAQ,IAAI,iBAAiB,CAAC,OAAO,EAAE;AACvC,YAAY,KAAK,MAAM,UAAU,IAAI,iBAAiB,CAAC,WAAW,EAAE;AACpE,gBAAgB,IAAI,iBAAiB,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AAC/D,oBAAoB,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;AACxE,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,cAAc,IAAI,GAAG;AACpC,IAAI;AACJ;AACA,IAAI,eAAe,CAAC,MAAM,EAAE;AAC5B,QAAQ,IAAI,aAAa;AACzB,QAAQ,IAAI,CAAC,iBAAiB,GAAG,EAAE;AACnC,QAAQ,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACtD,YAAY,QAAQ,UAAU;AAC9B,gBAAgB,KAAK,GAAG;AACxB,oBAAoB,aAAa,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3F,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9D,oBAAoB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,UAAU;AAChE,oBAAoB;AACpB,gBAAgB,KAAK,GAAG;AACxB,oBAAoB,aAAa,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9I,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9D,oBAAoB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,UAAU;AAChE,oBAAoB;AACpB,gBAAgB,KAAK,GAAG;AACxB,oBAAoB,aAAa,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9I,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9D,oBAAoB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,UAAU;AAChE;AACA,oBAAoB,aAAa,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3F,oBAAoB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9D,oBAAoB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,IAAI;AAC1D,oBAAoB;AACpB;AACA,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,iBAAiB;AACrC,IAAI;AACJ;AACA,IAAI,kBAAkB,CAAC,eAAe,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;AAChD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/N,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACtK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE;AAChC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC;AAC/D,MAAM,+BAA+B,SAAS,mBAAmB,CAAC;AACzE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B;AACA,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;AAC9D;AACA,QAAQ,IAAI,CAAC,6BAA6B,GAAG,MAAM,CAAC,4BAA4B,CAAC;AACjF;AACA,QAAQ,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAC,6BAA6B,EAAE;AACjF,YAAY,QAAQ,EAAE;AACtB,SAAS,CAAC,IAAI,IAAI,0BAA0B,EAAE;AAC9C;AACA,QAAQ,IAAI,CAAC,sBAAsB,GAAG,KAAK;AAC3C,IAAI;AACJ;AACA,IAAI,IAAI,YAAY,CAAC,MAAM,EAAE;AAC7B,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,CAAC,aAAa,GAAG,MAAM;AACvC,YAAY,IAAI,CAAC,sBAAsB,GAAG,IAAI;AAC9C,QAAQ;AACR,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AACpC,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,aAAa;AACjC,IAAI;AACJ;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,IAAI,CAAC,sBAAsB,EAAE;AACzC,YAAY,IAAI,CAAC;AACjB,iBAAiB,yBAAyB,CAAC,IAAI,CAAC,2BAA2B;AAC3E,iBAAiB,SAAS,CAAC,CAAC,cAAc,KAAK;AAC/C,gBAAgB,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;AAClD,YAAY,CAAC,CAAC;AACd,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,eAAe,CAAC,YAAY,EAAE;AAClC,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,IAAI,CAAC,sBAAsB,GAAG,KAAK;AAC/C,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;AACjD,YAAY,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;AAClD,YAAY,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;AAClD,YAAY,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;AACnD,QAAQ;AACR,QAAQ,MAAM;AACd,YAAY,IAAI,CAAC,sBAAsB,GAAG,KAAK;AAC/C,QAAQ;AACR,IAAI;AACJ;AACA,IAAI,aAAa,CAAC,wBAAwB,EAAE;AAC5C,QAAQ,IAAI,IAAI,CAAC,sBAAsB,EAAE;AACzC,YAAY,QAAQ,wBAAwB;AAC5C,gBAAgB,KAAK,GAAG;AACxB,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AACnE,oBAAoB;AACpB,gBAAgB,KAAK,GAAG;AACxB,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACpE,oBAAoB;AACpB,gBAAgB,KAAK,GAAG;AACxB,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACpE,oBAAoB;AACpB,gBAAgB,KAAK,IAAI;AACzB,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACpE,oBAAoB;AACpB,gBAAgB;AAChB,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;AACpE;AACA,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACnM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACxO;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,CAAC;AAC7C,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;ACtLZ,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG;AAClB;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/E,IAAI;AACJ;AACA,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE;AAC3C,QAAQ,IAAI,KAAK,IAAI,CAAC,EAAE;AACxB,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,MAAM,CAAC,GAAG,IAAI;AACtB,QAAQ,MAAM,EAAE,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ;AAC9C,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAQ,OAAO,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtF,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7K,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AAC1K;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,IAAI,EAAE,cAAc;AACxC,oBAAoB,UAAU,EAAE;AAChC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AC/BN,MAAM,kBAAkB,CAAC;AAChC,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACnL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAC/L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACrI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC/C,oBAAoB,OAAO,EAAE,CAAC,gBAAgB;AAC9C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACdb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;AACjE,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC;AACpD,IAAI,MAAM,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;AACnE,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,kBAAkB,IAAI,mBAAmB,MAAM,aAAa,CAAC,eAAe,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,gBAAgB,KAAK,gBAAgB,KAAK,eAAe,KAAK,iBAAiB,KAAK,gBAAgB,MAAM,eAAe,IAAI,qBAAqB;AACrT;AACA;AACA,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;AAC7D;AACA,IAAI,KAAK,CAAC,cAAc,GAAG,YAAY;AACvC,QAAQ,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACjG,QAAQ,OAAO,sBAAsB,EAAE;AACvC,IAAI,CAAC;AACL,IAAI,OAAO,KAAK;AAChB;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE;AAC7D;AACA;AACA,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC;AACjD,IAAI,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACzC;AACA,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD;AACA;AACA,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACnC,QAAQ,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE;AAC1C,QAAQ,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE;AAChD,QAAQ,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC;AAC/C,KAAK,CAAC;AACN,IAAI,OAAO,KAAK;AAChB;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE;AACzF,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC;AACvD,IAAI,MAAM,sBAAsB,GAAG,KAAK,CAAC,cAAc;AACvD;AACA,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE;AAC5B,QAAQ,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC;AAChI,IAAI;AACJ,SAAS;AACT;AACA;AACA,QAAQ,IAAI,aAAa,GAAG,EAAE;AAC9B,QAAQ,IAAI,SAAS,CAAC,OAAO,EAAE;AAC/B,YAAY,aAAa,IAAI,UAAU;AACvC,QAAQ;AACR,QAAQ,IAAI,SAAS,CAAC,GAAG,EAAE;AAC3B,YAAY,aAAa,IAAI,MAAM;AACnC,QAAQ;AACR,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE;AAC7B,YAAY,aAAa,IAAI,QAAQ;AACrC,QAAQ;AACR,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE;AAC5B,YAAY,aAAa,IAAI,OAAO;AACpC,QAAQ;AACR,QAAQ,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,kBAAkB,IAAI,mBAAmB,MAAM,aAAa,CAAC,aAAa,GAAG,YAAY,CAAC,iBAAiB,aAAa,CAAC,IAAI,EAAE,sBAAsB,KAAK,cAAc;AAClN,IAAI;AACJ;AACA;AACA,IAAI,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACnC,QAAQ,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,OAAO,EAAE;AACvC,QAAQ,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,EAAE;AAC/B,QAAQ,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,MAAM,EAAE;AACrC,QAAQ,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;AACnD,QAAQ,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;AAC9C,QAAQ,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE;AAClD,QAAQ,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI;AAC9C,KAAK,CAAC;AACN;AACA,IAAI,KAAK,CAAC,cAAc,GAAG,YAAY;AACvC,QAAQ,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACjG;AACA,QAAQ,OAAO,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AAC5D,IAAI,CAAC;AACL,IAAI,OAAO,KAAK;AAChB;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE;AAC5E,IAAI,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;AAC/C,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;AAChD,IAAI,OAAO,KAAK;AAChB;;ACpGY,MAAC,4BAA4B,GAAG,IAAI,cAAc,CAAC,2BAA2B;;ACD1F;AACA;AACA;;;;"}