@myrtex-org/form 1.0.22 → 1.0.24

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 (19) hide show
  1. package/esm2022/lib/modules/object-form/components/elements/content/title/content-title.component.mjs +3 -3
  2. package/esm2022/lib/modules/object-form/components/elements/input/date/input-date.component.mjs +70 -22
  3. package/esm2022/lib/modules/object-form/components/elements/input/file/input-file.component.mjs +3 -3
  4. package/esm2022/lib/modules/object-form/components/elements/input/number/input-number.component.mjs +3 -3
  5. package/esm2022/lib/modules/object-form/components/elements/input/select/input-select.component.mjs +3 -3
  6. package/esm2022/lib/modules/object-form/components/elements/input/table/components/input-table-modal/form-dispenser-modal/form-dispenser-modal.component.mjs +3 -3
  7. package/esm2022/lib/modules/object-form/components/elements/input/table/components/input-table-modal/input-table-modal.component.mjs +4 -4
  8. package/esm2022/lib/modules/object-form/components/elements/input/table/input-table.component.mjs +9 -9
  9. package/esm2022/lib/modules/object-form/components/elements/input/textarea/input-textarea.component.mjs +3 -3
  10. package/esm2022/lib/modules/object-form/models/elemets/inputs/input-date.model.mjs +1 -1
  11. package/esm2022/lib/modules/object-form/object-form.module.mjs +8 -5
  12. package/fesm2022/myrtex-org-form.mjs +98 -45
  13. package/fesm2022/myrtex-org-form.mjs.map +1 -1
  14. package/lib/modules/object-form/components/elements/input/date/input-date.component.d.ts +5 -0
  15. package/lib/modules/object-form/components/elements/input/table/input-table.component.d.ts +1 -1
  16. package/lib/modules/object-form/models/elemets/inputs/input-date.model.d.ts +3 -0
  17. package/lib/modules/object-form/object-form.module.d.ts +1 -1
  18. package/lib/modules/object-form/store/object-form.effects.d.ts +10 -10
  19. package/package.json +1 -1
@@ -11,10 +11,10 @@ export class ContentTitleComponent extends BaseElementComponent {
11
11
  return this.settings.options.size === 'large' ? '-large' : this.settings.options.size === 'medium' ? '-medium' : '-small';
12
12
  }
13
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentTitleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ContentTitleComponent, selector: "app-content-title", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"content-title-content\">\r\n <h4\r\n class=\"content-title-content__title\"\r\n [class]=\"getSizeClass\"\r\n [class.mb-2]=\"settings.options.text && (settings.options.size === 'large' || settings.options.size === 'medium')\"\r\n [class.mb-1]=\"settings.options.text && (settings.options.size === 'small')\"\r\n >\r\n {{ settings.options.title }}\r\n </h4>\r\n\r\n <p class=\"content-title-content__text\" [innerHTML]=\"settings.options.text\"></p>\r\n </div>\r\n}\r\n", styles: [".content-title-content__title{color:var(--neutral-text-primary, #262626);font-style:normal}.content-title-content__title.-large{font-family:var(--headlines-lvl-4-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-4-font-size, 18px);line-height:var(--headlines-lvl-4-line-height, 24px);font-weight:var(--headlines-lvl-4-font-weight, 700)}.content-title-content__title.-medium{font-family:var(--headlines-lvl-5-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-5-font-size, 18px);line-height:var(--headlines-lvl-5-line-height, 24px);font-weight:var(--headlines-lvl-5-font-weight, 700)}.content-title-content__title.-small{font-family:var(--headlines-lvl-6-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-6-font-size, 18px);line-height:var(--headlines-lvl-6-line-height, 24px);font-weight:var(--headlines-lvl-6-font-weight, 700)}.content-title-content__text{color:var(--neutral-text-primary, #262626);font-style:normal;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);line-height:var(--body-md-line-height, 20px);font-weight:var(--body-md-font-weight, 400)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ContentTitleComponent, selector: "app-content-title", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"content-title-content\">\r\n <h4\r\n class=\"content-title-content__title mt-12px\"\r\n [class]=\"getSizeClass\"\r\n [class.mb-2]=\"settings.options.text && (settings.options.size === 'large' || settings.options.size === 'medium')\"\r\n [class.mb-1]=\"settings.options.text && (settings.options.size === 'small')\"\r\n >\r\n {{ settings.options.title }}\r\n </h4>\r\n\r\n <p class=\"content-title-content__text\" [innerHTML]=\"settings.options.text\"></p>\r\n </div>\r\n}\r\n", styles: [".content-title-content__title{color:var(--neutral-text-primary, #262626);font-style:normal}.content-title-content__title.-large{font-family:var(--headlines-lvl-4-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-4-font-size, 18px);line-height:var(--headlines-lvl-4-line-height, 24px);font-weight:var(--headlines-lvl-4-font-weight, 700)}.content-title-content__title.-medium{font-family:var(--headlines-lvl-5-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-5-font-size, 18px);line-height:var(--headlines-lvl-5-line-height, 24px);font-weight:var(--headlines-lvl-5-font-weight, 700)}.content-title-content__title.-small{font-family:var(--headlines-lvl-6-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-6-font-size, 18px);line-height:var(--headlines-lvl-6-line-height, 24px);font-weight:var(--headlines-lvl-6-font-weight, 700)}.content-title-content__text{color:var(--neutral-text-primary, #262626);font-style:normal;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);line-height:var(--body-md-line-height, 20px);font-weight:var(--body-md-font-weight, 400)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15
15
  }
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentTitleComponent, decorators: [{
17
17
  type: Component,
18
- args: [{ selector: 'app-content-title', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"content-title-content\">\r\n <h4\r\n class=\"content-title-content__title\"\r\n [class]=\"getSizeClass\"\r\n [class.mb-2]=\"settings.options.text && (settings.options.size === 'large' || settings.options.size === 'medium')\"\r\n [class.mb-1]=\"settings.options.text && (settings.options.size === 'small')\"\r\n >\r\n {{ settings.options.title }}\r\n </h4>\r\n\r\n <p class=\"content-title-content__text\" [innerHTML]=\"settings.options.text\"></p>\r\n </div>\r\n}\r\n", styles: [".content-title-content__title{color:var(--neutral-text-primary, #262626);font-style:normal}.content-title-content__title.-large{font-family:var(--headlines-lvl-4-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-4-font-size, 18px);line-height:var(--headlines-lvl-4-line-height, 24px);font-weight:var(--headlines-lvl-4-font-weight, 700)}.content-title-content__title.-medium{font-family:var(--headlines-lvl-5-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-5-font-size, 18px);line-height:var(--headlines-lvl-5-line-height, 24px);font-weight:var(--headlines-lvl-5-font-weight, 700)}.content-title-content__title.-small{font-family:var(--headlines-lvl-6-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-6-font-size, 18px);line-height:var(--headlines-lvl-6-line-height, 24px);font-weight:var(--headlines-lvl-6-font-weight, 700)}.content-title-content__text{color:var(--neutral-text-primary, #262626);font-style:normal;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);line-height:var(--body-md-line-height, 20px);font-weight:var(--body-md-font-weight, 400)}\n"] }]
18
+ args: [{ selector: 'app-content-title', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"content-title-content\">\r\n <h4\r\n class=\"content-title-content__title mt-12px\"\r\n [class]=\"getSizeClass\"\r\n [class.mb-2]=\"settings.options.text && (settings.options.size === 'large' || settings.options.size === 'medium')\"\r\n [class.mb-1]=\"settings.options.text && (settings.options.size === 'small')\"\r\n >\r\n {{ settings.options.title }}\r\n </h4>\r\n\r\n <p class=\"content-title-content__text\" [innerHTML]=\"settings.options.text\"></p>\r\n </div>\r\n}\r\n", styles: [".content-title-content__title{color:var(--neutral-text-primary, #262626);font-style:normal}.content-title-content__title.-large{font-family:var(--headlines-lvl-4-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-4-font-size, 18px);line-height:var(--headlines-lvl-4-line-height, 24px);font-weight:var(--headlines-lvl-4-font-weight, 700)}.content-title-content__title.-medium{font-family:var(--headlines-lvl-5-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-5-font-size, 18px);line-height:var(--headlines-lvl-5-line-height, 24px);font-weight:var(--headlines-lvl-5-font-weight, 700)}.content-title-content__title.-small{font-family:var(--headlines-lvl-6-font-family, \"PT Sans Caption\");font-size:var(--headlines-lvl-6-font-size, 18px);line-height:var(--headlines-lvl-6-line-height, 24px);font-weight:var(--headlines-lvl-6-font-weight, 700)}.content-title-content__text{color:var(--neutral-text-primary, #262626);font-style:normal;font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);line-height:var(--body-md-line-height, 20px);font-weight:var(--body-md-font-weight, 400)}\n"] }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC10aXRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9jb250ZW50L3RpdGxlL2NvbnRlbnQtdGl0bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvY29udGVudC90aXRsZS9jb250ZW50LXRpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFTbEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG9CQUF1QztJQU5sRjs7UUFPRSxTQUFJLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztLQUtuQztJQUhDLElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDNUgsQ0FBQzsrR0FMVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixnRkNYbEMsOGhCQWNBOzs0RkRIYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9lbnVtcyc7XHJcbmltcG9ydCB7IEJhc2VFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcbmltcG9ydCB7IENvbnRlbnRUaXRsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2VsZW1ldHMvaW5wdXRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvbnRlbnQtdGl0bGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXRpdGxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb250ZW50LXRpdGxlLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRlbnRUaXRsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VFbGVtZW50Q29tcG9uZW50PENvbnRlbnRUaXRsZU1vZGVsPiB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuQ29udGVudFRpdGxlO1xyXG5cclxuICBwdWJsaWMgZ2V0IGdldFNpemVDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5zaXplID09PSAnbGFyZ2UnID8gJy1sYXJnZScgOiB0aGlzLnNldHRpbmdzLm9wdGlvbnMuc2l6ZSA9PT0gJ21lZGl1bScgPyAnLW1lZGl1bScgOiAnLXNtYWxsJztcclxuICB9XHJcbn1cclxuIiwiQGlmIChzZXR0aW5ncykge1xyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50LXRpdGxlLWNvbnRlbnRcIj5cclxuICAgIDxoNFxyXG4gICAgICBjbGFzcz1cImNvbnRlbnQtdGl0bGUtY29udGVudF9fdGl0bGVcIlxyXG4gICAgICBbY2xhc3NdPVwiZ2V0U2l6ZUNsYXNzXCJcclxuICAgICAgW2NsYXNzLm1iLTJdPVwic2V0dGluZ3Mub3B0aW9ucy50ZXh0ICYmIChzZXR0aW5ncy5vcHRpb25zLnNpemUgPT09ICdsYXJnZScgfHwgc2V0dGluZ3Mub3B0aW9ucy5zaXplID09PSAnbWVkaXVtJylcIlxyXG4gICAgICBbY2xhc3MubWItMV09XCJzZXR0aW5ncy5vcHRpb25zLnRleHQgJiYgKHNldHRpbmdzLm9wdGlvbnMuc2l6ZSA9PT0gJ3NtYWxsJylcIlxyXG4gICAgPlxyXG4gICAgICB7eyBzZXR0aW5ncy5vcHRpb25zLnRpdGxlIH19XHJcbiAgICA8L2g0PlxyXG5cclxuICAgIDxwIGNsYXNzPVwiY29udGVudC10aXRsZS1jb250ZW50X190ZXh0XCIgW2lubmVySFRNTF09XCJzZXR0aW5ncy5vcHRpb25zLnRleHRcIj48L3A+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC10aXRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9jb250ZW50L3RpdGxlL2NvbnRlbnQtdGl0bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvY29udGVudC90aXRsZS9jb250ZW50LXRpdGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFTbEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG9CQUF1QztJQU5sRjs7UUFPRSxTQUFJLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztLQUtuQztJQUhDLElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDNUgsQ0FBQzsrR0FMVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixnRkNYbEMsc2lCQWNBOzs0RkRIYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9lbnVtcyc7XHJcbmltcG9ydCB7IEJhc2VFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcbmltcG9ydCB7IENvbnRlbnRUaXRsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2VsZW1ldHMvaW5wdXRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvbnRlbnQtdGl0bGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXRpdGxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb250ZW50LXRpdGxlLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRlbnRUaXRsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VFbGVtZW50Q29tcG9uZW50PENvbnRlbnRUaXRsZU1vZGVsPiB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuQ29udGVudFRpdGxlO1xyXG5cclxuICBwdWJsaWMgZ2V0IGdldFNpemVDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5zaXplID09PSAnbGFyZ2UnID8gJy1sYXJnZScgOiB0aGlzLnNldHRpbmdzLm9wdGlvbnMuc2l6ZSA9PT0gJ21lZGl1bScgPyAnLW1lZGl1bScgOiAnLXNtYWxsJztcclxuICB9XHJcbn1cclxuIiwiQGlmIChzZXR0aW5ncykge1xyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50LXRpdGxlLWNvbnRlbnRcIj5cclxuICAgIDxoNFxyXG4gICAgICBjbGFzcz1cImNvbnRlbnQtdGl0bGUtY29udGVudF9fdGl0bGUgbXQtMTJweFwiXHJcbiAgICAgIFtjbGFzc109XCJnZXRTaXplQ2xhc3NcIlxyXG4gICAgICBbY2xhc3MubWItMl09XCJzZXR0aW5ncy5vcHRpb25zLnRleHQgJiYgKHNldHRpbmdzLm9wdGlvbnMuc2l6ZSA9PT0gJ2xhcmdlJyB8fCBzZXR0aW5ncy5vcHRpb25zLnNpemUgPT09ICdtZWRpdW0nKVwiXHJcbiAgICAgIFtjbGFzcy5tYi0xXT1cInNldHRpbmdzLm9wdGlvbnMudGV4dCAmJiAoc2V0dGluZ3Mub3B0aW9ucy5zaXplID09PSAnc21hbGwnKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IHNldHRpbmdzLm9wdGlvbnMudGl0bGUgfX1cclxuICAgIDwvaDQ+XHJcblxyXG4gICAgPHAgY2xhc3M9XCJjb250ZW50LXRpdGxlLWNvbnRlbnRfX3RleHRcIiBbaW5uZXJIVE1MXT1cInNldHRpbmdzLm9wdGlvbnMudGV4dFwiPjwvcD5cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
@@ -1,6 +1,5 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { ComponentType, DateTypeEnum } from '../../../../../shared-form/enums';
3
- import { cloneDeep } from 'lodash-es';
4
3
  import { BaseFieldComponent } from '../../base';
5
4
  import { objectFormSelectors } from '../../../../store';
6
5
  import { defaultValueModel } from '../../../../helpers';
@@ -11,8 +10,10 @@ export class InputDateComponent extends BaseFieldComponent {
11
10
  constructor() {
12
11
  super(...arguments);
13
12
  this.type = ComponentType.InputDate;
13
+ this._millisecondsInDay = 1000 * 60 * 60 * 24;
14
14
  this._isInit = false;
15
15
  this.dateModel = '';
16
+ this.modelCounter = 0;
16
17
  }
17
18
  get value() {
18
19
  if (this.settings.options.range) {
@@ -33,12 +34,14 @@ export class InputDateComponent extends BaseFieldComponent {
33
34
  this.modelStart.value = null;
34
35
  this.modelEnd.value = null;
35
36
  this.model.value = [null, null];
37
+ this.modelCounter = 0;
36
38
  }
37
39
  if (event.value?.length === 2) {
38
40
  this.dateModel = [event.value[0], event.value[1]];
39
- this.modelStart['value'] = event.value[0];
40
- this.modelEnd['value'] = event.value[1];
41
+ this.modelStart.value = event.value[0];
42
+ this.modelEnd.value = event.value[1];
41
43
  this.model.value = [this.modelStart.value, this.modelEnd.value];
44
+ this.modelCounter = this._getDaysDifference(this.modelStart.value, this.modelEnd.value);
42
45
  }
43
46
  }
44
47
  else {
@@ -48,12 +51,27 @@ export class InputDateComponent extends BaseFieldComponent {
48
51
  this.dispatchModify(event);
49
52
  }
50
53
  }
54
+ updateCounter(value) {
55
+ if (value) {
56
+ this.modelCounter = value;
57
+ }
58
+ else {
59
+ this.modelCounter = 0;
60
+ }
61
+ if (this.settings.options.range) {
62
+ if (this.model.value && this.model.value[0]) {
63
+ this.model.value[1] = this._changeDays(this.model.value[0], this.modelCounter);
64
+ this.dateModel = this.model.value;
65
+ }
66
+ }
67
+ this.dispatchModify(structuredClone(this.model.value));
68
+ }
51
69
  _transformOutputValue() {
52
70
  if (this.settings.options.range) {
53
- return [cloneDeep(this.modelStart), cloneDeep(this.modelEnd)];
71
+ return [structuredClone(this.modelStart), structuredClone(this.modelEnd)];
54
72
  }
55
73
  else {
56
- return cloneDeep(this.model);
74
+ return structuredClone(this.model);
57
75
  }
58
76
  }
59
77
  _initSubscriptionForValue() {
@@ -61,40 +79,70 @@ export class InputDateComponent extends BaseFieldComponent {
61
79
  .subscribe((result) => {
62
80
  if (result) {
63
81
  if (Array.isArray(result)) {
64
- this.modelStart = cloneDeep(result[0]) || defaultValueModel(this.settings);
65
- this.modelEnd = cloneDeep(result[1]) || defaultValueModel(this.settings);
82
+ this.modelStart = structuredClone(result[0]) || defaultValueModel(this.settings);
83
+ this.modelEnd = structuredClone(result[1]) || defaultValueModel(this.settings);
66
84
  }
67
85
  else {
68
- this.model = cloneDeep(result || defaultValueModel(this.settings));
86
+ this.model = structuredClone(result || defaultValueModel(this.settings));
69
87
  }
70
88
  this._customInit();
71
89
  }
72
90
  }));
73
91
  }
74
92
  _customInit() {
75
- if (!this.model) {
76
- this.model = defaultValueModel(this.settings);
77
- }
78
- if (this.settings.options.range) {
79
- if (!this.modelStart?.value || !this.modelEnd?.value) {
80
- this.dateModel = [];
93
+ setTimeout(() => {
94
+ if (!this.model) {
95
+ this.model = defaultValueModel(this.settings);
96
+ }
97
+ if (this.settings.options.range) {
98
+ if (!this.modelStart?.value || !this.modelEnd?.value) {
99
+ this.dateModel = [];
100
+ }
101
+ else {
102
+ this.dateModel = [this.modelStart.value, this.modelEnd.value];
103
+ this.modelCounter = this._getDaysDifference(this.modelStart.value, this.modelEnd.value);
104
+ }
81
105
  }
82
106
  else {
83
- this.dateModel = [this.modelStart.value, this.modelEnd.value];
107
+ this.dateModel = this.model.value;
84
108
  }
109
+ this._isInit = true;
110
+ this._detector.detectChanges();
111
+ }, 500);
112
+ }
113
+ _getDaysDifference(startDate, endDate) {
114
+ const start = new Date(startDate);
115
+ const end = new Date(endDate);
116
+ if (isNaN(start.getTime()) || isNaN(end.getTime())) {
117
+ console.error('Invalid date format');
118
+ return 0;
119
+ }
120
+ const differenceInMs = Math.abs(end.getTime() - start.getTime());
121
+ return Math.floor(differenceInMs / this._millisecondsInDay);
122
+ }
123
+ _changeDays(startDate, days) {
124
+ if (startDate) {
125
+ const start = new Date(startDate);
126
+ if (isNaN(start.getTime())) {
127
+ console.error('Invalid start date format');
128
+ return startDate;
129
+ }
130
+ if (!Number.isInteger(days) || days < 0) {
131
+ console.error('Days must be a non-negative integer');
132
+ return startDate;
133
+ }
134
+ const newDate = new Date(start.getTime() + days * this._millisecondsInDay);
135
+ return newDate.toISOString();
85
136
  }
86
137
  else {
87
- this.dateModel = this.model.value;
138
+ return null;
88
139
  }
89
- setTimeout(() => {
90
- this._isInit = true;
91
- }, 500);
92
140
  }
93
141
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputDateComponent, selector: "app-input-date", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"settings.options.placeholder || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.InputDateTimeComponent, selector: "mrx-input-date-time", inputs: ["fields", "size", "customClasses", "dateLabel", "timeLabel", "datePlaceholder", "timePlaceholder", "disabled", "readonly", "required", "timepicker", "range", "minDate", "maxDate", "timezone", "inline", "isManualInput", "addMinTime", "addMaxTime", "addMinTimeObj", "addMaxTimeObj", "disableValidate", "container", "invalid", "invalidMessage", "checkInvalid"], outputs: ["changed", "modelChange", "blurred"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputDateComponent, selector: "app-input-date", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n </div>\r\n\r\n @if (settings.options.counter && settings.options.range) {\r\n <div class=\"col col-4\">\r\n <mrx-label customClasses=\"mt-2\">\r\n {{ settings.options.counterLabel }}\r\n </mrx-label>\r\n <mrx-input-number\r\n [ngModel]=\"modelCounter\"\r\n [placeholder]=\"'0'\"\r\n [disabled]=\"!settings.options.counterEditable\"\r\n (ngModelChange)=\"updateCounter($event)\"\r\n ></mrx-input-number>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.InputNumberComponent, selector: "mrx-input-number", inputs: ["fields", "placeholder", "innerClass", "customClasses", "required", "allowNegative", "size", "separator", "decimalSeparator", "decimals", "isNullableValue", "isAutoCorrectingValue", "invalid", "checkInvalid", "numberType", "invalidMessage", "disabled", "readonly", "minValue", "maxValue"], outputs: ["modelChange"] }, { kind: "component", type: i1.InputDateTimeComponent, selector: "mrx-input-date-time", inputs: ["fields", "size", "customClasses", "dateLabel", "timeLabel", "datePlaceholder", "timePlaceholder", "disabled", "readonly", "required", "timepicker", "range", "minDate", "maxDate", "timezone", "inline", "isManualInput", "addMinTime", "addMaxTime", "addMinTimeObj", "addMaxTimeObj", "disableValidate", "container", "invalid", "invalidMessage", "checkInvalid"], outputs: ["changed", "modelChange", "blurred"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
143
  }
96
144
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputDateComponent, decorators: [{
97
145
  type: Component,
98
- args: [{ selector: 'app-input-date', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"settings.options.placeholder || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n </div>\r\n}\r\n" }]
146
+ args: [{ selector: 'app-input-date', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-date-content\">\r\n <div class=\"row\">\r\n <div class=\"col\" [class.col-8]=\"settings.options.counter\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-date-time\r\n [ngModel]=\"dateModel\"\r\n [fields]=\"autosaveFields\"\r\n [range]=\"settings.options.range\"\r\n [datePlaceholder]=\"(settings.options.range ? settings.options.placeholder + ' - ' + settings.options.placeholder : settings.options.placeholder) || ''\"\r\n [isManualInput]=\"!settings.options.range\"\r\n [timepicker]=\"getViewTypeTimepicker\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-date-time>\r\n </div>\r\n\r\n @if (settings.options.counter && settings.options.range) {\r\n <div class=\"col col-4\">\r\n <mrx-label customClasses=\"mt-2\">\r\n {{ settings.options.counterLabel }}\r\n </mrx-label>\r\n <mrx-input-number\r\n [ngModel]=\"modelCounter\"\r\n [placeholder]=\"'0'\"\r\n [disabled]=\"!settings.options.counterEditable\"\r\n (ngModelChange)=\"updateCounter($event)\"\r\n ></mrx-input-number>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n}\r\n" }]
99
147
  }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC9kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvZGF0ZS9pbnB1dC1kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUdoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQVN4RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsa0JBQTREO0lBTnBHOztRQU9FLFNBQUksR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBRXZCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFakIsY0FBUyxHQUE2QixFQUFFLENBQUM7S0FvRmpEO0lBL0VDLElBQVcsS0FBSztRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FB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QUksQ0FBQztRQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQXhGVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2RUNoQi9CLHMwQkF5QkE7OzRGRFRhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBEYXRlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9lbnVtcyc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBJbnB1dERhdGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUnO1xyXG5pbXBvcnQgeyBkZWZhdWx0VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1pbnB1dC1kYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZGF0ZS5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dERhdGVDb21wb25lbnQgZXh0ZW5kcyBCYXNlRmllbGRDb21wb25lbnQ8SW5wdXREYXRlTW9kZWwsIElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHR5cGUgPSBDb21wb25lbnRUeXBlLklucHV0RGF0ZTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNJbml0ID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBkYXRlTW9kZWw6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCA9ICcnO1xyXG5cclxuICBwdWJsaWMgbW9kZWxTdGFydCE6IENvbXBvbmVudFZhbHVlTW9kZWw7XHJcbiAgcHVibGljIG1vZGVsRW5kITogQ29tcG9uZW50VmFsdWVNb2RlbDtcclxuXHJcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vcHRpb25zLnJhbmdlKSB7XHJcbiAgICAgIHJldHVybiBbdGhpcy5tb2RlbFN0YXJ0LnZhbHVlLCB0aGlzLm1vZGVsRW5kLnZhbHVlXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1vZGVsLnZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRWaWV3VHlwZVRpbWVwaWNrZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5ncy5vcHRpb25zLnZpZXdUeXBlID09PSBEYXRlVHlwZUVudW0uRGF0ZVRpbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlVmFsdWUoZXZlbnQ6IElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZCkge1xyXG4gICAgaWYgKHRoaXMuX2lzSW5pdCkge1xyXG4gICAgICBpZiAodGhpcy5zZXR0aW5ncy5vcHRpb25zLnJhbmdlKSB7XHJcbiAgICAgICAgaWYgKGV2ZW50LnZhbHVlPy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgIHRoaXMuZGF0ZU1vZGVsID0gW107XHJcbiAgICAgICAgICB0aGlzLm1vZGVsU3RhcnQudmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbEVuZC52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsLnZhbHVlID0gW251bGwsIG51bGxdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZlbnQudmFsdWU/Lmxlbmd0aCA9PT0gMikge1xyXG4gICAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSBbZXZlbnQudmFsdWVbMF0sIGV2ZW50LnZhbHVlWzFdXTtcclxuICAgICAgICAgIHRoaXMubW9kZWxTdGFydFsndmFsdWUnXSA9IGV2ZW50LnZhbHVlWzBdO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbEVuZFsndmFsdWUnXSA9IGV2ZW50LnZhbHVlWzFdO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbC52YWx1ZSA9IFt0aGlzLm1vZGVsU3RhcnQudmFsdWUsIHRoaXMubW9kZWxFbmQudmFsdWVdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSBldmVudC52YWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kaXNwYXRjaE1vZGlmeShldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBfdHJhbnNmb3JtT3V0cHV0VmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vcHRpb25zLnJhbmdlKSB7XHJcbiAgICAgIHJldHVybiBbY2xvbmVEZWVwKHRoaXMubW9kZWxTdGFydCksIGNsb25lRGVlcCh0aGlzLm1vZGVsRW5kKV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gY2xvbmVEZWVwKHRoaXMubW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgX2luaXRTdWJzY3JpcHRpb25Gb3JWYWx1ZSgpIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMkLnB1c2godGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbCB8IChDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbClbXSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbFN0YXJ0ID0gY2xvbmVEZWVwKHJlc3VsdFswXSkgfHwgZGVmYXVsdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWxFbmQgPSBjbG9uZURlZXAocmVzdWx0WzFdKSB8fCBkZWZhdWx0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBjbG9uZURlZXAocmVzdWx0IHx8IGRlZmF1bHRWYWx1ZU1vZGVsKHRoaXMuc2V0dGluZ3MpKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLl9jdXN0b21Jbml0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBfY3VzdG9tSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5tb2RlbCkge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGVmYXVsdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yYW5nZSkge1xyXG4gICAgICBpZiAoIXRoaXMubW9kZWxTdGFydD8udmFsdWUgfHwgIXRoaXMubW9kZWxFbmQ/LnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFt0aGlzLm1vZGVsU3RhcnQudmFsdWUsIHRoaXMubW9kZWxFbmQudmFsdWVdO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGVNb2RlbCA9IHRoaXMubW9kZWwudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2lzSW5pdCA9IHRydWU7XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKHNldHRpbmdzKSB7XHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LWRhdGUtY29udGVudFwiPlxyXG4gICAgQGlmIChzZXR0aW5ncy5vcHRpb25zLmxhYmVsKSB7XHJcbiAgICAgIDxtcngtbGFiZWxcclxuICAgICAgICBbcmVxdWlyZWRdPVwic2V0dGluZ3Mub3B0aW9ucy5yZXF1aXJlZFwiXHJcbiAgICAgICAgW3Rvb2x0aXBdPVwic2V0dGluZ3Mub3B0aW9ucy50b29sdGlwIHx8ICcnXCJcclxuICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCInbXQtMidcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgc2V0dGluZ3Mub3B0aW9ucy5sYWJlbCB9fVxyXG4gICAgICA8L21yeC1sYWJlbD5cclxuICAgIH1cclxuXHJcbiAgICA8bXJ4LWlucHV0LWRhdGUtdGltZVxyXG4gICAgICBbbmdNb2RlbF09XCJkYXRlTW9kZWxcIlxyXG4gICAgICBbZmllbGRzXT1cImF1dG9zYXZlRmllbGRzXCJcclxuICAgICAgW3JhbmdlXT1cInNldHRpbmdzLm9wdGlvbnMucmFuZ2VcIlxyXG4gICAgICBbZGF0ZVBsYWNlaG9sZGVyXT1cInNldHRpbmdzLm9wdGlvbnMucGxhY2Vob2xkZXIgfHwgJydcIlxyXG4gICAgICBbaXNNYW51YWxJbnB1dF09XCIhc2V0dGluZ3Mub3B0aW9ucy5yYW5nZVwiXHJcbiAgICAgIFt0aW1lcGlja2VyXT1cImdldFZpZXdUeXBlVGltZXBpY2tlclwiXHJcbiAgICAgIFtpbnZhbGlkXT1cImdldEludmFsaWRcIlxyXG4gICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiZ2V0SW52YWxpZE1lc3NhZ2VcIlxyXG4gICAgICAobW9kZWxDaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICA+PC9tcngtaW5wdXQtZGF0ZS10aW1lPlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC9kYXRlL2lucHV0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvZGF0ZS9pbnB1dC1kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFTeEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUE0RDtJQU5wRzs7UUFPRSxTQUFJLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUVkLHVCQUFrQixHQUFXLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUUxRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGNBQVMsR0FBNkIsRUFBRSxDQUFDO1FBSXpDLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO0tBNklqQztJQTNJQyxJQUFXLEtBQUs7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxD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LENBQUMsS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7Z0JBQ3JELE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzNFLE9BQU8sT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQzsrR0F2SlUsa0JBQWtCO21HQUFsQixrQkFBa0IsNkVDZi9CLHdvREEyQ0E7OzRGRDVCYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSwgRGF0ZVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vZW51bXMnO1xyXG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlJztcclxuaW1wb3J0IHsgSW5wdXREYXRlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZWxlbWV0cy9pbnB1dHMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgb2JqZWN0Rm9ybVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlJztcclxuaW1wb3J0IHsgZGVmYXVsdFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgSW5wdXREYXRlVGltZVZhbHVlV2l0aElkIH0gZnJvbSAnQG15cnRleC1vcmcvdWknO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtZGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWRhdGUuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXREYXRlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZpZWxkQ29tcG9uZW50PElucHV0RGF0ZU1vZGVsLCBJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQ+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB0eXBlID0gQ29tcG9uZW50VHlwZS5JbnB1dERhdGU7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX21pbGxpc2Vjb25kc0luRGF5OiBudW1iZXIgPSAxMDAwICogNjAgKiA2MCAqIDI0O1xyXG5cclxuICBwcml2YXRlIF9pc0luaXQgPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGRhdGVNb2RlbDogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsID0gJyc7XHJcblxyXG4gIHB1YmxpYyBtb2RlbFN0YXJ0ITogQ29tcG9uZW50VmFsdWVNb2RlbDtcclxuICBwdWJsaWMgbW9kZWxFbmQhOiBDb21wb25lbnRWYWx1ZU1vZGVsO1xyXG4gIHB1YmxpYyBtb2RlbENvdW50ZXI6IG51bWJlciA9IDA7XHJcblxyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHwgc3RyaW5nW10ge1xyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yYW5nZSkge1xyXG4gICAgICByZXR1cm4gW3RoaXMubW9kZWxTdGFydC52YWx1ZSwgdGhpcy5tb2RlbEVuZC52YWx1ZV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5tb2RlbC52YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Vmlld1R5cGVUaW1lcGlja2VyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy52aWV3VHlwZSA9PT0gRGF0ZVR5cGVFbnVtLkRhdGVUaW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVZhbHVlKGV2ZW50OiBJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQpIHtcclxuICAgIGlmICh0aGlzLl9pc0luaXQpIHtcclxuICAgICAgaWYgKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yYW5nZSkge1xyXG4gICAgICAgIGlmIChldmVudC52YWx1ZT8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbFN0YXJ0LnZhbHVlID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMubW9kZWxFbmQudmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbC52YWx1ZSA9IFtudWxsLCBudWxsXTtcclxuXHJcbiAgICAgICAgICB0aGlzLm1vZGVsQ291bnRlciA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldmVudC52YWx1ZT8ubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFtldmVudC52YWx1ZVswXSwgZXZlbnQudmFsdWVbMV1dO1xyXG4gICAgICAgICAgdGhpcy5tb2RlbFN0YXJ0LnZhbHVlID0gZXZlbnQudmFsdWVbMF07XHJcbiAgICAgICAgICB0aGlzLm1vZGVsRW5kLnZhbHVlID0gZXZlbnQudmFsdWVbMV07XHJcbiAgICAgICAgICB0aGlzLm1vZGVsLnZhbHVlID0gW3RoaXMubW9kZWxTdGFydC52YWx1ZSwgdGhpcy5tb2RlbEVuZC52YWx1ZV07XHJcblxyXG4gICAgICAgICAgdGhpcy5tb2RlbENvdW50ZXIgPSB0aGlzLl9nZXREYXlzRGlmZmVyZW5jZSh0aGlzLm1vZGVsU3RhcnQudmFsdWUsIHRoaXMubW9kZWxFbmQudmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IGV2ZW50LnZhbHVlO1xyXG4gICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSBldmVudC52YWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kaXNwYXRjaE1vZGlmeShldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlQ291bnRlcih2YWx1ZTogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMubW9kZWxDb3VudGVyID0gdmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vZGVsQ291bnRlciA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yYW5nZSkge1xyXG4gICAgICBpZiAodGhpcy5tb2RlbC52YWx1ZSAmJiB0aGlzLm1vZGVsLnZhbHVlWzBdKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC52YWx1ZVsxXSA9IHRoaXMuX2NoYW5nZURheXModGhpcy5tb2RlbC52YWx1ZVswXSwgdGhpcy5tb2RlbENvdW50ZXIpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IHRoaXMubW9kZWwudmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRpc3BhdGNoTW9kaWZ5KHN0cnVjdHVyZWRDbG9uZSh0aGlzLm1vZGVsLnZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBfdHJhbnNmb3JtT3V0cHV0VmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5zZXR0aW5ncy5vcHRpb25zLnJhbmdlKSB7XHJcbiAgICAgIHJldHVybiBbc3RydWN0dXJlZENsb25lKHRoaXMubW9kZWxTdGFydCksIHN0cnVjdHVyZWRDbG9uZSh0aGlzLm1vZGVsRW5kKV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3RydWN0dXJlZENsb25lKHRoaXMubW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgX2luaXRTdWJzY3JpcHRpb25Gb3JWYWx1ZSgpIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMkLnB1c2godGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbCB8IChDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbClbXSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbFN0YXJ0ID0gc3RydWN0dXJlZENsb25lKHJlc3VsdFswXSkgfHwgZGVmYXVsdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWxFbmQgPSBzdHJ1Y3R1cmVkQ2xvbmUocmVzdWx0WzFdKSB8fCBkZWZhdWx0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBzdHJ1Y3R1cmVkQ2xvbmUocmVzdWx0IHx8IGRlZmF1bHRWYWx1ZU1vZGVsKHRoaXMuc2V0dGluZ3MpKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLl9jdXN0b21Jbml0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBfY3VzdG9tSW5pdCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMubW9kZWwpIHtcclxuICAgICAgICB0aGlzLm1vZGVsID0gZGVmYXVsdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnNldHRpbmdzLm9wdGlvbnMucmFuZ2UpIHtcclxuICAgICAgICBpZiAoIXRoaXMubW9kZWxTdGFydD8udmFsdWUgfHwgIXRoaXMubW9kZWxFbmQ/LnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFtdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVNb2RlbCA9IFt0aGlzLm1vZGVsU3RhcnQudmFsdWUsIHRoaXMubW9kZWxFbmQudmFsdWVdO1xyXG5cclxuICAgICAgICAgIHRoaXMubW9kZWxDb3VudGVyID0gdGhpcy5fZ2V0RGF5c0RpZmZlcmVuY2UodGhpcy5tb2RlbFN0YXJ0LnZhbHVlLCB0aGlzLm1vZGVsRW5kLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSB0aGlzLm1vZGVsLnZhbHVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl9pc0luaXQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldERheXNEaWZmZXJlbmNlKHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgY29uc3QgZW5kID0gbmV3IERhdGUoZW5kRGF0ZSk7XHJcblxyXG4gICAgaWYgKGlzTmFOKHN0YXJ0LmdldFRpbWUoKSkgfHwgaXNOYU4oZW5kLmdldFRpbWUoKSkpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBkYXRlIGZvcm1hdCcpO1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkaWZmZXJlbmNlSW5NcyA9IE1hdGguYWJzKGVuZC5nZXRUaW1lKCkgLSBzdGFydC5nZXRUaW1lKCkpO1xyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoZGlmZmVyZW5jZUluTXMgLyB0aGlzLl9taWxsaXNlY29uZHNJbkRheSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGFuZ2VEYXlzKHN0YXJ0RGF0ZTogc3RyaW5nLCBkYXlzOiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGlmIChzdGFydERhdGUpIHtcclxuICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG5cclxuICAgICAgaWYgKGlzTmFOKHN0YXJ0LmdldFRpbWUoKSkpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIHN0YXJ0IGRhdGUgZm9ybWF0Jyk7XHJcbiAgICAgICAgcmV0dXJuIHN0YXJ0RGF0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGRheXMpIHx8IGRheXMgPCAwKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRGF5cyBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXInKTtcclxuICAgICAgICByZXR1cm4gc3RhcnREYXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoc3RhcnQuZ2V0VGltZSgpICsgZGF5cyAqIHRoaXMuX21pbGxpc2Vjb25kc0luRGF5KTtcclxuICAgICAgcmV0dXJuIG5ld0RhdGUudG9JU09TdHJpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAaWYgKHNldHRpbmdzKSB7XHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LWRhdGUtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sXCIgW2NsYXNzLmNvbC04XT1cInNldHRpbmdzLm9wdGlvbnMuY291bnRlclwiPlxyXG4gICAgICAgIEBpZiAoc2V0dGluZ3Mub3B0aW9ucy5sYWJlbCkge1xyXG4gICAgICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwic2V0dGluZ3Mub3B0aW9ucy5yZXF1aXJlZFwiXHJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cInNldHRpbmdzLm9wdGlvbnMudG9vbHRpcCB8fCAnJ1wiXHJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidtdC0yJ1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHNldHRpbmdzLm9wdGlvbnMubGFiZWwgfX1cclxuICAgICAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPG1yeC1pbnB1dC1kYXRlLXRpbWVcclxuICAgICAgICAgIFtuZ01vZGVsXT1cImRhdGVNb2RlbFwiXHJcbiAgICAgICAgICBbZmllbGRzXT1cImF1dG9zYXZlRmllbGRzXCJcclxuICAgICAgICAgIFtyYW5nZV09XCJzZXR0aW5ncy5vcHRpb25zLnJhbmdlXCJcclxuICAgICAgICAgIFtkYXRlUGxhY2Vob2xkZXJdPVwiKHNldHRpbmdzLm9wdGlvbnMucmFuZ2UgPyBzZXR0aW5ncy5vcHRpb25zLnBsYWNlaG9sZGVyICsgJyAtICcgKyBzZXR0aW5ncy5vcHRpb25zLnBsYWNlaG9sZGVyIDogc2V0dGluZ3Mub3B0aW9ucy5wbGFjZWhvbGRlcikgfHwgJydcIlxyXG4gICAgICAgICAgW2lzTWFudWFsSW5wdXRdPVwiIXNldHRpbmdzLm9wdGlvbnMucmFuZ2VcIlxyXG4gICAgICAgICAgW3RpbWVwaWNrZXJdPVwiZ2V0Vmlld1R5cGVUaW1lcGlja2VyXCJcclxuICAgICAgICAgIFtpbnZhbGlkXT1cImdldEludmFsaWRcIlxyXG4gICAgICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImdldEludmFsaWRNZXNzYWdlXCJcclxuICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9tcngtaW5wdXQtZGF0ZS10aW1lPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIEBpZiAoc2V0dGluZ3Mub3B0aW9ucy5jb3VudGVyICYmIHNldHRpbmdzLm9wdGlvbnMucmFuZ2UpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00XCI+XHJcbiAgICAgICAgICA8bXJ4LWxhYmVsIGN1c3RvbUNsYXNzZXM9XCJtdC0yXCI+XHJcbiAgICAgICAgICAgIHt7IHNldHRpbmdzLm9wdGlvbnMuY291bnRlckxhYmVsIH19XHJcbiAgICAgICAgICA8L21yeC1sYWJlbD5cclxuICAgICAgICAgIDxtcngtaW5wdXQtbnVtYmVyXHJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsQ291bnRlclwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInMCdcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNldHRpbmdzLm9wdGlvbnMuY291bnRlckVkaXRhYmxlXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlQ291bnRlcigkZXZlbnQpXCJcclxuICAgICAgICAgID48L21yeC1pbnB1dC1udW1iZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
@@ -81,10 +81,10 @@ export class InputFileComponent extends BaseFieldComponent {
81
81
  this._detector.detectChanges();
82
82
  }
83
83
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
84
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputFileComponent, selector: "app-input-file", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-file-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-file\r\n [files]=\"files\"\r\n [allowedExtensions]=\"settings.options.allowedExtensions\"\r\n [maxFiles]=\"settings.options.maxFiles\"\r\n [maxSize]=\"settings.options.maxSize\"\r\n [uploadEndPoint]=\"apiUrl + '/' + (applicationId$ | async) + '/upload-temp-file'\"\r\n [deleteConfirm]=\"deleteFile.bind(this)\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"'\u041F\u043E\u043B\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F'\"\r\n (filesChanged)=\"filesChanged($event)\"\r\n ></mrx-input-file>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "component", type: i1.InputFileComponent, selector: "mrx-input-file", inputs: ["autoUpload", "required", "disabled", "viewOnly", "lightDisabled", "bottomFiles", "maxSize", "maxFiles", "minFiles", "formData", "uploadEndPoint", "deleteEndPoint", "downloadEndPoint", "fileNamePlaceholder", "showInputWithError", "showDeleteButton", "isTooltipValue", "isDownloadingFile", "isHideListFiles", "target", "deleteConfirm", "innerTemplate", "uploadAdditionalData", "invalid", "invalidMessage", "checkInvalid", "messageTooManyFiles", "messageFileTooBig", "messageEmptyFile", "messageInvalidFileFormat", "placeholder", "placeholderFileMaxSize", "placeholderFileFormat", "files", "allowedExtensions"], outputs: ["filesChanged", "checkDroppedFile"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
84
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputFileComponent, selector: "app-input-file", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-file-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-file\r\n [files]=\"files\"\r\n [allowedExtensions]=\"settings.options.allowedExtensions\"\r\n [maxFiles]=\"!!settings.options.maxFiles ? settings.options.maxFiles : 9999\"\r\n [minFiles]=\"1\"\r\n [maxSize]=\"!!settings.options.maxSize ? settings.options.maxSize : 52428800\"\r\n [uploadEndPoint]=\"apiUrl + '/' + (applicationId$ | async) + '/upload-temp-file'\"\r\n [deleteConfirm]=\"deleteFile.bind(this)\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"'\u041F\u043E\u043B\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F'\"\r\n (filesChanged)=\"filesChanged($event)\"\r\n ></mrx-input-file>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "component", type: i1.InputFileComponent, selector: "mrx-input-file", inputs: ["autoUpload", "required", "disabled", "viewOnly", "lightDisabled", "bottomFiles", "maxSize", "maxFiles", "minFiles", "formData", "uploadEndPoint", "deleteEndPoint", "downloadEndPoint", "fileNamePlaceholder", "showInputWithError", "showDeleteButton", "isTooltipValue", "isDownloadingFile", "isHideListFiles", "target", "deleteConfirm", "innerTemplate", "uploadAdditionalData", "invalid", "invalidMessage", "checkInvalid", "messageTooManyFiles", "messageFileTooBig", "messageEmptyFile", "messageInvalidFileFormat", "placeholder", "placeholderFileMaxSize", "placeholderFileFormat", "files", "allowedExtensions"], outputs: ["filesChanged", "checkDroppedFile"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
85
85
  }
86
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputFileComponent, decorators: [{
87
87
  type: Component,
88
- args: [{ selector: 'app-input-file', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-file-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-file\r\n [files]=\"files\"\r\n [allowedExtensions]=\"settings.options.allowedExtensions\"\r\n [maxFiles]=\"settings.options.maxFiles\"\r\n [maxSize]=\"settings.options.maxSize\"\r\n [uploadEndPoint]=\"apiUrl + '/' + (applicationId$ | async) + '/upload-temp-file'\"\r\n [deleteConfirm]=\"deleteFile.bind(this)\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"'\u041F\u043E\u043B\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F'\"\r\n (filesChanged)=\"filesChanged($event)\"\r\n ></mrx-input-file>\r\n </div>\r\n}\r\n" }]
88
+ args: [{ selector: 'app-input-file', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-file-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-file\r\n [files]=\"files\"\r\n [allowedExtensions]=\"settings.options.allowedExtensions\"\r\n [maxFiles]=\"!!settings.options.maxFiles ? settings.options.maxFiles : 9999\"\r\n [minFiles]=\"1\"\r\n [maxSize]=\"!!settings.options.maxSize ? settings.options.maxSize : 52428800\"\r\n [uploadEndPoint]=\"apiUrl + '/' + (applicationId$ | async) + '/upload-temp-file'\"\r\n [deleteConfirm]=\"deleteFile.bind(this)\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"'\u041F\u043E\u043B\u0435 \u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E \u0434\u043B\u044F \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F'\"\r\n (filesChanged)=\"filesChanged($event)\"\r\n ></mrx-input-file>\r\n </div>\r\n}\r\n" }]
89
89
  }] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC9maWxlL2lucHV0LWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFRekQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUd0QztJQVRGOztRQVVFLFNBQUksR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBRXRCLFdBQU0sR0FBVSxNQUFN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RSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFDLENBQzNDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0E5RlUsa0JBQWtCO21HQUFsQixrQkFBa0IsNkVDcEIvQixpaENBeUJBOzs0RkRMYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vZW51bXMnO1xyXG5pbXBvcnQgeyBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtQWN0aW9ucywgb2JqZWN0Rm9ybVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlJztcclxuaW1wb3J0IHsgSW5wdXRGaWxlTW9kZWwgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IElucHV0RmlsZU1vZGVsIGFzIElucHV0RmlsZUJhc2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IE9iamVjdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtZmlsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWZpbGUuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRGaWxlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZpZWxkQ29tcG9uZW50PElucHV0RmlsZUJhc2VNb2RlbCwge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdmFsdWU6IElucHV0RmlsZU1vZGVsW11cclxufT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuSW5wdXRGaWxlO1xyXG5cclxuICBvdmVycmlkZSBfc3RvcmU6IFN0b3JlID0gaW5qZWN0KFN0b3JlKTtcclxuICBvdmVycmlkZSBfZGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgcHJpdmF0ZSBfb2JqZWN0Rm9ybVNlcnZpY2U6IE9iamVjdEZvcm1TZXJ2aWNlID0gaW5qZWN0KE9iamVjdEZvcm1TZXJ2aWNlKVxyXG5cclxuICBwcml2YXRlIF9jaGFuZ2VGaWxlU3ViamVjdCQ6IFN1YmplY3Q8Q29tcG9uZW50VmFsdWVNb2RlbD4gPSBuZXcgU3ViamVjdDxDb21wb25lbnRWYWx1ZU1vZGVsPigpO1xyXG4gIHByaXZhdGUgX2ZpbGVTdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNGaWxlQ2hlY2tSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYXBwbGljYXRpb25JZCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdE9iamVjdElkKTtcclxuXHJcbiAgcHVibGljIGZpbGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luaXRNb2RlbCgpO1xyXG5cclxuICAgIHRoaXMuX2NoYW5nZUZpbGVTdWJqZWN0JC5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNzAwKSxcclxuICAgICkuc3Vic2NyaWJlKG1vZGVsID0+IHtcclxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlVmFsdWVzKHt2YWx1ZTogY2xvbmVEZWVwKHRoaXMubW9kZWwpfSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fZmlsZVN1YnNjcmlwdGlvbnMkLnB1c2godGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0SXNDaGVja1JlcXVpcmVkKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNGaWxlQ2hlY2tSZXF1aXJlZCA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pKTtcclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZU1vZGUgPT09ICdhdXRvJykge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbCB8IChDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbClbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCAmJiAhQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSByZXN1bHQudmFsdWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9jdXN0b21Jbml0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2ZpbGVTdWJzY3JpcHRpb25zJC5wdXNoKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qob2JqZWN0Rm9ybVNlbGVjdG9ycy5zZWxlY3RTZWN0aW9uRmlsZXMpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoc2VjdGlvbkZpbGVzOiBGaWxlTW9kZWxbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHNlY3Rpb25GaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5pdEZpbGVzKHNlY3Rpb25GaWxlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhcGlVcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9vYmplY3RGb3JtU2VydmljZS5hcGlVcmxcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGdldCBnZXRJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuX2lzRmlsZUNoZWNrUmVxdWlyZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yZXF1aXJlZCAmJiAhdGhpcy5tb2RlbC52YWx1ZT8ubGVuZ3RoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9maWxlU3Vic2NyaXB0aW9ucyQuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsZXNDaGFuZ2VkKGZpbGVzOiBJbnB1dEZpbGVNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmZpbGVzID0gZmlsZXM7XHJcbiAgICB0aGlzLm1vZGVsLnZhbHVlID0gdGhpcy5maWxlcy5tYXAoZiA9PiBmLmlkKTtcclxuICAgIHRoaXMuZGlzcGF0Y2hNb2RpZnkoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVGaWxlKGZpbGU6IElucHV0RmlsZU1vZGVsKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGY6IElucHV0RmlsZU1vZGVsKSA9PiBmLmlkICE9PSBmaWxlLmlkKTtcclxuICAgIHRoaXMubW9kZWwudmFsdWUgPSB0aGlzLmZpbGVzLm1hcChmID0+IGYuaWQpO1xyXG4gICAgdGhpcy5kaXNwYXRjaE1vZGlmeSgpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgZGlzcGF0Y2hNb2RpZnkoKSB7XHJcbiAgICB0aGlzLl9jaGFuZ2VGaWxlU3ViamVjdCQubmV4dCh0aGlzLm1vZGVsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRGaWxlcyhzZWN0aW9uRmlsZXM6IEZpbGVNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmZpbGVzID0gc2VjdGlvbkZpbGVzLmZpbHRlcihmID0+IHRoaXMubW9kZWwudmFsdWUuaW5jbHVkZXMoZi5pZCkpLm1hcChmID0+IChcclxuICAgICAge3V1aWQ6IGYuaWQsIG5hbWU6IGYubmFtZSwgc2l6ZTogZi5sZW5ndGh9XHJcbiAgICApKTtcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoc2V0dGluZ3MpIHtcclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZmlsZS1jb250ZW50XCI+XHJcbiAgICBAaWYgKHNldHRpbmdzLm9wdGlvbnMubGFiZWwpIHtcclxuICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJzZXR0aW5ncy5vcHRpb25zLnJlcXVpcmVkXCJcclxuICAgICAgICBbdG9vbHRpcF09XCJzZXR0aW5ncy5vcHRpb25zLnRvb2x0aXAgfHwgJydcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidtdC0yJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBzZXR0aW5ncy5vcHRpb25zLmxhYmVsIH19XHJcbiAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgfVxyXG5cclxuICAgIDxtcngtaW5wdXQtZmlsZVxyXG4gICAgICBbZmlsZXNdPVwiZmlsZXNcIlxyXG4gICAgICBbYWxsb3dlZEV4dGVuc2lvbnNdPVwic2V0dGluZ3Mub3B0aW9ucy5hbGxvd2VkRXh0ZW5zaW9uc1wiXHJcbiAgICAgIFttYXhGaWxlc109XCJzZXR0aW5ncy5vcHRpb25zLm1heEZpbGVzXCJcclxuICAgICAgW21heFNpemVdPVwic2V0dGluZ3Mub3B0aW9ucy5tYXhTaXplXCJcclxuICAgICAgW3VwbG9hZEVuZFBvaW50XT1cImFwaVVybCArICcvJyArIChhcHBsaWNhdGlvbklkJCB8IGFzeW5jKSArICcvdXBsb2FkLXRlbXAtZmlsZSdcIlxyXG4gICAgICBbZGVsZXRlQ29uZmlybV09XCJkZWxldGVGaWxlLmJpbmQodGhpcylcIlxyXG4gICAgICBbaW52YWxpZF09XCJnZXRJbnZhbGlkXCJcclxuICAgICAgW2ludmFsaWRNZXNzYWdlXT1cIifQn9C+0LvQtSDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdC+INC00LvRjyDQt9Cw0L/QvtC70L3QtdC90LjRjydcIlxyXG4gICAgICAoZmlsZXNDaGFuZ2VkKT1cImZpbGVzQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgID48L21yeC1pbnB1dC1maWxlPlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vY29tcG9uZW50cy9lbGVtZW50cy9pbnB1dC9maWxlL2lucHV0LWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFRekQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUd0QztJQVRGOztRQVVFLFNBQUksR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBRXRCLFdBQU0sR0FBVSxNQUFN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RSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFDLENBQzNDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDakMsQ0FBQzsrR0E5RlUsa0JBQWtCO21HQUFsQixrQkFBa0IsNkVDcEIvQixrbENBeUJBOzs0RkRMYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vZW51bXMnO1xyXG5pbXBvcnQgeyBGaWxlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBvYmplY3RGb3JtQWN0aW9ucywgb2JqZWN0Rm9ybVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlJztcclxuaW1wb3J0IHsgSW5wdXRGaWxlTW9kZWwgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IElucHV0RmlsZU1vZGVsIGFzIElucHV0RmlsZUJhc2VNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IE9iamVjdEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtZmlsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWZpbGUuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRGaWxlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZpZWxkQ29tcG9uZW50PElucHV0RmlsZUJhc2VNb2RlbCwge1xyXG4gIGlkOiBzdHJpbmcsXHJcbiAgdmFsdWU6IElucHV0RmlsZU1vZGVsW11cclxufT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuSW5wdXRGaWxlO1xyXG5cclxuICBvdmVycmlkZSBfc3RvcmU6IFN0b3JlID0gaW5qZWN0KFN0b3JlKTtcclxuICBvdmVycmlkZSBfZGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgcHJpdmF0ZSBfb2JqZWN0Rm9ybVNlcnZpY2U6IE9iamVjdEZvcm1TZXJ2aWNlID0gaW5qZWN0KE9iamVjdEZvcm1TZXJ2aWNlKVxyXG5cclxuICBwcml2YXRlIF9jaGFuZ2VGaWxlU3ViamVjdCQ6IFN1YmplY3Q8Q29tcG9uZW50VmFsdWVNb2RlbD4gPSBuZXcgU3ViamVjdDxDb21wb25lbnRWYWx1ZU1vZGVsPigpO1xyXG4gIHByaXZhdGUgX2ZpbGVTdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNGaWxlQ2hlY2tSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYXBwbGljYXRpb25JZCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdE9iamVjdElkKTtcclxuXHJcbiAgcHVibGljIGZpbGVzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luaXRNb2RlbCgpO1xyXG5cclxuICAgIHRoaXMuX2NoYW5nZUZpbGVTdWJqZWN0JC5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNzAwKSxcclxuICAgICkuc3Vic2NyaWJlKG1vZGVsID0+IHtcclxuICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2gob2JqZWN0Rm9ybUFjdGlvbnMudXBkYXRlVmFsdWVzKHt2YWx1ZTogY2xvbmVEZWVwKHRoaXMubW9kZWwpfSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fZmlsZVN1YnNjcmlwdGlvbnMkLnB1c2godGhpcy5fc3RvcmUuc2VsZWN0KG9iamVjdEZvcm1TZWxlY3RvcnMuc2VsZWN0SXNDaGVja1JlcXVpcmVkKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNGaWxlQ2hlY2tSZXF1aXJlZCA9IHJlc3VsdDtcclxuICAgICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pKTtcclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZU1vZGUgPT09ICdhdXRvJykge1xyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zJC5wdXNoKHRoaXMuX3N0b3JlLnNlbGVjdChvYmplY3RGb3JtU2VsZWN0b3JzLnNlbGVjdFZhbHVlTW9kZWwodGhpcy5zZXR0aW5ncykpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbCB8IChDb21wb25lbnRWYWx1ZU1vZGVsIHwgbnVsbClbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCAmJiAhQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwudmFsdWUgPSByZXN1bHQudmFsdWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9jdXN0b21Jbml0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2ZpbGVTdWJzY3JpcHRpb25zJC5wdXNoKFxyXG4gICAgICB0aGlzLl9zdG9yZS5zZWxlY3Qob2JqZWN0Rm9ybVNlbGVjdG9ycy5zZWxlY3RTZWN0aW9uRmlsZXMpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoc2VjdGlvbkZpbGVzOiBGaWxlTW9kZWxbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHNlY3Rpb25GaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5faW5pdEZpbGVzKHNlY3Rpb25GaWxlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhcGlVcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9vYmplY3RGb3JtU2VydmljZS5hcGlVcmxcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGdldCBnZXRJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuX2lzRmlsZUNoZWNrUmVxdWlyZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5yZXF1aXJlZCAmJiAhdGhpcy5tb2RlbC52YWx1ZT8ubGVuZ3RoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9maWxlU3Vic2NyaXB0aW9ucyQuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmlsZXNDaGFuZ2VkKGZpbGVzOiBJbnB1dEZpbGVNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmZpbGVzID0gZmlsZXM7XHJcbiAgICB0aGlzLm1vZGVsLnZhbHVlID0gdGhpcy5maWxlcy5tYXAoZiA9PiBmLmlkKTtcclxuICAgIHRoaXMuZGlzcGF0Y2hNb2RpZnkoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkZWxldGVGaWxlKGZpbGU6IElucHV0RmlsZU1vZGVsKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGY6IElucHV0RmlsZU1vZGVsKSA9PiBmLmlkICE9PSBmaWxlLmlkKTtcclxuICAgIHRoaXMubW9kZWwudmFsdWUgPSB0aGlzLmZpbGVzLm1hcChmID0+IGYuaWQpO1xyXG4gICAgdGhpcy5kaXNwYXRjaE1vZGlmeSgpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgZGlzcGF0Y2hNb2RpZnkoKSB7XHJcbiAgICB0aGlzLl9jaGFuZ2VGaWxlU3ViamVjdCQubmV4dCh0aGlzLm1vZGVsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRGaWxlcyhzZWN0aW9uRmlsZXM6IEZpbGVNb2RlbFtdKSB7XHJcbiAgICB0aGlzLmZpbGVzID0gc2VjdGlvbkZpbGVzLmZpbHRlcihmID0+IHRoaXMubW9kZWwudmFsdWUuaW5jbHVkZXMoZi5pZCkpLm1hcChmID0+IChcclxuICAgICAge3V1aWQ6IGYuaWQsIG5hbWU6IGYubmFtZSwgc2l6ZTogZi5sZW5ndGh9XHJcbiAgICApKTtcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoc2V0dGluZ3MpIHtcclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZmlsZS1jb250ZW50XCI+XHJcbiAgICBAaWYgKHNldHRpbmdzLm9wdGlvbnMubGFiZWwpIHtcclxuICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJzZXR0aW5ncy5vcHRpb25zLnJlcXVpcmVkXCJcclxuICAgICAgICBbdG9vbHRpcF09XCJzZXR0aW5ncy5vcHRpb25zLnRvb2x0aXAgfHwgJydcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgc2V0dGluZ3Mub3B0aW9ucy5sYWJlbCB9fVxyXG4gICAgICA8L21yeC1sYWJlbD5cclxuICAgIH1cclxuXHJcbiAgICA8bXJ4LWlucHV0LWZpbGVcclxuICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgW2FsbG93ZWRFeHRlbnNpb25zXT1cInNldHRpbmdzLm9wdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnNcIlxyXG4gICAgICBbbWF4RmlsZXNdPVwiISFzZXR0aW5ncy5vcHRpb25zLm1heEZpbGVzID8gc2V0dGluZ3Mub3B0aW9ucy5tYXhGaWxlcyA6IDk5OTlcIlxyXG4gICAgICBbbWluRmlsZXNdPVwiMVwiXHJcbiAgICAgIFttYXhTaXplXT1cIiEhc2V0dGluZ3Mub3B0aW9ucy5tYXhTaXplID8gc2V0dGluZ3Mub3B0aW9ucy5tYXhTaXplIDogNTI0Mjg4MDBcIlxyXG4gICAgICBbdXBsb2FkRW5kUG9pbnRdPVwiYXBpVXJsICsgJy8nICsgKGFwcGxpY2F0aW9uSWQkIHwgYXN5bmMpICsgJy91cGxvYWQtdGVtcC1maWxlJ1wiXHJcbiAgICAgIFtkZWxldGVDb25maXJtXT1cImRlbGV0ZUZpbGUuYmluZCh0aGlzKVwiXHJcbiAgICAgIFtpbnZhbGlkXT1cImdldEludmFsaWRcIlxyXG4gICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiJ9Cf0L7Qu9C1INC+0LHRj9C30LDRgtC10LvRjNC90L4g0LTQu9GPINC30LDQv9C+0LvQvdC10L3QuNGPJ1wiXHJcbiAgICAgIChmaWxlc0NoYW5nZWQpPVwiZmlsZXNDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgPjwvbXJ4LWlucHV0LWZpbGU+XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
@@ -23,10 +23,10 @@ export class InputNumberComponent extends BaseFieldComponent {
23
23
  this.settings.options.maxValue && model.value && this.settings.options.maxValue < model.value);
24
24
  }
25
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputNumberComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputNumberComponent, selector: "app-input-number", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-number-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-number\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"isReadonly\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n (change)=\"onChangeInput()\"\r\n ></mrx-input-number>\r\n\r\n @if (settings.options.minValue) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minValue }}\"\r\n [value]=\"validateValue\"\r\n [minValue]=\"settings.options.minValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n @if (settings.options.maxValue) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.maxValue }}\"\r\n [value]=\"validateValue\"\r\n [maxValue]=\"settings.options.maxValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.InputNumberComponent, selector: "mrx-input-number", inputs: ["fields", "placeholder", "innerClass", "customClasses", "required", "allowNegative", "size", "separator", "decimalSeparator", "decimals", "isNullableValue", "isAutoCorrectingValue", "invalid", "checkInvalid", "numberType", "invalidMessage", "disabled", "readonly", "minValue", "maxValue"], outputs: ["modelChange"] }, { kind: "component", type: i1.HintErrorMessageComponent, selector: "mrx-hint-error-message", inputs: ["message", "value", "maxValue", "minValue", "minLength", "maxLength", "checkInvalid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputNumberComponent, selector: "app-input-number", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-number-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-number\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"isReadonly\"\r\n [placeholder]=\"settings.options.placeholder || '\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435'\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n (change)=\"onChangeInput()\"\r\n ></mrx-input-number>\r\n\r\n @if (settings.options.minValue) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minValue }}\"\r\n [value]=\"validateValue\"\r\n [minValue]=\"settings.options.minValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n @if (settings.options.maxValue) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.maxValue }}\"\r\n [value]=\"validateValue\"\r\n [maxValue]=\"settings.options.maxValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.InputNumberComponent, selector: "mrx-input-number", inputs: ["fields", "placeholder", "innerClass", "customClasses", "required", "allowNegative", "size", "separator", "decimalSeparator", "decimals", "isNullableValue", "isAutoCorrectingValue", "invalid", "checkInvalid", "numberType", "invalidMessage", "disabled", "readonly", "minValue", "maxValue"], outputs: ["modelChange"] }, { kind: "component", type: i1.HintErrorMessageComponent, selector: "mrx-hint-error-message", inputs: ["message", "value", "maxValue", "minValue", "minLength", "maxLength", "checkInvalid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
27
  }
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputNumberComponent, decorators: [{
29
29
  type: Component,
30
- args: [{ selector: 'app-input-number', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-number-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-number\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"isReadonly\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n (change)=\"onChangeInput()\"\r\n ></mrx-input-number>\r\n\r\n @if (settings.options.minValue) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minValue }}\"\r\n [value]=\"validateValue\"\r\n [minValue]=\"settings.options.minValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n @if (settings.options.maxValue) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.maxValue }}\"\r\n [value]=\"validateValue\"\r\n [maxValue]=\"settings.options.maxValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n}\r\n" }]
30
+ args: [{ selector: 'app-input-number', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-number-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-number\r\n [(ngModel)]=\"model.value\"\r\n [fields]=\"autosaveFields\"\r\n [readonly]=\"isReadonly\"\r\n [placeholder]=\"settings.options.placeholder || '\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435'\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"dispatchModify($event)\"\r\n (change)=\"onChangeInput()\"\r\n ></mrx-input-number>\r\n\r\n @if (settings.options.minValue) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.minValue }}\"\r\n [value]=\"validateValue\"\r\n [minValue]=\"settings.options.minValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n @if (settings.options.maxValue) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u2014 {{ settings.options.maxValue }}\"\r\n [value]=\"validateValue\"\r\n [maxValue]=\"settings.options.maxValue\"\r\n ></mrx-hint-error-message>\r\n }\r\n </div>\r\n}\r\n" }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9jb21wb25lbnRzL2VsZW1lbnRzL2lucHV0L251bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBV2hELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBNEQ7SUFOdEc7O1FBT0UsU0FBSSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFFMUIsa0JBQWEsR0FBRyxDQUFDLENBQUE7S0FvQnpCO0lBbEJDLElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUE7SUFDdkMsQ0FBQztJQUVRLGVBQWUsQ0FBQyxLQUEwQjtRQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUE7UUFFaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUU3QixPQUFPLENBQUMsQ0FDTixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUs7WUFDN0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQzlGLENBQUM7SUFDSixDQUFDOytHQXRCVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwrRUNiakMsMmdEQXVDQTs7NEZEMUJhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBJbnB1dFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vZW51bXMnO1xyXG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlJztcclxuaW1wb3J0IHsgSW5wdXROdW1iZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IElucHV0TnVtYmVyVmFsdWVXaXRoSWQgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtbnVtYmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXROdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlRmllbGRDb21wb25lbnQ8SW5wdXROdW1iZXJNb2RlbCwgSW5wdXROdW1iZXJWYWx1ZVdpdGhJZD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHR5cGUgPSBDb21wb25lbnRUeXBlLklucHV0TnVtYmVyO1xyXG5cclxuICBwdWJsaWMgdmFsaWRhdGVWYWx1ZSA9IDBcclxuXHJcbiAgcHVibGljIGdldCBpc1JlYWRvbmx5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5pbnB1dFN0YXRlID09PSBJbnB1dFN0YXRlLkZvcm11bGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VJbnB1dCgpIHtcclxuICAgIHRoaXMudmFsaWRhdGVWYWx1ZSA9IHRoaXMubW9kZWwudmFsdWVcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIF9jdXN0b21WYWxpZGF0ZShtb2RlbDogQ29tcG9uZW50VmFsdWVNb2RlbCkge1xyXG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlID0gbW9kZWwudmFsdWVcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5tYXJrRm9yQ2hlY2soKVxyXG5cclxuICAgIHJldHVybiAhKFxyXG4gICAgICB0aGlzLnNldHRpbmdzLm9wdGlvbnMubWluVmFsdWUgJiYgbW9kZWwudmFsdWUgJiYgdGhpcy5zZXR0aW5ncy5vcHRpb25zLm1pblZhbHVlID4gbW9kZWwudmFsdWUgfHxcclxuICAgICAgdGhpcy5zZXR0aW5ncy5vcHRpb25zLm1heFZhbHVlICYmIG1vZGVsLnZhbHVlICYmIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5tYXhWYWx1ZSA8IG1vZGVsLnZhbHVlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKHNldHRpbmdzKSB7XHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LW51bWJlci1jb250ZW50XCI+XHJcbiAgICBAaWYgKHNldHRpbmdzLm9wdGlvbnMubGFiZWwpIHtcclxuICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJzZXR0aW5ncy5vcHRpb25zLnJlcXVpcmVkXCJcclxuICAgICAgICBbdG9vbHRpcF09XCJzZXR0aW5ncy5vcHRpb25zLnRvb2x0aXAgfHwgJydcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidtdC0yJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBzZXR0aW5ncy5vcHRpb25zLmxhYmVsIH19XHJcbiAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgfVxyXG5cclxuICAgIDxtcngtaW5wdXQtbnVtYmVyXHJcbiAgICAgIFsobmdNb2RlbCldPVwibW9kZWwudmFsdWVcIlxyXG4gICAgICBbZmllbGRzXT1cImF1dG9zYXZlRmllbGRzXCJcclxuICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZG9ubHlcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwic2V0dGluZ3Mub3B0aW9ucy5wbGFjZWhvbGRlciB8fCAnJ1wiXHJcbiAgICAgIFtpbnZhbGlkXT1cImdldEludmFsaWRcIlxyXG4gICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiZ2V0SW52YWxpZE1lc3NhZ2VcIlxyXG4gICAgICAobW9kZWxDaGFuZ2UpPVwiZGlzcGF0Y2hNb2RpZnkoJGV2ZW50KVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2VJbnB1dCgpXCJcclxuICAgID48L21yeC1pbnB1dC1udW1iZXI+XHJcblxyXG4gICAgQGlmIChzZXR0aW5ncy5vcHRpb25zLm1pblZhbHVlKSB7XHJcbiAgICAgIDxtcngtaGludC1lcnJvci1tZXNzYWdlXHJcbiAgICAgICAgbWVzc2FnZT1cItCc0LjQvdC40LzQsNC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDigJQge3sgc2V0dGluZ3Mub3B0aW9ucy5taW5WYWx1ZSB9fVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInZhbGlkYXRlVmFsdWVcIlxyXG4gICAgICAgIFttaW5WYWx1ZV09XCJzZXR0aW5ncy5vcHRpb25zLm1pblZhbHVlXCJcclxuICAgICAgPjwvbXJ4LWhpbnQtZXJyb3ItbWVzc2FnZT5cclxuICAgIH1cclxuICAgIEBpZiAoc2V0dGluZ3Mub3B0aW9ucy5tYXhWYWx1ZSkge1xyXG4gICAgICA8bXJ4LWhpbnQtZXJyb3ItbWVzc2FnZVxyXG4gICAgICAgIG1lc3NhZ2U9XCLQnNCw0LrRgdC40LzQsNC70YzQvdC+0LUg0LfQvdCw0YfQtdC90LjQtSDigJQge3sgc2V0dGluZ3Mub3B0aW9ucy5tYXhWYWx1ZSB9fVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInZhbGlkYXRlVmFsdWVcIlxyXG4gICAgICAgIFttYXhWYWx1ZV09XCJzZXR0aW5ncy5vcHRpb25zLm1heFZhbHVlXCJcclxuICAgICAgPjwvbXJ4LWhpbnQtZXJyb3ItbWVzc2FnZT5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9jb21wb25lbnRzL2VsZW1lbnRzL2lucHV0L251bWJlci9pbnB1dC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvbnVtYmVyL2lucHV0LW51bWJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBV2hELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBNEQ7SUFOdEc7O1FBT0UsU0FBSSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFFMUIsa0JBQWEsR0FBRyxDQUFDLENBQUE7S0FvQnpCO0lBbEJDLElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUE7SUFDdkMsQ0FBQztJQUVRLGVBQWUsQ0FBQyxLQUEwQjtRQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUE7UUFFaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUU3QixPQUFPLENBQUMsQ0FDTixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUs7WUFDN0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQzlGLENBQUM7SUFDSixDQUFDOytHQXRCVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwrRUNiakMsc21EQXVDQTs7NEZEMUJhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBJbnB1dFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkLWZvcm0vZW51bXMnO1xyXG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlJztcclxuaW1wb3J0IHsgSW5wdXROdW1iZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IElucHV0TnVtYmVyVmFsdWVXaXRoSWQgfSBmcm9tICdAbXlydGV4LW9yZy91aSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW5wdXQtbnVtYmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1udW1iZXIuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXROdW1iZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlRmllbGRDb21wb25lbnQ8SW5wdXROdW1iZXJNb2RlbCwgSW5wdXROdW1iZXJWYWx1ZVdpdGhJZD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHR5cGUgPSBDb21wb25lbnRUeXBlLklucHV0TnVtYmVyO1xyXG5cclxuICBwdWJsaWMgdmFsaWRhdGVWYWx1ZSA9IDBcclxuXHJcbiAgcHVibGljIGdldCBpc1JlYWRvbmx5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5pbnB1dFN0YXRlID09PSBJbnB1dFN0YXRlLkZvcm11bGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2VJbnB1dCgpIHtcclxuICAgIHRoaXMudmFsaWRhdGVWYWx1ZSA9IHRoaXMubW9kZWwudmFsdWVcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIF9jdXN0b21WYWxpZGF0ZShtb2RlbDogQ29tcG9uZW50VmFsdWVNb2RlbCkge1xyXG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlID0gbW9kZWwudmFsdWVcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5tYXJrRm9yQ2hlY2soKVxyXG5cclxuICAgIHJldHVybiAhKFxyXG4gICAgICB0aGlzLnNldHRpbmdzLm9wdGlvbnMubWluVmFsdWUgJiYgbW9kZWwudmFsdWUgJiYgdGhpcy5zZXR0aW5ncy5vcHRpb25zLm1pblZhbHVlID4gbW9kZWwudmFsdWUgfHxcclxuICAgICAgdGhpcy5zZXR0aW5ncy5vcHRpb25zLm1heFZhbHVlICYmIG1vZGVsLnZhbHVlICYmIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5tYXhWYWx1ZSA8IG1vZGVsLnZhbHVlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKHNldHRpbmdzKSB7XHJcbiAgPGRpdiBjbGFzcz1cImlucHV0LW51bWJlci1jb250ZW50XCI+XHJcbiAgICBAaWYgKHNldHRpbmdzLm9wdGlvbnMubGFiZWwpIHtcclxuICAgICAgPG1yeC1sYWJlbFxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJzZXR0aW5ncy5vcHRpb25zLnJlcXVpcmVkXCJcclxuICAgICAgICBbdG9vbHRpcF09XCJzZXR0aW5ncy5vcHRpb25zLnRvb2x0aXAgfHwgJydcIlxyXG4gICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIidtdC0yJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBzZXR0aW5ncy5vcHRpb25zLmxhYmVsIH19XHJcbiAgICAgIDwvbXJ4LWxhYmVsPlxyXG4gICAgfVxyXG5cclxuICAgIDxtcngtaW5wdXQtbnVtYmVyXHJcbiAgICAgIFsobmdNb2RlbCldPVwibW9kZWwudmFsdWVcIlxyXG4gICAgICBbZmllbGRzXT1cImF1dG9zYXZlRmllbGRzXCJcclxuICAgICAgW3JlYWRvbmx5XT1cImlzUmVhZG9ubHlcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwic2V0dGluZ3Mub3B0aW9ucy5wbGFjZWhvbGRlciB8fCAn0JLQstC10LTQuNGC0LUg0LfQvdCw0YfQtdC90LjQtSdcIlxyXG4gICAgICBbaW52YWxpZF09XCJnZXRJbnZhbGlkXCJcclxuICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImdldEludmFsaWRNZXNzYWdlXCJcclxuICAgICAgKG1vZGVsQ2hhbmdlKT1cImRpc3BhdGNoTW9kaWZ5KCRldmVudClcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlSW5wdXQoKVwiXHJcbiAgICA+PC9tcngtaW5wdXQtbnVtYmVyPlxyXG5cclxuICAgIEBpZiAoc2V0dGluZ3Mub3B0aW9ucy5taW5WYWx1ZSkge1xyXG4gICAgICA8bXJ4LWhpbnQtZXJyb3ItbWVzc2FnZVxyXG4gICAgICAgIG1lc3NhZ2U9XCLQnNC40L3QuNC80LDQu9GM0L3QvtC1INC30L3QsNGH0LXQvdC40LUg4oCUIHt7IHNldHRpbmdzLm9wdGlvbnMubWluVmFsdWUgfX1cIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ2YWxpZGF0ZVZhbHVlXCJcclxuICAgICAgICBbbWluVmFsdWVdPVwic2V0dGluZ3Mub3B0aW9ucy5taW5WYWx1ZVwiXHJcbiAgICAgID48L21yeC1oaW50LWVycm9yLW1lc3NhZ2U+XHJcbiAgICB9XHJcbiAgICBAaWYgKHNldHRpbmdzLm9wdGlvbnMubWF4VmFsdWUpIHtcclxuICAgICAgPG1yeC1oaW50LWVycm9yLW1lc3NhZ2VcclxuICAgICAgICBtZXNzYWdlPVwi0JzQsNC60YHQuNC80LDQu9GM0L3QvtC1INC30L3QsNGH0LXQvdC40LUg4oCUIHt7IHNldHRpbmdzLm9wdGlvbnMubWF4VmFsdWUgfX1cIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ2YWxpZGF0ZVZhbHVlXCJcclxuICAgICAgICBbbWF4VmFsdWVdPVwic2V0dGluZ3Mub3B0aW9ucy5tYXhWYWx1ZVwiXHJcbiAgICAgID48L21yeC1oaW50LWVycm9yLW1lc3NhZ2U+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
@@ -51,10 +51,10 @@ export class InputSelectComponent extends BaseFieldComponent {
51
51
  return result.join(', ');
52
52
  }
53
53
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputSelectComponent, selector: "app-input-select", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-select-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-select\r\n [(ngModel)]=\"value\"\r\n [fields]=\"autosaveFields\"\r\n [items]=\"settings.options.items\"\r\n [readonly]=\"false\"\r\n [searchable]=\"false\"\r\n bindValue=\"value\"\r\n bindLabel=\"text\"\r\n [multiple]=\"settings.options.multiply\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-select>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.InputSelectComponent, selector: "mrx-input-select", inputs: ["fields", "size", "selected", "bindValue", "bindLabel", "customClasses", "wrapperCustomClasses", "multiple", "loading", "addTag", "clearable", "items", "groupBy", "emptyValue", "virtualScroll", "trackByFn", "displayValue", "disabledFromDisplay", "maxLength", "customSearchFn", "isBottomLabel", "search", "required", "disabled", "readonly", "showEmptyFields", "placeholder", "searchable", "loadLabel", "notFoundText", "closeOnSelect", "multiCollapseCount", "dropdownPosition", "invalid", "invalidMessage", "checkInvalid", "label", "labelRequiredHidden", "labelExtraClass", "tooltip", "tooltipHidden", "tooltipVisible", "maxSelectedItems"], outputs: ["changed", "modelChange", "searched"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputSelectComponent, selector: "app-input-select", usesInheritance: true, ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-select-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-select\r\n [(ngModel)]=\"value\"\r\n [fields]=\"autosaveFields\"\r\n [items]=\"settings.options.items\"\r\n [readonly]=\"false\"\r\n [searchable]=\"false\"\r\n bindValue=\"value\"\r\n bindLabel=\"text\"\r\n [multiple]=\"settings.options.multiply\"\r\n [placeholder]=\"settings.options.placeholder || '\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435'\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-select>\r\n </div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.SelectComponent, selector: "mrx-select", inputs: ["fields", "items", "multiple", "isLoading", "searchable", "clearable", "closable", "size", "bindValue", "bindLabel", "bindIcon", "emptyText", "placeholder", "searchPlaceholder", "multiCollapseCount", "addOption", "isExtraOption", "extraOptionPlaceholder", "use", "sortIcon", "sortPlaceholder", "isFullWidthDropdown", "disabled", "readonly", "invalid", "invalidMessage", "checkInvalid", "popupPosition", "singleChange"], outputs: ["changed", "modelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
55
  }
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputSelectComponent, decorators: [{
57
57
  type: Component,
58
- args: [{ selector: 'app-input-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-select-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-input-select\r\n [(ngModel)]=\"value\"\r\n [fields]=\"autosaveFields\"\r\n [items]=\"settings.options.items\"\r\n [readonly]=\"false\"\r\n [searchable]=\"false\"\r\n bindValue=\"value\"\r\n bindLabel=\"text\"\r\n [multiple]=\"settings.options.multiply\"\r\n [placeholder]=\"settings.options.placeholder || ''\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-input-select>\r\n </div>\r\n}\r\n" }]
58
+ args: [{ selector: 'app-input-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-select-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n [customClasses]=\"'mt-2'\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-select\r\n [(ngModel)]=\"value\"\r\n [fields]=\"autosaveFields\"\r\n [items]=\"settings.options.items\"\r\n [readonly]=\"false\"\r\n [searchable]=\"false\"\r\n bindValue=\"value\"\r\n bindLabel=\"text\"\r\n [multiple]=\"settings.options.multiply\"\r\n [placeholder]=\"settings.options.placeholder || '\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435'\"\r\n [invalid]=\"getInvalid\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-select>\r\n </div>\r\n}\r\n" }]
59
59
  }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9jb21wb25lbnRzL2VsZW1lbnRzL2lucHV0L3NlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFReEQsTUFBTSxPQUFPLG9CQUNYLFNBQVEsa0JBQTREO0lBUHRFOztRQVNFLFNBQUksR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO0tBb0RsQztJQWhEUSxXQUFXLENBQUMsS0FBNkI7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVRLGtCQUFrQixDQUFDLEtBQTZCO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLGdCQUFnQixDQUFDLGFBQW9DO1FBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSztpQkFDL0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxhQUFhLENBQUM7aUJBQ3RDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUU1QixhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUs7aUJBQzdDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUM7WUFFOUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBdERVLG9CQUFvQjttR0FBcEIsb0JBQW9CLCtFQ2RqQyxnNEJBNEJBOzs0RkRkYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC1mb3JtL2VudW1zJztcclxuaW1wb3J0IHsgU2VsZWN0TGlzdEl0ZW0gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlJztcclxuaW1wb3J0IHsgSW5wdXRTZWxlY3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IElucHV0U2VsZWN0VmFsdWVUeXBlcywgSW5wdXRTZWxlY3RWYWx1ZVdpdGhJZCB9IGZyb20gJ0BteXJ0ZXgtb3JnL3VpJztcclxuaW1wb3J0IHsgZGVmYXVsdFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9oZWxwZXJzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0U2VsZWN0Q29tcG9uZW50XHJcbiAgZXh0ZW5kcyBCYXNlRmllbGRDb21wb25lbnQ8SW5wdXRTZWxlY3RNb2RlbCwgSW5wdXRTZWxlY3RWYWx1ZVdpdGhJZD5cclxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuSW5wdXRTZWxlY3Q7XHJcblxyXG4gIHB1YmxpYyB2YWx1ZSE6IFNlbGVjdExpc3RJdGVtPHN0cmluZz4gfCBTZWxlY3RMaXN0SXRlbTxzdHJpbmc+W10gfCBudWxsO1xyXG5cclxuICBwdWJsaWMgdXBkYXRlVmFsdWUoZXZlbnQ6IElucHV0U2VsZWN0VmFsdWVXaXRoSWQpIHtcclxuICAgIGlmICghdGhpcy5zZXR0aW5ncy5vcHRpb25zLm11bHRpcGx5KSB7XHJcbiAgICAgIHRoaXMubW9kZWwudmFsdWUgPSBldmVudC52YWx1ZSA/IFtldmVudC52YWx1ZV0gOiBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tb2RlbC52YWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGlzcGF0Y2hNb2RpZnkoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgX2N1c3RvbUluaXQoKSB7XHJcbiAgICB0aGlzLm1vZGVsID0gdGhpcy5tb2RlbCB8fCBkZWZhdWx0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuc2V0dGluZ3Mub3B0aW9ucy5tdWx0aXBseSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5tb2RlbC52YWx1ZT8uWzBdIHx8IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5tb2RlbC52YWx1ZSB8fCBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgX2N1c3RvbU1vZGVsTW9kaWZ5KGV2ZW50OiBJbnB1dFNlbGVjdFZhbHVlV2l0aElkKSB7XHJcbiAgICB0aGlzLm1vZGVsLmRpc3BsYXlWYWx1ZSA9IHRoaXMuX2dldERpc3BsYXlWYWx1ZShldmVudC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXREaXNwbGF5VmFsdWUoc2VsZWN0ZWRWYWx1ZTogSW5wdXRTZWxlY3RWYWx1ZVR5cGVzKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5zZXR0aW5ncy5vcHRpb25zLml0ZW1zKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2VsZWN0ZWRWYWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5pdGVtc1xyXG4gICAgICAgIC5maWx0ZXIoeCA9PiB4LnZhbHVlID09PSBzZWxlY3RlZFZhbHVlKVxyXG4gICAgICAgIC5tYXAoeCA9PiB4LnRleHQpLmpvaW4oJywgJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIHNlbGVjdGVkVmFsdWUuZm9yRWFjaCh2YWwgPT4ge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLnNldHRpbmdzLm9wdGlvbnMuaXRlbXNcclxuICAgICAgICAuZmluZCh4ID0+IHgudmFsdWUgPT09IHZhbCk7XHJcblxyXG4gICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XHJcbiAgICAgICAgcmVzdWx0LnB1c2goc2VsZWN0ZWRJdGVtLnRleHQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJywgJyk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoc2V0dGluZ3MpIHtcclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VsZWN0LWNvbnRlbnRcIj5cclxuICAgIEBpZiAoc2V0dGluZ3Mub3B0aW9ucy5sYWJlbCkge1xyXG4gICAgICA8bXJ4LWxhYmVsXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInNldHRpbmdzLm9wdGlvbnMucmVxdWlyZWRcIlxyXG4gICAgICAgIFt0b29sdGlwXT1cInNldHRpbmdzLm9wdGlvbnMudG9vbHRpcCB8fCAnJ1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ210LTInXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHNldHRpbmdzLm9wdGlvbnMubGFiZWwgfX1cclxuICAgICAgPC9tcngtbGFiZWw+XHJcbiAgICB9XHJcblxyXG4gICAgPG1yeC1pbnB1dC1zZWxlY3RcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIFtmaWVsZHNdPVwiYXV0b3NhdmVGaWVsZHNcIlxyXG4gICAgICBbaXRlbXNdPVwic2V0dGluZ3Mub3B0aW9ucy5pdGVtc1wiXHJcbiAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgIFtzZWFyY2hhYmxlXT1cImZhbHNlXCJcclxuICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxyXG4gICAgICBiaW5kTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgW211bHRpcGxlXT1cInNldHRpbmdzLm9wdGlvbnMubXVsdGlwbHlcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwic2V0dGluZ3Mub3B0aW9ucy5wbGFjZWhvbGRlciB8fCAnJ1wiXHJcbiAgICAgIFtpbnZhbGlkXT1cImdldEludmFsaWRcIlxyXG4gICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiZ2V0SW52YWxpZE1lc3NhZ2VcIlxyXG4gICAgICAobW9kZWxDaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICA+PC9tcngtaW5wdXQtc2VsZWN0PlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRleC1mb3JtL3NyYy9saWIvbW9kdWxlcy9vYmplY3QtZm9ybS9jb21wb25lbnRzL2VsZW1lbnRzL2lucHV0L3NlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGV4LWZvcm0vc3JjL2xpYi9tb2R1bGVzL29iamVjdC1mb3JtL2NvbXBvbmVudHMvZWxlbWVudHMvaW5wdXQvc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFReEQsTUFBTSxPQUFPLG9CQUNYLFNBQVEsa0JBQTREO0lBUHRFOztRQVNFLFNBQUksR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO0tBb0RsQztJQWhEUSxXQUFXLENBQUMsS0FBNkI7UUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFUSxXQUFXO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVRLGtCQUFrQixDQUFDLEtBQTZCO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLGdCQUFnQixDQUFDLGFBQW9DO1FBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSztpQkFDL0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxhQUFhLENBQUM7aUJBQ3RDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUU1QixhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUs7aUJBQzdDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUM7WUFFOUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7K0dBdERVLG9CQUFvQjttR0FBcEIsb0JBQW9CLCtFQ2RqQyxxOUJBNEJBOzs0RkRkYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC1mb3JtL2VudW1zJztcclxuaW1wb3J0IHsgU2VsZWN0TGlzdEl0ZW0gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQtZm9ybS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBCYXNlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlJztcclxuaW1wb3J0IHsgSW5wdXRTZWxlY3RNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9lbGVtZXRzL2lucHV0cyc7XHJcbmltcG9ydCB7IElucHV0U2VsZWN0VmFsdWVUeXBlcywgSW5wdXRTZWxlY3RWYWx1ZVdpdGhJZCB9IGZyb20gJ0BteXJ0ZXgtb3JnL3VpJztcclxuaW1wb3J0IHsgZGVmYXVsdFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9oZWxwZXJzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWlucHV0LXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0U2VsZWN0Q29tcG9uZW50XHJcbiAgZXh0ZW5kcyBCYXNlRmllbGRDb21wb25lbnQ8SW5wdXRTZWxlY3RNb2RlbCwgSW5wdXRTZWxlY3RWYWx1ZVdpdGhJZD5cclxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgdHlwZSA9IENvbXBvbmVudFR5cGUuSW5wdXRTZWxlY3Q7XHJcblxyXG4gIHB1YmxpYyB2YWx1ZSE6IFNlbGVjdExpc3RJdGVtPHN0cmluZz4gfCBTZWxlY3RMaXN0SXRlbTxzdHJpbmc+W10gfCBudWxsO1xyXG5cclxuICBwdWJsaWMgdXBkYXRlVmFsdWUoZXZlbnQ6IElucHV0U2VsZWN0VmFsdWVXaXRoSWQpIHtcclxuICAgIGlmICghdGhpcy5zZXR0aW5ncy5vcHRpb25zLm11bHRpcGx5KSB7XHJcbiAgICAgIHRoaXMubW9kZWwudmFsdWUgPSBldmVudC52YWx1ZSA/IFtldmVudC52YWx1ZV0gOiBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tb2RlbC52YWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGlzcGF0Y2hNb2RpZnkoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgX2N1c3RvbUluaXQoKSB7XHJcbiAgICB0aGlzLm1vZGVsID0gdGhpcy5tb2RlbCB8fCBkZWZhdWx0VmFsdWVNb2RlbCh0aGlzLnNldHRpbmdzKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuc2V0dGluZ3Mub3B0aW9ucy5tdWx0aXBseSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5tb2RlbC52YWx1ZT8uWzBdIHx8IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5tb2RlbC52YWx1ZSB8fCBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgX2N1c3RvbU1vZGVsTW9kaWZ5KGV2ZW50OiBJbnB1dFNlbGVjdFZhbHVlV2l0aElkKSB7XHJcbiAgICB0aGlzLm1vZGVsLmRpc3BsYXlWYWx1ZSA9IHRoaXMuX2dldERpc3BsYXlWYWx1ZShldmVudC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXREaXNwbGF5VmFsdWUoc2VsZWN0ZWRWYWx1ZTogSW5wdXRTZWxlY3RWYWx1ZVR5cGVzKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5zZXR0aW5ncy5vcHRpb25zLml0ZW1zKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2VsZWN0ZWRWYWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3Mub3B0aW9ucy5pdGVtc1xyXG4gICAgICAgIC5maWx0ZXIoeCA9PiB4LnZhbHVlID09PSBzZWxlY3RlZFZhbHVlKVxyXG4gICAgICAgIC5tYXAoeCA9PiB4LnRleHQpLmpvaW4oJywgJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIHNlbGVjdGVkVmFsdWUuZm9yRWFjaCh2YWwgPT4ge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLnNldHRpbmdzLm9wdGlvbnMuaXRlbXNcclxuICAgICAgICAuZmluZCh4ID0+IHgudmFsdWUgPT09IHZhbCk7XHJcblxyXG4gICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XHJcbiAgICAgICAgcmVzdWx0LnB1c2goc2VsZWN0ZWRJdGVtLnRleHQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJywgJyk7XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoc2V0dGluZ3MpIHtcclxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VsZWN0LWNvbnRlbnRcIj5cclxuICAgIEBpZiAoc2V0dGluZ3Mub3B0aW9ucy5sYWJlbCkge1xyXG4gICAgICA8bXJ4LWxhYmVsXHJcbiAgICAgICAgW3JlcXVpcmVkXT1cInNldHRpbmdzLm9wdGlvbnMucmVxdWlyZWRcIlxyXG4gICAgICAgIFt0b29sdGlwXT1cInNldHRpbmdzLm9wdGlvbnMudG9vbHRpcCB8fCAnJ1wiXHJcbiAgICAgICAgW2N1c3RvbUNsYXNzZXNdPVwiJ210LTInXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHNldHRpbmdzLm9wdGlvbnMubGFiZWwgfX1cclxuICAgICAgPC9tcngtbGFiZWw+XHJcbiAgICB9XHJcblxyXG4gICAgPG1yeC1zZWxlY3RcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIFtmaWVsZHNdPVwiYXV0b3NhdmVGaWVsZHNcIlxyXG4gICAgICBbaXRlbXNdPVwic2V0dGluZ3Mub3B0aW9ucy5pdGVtc1wiXHJcbiAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgIFtzZWFyY2hhYmxlXT1cImZhbHNlXCJcclxuICAgICAgYmluZFZhbHVlPVwidmFsdWVcIlxyXG4gICAgICBiaW5kTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgW211bHRpcGxlXT1cInNldHRpbmdzLm9wdGlvbnMubXVsdGlwbHlcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwic2V0dGluZ3Mub3B0aW9ucy5wbGFjZWhvbGRlciB8fCAn0JLRi9Cx0LXRgNC40YLQtSDQt9C90LDRh9C10L3QuNC1J1wiXHJcbiAgICAgIFtpbnZhbGlkXT1cImdldEludmFsaWRcIlxyXG4gICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiZ2V0SW52YWxpZE1lc3NhZ2VcIlxyXG4gICAgICAobW9kZWxDaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICA+PC9tcngtc2VsZWN0PlxyXG4gIDwvZGl2PlxyXG59XHJcbiJdfQ==