ngx-register-base 1.3.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/esm2022/lib/components/checkbox-selector/checkbox-selector.component.mjs +3 -3
- package/esm2022/lib/components/column-settings/column-settings.component.mjs +30 -25
- package/esm2022/lib/components/column-settings/components/column-settings-template/column-settings-template.component.mjs +4 -12
- package/esm2022/lib/components/column-settings/components/reset-settings-form/reset-settings-form.component.mjs +13 -0
- package/esm2022/lib/components/column-settings/consts/column-settings.consts.mjs +9 -9
- package/esm2022/lib/components/filter-button/filter-button.component.mjs +4 -5
- package/esm2022/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.mjs +22 -22
- package/esm2022/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.mjs +9 -6
- package/esm2022/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.mjs +13 -8
- package/esm2022/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.mjs +4 -4
- package/esm2022/lib/components/filters/components/filter-list/filter-list.service.mjs +16 -13
- package/esm2022/lib/components/filters/components/filter-list/filters-section/filters-section.component.mjs +4 -4
- package/esm2022/lib/components/filters/components/filter-list.module.mjs +33 -7
- package/esm2022/lib/components/filters/register-table-filter.component.mjs +5 -4
- package/esm2022/lib/components/filters/register-table-filter.module.mjs +5 -5
- package/esm2022/lib/components/index.mjs +2 -2
- package/esm2022/lib/components/inputs/index.mjs +4 -4
- package/esm2022/lib/components/inputs/param-calendar-year/param-calendar-year.component.mjs +37 -30
- package/esm2022/lib/components/inputs/param-custom/param-custom.component.mjs +3 -3
- package/esm2022/lib/components/inputs/param-date/param-date.component.mjs +27 -15
- package/esm2022/lib/components/inputs/param-date-range/index.mjs +2 -0
- package/esm2022/lib/components/inputs/param-date-range/param-date-range.component.mjs +80 -18
- package/esm2022/lib/components/inputs/param-date-time/param-date-time.component.mjs +65 -30
- package/esm2022/lib/components/inputs/param-date-time-range/date-time-range/date-time-range.component.mjs +406 -0
- package/esm2022/lib/components/inputs/param-date-time-range/date-time-range/date-time-range.consts.mjs +13 -0
- package/esm2022/lib/components/inputs/param-date-time-range/param-date-time-range.component.mjs +31 -34
- package/esm2022/lib/components/inputs/param-dropbox/param-dropbox.component.mjs +126 -0
- package/esm2022/lib/components/inputs/param-month/param-month.component.mjs +40 -9
- package/esm2022/lib/components/inputs/param-month-range/param-month-range.component.mjs +29 -8
- package/esm2022/lib/components/inputs/param-multi-select/param-multi-select.component.mjs +97 -113
- package/esm2022/lib/components/inputs/param-select/param-select.component.mjs +40 -36
- package/esm2022/lib/components/inputs/param-switcher/index.mjs +2 -0
- package/esm2022/lib/components/inputs/param-switcher/param-switcher.component.mjs +61 -11
- package/esm2022/lib/components/inputs/param-switcher/param-switcher.types.mjs +2 -0
- package/esm2022/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.mjs +7 -25
- package/esm2022/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.mjs +21 -20
- package/esm2022/lib/components/inputs/param-text/param-text.component.mjs +11 -6
- package/esm2022/lib/components/inputs/param-textarea/param-textarea.component.mjs +5 -3
- package/esm2022/lib/components/inputs/param-toggle/param-toggle.component.mjs +24 -7
- package/esm2022/lib/components/inputs/param-tree/param-tree.component.mjs +3 -3
- package/esm2022/lib/components/inputs/param-tree/services/param-tree.service.mjs +9 -2
- package/esm2022/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.mjs +13 -6
- package/esm2022/lib/components/inputs/param-tree-select/param-tree-select.component.mjs +9 -4
- package/esm2022/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.mjs +9 -5
- package/esm2022/lib/components/inputs/sub-components/param-label-hint-icon/param-label-hint-icon.component.mjs +12 -0
- package/esm2022/lib/components/paginator/paginator.component.mjs +10 -12
- package/esm2022/lib/components/register-table/register-table.component.mjs +31 -12
- package/esm2022/lib/components/search-input/search-input.component.mjs +5 -7
- package/esm2022/lib/components/sliding-panel/sliding-panel.component.mjs +23 -35
- package/esm2022/lib/components/template-modal/index.mjs +3 -0
- package/esm2022/lib/components/template-modal/template-modal.base.mjs +16 -0
- package/esm2022/lib/components/template-modal/template-modal.component.mjs +16 -0
- package/esm2022/lib/core/param/index.mjs +1 -1
- package/esm2022/lib/core/param/param-base.mjs +28 -3
- package/esm2022/lib/core/param/param-date-base.mjs +20 -11
- package/esm2022/lib/core/param/param-select-base.mjs +14 -6
- package/esm2022/lib/core/register-base/register-base.store.mjs +1 -1
- package/esm2022/lib/directives/date/date-time.types.mjs +1 -1
- package/esm2022/lib/providers/index.mjs +2 -0
- package/esm2022/lib/providers/provide-icons.mjs +23 -0
- package/esm2022/lib/services/date-time.service.mjs +1 -38
- package/esm2022/lib/services/dialog/dialog.service.mjs +1 -13
- package/esm2022/lib/services/dialog/dialog.types.mjs +2 -2
- package/esm2022/lib/services/message.service.mjs +48 -0
- package/esm2022/lib/services/validation-message.service.mjs +52 -0
- package/esm2022/lib/store/fast-query-store.service.mjs +16 -1
- package/esm2022/lib/utils/index.mjs +2 -1
- package/esm2022/lib/utils/utils.mjs +17 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ngx-register-base.mjs +1463 -1017
- package/fesm2022/ngx-register-base.mjs.map +1 -1
- package/icons/arrow-turn-up-left.svg +3 -0
- package/icons/check.svg +3 -0
- package/icons/floppy.svg +3 -0
- package/icons/star-empty.svg +10 -0
- package/icons/star-fill.svg +3 -0
- package/icons/trash.svg +3 -0
- package/icons/xmark.svg +3 -0
- package/lib/components/column-settings/column-settings.component.d.ts +9 -9
- package/lib/components/column-settings/components/column-settings-template/column-settings-template.component.d.ts +5 -5
- package/lib/components/{reset-settings-form → column-settings/components/reset-settings-form}/reset-settings-form.component.d.ts +2 -5
- package/lib/components/column-settings/consts/column-settings.consts.d.ts +8 -8
- package/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.d.ts +5 -8
- package/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.d.ts +2 -1
- package/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.d.ts +2 -1
- package/lib/components/filters/components/filter-list/filter-list.service.d.ts +2 -3
- package/lib/components/filters/components/filter-list.module.d.ts +7 -7
- package/lib/components/filters/register-table-filter.component.d.ts +2 -1
- package/lib/components/filters/register-table-filter.module.d.ts +2 -2
- package/lib/components/index.d.ts +1 -1
- package/lib/components/inputs/index.d.ts +3 -4
- package/lib/components/inputs/param-calendar-year/param-calendar-year.component.d.ts +2 -8
- package/lib/components/inputs/param-custom/param-custom.component.d.ts +1 -1
- package/lib/components/inputs/param-date/param-date.component.d.ts +7 -10
- package/lib/components/inputs/param-date-range/index.d.ts +1 -0
- package/lib/components/inputs/param-date-range/param-date-range.component.d.ts +13 -16
- package/lib/components/inputs/param-date-time/param-date-time.component.d.ts +8 -13
- package/lib/components/inputs/param-date-time-range/date-time-range/date-time-range.component.d.ts +96 -0
- package/lib/components/inputs/param-date-time-range/date-time-range/date-time-range.consts.d.ts +12 -0
- package/lib/components/inputs/param-date-time-range/param-date-time-range.component.d.ts +17 -16
- package/lib/components/inputs/param-dropbox/param-dropbox.component.d.ts +31 -0
- package/lib/components/inputs/param-month/param-month.component.d.ts +10 -8
- package/lib/components/inputs/param-month-range/param-month-range.component.d.ts +10 -8
- package/lib/components/inputs/param-multi-select/param-multi-select.component.d.ts +9 -11
- package/lib/components/inputs/param-select/param-select.component.d.ts +9 -12
- package/lib/components/inputs/param-switcher/index.d.ts +2 -0
- package/lib/components/inputs/param-switcher/param-switcher.component.d.ts +21 -5
- package/lib/components/inputs/param-switcher/param-switcher.types.d.ts +7 -0
- package/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.d.ts +3 -2
- package/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.d.ts +5 -4
- package/lib/components/inputs/param-text/param-text.component.d.ts +6 -4
- package/lib/components/inputs/param-textarea/param-textarea.component.d.ts +2 -1
- package/lib/components/inputs/param-toggle/param-toggle.component.d.ts +3 -2
- package/lib/components/inputs/param-tree/services/param-tree.service.d.ts +1 -1
- package/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.d.ts +2 -1
- package/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.d.ts +2 -1
- package/lib/components/inputs/sub-components/param-label-hint-icon/param-label-hint-icon.component.d.ts +5 -0
- package/lib/components/paginator/paginator.component.d.ts +3 -4
- package/lib/components/register-table/register-table.component.d.ts +5 -3
- package/lib/components/sliding-panel/sliding-panel.component.d.ts +8 -8
- package/lib/components/template-modal/index.d.ts +2 -0
- package/lib/components/template-modal/template-modal.base.d.ts +9 -0
- package/lib/components/template-modal/template-modal.component.d.ts +6 -0
- package/lib/core/param/index.d.ts +1 -0
- package/lib/core/param/param-base.d.ts +18 -2
- package/lib/core/param/param-date-base.d.ts +15 -9
- package/lib/core/param/param-select-base.d.ts +12 -7
- package/lib/core/register-base/register-base.store.d.ts +2 -3
- package/lib/directives/date/date-time.types.d.ts +0 -2
- package/lib/providers/index.d.ts +1 -0
- package/lib/providers/provide-icons.d.ts +3 -0
- package/lib/services/date-time.service.d.ts +0 -13
- package/lib/services/dialog/dialog.service.d.ts +1 -3
- package/lib/services/dialog/dialog.types.d.ts +0 -3
- package/lib/services/message.service.d.ts +20 -0
- package/lib/services/validation-message.service.d.ts +14 -0
- package/lib/store/fast-query-store.service.d.ts +1 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/utils.d.ts +3 -0
- package/package.json +5 -12
- package/public-api.d.ts +1 -0
- package/styles/common-param.less +15 -0
- package/styles/flex.less +5 -1
- package/styles/icons.less +8 -0
- package/styles/modals.less +54 -0
- package/styles/overrides/tui/tui-input.less +94 -121
- package/styles/styles.less +2 -0
- package/esm2022/lib/components/inputs/inputs.module.mjs +0 -166
- package/esm2022/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.mjs +0 -15
- package/esm2022/lib/components/reset-settings-form/reset-settings-form.component.mjs +0 -18
- package/esm2022/lib/components/sliding-panel/sliding-panel.module.mjs +0 -19
- package/esm2022/lib/utils/prizm.shared.module.mjs +0 -284
- package/icons/calendar-blank.svg +0 -10
- package/lib/components/inputs/inputs.module.d.ts +0 -31
- package/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.d.ts +0 -6
- package/lib/components/sliding-panel/sliding-panel.module.d.ts +0 -9
- package/lib/utils/prizm.shared.module.d.ts +0 -14
- /package/icons/{calendar-icon.svg → calendar-date-time.svg} +0 -0
- /package/icons/{calendar-custom.svg → calendar-date.svg} +0 -0
package/README.md
CHANGED
|
@@ -19,6 +19,16 @@ angular.json:
|
|
|
19
19
|
}
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
+
app.component.ts:
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
import { provideSprocIcons } from './provide-icons';
|
|
26
|
+
|
|
27
|
+
providers: [provideSprocIcons()];
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
> Провайд в app.config.ts ломает иерархию DI и не находит дефолтный
|
|
31
|
+
|
|
22
32
|
## Подключение стилей
|
|
23
33
|
|
|
24
34
|
angular.json:
|
|
@@ -109,7 +109,7 @@ export class CheckboxSelectorComponent {
|
|
|
109
109
|
this.close();
|
|
110
110
|
}
|
|
111
111
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CheckboxSelectorComponent, isStandalone: true, selector: "sproc-checkbox-selector", inputs: { totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, inputMaxValue: { classPropertyName: "inputMaxValue", publicName: "inputMaxValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onApply: "onApply" }, ngImport: i0, template: "<div class=\"checkbox__container\" (click)=\"toggle(); $event.stopImmediatePropagation()\">\n @let indeterminate = calcIndeterminate();\n @let checked = calcChecked();\n\n <input\n tuiCheckbox\n size=\"s\"\n type=\"checkbox\"\n [indeterminate]=\"indeterminate\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen()\"\n [checked]=\"checked\"\n />\n</div>\n\n<ng-template #dropdown>\n <section class=\"dropdown__content\" id=\"checkbox__dropdown__content\">\n @let selected = selectedElement();\n\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.ALL\"\n (click)=\"selectElement(ESelectionTypes.ALL)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.VISIBLE\"\n (click)=\"selectElement(ESelectionTypes.VISIBLE)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0438\u0434\u0438\u043C\u043E\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.INVERSE\"\n (click)=\"selectElement(ESelectionTypes.INVERSE)\"\n >\n \u041A\u0440\u043E\u043C\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\n </span>\n <div\n class=\"dropdown__select-value\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.COUNT\"\n >\n <span>\u0412\u044B\u0431\u0440\u0430\u0442\u044C</span>\n <tui-textfield\n tuiTextfieldSize=\"s\"\n tuiTextfieldAppearance=\"textfield\"\n [tuiTextfieldCleaner]=\"true\"\n class=\"flex-1\"\n >\n <input\n tuiInputNumber\n placeholder=\"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E\"\n [max]=\"inputMaxValue()\"\n [ngModel]=\"inputValue()\"\n (ngModelChange)=\"inputValueChanges($event)\"\n (focusin)=\"onInputFocus()\"\n />\n\n @if (inputDescription()) {\n <tui-icon
|
|
112
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CheckboxSelectorComponent, isStandalone: true, selector: "sproc-checkbox-selector", inputs: { totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, inputMaxValue: { classPropertyName: "inputMaxValue", publicName: "inputMaxValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onApply: "onApply" }, ngImport: i0, template: "<div class=\"checkbox__container\" (click)=\"toggle(); $event.stopImmediatePropagation()\">\n @let indeterminate = calcIndeterminate();\n @let checked = calcChecked();\n\n <input\n tuiCheckbox\n size=\"s\"\n type=\"checkbox\"\n [indeterminate]=\"indeterminate\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen()\"\n [checked]=\"checked\"\n />\n</div>\n\n<ng-template #dropdown>\n <section class=\"dropdown__content\" id=\"checkbox__dropdown__content\">\n @let selected = selectedElement();\n\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.ALL\"\n (click)=\"selectElement(ESelectionTypes.ALL)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.VISIBLE\"\n (click)=\"selectElement(ESelectionTypes.VISIBLE)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0438\u0434\u0438\u043C\u043E\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.INVERSE\"\n (click)=\"selectElement(ESelectionTypes.INVERSE)\"\n >\n \u041A\u0440\u043E\u043C\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\n </span>\n <div\n class=\"dropdown__select-value\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.COUNT\"\n >\n <span>\u0412\u044B\u0431\u0440\u0430\u0442\u044C</span>\n <tui-textfield\n tuiTextfieldSize=\"s\"\n tuiTextfieldAppearance=\"textfield\"\n [tuiTextfieldCleaner]=\"true\"\n class=\"flex-1\"\n >\n <input\n tuiInputNumber\n placeholder=\"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E\"\n [max]=\"inputMaxValue()\"\n [ngModel]=\"inputValue()\"\n (ngModelChange)=\"inputValueChanges($event)\"\n (focusin)=\"onInputFocus()\"\n />\n\n @if (inputDescription()) {\n <tui-icon icon=\"@sproc.circle-question-empty\" [tuiTooltip]=\"inputDescription()\" />\n }\n </tui-textfield>\n </div>\n <div class=\"dropdown__footer\">\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__apply\"\n size=\"m\"\n appearance=\"outline\"\n [loading]=\"loading()\"\n (click)=\"applySelection()\"\n >\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__cancel\"\n size=\"m\"\n appearance=\"outline-grayscale\"\n (click)=\"dropSelection()\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n </div>\n </section>\n</ng-template>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}.dropdown__content{display:flex;flex-direction:column;padding:8px 0;width:260px}.dropdown__element,.dropdown__select-value,.dropdown__button{padding:8px 16px}.dropdown__button{padding:2px 0;flex:1;width:109px}.dropdown__element{cursor:pointer;overflow:hidden;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__element:hover{background:#f7f9fa;color:var(--text-main)}.dropdown__element_selected{background:#d0edff}.dropdown__select-value{display:flex;align-items:center;padding:4px 16px;gap:8px}.dropdown__select-value span{cursor:default;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__select-value tui-textfield input{font:var(--input-text-14px)!important}.dropdown__footer{padding:0 16px;display:flex;justify-content:center;gap:10px;margin-top:4px}.flex-1{display:flex;flex:1}\n"], dependencies: [{ kind: "component", type: TuiCheckbox, selector: "input[type=\"checkbox\"][tuiCheckbox]", inputs: ["size"] }, { kind: "directive", type: i1.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container):not(ng-template)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { kind: "directive", type: i1.TuiDropdownManual, selector: "[tuiDropdownManual]", inputs: ["tuiDropdownManual"] }, { kind: "component", type: i1.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i1.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i3.TuiTextfieldAppearanceDirective, selector: "[tuiTextfieldAppearance]", inputs: ["tuiTextfieldAppearance"] }, { kind: "directive", type: i3.TuiTextfieldCleanerDirective, selector: "[tuiTextfieldCleaner]", inputs: ["tuiTextfieldCleaner"] }, { kind: "directive", type: i3.TuiTextfieldSizeDirective, selector: "[tuiTextfieldSize]", inputs: ["tuiTextfieldSize"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "directive", type: i4.TuiInputNumberDirective, selector: "input[tuiInputNumber]", inputs: ["min", "max", "prefix", "postfix"] }, { kind: "directive", type: TuiTooltip, selector: "tui-icon[tuiTooltip]", inputs: ["size"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
113
113
|
}
|
|
114
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CheckboxSelectorComponent, decorators: [{
|
|
115
115
|
type: Component,
|
|
@@ -124,6 +124,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
124
124
|
TuiInputNumber,
|
|
125
125
|
TuiTooltip,
|
|
126
126
|
TuiIcon,
|
|
127
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__container\" (click)=\"toggle(); $event.stopImmediatePropagation()\">\n @let indeterminate = calcIndeterminate();\n @let checked = calcChecked();\n\n <input\n tuiCheckbox\n size=\"s\"\n type=\"checkbox\"\n [indeterminate]=\"indeterminate\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen()\"\n [checked]=\"checked\"\n />\n</div>\n\n<ng-template #dropdown>\n <section class=\"dropdown__content\" id=\"checkbox__dropdown__content\">\n @let selected = selectedElement();\n\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.ALL\"\n (click)=\"selectElement(ESelectionTypes.ALL)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.VISIBLE\"\n (click)=\"selectElement(ESelectionTypes.VISIBLE)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0438\u0434\u0438\u043C\u043E\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.INVERSE\"\n (click)=\"selectElement(ESelectionTypes.INVERSE)\"\n >\n \u041A\u0440\u043E\u043C\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\n </span>\n <div\n class=\"dropdown__select-value\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.COUNT\"\n >\n <span>\u0412\u044B\u0431\u0440\u0430\u0442\u044C</span>\n <tui-textfield\n tuiTextfieldSize=\"s\"\n tuiTextfieldAppearance=\"textfield\"\n [tuiTextfieldCleaner]=\"true\"\n class=\"flex-1\"\n >\n <input\n tuiInputNumber\n placeholder=\"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E\"\n [max]=\"inputMaxValue()\"\n [ngModel]=\"inputValue()\"\n (ngModelChange)=\"inputValueChanges($event)\"\n (focusin)=\"onInputFocus()\"\n />\n\n @if (inputDescription()) {\n <tui-icon
|
|
127
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__container\" (click)=\"toggle(); $event.stopImmediatePropagation()\">\n @let indeterminate = calcIndeterminate();\n @let checked = calcChecked();\n\n <input\n tuiCheckbox\n size=\"s\"\n type=\"checkbox\"\n [indeterminate]=\"indeterminate\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen()\"\n [checked]=\"checked\"\n />\n</div>\n\n<ng-template #dropdown>\n <section class=\"dropdown__content\" id=\"checkbox__dropdown__content\">\n @let selected = selectedElement();\n\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.ALL\"\n (click)=\"selectElement(ESelectionTypes.ALL)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.VISIBLE\"\n (click)=\"selectElement(ESelectionTypes.VISIBLE)\"\n >\n \u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0438\u0434\u0438\u043C\u043E\u0435\n </span>\n <span\n class=\"dropdown__element\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.INVERSE\"\n (click)=\"selectElement(ESelectionTypes.INVERSE)\"\n >\n \u041A\u0440\u043E\u043C\u0435 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\n </span>\n <div\n class=\"dropdown__select-value\"\n [class.dropdown__element_selected]=\"selected === ESelectionTypes.COUNT\"\n >\n <span>\u0412\u044B\u0431\u0440\u0430\u0442\u044C</span>\n <tui-textfield\n tuiTextfieldSize=\"s\"\n tuiTextfieldAppearance=\"textfield\"\n [tuiTextfieldCleaner]=\"true\"\n class=\"flex-1\"\n >\n <input\n tuiInputNumber\n placeholder=\"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043B\u043E\"\n [max]=\"inputMaxValue()\"\n [ngModel]=\"inputValue()\"\n (ngModelChange)=\"inputValueChanges($event)\"\n (focusin)=\"onInputFocus()\"\n />\n\n @if (inputDescription()) {\n <tui-icon icon=\"@sproc.circle-question-empty\" [tuiTooltip]=\"inputDescription()\" />\n }\n </tui-textfield>\n </div>\n <div class=\"dropdown__footer\">\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__apply\"\n size=\"m\"\n appearance=\"outline\"\n [loading]=\"loading()\"\n (click)=\"applySelection()\"\n >\n \u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C\n </button>\n <button\n tuiButton\n class=\"dropdown__button dropdown__button__cancel\"\n size=\"m\"\n appearance=\"outline-grayscale\"\n (click)=\"dropSelection()\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n </div>\n </section>\n</ng-template>\n", styles: [".input-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-text-12px,.body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.table-heading-12px{font-family:Inter,serif;font-size:12px;font-weight:500;line-height:16px}.table-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.table-text-12px-400{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:16px}.table-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.button-links-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.button-links-12px-600{font-family:Inter,serif;font-size:12px;font-weight:600;line-height:16px}.button-links-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.input-label{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:16px}.input-area{font-family:Inter,serif;font-size:12px;font-weight:400;line-height:20px}.static-title-h3{font-family:Inter,serif;font-size:16px;font-weight:600;line-height:20px}.static-title-h4{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.dynamic-title-h4{font-family:Inter,serif;font-size:14px;font-weight:800;line-height:20px}.main-body-text-12px{font-family:Inter,serif;font-size:12px;font-weight:300;line-height:20px}.main-body-text-14px{font-family:Inter,serif;font-size:14px;font-weight:300;line-height:20px}.main-subscription{font-family:Inter,serif;font-size:10px;font-weight:400;line-height:12px}.input-helper-9px{font-family:Inter,serif;font-size:9px;font-weight:300;line-height:12px}.typography-content-text{font-family:Inter,serif;font-size:12px;font-weight:350;line-height:16px}.main-subtitle,.card-content-text{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.filter-header-text{font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.btn-14px{font-family:Inter,serif;font-size:14px;font-weight:400;line-height:16px}.search-11px{font-family:Inter,serif;font-size:11px;font-weight:300;line-height:12px}:root{--input-text-12px: normal 300 12px / 16px \"Inter\";--input-text-14px: normal 300 14px / 16px \"Inter\"}.dropdown__content{display:flex;flex-direction:column;padding:8px 0;width:260px}.dropdown__element,.dropdown__select-value,.dropdown__button{padding:8px 16px}.dropdown__button{padding:2px 0;flex:1;width:109px}.dropdown__element{cursor:pointer;overflow:hidden;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__element:hover{background:#f7f9fa;color:var(--text-main)}.dropdown__element_selected{background:#d0edff}.dropdown__select-value{display:flex;align-items:center;padding:4px 16px;gap:8px}.dropdown__select-value span{cursor:default;font-family:Inter,serif;font-size:14px;font-weight:300;line-height:16px}.dropdown__select-value tui-textfield input{font:var(--input-text-14px)!important}.dropdown__footer{padding:0 16px;display:flex;justify-content:center;gap:10px;margin-top:4px}.flex-1{display:flex;flex:1}\n"] }]
|
|
128
128
|
}], ctorParameters: () => [] });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrYm94LXNlbGVjdG9yL2NoZWNrYm94LXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC1zZWxlY3Rvci9jaGVja2JveC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQXFCN0QsTUFBTSxPQUFPLHlCQUF5QjtJQStCcEM7UUE5Qk8saUJBQVksR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN0Qywy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QUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQzsrR0F2SVUseUJBQXlCO21HQUF6Qix5QkFBeUIsNnhCQ3ZDdEMsNDhGQTJGQSxrb0dEakVJLFdBQVcseXJCQUdYLFdBQVcsOG1CQUNYLDRCQUE0QixxYUFDNUIsU0FBUyxvSUFDVCxnQkFBZ0IsZ1FBRWhCLFVBQVUsbUZBQ1YsT0FBTzs7NEZBSUUseUJBQXlCO2tCQW5CckMsU0FBUzsrQkFDRSx5QkFBeUIsY0FHdkIsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsNEJBQTRCO3dCQUM1QixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLE9BQU87cUJBQ1IsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdGlvblR5cGVzLCBBcHBseVNlbGVjdGlvblR5cGVzIH0gZnJvbSAnLi9jaGVja2JveC1zZWxlY3Rvci50eXBlcyc7XG5pbXBvcnQgeyBUdWlCdXR0b25Mb2FkaW5nLCBUdWlDaGVja2JveCwgVHVpSW5wdXROdW1iZXIsIFR1aVRvb2x0aXAgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IFR1aUJ1dHRvbiwgVHVpRHJvcGRvd24sIFR1aUljb24sIFR1aVRleHRmaWVsZCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3knO1xuaW1wb3J0IHsgU2NhbGFyVVVJRCB9IGZyb20gJ2hhc3VyYSc7XG5pbXBvcnQgeyBFUmVnaXN0ZXJPYmplY3RTdGF0ZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFNlbGVjdGVkT2JqZWN0c1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Byb2MtY2hlY2tib3gtc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC1zZWxlY3Rvci5jb21wb25lbnQubGVzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgVHVpQ2hlY2tib3gsXG4gICAgVHVpRHJvcGRvd24sXG4gICAgVHVpVGV4dGZpZWxkLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgVHVpQnV0dG9uLFxuICAgIFR1aUJ1dHRvbkxvYWRpbmcsXG4gICAgVHVpSW5wdXROdW1iZXIsXG4gICAgVHVpVG9vbHRpcCxcbiAgICBUdWlJY29uLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hTZWxlY3RvckNvbXBvbmVudCB7XG4gIHB1YmxpYyB0b3RhbFJlY29yZHMgPSBpbnB1dDxudW1iZXI+KCk7XG4gIC8qKiBAZGVwcmVjYXRlZCDQuNGB0L/QvtC70YzQt9GD0LnRgtC1IHN0YXRlT2JqZWN0cyAqL1xuICBwdWJsaWMgc2VsZWN0ZWQgPSBpbnB1dChuZXcgU2V0PFNjYWxhclVVSUQ+KCkpO1xuICBwdWJsaWMgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gIHB1YmxpYyBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbiB8IG51bGw+KGZhbHNlKTtcbiAgcHVibGljIGlucHV0TWF4VmFsdWUgPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgb25BcHBseSA9IG91dHB1dDxBcHBseVNlbGVjdGlvblR5cGVzPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkU2VydmljZSA9IGluamVjdChTZWxlY3RlZE9iamVjdHNTdGF0ZVNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEVTZWxlY3Rpb25UeXBlcyA9IFNlbGVjdGlvblR5cGVzO1xuXG4gIHByb3RlY3RlZCBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRFbGVtZW50ID0gc2lnbmFsPFNlbGVjdGlvblR5cGVzIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBpbnB1dFZhbHVlID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpbnB1dERlc2NyaXB0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1heCA9IHRoaXMuaW5wdXRNYXhWYWx1ZSgpO1xuXG4gICAgaWYgKG1heCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBg0JzQsNC60YHQuNC80YPQvCDQtNC70Y8g0LLQstC+0LTQsCAtICR7bWF4fWA7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBzdGF0ZU9iamVjdHMgPSB0aGlzLl9zZWxlY3RlZFNlcnZpY2U/LnN0YXRlO1xuICBwcm90ZWN0ZWQgc3RhdGVVbmZldGNoZWRPYmplY3RzID0gdGhpcy5fc2VsZWN0ZWRTZXJ2aWNlPy5zdGF0ZVVuZmV0Y2hlZE9iamVjdHM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxvYWRpbmcgPSB0aGlzLmxvYWRpbmcoKTtcbiAgICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMubG9hZGluZygpO1xuXG4gICAgICBpZiAobG9hZGluZyA9PT0gZmFsc2UgJiYgaXNPcGVuKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RFbGVtZW50KG5ld0VsZW1lbnQ6IFNlbGVjdGlvblR5cGVzKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQudXBkYXRlKChjdXJyZW50RWxlbWVudCkgPT5cbiAgICAgIGN1cnJlbnRFbGVtZW50ID09PSBuZXdFbGVtZW50ID8gbnVsbCA6IG5ld0VsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW5wdXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQoU2VsZWN0aW9uVHlwZXMuQ09VTlQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFwcGx5U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGxldCByZXN1bHQ6IFNlbGVjdGlvblR5cGVzIHwgbnVtYmVyIHwgbnVsbCA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50KCk7XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQgPT09IFNlbGVjdGlvblR5cGVzLkNPVU5UKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLmlucHV0VmFsdWUoKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQXBwbHkuZW1pdChyZXN1bHQpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHRoaXMuaXNPcGVuLnVwZGF0ZSgoaXNPcGVuKSA9PiAhaXNPcGVuKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FsY0luZGV0ZXJtaW5hdGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlT2JqZWN0cz8uKCk7XG5cbiAgICBpZiAoc3RhdGUpIHtcbiAgICAgIGNvbnN0IGZldGNoZWRPYmplY3RzID0gWy4uLnN0YXRlLnZhbHVlcygpXTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkT2JqZWN0cyA9IGZldGNoZWRPYmplY3RzLmZpbHRlcihcbiAgICAgICAgKG9iaikgPT4gb2JqLnN0YXRlID09PSBFUmVnaXN0ZXJPYmplY3RTdGF0ZS5TRUxFQ1RFRFxuICAgICAgKTtcblxuICAgICAgY29uc3Qgc29tZUZldGNoZWRJc05vdFNlbGVjdGVkID0gZmV0Y2hlZE9iamVjdHMubGVuZ3RoICE9PSBzZWxlY3RlZE9iamVjdHMubGVuZ3RoO1xuICAgICAgY29uc3QgZmV0Y2hlZElzQWxsID0gZmV0Y2hlZE9iamVjdHMubGVuZ3RoID09PSB0aGlzLnRvdGFsUmVjb3JkcygpO1xuICAgICAgY29uc3QgdW5mZXRjaGVkQXJlU2VsZWN0ZWQgPSB0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyEoKSA9PT0gRVJlZ2lzdGVyT2JqZWN0U3RhdGUuU0VMRUNURUQ7XG5cbiAgICAgIGlmIChzZWxlY3RlZE9iamVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gc29tZUZldGNoZWRJc05vdFNlbGVjdGVkIHx8ICEoZmV0Y2hlZElzQWxsIHx8IHVuZmV0Y2hlZEFyZVNlbGVjdGVkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICFmZXRjaGVkSXNBbGwgJiYgdW5mZXRjaGVkQXJlU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQoKS5zaXplID4gMCAmJiB0aGlzLnNlbGVjdGVkKCkuc2l6ZSAhPT0gdGhpcy50b3RhbFJlY29yZHMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYWxjQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVPYmplY3RzPy4oKTtcblxuICAgIGlmIChzdGF0ZSkge1xuICAgICAgY29uc3QgZmV0Y2hlZE9iamVjdHMgPSBbLi4uc3RhdGUudmFsdWVzKCldO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRPYmplY3RzID0gZmV0Y2hlZE9iamVjdHMuZmlsdGVyKFxuICAgICAgICAob2JqKSA9PiBvYmouc3RhdGUgPT09IEVSZWdpc3Rlck9iamVjdFN0YXRlLlNFTEVDVEVEXG4gICAgICApO1xuXG4gICAgICBjb25zdCBmZXRjaGVkQXJlU2VsZWN0ZWQgPSBmZXRjaGVkT2JqZWN0cy5sZW5ndGggPT09IHNlbGVjdGVkT2JqZWN0cy5sZW5ndGg7XG4gICAgICBjb25zdCBzZWxlY3RlZElzQWxsID0gc2VsZWN0ZWRPYmplY3RzLmxlbmd0aCA9PT0gdGhpcy50b3RhbFJlY29yZHMoKTtcbiAgICAgIGNvbnN0IHVuZmV0Y2hlZEFyZVNlbGVjdGVkID0gdGhpcy5zdGF0ZVVuZmV0Y2hlZE9iamVjdHMhKCkgPT09IEVSZWdpc3Rlck9iamVjdFN0YXRlLlNFTEVDVEVEO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBzZWxlY3RlZE9iamVjdHMubGVuZ3RoID4gMCAmJiBmZXRjaGVkQXJlU2VsZWN0ZWQgJiYgKHNlbGVjdGVkSXNBbGwgfHwgdW5mZXRjaGVkQXJlU2VsZWN0ZWQpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkKCkuc2l6ZSA+IDAgJiYgdGhpcy5zZWxlY3RlZCgpLnNpemUgPT09IHRoaXMudG90YWxSZWNvcmRzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGlucHV0VmFsdWVDaGFuZ2VzKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQoU2VsZWN0aW9uVHlwZXMuQ09VTlQpO1xuICAgIHRoaXMuaW5wdXRWYWx1ZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFZhbHVlLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQobnVsbCk7XG4gICAgdGhpcy5vbkFwcGx5LmVtaXQobnVsbCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hlY2tib3hfX2NvbnRhaW5lclwiIChjbGljayk9XCJ0b2dnbGUoKTsgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXCI+XG4gIEBsZXQgaW5kZXRlcm1pbmF0ZSA9IGNhbGNJbmRldGVybWluYXRlKCk7XG4gIEBsZXQgY2hlY2tlZCA9IGNhbGNDaGVja2VkKCk7XG5cbiAgPGlucHV0XG4gICAgdHVpQ2hlY2tib3hcbiAgICBzaXplPVwic1wiXG4gICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICBbaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25cIlxuICAgIFt0dWlEcm9wZG93bk1hbnVhbF09XCJpc09wZW4oKVwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gIC8+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkcm9wZG93bj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJkcm9wZG93bl9fY29udGVudFwiIGlkPVwiY2hlY2tib3hfX2Ryb3Bkb3duX19jb250ZW50XCI+XG4gICAgQGxldCBzZWxlY3RlZCA9IHNlbGVjdGVkRWxlbWVudCgpO1xuXG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2VsZW1lbnRcIlxuICAgICAgW2NsYXNzLmRyb3Bkb3duX19lbGVtZW50X3NlbGVjdGVkXT1cInNlbGVjdGVkID09PSBFU2VsZWN0aW9uVHlwZXMuQUxMXCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RFbGVtZW50KEVTZWxlY3Rpb25UeXBlcy5BTEwpXCJcbiAgICA+XG4gICAgICDQktGL0LHRgNCw0YLRjCDQstGB0LVcbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2VsZW1lbnRcIlxuICAgICAgW2NsYXNzLmRyb3Bkb3duX19lbGVtZW50X3NlbGVjdGVkXT1cInNlbGVjdGVkID09PSBFU2VsZWN0aW9uVHlwZXMuVklTSUJMRVwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0RWxlbWVudChFU2VsZWN0aW9uVHlwZXMuVklTSUJMRSlcIlxuICAgID5cbiAgICAgINCS0YvQsdGA0LDRgtGMINCy0LjQtNC40LzQvtC1XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImRyb3Bkb3duX19lbGVtZW50XCJcbiAgICAgIFtjbGFzcy5kcm9wZG93bl9fZWxlbWVudF9zZWxlY3RlZF09XCJzZWxlY3RlZCA9PT0gRVNlbGVjdGlvblR5cGVzLklOVkVSU0VcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEVsZW1lbnQoRVNlbGVjdGlvblR5cGVzLklOVkVSU0UpXCJcbiAgICA+XG4gICAgICDQmtGA0L7QvNC1INCy0YvQtNC10LvQtdC90L3QvtCz0L5cbiAgICA8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkcm9wZG93bl9fc2VsZWN0LXZhbHVlXCJcbiAgICAgIFtjbGFzcy5kcm9wZG93bl9fZWxlbWVudF9zZWxlY3RlZF09XCJzZWxlY3RlZCA9PT0gRVNlbGVjdGlvblR5cGVzLkNPVU5UXCJcbiAgICA+XG4gICAgICA8c3Bhbj7QktGL0LHRgNCw0YLRjDwvc3Bhbj5cbiAgICAgIDx0dWktdGV4dGZpZWxkXG4gICAgICAgIHR1aVRleHRmaWVsZFNpemU9XCJzXCJcbiAgICAgICAgdHVpVGV4dGZpZWxkQXBwZWFyYW5jZT1cInRleHRmaWVsZFwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRDbGVhbmVyXT1cInRydWVcIlxuICAgICAgICBjbGFzcz1cImZsZXgtMVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR1aUlucHV0TnVtYmVyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLQktCy0LXQtNC40YLQtSDRh9C40YHQu9C+XCJcbiAgICAgICAgICBbbWF4XT1cImlucHV0TWF4VmFsdWUoKVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwiaW5wdXRWYWx1ZSgpXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlcygkZXZlbnQpXCJcbiAgICAgICAgICAoZm9jdXNpbik9XCJvbklucHV0Rm9jdXMoKVwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgQGlmIChpbnB1dERlc2NyaXB0aW9uKCkpIHtcbiAgICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgIGljb249XCJhc3NldHMvbmd4LXJlZ2lzdGVyLWJhc2UvaWNvbnMvY2lyY2xlLXF1ZXN0aW9uLWVtcHR5LnN2Z1wiXG4gICAgICAgICAgICBbdHVpVG9vbHRpcF09XCJpbnB1dERlc2NyaXB0aW9uKClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgIDwvdHVpLXRleHRmaWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25fX2Zvb3RlclwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bl9fYnV0dG9uIGRyb3Bkb3duX19idXR0b25fX2FwcGx5XCJcbiAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXG4gICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmcoKVwiXG4gICAgICAgIChjbGljayk9XCJhcHBseVNlbGVjdGlvbigpXCJcbiAgICAgID5cbiAgICAgICAg0J/RgNC40LzQtdC90LjRgtGMXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2J1dHRvbiBkcm9wZG93bl9fYnV0dG9uX19jYW5jZWxcIlxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIGFwcGVhcmFuY2U9XCJvdXRsaW5lLWdyYXlzY2FsZVwiXG4gICAgICAgIChjbGljayk9XCJkcm9wU2VsZWN0aW9uKClcIlxuICAgICAgPlxuICAgICAgICDQntGC0LzQtdC90LBcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrYm94LXNlbGVjdG9yL2NoZWNrYm94LXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC1zZWxlY3Rvci9jaGVja2JveC1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQXFCN0QsTUFBTSxPQUFPLHlCQUF5QjtJQStCcEM7UUE5Qk8saUJBQVksR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUN0Qywy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QUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQzsrR0F2SVUseUJBQXlCO21HQUF6Qix5QkFBeUIsNnhCQ3ZDdEMsMjRGQXdGQSxrb0dEOURJLFdBQVcseXJCQUdYLFdBQVcsOG1CQUNYLDRCQUE0QixxYUFDNUIsU0FBUyxvSUFDVCxnQkFBZ0IsZ1FBRWhCLFVBQVUsbUZBQ1YsT0FBTzs7NEZBSUUseUJBQXlCO2tCQW5CckMsU0FBUzsrQkFDRSx5QkFBeUIsY0FHdkIsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsNEJBQTRCO3dCQUM1QixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLE9BQU87cUJBQ1IsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdGlvblR5cGVzLCBBcHBseVNlbGVjdGlvblR5cGVzIH0gZnJvbSAnLi9jaGVja2JveC1zZWxlY3Rvci50eXBlcyc7XG5pbXBvcnQgeyBUdWlCdXR0b25Mb2FkaW5nLCBUdWlDaGVja2JveCwgVHVpSW5wdXROdW1iZXIsIFR1aVRvb2x0aXAgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IFR1aUJ1dHRvbiwgVHVpRHJvcGRvd24sIFR1aUljb24sIFR1aVRleHRmaWVsZCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3knO1xuaW1wb3J0IHsgU2NhbGFyVVVJRCB9IGZyb20gJ2hhc3VyYSc7XG5pbXBvcnQgeyBFUmVnaXN0ZXJPYmplY3RTdGF0ZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFNlbGVjdGVkT2JqZWN0c1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Byb2MtY2hlY2tib3gtc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3gtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC1zZWxlY3Rvci5jb21wb25lbnQubGVzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgVHVpQ2hlY2tib3gsXG4gICAgVHVpRHJvcGRvd24sXG4gICAgVHVpVGV4dGZpZWxkLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgVHVpQnV0dG9uLFxuICAgIFR1aUJ1dHRvbkxvYWRpbmcsXG4gICAgVHVpSW5wdXROdW1iZXIsXG4gICAgVHVpVG9vbHRpcCxcbiAgICBUdWlJY29uLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hTZWxlY3RvckNvbXBvbmVudCB7XG4gIHB1YmxpYyB0b3RhbFJlY29yZHMgPSBpbnB1dDxudW1iZXI+KCk7XG4gIC8qKiBAZGVwcmVjYXRlZCDQuNGB0L/QvtC70YzQt9GD0LnRgtC1IHN0YXRlT2JqZWN0cyAqL1xuICBwdWJsaWMgc2VsZWN0ZWQgPSBpbnB1dChuZXcgU2V0PFNjYWxhclVVSUQ+KCkpO1xuICBwdWJsaWMgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gIHB1YmxpYyBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbiB8IG51bGw+KGZhbHNlKTtcbiAgcHVibGljIGlucHV0TWF4VmFsdWUgPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgb25BcHBseSA9IG91dHB1dDxBcHBseVNlbGVjdGlvblR5cGVzPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdGVkU2VydmljZSA9IGluamVjdChTZWxlY3RlZE9iamVjdHNTdGF0ZVNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEVTZWxlY3Rpb25UeXBlcyA9IFNlbGVjdGlvblR5cGVzO1xuXG4gIHByb3RlY3RlZCBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRFbGVtZW50ID0gc2lnbmFsPFNlbGVjdGlvblR5cGVzIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBpbnB1dFZhbHVlID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpbnB1dERlc2NyaXB0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1heCA9IHRoaXMuaW5wdXRNYXhWYWx1ZSgpO1xuXG4gICAgaWYgKG1heCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBg0JzQsNC60YHQuNC80YPQvCDQtNC70Y8g0LLQstC+0LTQsCAtICR7bWF4fWA7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBzdGF0ZU9iamVjdHMgPSB0aGlzLl9zZWxlY3RlZFNlcnZpY2U/LnN0YXRlO1xuICBwcm90ZWN0ZWQgc3RhdGVVbmZldGNoZWRPYmplY3RzID0gdGhpcy5fc2VsZWN0ZWRTZXJ2aWNlPy5zdGF0ZVVuZmV0Y2hlZE9iamVjdHM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGxvYWRpbmcgPSB0aGlzLmxvYWRpbmcoKTtcbiAgICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMubG9hZGluZygpO1xuXG4gICAgICBpZiAobG9hZGluZyA9PT0gZmFsc2UgJiYgaXNPcGVuKSB7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RFbGVtZW50KG5ld0VsZW1lbnQ6IFNlbGVjdGlvblR5cGVzKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQudXBkYXRlKChjdXJyZW50RWxlbWVudCkgPT5cbiAgICAgIGN1cnJlbnRFbGVtZW50ID09PSBuZXdFbGVtZW50ID8gbnVsbCA6IG5ld0VsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW5wdXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQoU2VsZWN0aW9uVHlwZXMuQ09VTlQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFwcGx5U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGxldCByZXN1bHQ6IFNlbGVjdGlvblR5cGVzIHwgbnVtYmVyIHwgbnVsbCA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50KCk7XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChyZXN1bHQgPT09IFNlbGVjdGlvblR5cGVzLkNPVU5UKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLmlucHV0VmFsdWUoKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uQXBwbHkuZW1pdChyZXN1bHQpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHRoaXMuaXNPcGVuLnVwZGF0ZSgoaXNPcGVuKSA9PiAhaXNPcGVuKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2FsY0luZGV0ZXJtaW5hdGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlT2JqZWN0cz8uKCk7XG5cbiAgICBpZiAoc3RhdGUpIHtcbiAgICAgIGNvbnN0IGZldGNoZWRPYmplY3RzID0gWy4uLnN0YXRlLnZhbHVlcygpXTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkT2JqZWN0cyA9IGZldGNoZWRPYmplY3RzLmZpbHRlcihcbiAgICAgICAgKG9iaikgPT4gb2JqLnN0YXRlID09PSBFUmVnaXN0ZXJPYmplY3RTdGF0ZS5TRUxFQ1RFRFxuICAgICAgKTtcblxuICAgICAgY29uc3Qgc29tZUZldGNoZWRJc05vdFNlbGVjdGVkID0gZmV0Y2hlZE9iamVjdHMubGVuZ3RoICE9PSBzZWxlY3RlZE9iamVjdHMubGVuZ3RoO1xuICAgICAgY29uc3QgZmV0Y2hlZElzQWxsID0gZmV0Y2hlZE9iamVjdHMubGVuZ3RoID09PSB0aGlzLnRvdGFsUmVjb3JkcygpO1xuICAgICAgY29uc3QgdW5mZXRjaGVkQXJlU2VsZWN0ZWQgPSB0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyEoKSA9PT0gRVJlZ2lzdGVyT2JqZWN0U3RhdGUuU0VMRUNURUQ7XG5cbiAgICAgIGlmIChzZWxlY3RlZE9iamVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gc29tZUZldGNoZWRJc05vdFNlbGVjdGVkIHx8ICEoZmV0Y2hlZElzQWxsIHx8IHVuZmV0Y2hlZEFyZVNlbGVjdGVkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICFmZXRjaGVkSXNBbGwgJiYgdW5mZXRjaGVkQXJlU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQoKS5zaXplID4gMCAmJiB0aGlzLnNlbGVjdGVkKCkuc2l6ZSAhPT0gdGhpcy50b3RhbFJlY29yZHMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjYWxjQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVPYmplY3RzPy4oKTtcblxuICAgIGlmIChzdGF0ZSkge1xuICAgICAgY29uc3QgZmV0Y2hlZE9iamVjdHMgPSBbLi4uc3RhdGUudmFsdWVzKCldO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRPYmplY3RzID0gZmV0Y2hlZE9iamVjdHMuZmlsdGVyKFxuICAgICAgICAob2JqKSA9PiBvYmouc3RhdGUgPT09IEVSZWdpc3Rlck9iamVjdFN0YXRlLlNFTEVDVEVEXG4gICAgICApO1xuXG4gICAgICBjb25zdCBmZXRjaGVkQXJlU2VsZWN0ZWQgPSBmZXRjaGVkT2JqZWN0cy5sZW5ndGggPT09IHNlbGVjdGVkT2JqZWN0cy5sZW5ndGg7XG4gICAgICBjb25zdCBzZWxlY3RlZElzQWxsID0gc2VsZWN0ZWRPYmplY3RzLmxlbmd0aCA9PT0gdGhpcy50b3RhbFJlY29yZHMoKTtcbiAgICAgIGNvbnN0IHVuZmV0Y2hlZEFyZVNlbGVjdGVkID0gdGhpcy5zdGF0ZVVuZmV0Y2hlZE9iamVjdHMhKCkgPT09IEVSZWdpc3Rlck9iamVjdFN0YXRlLlNFTEVDVEVEO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBzZWxlY3RlZE9iamVjdHMubGVuZ3RoID4gMCAmJiBmZXRjaGVkQXJlU2VsZWN0ZWQgJiYgKHNlbGVjdGVkSXNBbGwgfHwgdW5mZXRjaGVkQXJlU2VsZWN0ZWQpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkKCkuc2l6ZSA+IDAgJiYgdGhpcy5zZWxlY3RlZCgpLnNpemUgPT09IHRoaXMudG90YWxSZWNvcmRzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGlucHV0VmFsdWVDaGFuZ2VzKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQoU2VsZWN0aW9uVHlwZXMuQ09VTlQpO1xuICAgIHRoaXMuaW5wdXRWYWx1ZS5zZXQodmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3BTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFZhbHVlLnNldChudWxsKTtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudC5zZXQobnVsbCk7XG4gICAgdGhpcy5vbkFwcGx5LmVtaXQobnVsbCk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hlY2tib3hfX2NvbnRhaW5lclwiIChjbGljayk9XCJ0b2dnbGUoKTsgJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXCI+XG4gIEBsZXQgaW5kZXRlcm1pbmF0ZSA9IGNhbGNJbmRldGVybWluYXRlKCk7XG4gIEBsZXQgY2hlY2tlZCA9IGNhbGNDaGVja2VkKCk7XG5cbiAgPGlucHV0XG4gICAgdHVpQ2hlY2tib3hcbiAgICBzaXplPVwic1wiXG4gICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICBbaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25cIlxuICAgIFt0dWlEcm9wZG93bk1hbnVhbF09XCJpc09wZW4oKVwiXG4gICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gIC8+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkcm9wZG93bj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJkcm9wZG93bl9fY29udGVudFwiIGlkPVwiY2hlY2tib3hfX2Ryb3Bkb3duX19jb250ZW50XCI+XG4gICAgQGxldCBzZWxlY3RlZCA9IHNlbGVjdGVkRWxlbWVudCgpO1xuXG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2VsZW1lbnRcIlxuICAgICAgW2NsYXNzLmRyb3Bkb3duX19lbGVtZW50X3NlbGVjdGVkXT1cInNlbGVjdGVkID09PSBFU2VsZWN0aW9uVHlwZXMuQUxMXCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RFbGVtZW50KEVTZWxlY3Rpb25UeXBlcy5BTEwpXCJcbiAgICA+XG4gICAgICDQktGL0LHRgNCw0YLRjCDQstGB0LVcbiAgICA8L3NwYW4+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2VsZW1lbnRcIlxuICAgICAgW2NsYXNzLmRyb3Bkb3duX19lbGVtZW50X3NlbGVjdGVkXT1cInNlbGVjdGVkID09PSBFU2VsZWN0aW9uVHlwZXMuVklTSUJMRVwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0RWxlbWVudChFU2VsZWN0aW9uVHlwZXMuVklTSUJMRSlcIlxuICAgID5cbiAgICAgINCS0YvQsdGA0LDRgtGMINCy0LjQtNC40LzQvtC1XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImRyb3Bkb3duX19lbGVtZW50XCJcbiAgICAgIFtjbGFzcy5kcm9wZG93bl9fZWxlbWVudF9zZWxlY3RlZF09XCJzZWxlY3RlZCA9PT0gRVNlbGVjdGlvblR5cGVzLklOVkVSU0VcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEVsZW1lbnQoRVNlbGVjdGlvblR5cGVzLklOVkVSU0UpXCJcbiAgICA+XG4gICAgICDQmtGA0L7QvNC1INCy0YvQtNC10LvQtdC90L3QvtCz0L5cbiAgICA8L3NwYW4+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkcm9wZG93bl9fc2VsZWN0LXZhbHVlXCJcbiAgICAgIFtjbGFzcy5kcm9wZG93bl9fZWxlbWVudF9zZWxlY3RlZF09XCJzZWxlY3RlZCA9PT0gRVNlbGVjdGlvblR5cGVzLkNPVU5UXCJcbiAgICA+XG4gICAgICA8c3Bhbj7QktGL0LHRgNCw0YLRjDwvc3Bhbj5cbiAgICAgIDx0dWktdGV4dGZpZWxkXG4gICAgICAgIHR1aVRleHRmaWVsZFNpemU9XCJzXCJcbiAgICAgICAgdHVpVGV4dGZpZWxkQXBwZWFyYW5jZT1cInRleHRmaWVsZFwiXG4gICAgICAgIFt0dWlUZXh0ZmllbGRDbGVhbmVyXT1cInRydWVcIlxuICAgICAgICBjbGFzcz1cImZsZXgtMVwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR1aUlucHV0TnVtYmVyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLQktCy0LXQtNC40YLQtSDRh9C40YHQu9C+XCJcbiAgICAgICAgICBbbWF4XT1cImlucHV0TWF4VmFsdWUoKVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwiaW5wdXRWYWx1ZSgpXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlcygkZXZlbnQpXCJcbiAgICAgICAgICAoZm9jdXNpbik9XCJvbklucHV0Rm9jdXMoKVwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgQGlmIChpbnB1dERlc2NyaXB0aW9uKCkpIHtcbiAgICAgICAgICA8dHVpLWljb24gaWNvbj1cIkBzcHJvYy5jaXJjbGUtcXVlc3Rpb24tZW1wdHlcIiBbdHVpVG9vbHRpcF09XCJpbnB1dERlc2NyaXB0aW9uKClcIiAvPlxuICAgICAgICB9XG4gICAgICA8L3R1aS10ZXh0ZmllbGQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duX19mb290ZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd25fX2J1dHRvbiBkcm9wZG93bl9fYnV0dG9uX19hcHBseVwiXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nKClcIlxuICAgICAgICAoY2xpY2spPVwiYXBwbHlTZWxlY3Rpb24oKVwiXG4gICAgICA+XG4gICAgICAgINCf0YDQuNC80LXQvdC40YLRjFxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR1aUJ1dHRvblxuICAgICAgICBjbGFzcz1cImRyb3Bkb3duX19idXR0b24gZHJvcGRvd25fX2J1dHRvbl9fY2FuY2VsXCJcbiAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICBhcHBlYXJhbmNlPVwib3V0bGluZS1ncmF5c2NhbGVcIlxuICAgICAgICAoY2xpY2spPVwiZHJvcFNlbGVjdGlvbigpXCJcbiAgICAgID5cbiAgICAgICAg0J7RgtC80LXQvdCwXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|