ngx-register-base 1.3.3 → 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 +41 -45
- 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 +1464 -1026
- 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
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
2
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
3
3
|
import { TuiIcon, TuiTextfield } from '@taiga-ui/core';
|
|
4
|
-
import {
|
|
5
|
-
import { InputsModule } from '../inputs';
|
|
4
|
+
import { ParamCustomComponent } from '../inputs/param-custom/param-custom.component';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
import * as i1 from "@angular/forms";
|
|
8
|
-
import * as i2 from "
|
|
9
|
-
import * as i3 from "@taiga-ui/core";
|
|
7
|
+
import * as i2 from "@taiga-ui/core";
|
|
10
8
|
export class SearchInputComponent {
|
|
11
9
|
constructor() {
|
|
12
10
|
this.searchControl = input.required();
|
|
@@ -19,10 +17,10 @@ export class SearchInputComponent {
|
|
|
19
17
|
};
|
|
20
18
|
}
|
|
21
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: SearchInputComponent, isStandalone: true, selector: "sproc-search-input", inputs: { searchControl: { classPropertyName: "searchControl", publicName: "searchControl", isSignal: true, isRequired: true, transformFunction: null }, searchGqlFormatter: { classPropertyName: "searchGqlFormatter", publicName: "searchGqlFormatter", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<sproc-param-custom [formControl]=\"searchControl()\" [formatGqlValue]=\"formatGqlValueProxy\">\n <tui-textfield tuiTextfieldSize=\"m\" [tuiTextfieldCleaner]=\"true\">\n <input placeholder=\"\u041F\u043E\u0438\u0441\u043A\" tuiTextfield [formControl]=\"searchControl()\" />\n <tui-icon icon=\"@tui.search\" [style.width.px]=\"16\" />\n </tui-textfield>\n</sproc-param-custom>\n", styles: [":host{--tui-height-m: var(--top-bar-button-height);width:260px;height:var(--tui-height-m)}:host input{outline:none;box-shadow:none;border:1px solid var(--input-stroke)}:host [tuiAppearance][data-appearance=textfield]:focus-visible:not([data-focus=false]){border-color:var(--brand-blue);box-shadow:0 0 0 2px #cae6f8}\n"], dependencies: [{ kind: "ngmodule", type:
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: SearchInputComponent, isStandalone: true, selector: "sproc-search-input", inputs: { searchControl: { classPropertyName: "searchControl", publicName: "searchControl", isSignal: true, isRequired: true, transformFunction: null }, searchGqlFormatter: { classPropertyName: "searchGqlFormatter", publicName: "searchGqlFormatter", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<sproc-param-custom [formControl]=\"searchControl()\" [formatGqlValue]=\"formatGqlValueProxy\">\n <tui-textfield tuiTextfieldSize=\"m\" [tuiTextfieldCleaner]=\"true\">\n <input placeholder=\"\u041F\u043E\u0438\u0441\u043A\" tuiTextfield [formControl]=\"searchControl()\" />\n <tui-icon icon=\"@tui.search\" [style.width.px]=\"16\" />\n </tui-textfield>\n</sproc-param-custom>\n", styles: [":host{--tui-height-m: var(--top-bar-button-height);width:260px;height:var(--tui-height-m)}:host input{outline:none;box-shadow:none;border:1px solid var(--input-stroke)}:host [tuiAppearance][data-appearance=textfield]:focus-visible:not([data-focus=false]){border-color:var(--brand-blue);box-shadow:0 0 0 2px #cae6f8}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "component", type: i2.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i2.TuiTextfieldDirective, selector: "input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])" }, { kind: "directive", type: i2.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "component", type: ParamCustomComponent, selector: "sproc-param-custom" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
21
|
}
|
|
24
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
25
23
|
type: Component,
|
|
26
|
-
args: [{ selector: 'sproc-search-input', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
24
|
+
args: [{ selector: 'sproc-search-input', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [ReactiveFormsModule, TuiIcon, TuiTextfield, ParamCustomComponent], template: "<sproc-param-custom [formControl]=\"searchControl()\" [formatGqlValue]=\"formatGqlValueProxy\">\n <tui-textfield tuiTextfieldSize=\"m\" [tuiTextfieldCleaner]=\"true\">\n <input placeholder=\"\u041F\u043E\u0438\u0441\u043A\" tuiTextfield [formControl]=\"searchControl()\" />\n <tui-icon icon=\"@tui.search\" [style.width.px]=\"16\" />\n </tui-textfield>\n</sproc-param-custom>\n", styles: [":host{--tui-height-m: var(--top-bar-button-height);width:260px;height:var(--tui-height-m)}:host input{outline:none;box-shadow:none;border:1px solid var(--input-stroke)}:host [tuiAppearance][data-appearance=textfield]:focus-visible:not([data-focus=false]){border-color:var(--brand-blue);box-shadow:0 0 0 2px #cae6f8}\n"] }]
|
|
27
25
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtaW5wdXQvc2VhcmNoLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtaW5wdXQvc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7QUFVckYsTUFBTSxPQUFPLG9CQUFvQjtJQVJqQztRQVNTLGtCQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFFbEMsQ0FBQztRQUNHLHVCQUFrQixHQUFHLEtBQUssRUFBaUMsQ0FBQztRQUM1RCxhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXhCLHdCQUFtQixHQUFrQyxDQUNuRSxLQUFhLEVBQ2IsUUFBbUIsRUFDbkIsRUFBRTtZQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVDLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ25FLENBQUMsQ0FBQztLQUNIOytHQWZZLG9CQUFvQjttR0FBcEIsb0JBQW9CLHlnQkNkakMsbVlBTUEsc1hETVksbUJBQW1CLDBrQkFBRSxPQUFPLHFpQkFBZ0Isb0JBQW9COzs0RkFFL0Qsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFR1aUljb24sIFR1aVRleHRmaWVsZCB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IEZvcm1hdHRlckdxbFZhbHVlVHlwZSwgSUlucHV0Q29udHJvbCB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFBhcmFtQ3VzdG9tQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXRzL3BhcmFtLWN1c3RvbS9wYXJhbS1jdXN0b20uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Byb2Mtc2VhcmNoLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1pbnB1dC5jb21wb25lbnQubGVzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIFR1aUljb24sIFR1aVRleHRmaWVsZCwgUGFyYW1DdXN0b21Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hJbnB1dENvbXBvbmVudCB7XG4gIHB1YmxpYyBzZWFyY2hDb250cm9sID0gaW5wdXQucmVxdWlyZWQ8XG4gICAgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4gfCBJSW5wdXRDb250cm9sPHN0cmluZyB8IG51bGw+XG4gID4oKTtcbiAgcHVibGljIHNlYXJjaEdxbEZvcm1hdHRlciA9IGlucHV0PEZvcm1hdHRlckdxbFZhbHVlVHlwZTxzdHJpbmc+PigpO1xuICBwdWJsaWMgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm1hdEdxbFZhbHVlUHJveHk6IEZvcm1hdHRlckdxbFZhbHVlVHlwZTxzdHJpbmc+ID0gKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgaW5qZWN0b3I/OiBJbmplY3RvclxuICApID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSB0aGlzLnNlYXJjaEdxbEZvcm1hdHRlcigpO1xuICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHZhbHVlLnRyaW0oKTtcbiAgICByZXR1cm4gZm9ybWF0dGVyID8gZm9ybWF0dGVyKHRyaW1tZWRWYWx1ZSwgaW5qZWN0b3IpIDogdW5kZWZpbmVkO1xuICB9O1xufVxuIiwiPHNwcm9jLXBhcmFtLWN1c3RvbSBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbCgpXCIgW2Zvcm1hdEdxbFZhbHVlXT1cImZvcm1hdEdxbFZhbHVlUHJveHlcIj5cbiAgPHR1aS10ZXh0ZmllbGQgdHVpVGV4dGZpZWxkU2l6ZT1cIm1cIiBbdHVpVGV4dGZpZWxkQ2xlYW5lcl09XCJ0cnVlXCI+XG4gICAgPGlucHV0IHBsYWNlaG9sZGVyPVwi0J/QvtC40YHQulwiIHR1aVRleHRmaWVsZCBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbCgpXCIgLz5cbiAgICA8dHVpLWljb24gaWNvbj1cIkB0dWkuc2VhcmNoXCIgW3N0eWxlLndpZHRoLnB4XT1cIjE2XCIgLz5cbiAgPC90dWktdGV4dGZpZWxkPlxuPC9zcHJvYy1wYXJhbS1jdXN0b20+XG4iXX0=
|
|
@@ -1,48 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input, signal } from '@angular/core';
|
|
2
|
+
import { WaResizeObserver } from '@ng-web-apis/resize-observer';
|
|
3
|
+
import { TuiScrollbar } from '@taiga-ui/core';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@prizm-ui/components";
|
|
4
5
|
export class SlidingPanelComponent {
|
|
5
6
|
constructor() {
|
|
6
7
|
/** Доп. отступ для вычисления высоты панели (в пикселях) */
|
|
7
|
-
this.subOffsetHeight = 0;
|
|
8
|
+
this.subOffsetHeight = input(0);
|
|
8
9
|
/** Состояние видимости панели */
|
|
9
|
-
this.isOpen = false;
|
|
10
|
+
this.isOpen = input(false);
|
|
11
|
+
this.headerHeightPx = signal(0);
|
|
12
|
+
this.footerHeightPx = signal(0);
|
|
10
13
|
}
|
|
11
|
-
|
|
12
|
-
const height = this.
|
|
13
|
-
|
|
14
|
+
onHeaderResize(headerContainer) {
|
|
15
|
+
const height = this._getFirstChildOffsetHeight(headerContainer);
|
|
16
|
+
this.headerHeightPx.set(height);
|
|
14
17
|
}
|
|
15
|
-
|
|
16
|
-
const height = this.
|
|
17
|
-
|
|
18
|
+
onFooterResize(footerContainer) {
|
|
19
|
+
const height = this._getFirstChildOffsetHeight(footerContainer);
|
|
20
|
+
this.footerHeightPx.set(height);
|
|
18
21
|
}
|
|
19
|
-
|
|
20
|
-
return
|
|
22
|
+
_getFirstChildOffsetHeight(container) {
|
|
23
|
+
return container.children[0]?.offsetHeight ?? 0;
|
|
21
24
|
}
|
|
22
25
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SlidingPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: SlidingPanelComponent, isStandalone: true, selector: "sproc-sliding-panel", inputs: { subOffsetHeight: { classPropertyName: "subOffsetHeight", publicName: "subOffsetHeight", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--header-offset-height.px": "headerHeightPx()", "style.--footer-offset-height.px": "footerHeightPx()", "style.--sub-offset-height.px": "subOffsetHeight()" } }, ngImport: i0, template: "<div class=\"sproc-sliding-panel\" [attr.show]=\"isOpen()\">\n <div\n #headerContainer\n class=\"display-contents\"\n (waResizeObserver)=\"onHeaderResize(headerContainer)\"\n >\n <ng-content select=\"[header]\" />\n </div>\n\n <tui-scrollbar class=\"scrolled-content\">\n <ng-content />\n </tui-scrollbar>\n\n <div\n #footerContainer\n class=\"display-contents\"\n (waResizeObserver)=\"onFooterResize(footerContainer)\"\n >\n <ng-content select=\"[footer]\" />\n </div>\n</div>\n", styles: [":host{position:fixed;z-index:3;border-right:1px;box-shadow:1px 0 12px #3b475326;clip-path:inset(0 -12px 0 0);-ms-overflow-style:none;scrollbar-width:none;overflow-y:scroll}:host .sproc-sliding-panel{transition:width var(--page-menu-transition-time);overflow-x:hidden}:host .sproc-sliding-panel[show=true]{width:302px}:host .sproc-sliding-panel[show=false]{width:0}:host .sproc-sliding-panel .scrolled-content{height:calc(100vh - var(--header-height) - var(--header-offset-height) - var(--footer-offset-height) - var(--sub-offset-height));margin-bottom:var(--footer-offset-height)}:host .display-contents{display:contents}\n"], dependencies: [{ kind: "component", type: TuiScrollbar, selector: "tui-scrollbar", inputs: ["hidden"] }, { kind: "directive", type: WaResizeObserver, selector: "[waResizeObserver]", inputs: ["box"], outputs: ["waResizeObserver"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
27
|
}
|
|
25
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SlidingPanelComponent, decorators: [{
|
|
26
29
|
type: Component,
|
|
27
|
-
args: [{ selector: 'sproc-sliding-panel',
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}], subOffsetHeightPx: [{
|
|
35
|
-
type: HostBinding,
|
|
36
|
-
args: ['style.--sub-offset-height']
|
|
37
|
-
}], subOffsetHeight: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}], isOpen: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], _headerContainer: [{
|
|
42
|
-
type: ViewChild,
|
|
43
|
-
args: ['headerContainer']
|
|
44
|
-
}], _footerContainer: [{
|
|
45
|
-
type: ViewChild,
|
|
46
|
-
args: ['footerContainer']
|
|
47
|
-
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGluZy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvc2xpZGluZy1wYW5lbC9zbGlkaW5nLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9zbGlkaW5nLXBhbmVsL3NsaWRpbmctcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBT3JGLE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUF5QkUsNERBQTREO1FBQ25ELG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBRTdCLGlDQUFpQztRQUN4QixXQUFNLEdBQStCLEtBQUssQ0FBQztLQUlyRDtJQTNCQyxJQUNJLG9CQUFvQjtRQUN0QixNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLElBQUksQ0FBQyxDQUFDO1FBRTNGLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFDSSxvQkFBb0I7UUFDdEIsTUFBTSxNQUFNLEdBQVcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxJQUFJLENBQUMsQ0FBQztRQUUzRixPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ0ksaUJBQWlCO1FBQ25CLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUM7SUFDckMsQ0FBQzsrR0FsQlUscUJBQXFCO21HQUFyQixxQkFBcUIsbWlCQ1BsQyxvVkFhQTs7NEZETmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLHFCQUFxQjs4QkFNM0Isb0JBQW9CO3NCQUR2QixXQUFXO3VCQUFDLDhCQUE4QjtnQkFRdkMsb0JBQW9CO3NCQUR2QixXQUFXO3VCQUFDLDhCQUE4QjtnQkFRdkMsaUJBQWlCO3NCQURwQixXQUFXO3VCQUFDLDJCQUEyQjtnQkFNL0IsZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRXlDLGdCQUFnQjtzQkFBOUQsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ21CLGdCQUFnQjtzQkFBOUQsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Nwcm9jLXNsaWRpbmctcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2xpZGluZy1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NsaWRpbmctcGFuZWwuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2xpZGluZ1BhbmVsQ29tcG9uZW50IHtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWhlYWRlci1vZmZzZXQtaGVpZ2h0JylcbiAgZ2V0IGhlYWRlck9mZnNldEhlaWdodFB4KCk6IHN0cmluZyB7XG4gICAgY29uc3QgaGVpZ2h0OiBudW1iZXIgPSB0aGlzLl9oZWFkZXJDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0/Lm9mZnNldEhlaWdodCA/PyAwO1xuXG4gICAgcmV0dXJuIGAke2hlaWdodH1weGA7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tZm9vdGVyLW9mZnNldC1oZWlnaHQnKVxuICBnZXQgZm9vdGVyT2Zmc2V0SGVpZ2h0UHgoKTogc3RyaW5nIHtcbiAgICBjb25zdCBoZWlnaHQ6IG51bWJlciA9IHRoaXMuX2Zvb3RlckNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXT8ub2Zmc2V0SGVpZ2h0ID8/IDA7XG5cbiAgICByZXR1cm4gYCR7aGVpZ2h0fXB4YDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS1zdWItb2Zmc2V0LWhlaWdodCcpXG4gIGdldCBzdWJPZmZzZXRIZWlnaHRQeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnN1Yk9mZnNldEhlaWdodH1weGA7XG4gIH1cblxuICAvKiog0JTQvtC/LiDQvtGC0YHRgtGD0L8g0LTQu9GPINCy0YvRh9C40YHQu9C10L3QuNGPINCy0YvRgdC+0YLRiyDQv9Cw0L3QtdC70LggKNCyINC/0LjQutGB0LXQu9GP0YUpICovXG4gIEBJbnB1dCgpIHN1Yk9mZnNldEhlaWdodCA9IDA7XG5cbiAgLyoqINCh0L7RgdGC0L7Rj9C90LjQtSDQstC40LTQuNC80L7RgdGC0Lgg0L/QsNC90LXQu9C4ICovXG4gIEBJbnB1dCgpIGlzT3BlbjogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdoZWFkZXJDb250YWluZXInKSBwcml2YXRlIHJlYWRvbmx5IF9oZWFkZXJDb250YWluZXI6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG4gIEBWaWV3Q2hpbGQoJ2Zvb3RlckNvbnRhaW5lcicpIHByaXZhdGUgcmVhZG9ubHkgX2Zvb3RlckNvbnRhaW5lcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcbn1cbiIsIjxkaXYgY2xhc3M9XCJzcHJvYy1zbGlkaW5nLXBhbmVsXCIgW2F0dHIuc2hvd109XCIhIWlzT3BlblwiPlxuICA8ZGl2ICNoZWFkZXJDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxwcml6bS1zY3JvbGxiYXIgY2xhc3M9XCJzY3JvbGxlZC1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgPC9wcml6bS1zY3JvbGxiYXI+XG5cbiAgPGRpdiAjZm9vdGVyQ29udGFpbmVyPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
30
|
+
args: [{ selector: 'sproc-sliding-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TuiScrollbar, WaResizeObserver], host: {
|
|
31
|
+
'[style.--header-offset-height.px]': 'headerHeightPx()',
|
|
32
|
+
'[style.--footer-offset-height.px]': 'footerHeightPx()',
|
|
33
|
+
'[style.--sub-offset-height.px]': 'subOffsetHeight()',
|
|
34
|
+
}, template: "<div class=\"sproc-sliding-panel\" [attr.show]=\"isOpen()\">\n <div\n #headerContainer\n class=\"display-contents\"\n (waResizeObserver)=\"onHeaderResize(headerContainer)\"\n >\n <ng-content select=\"[header]\" />\n </div>\n\n <tui-scrollbar class=\"scrolled-content\">\n <ng-content />\n </tui-scrollbar>\n\n <div\n #footerContainer\n class=\"display-contents\"\n (waResizeObserver)=\"onFooterResize(footerContainer)\"\n >\n <ng-content select=\"[footer]\" />\n </div>\n</div>\n", styles: [":host{position:fixed;z-index:3;border-right:1px;box-shadow:1px 0 12px #3b475326;clip-path:inset(0 -12px 0 0);-ms-overflow-style:none;scrollbar-width:none;overflow-y:scroll}:host .sproc-sliding-panel{transition:width var(--page-menu-transition-time);overflow-x:hidden}:host .sproc-sliding-panel[show=true]{width:302px}:host .sproc-sliding-panel[show=false]{width:0}:host .sproc-sliding-panel .scrolled-content{height:calc(100vh - var(--header-height) - var(--header-offset-height) - var(--footer-offset-height) - var(--sub-offset-height));margin-bottom:var(--footer-offset-height)}:host .display-contents{display:contents}\n"] }]
|
|
35
|
+
}] });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGluZy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvc2xpZGluZy1wYW5lbC9zbGlkaW5nLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy9zbGlkaW5nLXBhbmVsL3NsaWRpbmctcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFlOUMsTUFBTSxPQUFPLHFCQUFxQjtJQWJsQztRQWNFLDREQUE0RDtRQUNyRCxvQkFBZSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxpQ0FBaUM7UUFDMUIsV0FBTSxHQUFHLEtBQUssQ0FBNkIsS0FBSyxDQUFDLENBQUM7UUFFdEMsbUJBQWMsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxNQUFNLENBQVMsQ0FBQyxDQUFDLENBQUM7S0FldkQ7SUFiVyxjQUFjLENBQUMsZUFBNEI7UUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFUyxjQUFjLENBQUMsZUFBNEI7UUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxTQUFzQjtRQUN2RCxPQUFRLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFpQixFQUFFLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQzsrR0FyQlUscUJBQXFCO21HQUFyQixxQkFBcUIseWlCQ2pCbEMsb2dCQXFCQSx5cUJEWFksWUFBWSw4RUFBRSxnQkFBZ0I7OzRGQU83QixxQkFBcUI7a0JBYmpDLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxRQUNuQzt3QkFDSixtQ0FBbUMsRUFBRSxrQkFBa0I7d0JBQ3ZELG1DQUFtQyxFQUFFLGtCQUFrQjt3QkFDdkQsZ0NBQWdDLEVBQUUsbUJBQW1CO3FCQUN0RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdhUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICdAbmctd2ViLWFwaXMvcmVzaXplLW9ic2VydmVyJztcbmltcG9ydCB7IFR1aVNjcm9sbGJhciB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Byb2Mtc2xpZGluZy1wYW5lbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkaW5nLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2xpZGluZy1wYW5lbC5jb21wb25lbnQubGVzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1R1aVNjcm9sbGJhciwgV2FSZXNpemVPYnNlcnZlcl0sXG4gIGhvc3Q6IHtcbiAgICAnW3N0eWxlLi0taGVhZGVyLW9mZnNldC1oZWlnaHQucHhdJzogJ2hlYWRlckhlaWdodFB4KCknLFxuICAgICdbc3R5bGUuLS1mb290ZXItb2Zmc2V0LWhlaWdodC5weF0nOiAnZm9vdGVySGVpZ2h0UHgoKScsXG4gICAgJ1tzdHlsZS4tLXN1Yi1vZmZzZXQtaGVpZ2h0LnB4XSc6ICdzdWJPZmZzZXRIZWlnaHQoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNsaWRpbmdQYW5lbENvbXBvbmVudCB7XG4gIC8qKiDQlNC+0L8uINC+0YLRgdGC0YPQvyDQtNC70Y8g0LLRi9GH0LjRgdC70LXQvdC40Y8g0LLRi9GB0L7RgtGLINC/0LDQvdC10LvQuCAo0LIg0L/QuNC60YHQtdC70Y/RhSkgKi9cbiAgcHVibGljIHN1Yk9mZnNldEhlaWdodCA9IGlucHV0KDApO1xuICAvKiog0KHQvtGB0YLQvtGP0L3QuNC1INCy0LjQtNC40LzQvtGB0YLQuCDQv9Cw0L3QtdC70LggKi9cbiAgcHVibGljIGlzT3BlbiA9IGlucHV0PGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkPihmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhlYWRlckhlaWdodFB4ID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBmb290ZXJIZWlnaHRQeCA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIHByb3RlY3RlZCBvbkhlYWRlclJlc2l6ZShoZWFkZXJDb250YWluZXI6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5fZ2V0Rmlyc3RDaGlsZE9mZnNldEhlaWdodChoZWFkZXJDb250YWluZXIpO1xuICAgIHRoaXMuaGVhZGVySGVpZ2h0UHguc2V0KGhlaWdodCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Gb290ZXJSZXNpemUoZm9vdGVyQ29udGFpbmVyOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuX2dldEZpcnN0Q2hpbGRPZmZzZXRIZWlnaHQoZm9vdGVyQ29udGFpbmVyKTtcbiAgICB0aGlzLmZvb3RlckhlaWdodFB4LnNldChoZWlnaHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Rmlyc3RDaGlsZE9mZnNldEhlaWdodChjb250YWluZXI6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICByZXR1cm4gKGNvbnRhaW5lci5jaGlsZHJlblswXSBhcyBIVE1MRWxlbWVudCk/Lm9mZnNldEhlaWdodCA/PyAwO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3Byb2Mtc2xpZGluZy1wYW5lbFwiIFthdHRyLnNob3ddPVwiaXNPcGVuKClcIj5cbiAgPGRpdlxuICAgICNoZWFkZXJDb250YWluZXJcbiAgICBjbGFzcz1cImRpc3BsYXktY29udGVudHNcIlxuICAgICh3YVJlc2l6ZU9ic2VydmVyKT1cIm9uSGVhZGVyUmVzaXplKGhlYWRlckNvbnRhaW5lcilcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlcl1cIiAvPlxuICA8L2Rpdj5cblxuICA8dHVpLXNjcm9sbGJhciBjbGFzcz1cInNjcm9sbGVkLWNvbnRlbnRcIj5cbiAgICA8bmctY29udGVudCAvPlxuICA8L3R1aS1zY3JvbGxiYXI+XG5cbiAgPGRpdlxuICAgICNmb290ZXJDb250YWluZXJcbiAgICBjbGFzcz1cImRpc3BsYXktY29udGVudHNcIlxuICAgICh3YVJlc2l6ZU9ic2VydmVyKT1cIm9uRm9vdGVyUmVzaXplKGZvb3RlckNvbnRhaW5lcilcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zvb3Rlcl1cIiAvPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { TemplateBaseModal } from './template-modal.base';
|
|
2
|
+
export { TemplateModalComponent } from './template-modal.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvbXBvbmVudHMvdGVtcGxhdGUtbW9kYWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBUZW1wbGF0ZUJhc2VNb2RhbCB9IGZyb20gJy4vdGVtcGxhdGUtbW9kYWwuYmFzZSc7XG5leHBvcnQgeyBUZW1wbGF0ZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZS1tb2RhbC5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { injectContext } from '@taiga-ui/polymorpheus';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TemplateBaseModal {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.context = injectContext();
|
|
7
|
+
this.data = this.context.data;
|
|
8
|
+
this.completeWith = this.context.completeWith;
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TemplateBaseModal, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
11
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: TemplateBaseModal, ngImport: i0 }); }
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TemplateBaseModal, decorators: [{
|
|
14
|
+
type: Directive
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbW9kYWwuYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZS1tb2RhbC90ZW1wbGF0ZS1tb2RhbC5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUl2RCxNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRXFCLFlBQU8sR0FBRyxhQUFhLEVBQWtDLENBQUM7UUFFMUQsU0FBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBWSxDQUFDO1FBQ2pDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7S0FDN0Q7K0dBTFksaUJBQWlCO21HQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdENvbnRleHQgfSBmcm9tICdAdGFpZ2EtdWkvcG9seW1vcnBoZXVzJztcbmltcG9ydCB7IFR1aURpYWxvZ0NvbnRleHQgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQmFzZU1vZGFsPERhdGEgPSB1bmRlZmluZWQsIFJlc3VsdCA9IHZvaWQ+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRleHQgPSBpbmplY3RDb250ZXh0PFR1aURpYWxvZ0NvbnRleHQ8UmVzdWx0LCBEYXRhPj4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YSA9IHRoaXMuY29udGV4dC5kYXRhIGFzIERhdGE7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb21wbGV0ZVdpdGggPSB0aGlzLmNvbnRleHQuY29tcGxldGVXaXRoO1xufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TemplateModalComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.width = input('auto');
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TemplateModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: TemplateModalComponent, isStandalone: true, selector: "sproc-template-modal", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--modal-form-width": "width()" } }, ngImport: i0, template: "<div class=\"template-modal\">\n <div class=\"template-modal__header\">\n <ng-content select=\"[modalHeader]\" />\n </div>\n\n <div class=\"template-modal__content\">\n <ng-content />\n </div>\n\n <div class=\"template-modal__footer\">\n <ng-content select=\"[modalFooter]\" />\n </div>\n</div>\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\"}.modal-form__title{color:var(--text-main);text-align:center;font-variant-numeric:lining-nums tabular-nums;font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.icon-title-wrapper{display:flex;justify-content:center;align-items:center;align-self:stretch;gap:8px}.exclamation-icon{display:flex;justify-content:center;align-items:center;content:url(/assets/ngx-register-base/icons/circle-exclamation-fill.svg)}:host{--modal-form-width: auto}:host .template-modal{display:flex;flex-direction:column;width:var(--modal-form-width)}:host .template-modal__header{display:flex;justify-content:center;align-items:center;padding:24px 24px 0;gap:16px;align-self:stretch;color:var(--text-main);text-align:center;font-variant-numeric:lining-nums tabular-nums;font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}:host .template-modal__header:empty{display:none}:host .template-modal__content{display:flex;justify-content:center;align-items:center;padding:24px;gap:16px;align-self:stretch;flex-direction:column}:host .template-modal__footer{display:flex;align-items:flex-start;gap:8px;flex:1 0 0;align-self:stretch;border-top:1px solid var(--table-stroke);padding:8px 16px;height:56px}:host .template-modal__footer:empty{display:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9
|
+
}
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TemplateModalComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'sproc-template-modal', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
13
|
+
'[style.--modal-form-width]': 'width()',
|
|
14
|
+
}, template: "<div class=\"template-modal\">\n <div class=\"template-modal__header\">\n <ng-content select=\"[modalHeader]\" />\n </div>\n\n <div class=\"template-modal__content\">\n <ng-content />\n </div>\n\n <div class=\"template-modal__footer\">\n <ng-content select=\"[modalFooter]\" />\n </div>\n</div>\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\"}.modal-form__title{color:var(--text-main);text-align:center;font-variant-numeric:lining-nums tabular-nums;font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}.icon-title-wrapper{display:flex;justify-content:center;align-items:center;align-self:stretch;gap:8px}.exclamation-icon{display:flex;justify-content:center;align-items:center;content:url(/assets/ngx-register-base/icons/circle-exclamation-fill.svg)}:host{--modal-form-width: auto}:host .template-modal{display:flex;flex-direction:column;width:var(--modal-form-width)}:host .template-modal__header{display:flex;justify-content:center;align-items:center;padding:24px 24px 0;gap:16px;align-self:stretch;color:var(--text-main);text-align:center;font-variant-numeric:lining-nums tabular-nums;font-family:Inter,serif;font-size:14px;font-weight:500;line-height:18px}:host .template-modal__header:empty{display:none}:host .template-modal__content{display:flex;justify-content:center;align-items:center;padding:24px;gap:16px;align-self:stretch;flex-direction:column}:host .template-modal__footer{display:flex;align-items:flex-start;gap:8px;flex:1 0 0;align-self:stretch;border-top:1px solid var(--table-stroke);padding:8px 16px;height:56px}:host .template-modal__footer:empty{display:none}\n"] }]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlLW1vZGFsL3RlbXBsYXRlLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29tcG9uZW50cy90ZW1wbGF0ZS1tb2RhbC90ZW1wbGF0ZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZMUUsTUFBTSxPQUFPLHNCQUFzQjtJQVZuQztRQVdTLFVBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDOUI7K0dBRlksc0JBQXNCO21HQUF0QixzQkFBc0IscVJDWm5DLHlUQWFBOzs0RkREYSxzQkFBc0I7a0JBVmxDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBR3BCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSiw0QkFBNEIsRUFBRSxTQUFTO3FCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Nwcm9jLXRlbXBsYXRlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RlbXBsYXRlLW1vZGFsLmNvbXBvbmVudC5sZXNzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW3N0eWxlLi0tbW9kYWwtZm9ybS13aWR0aF0nOiAnd2lkdGgoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlTW9kYWxDb21wb25lbnQge1xuICBwdWJsaWMgd2lkdGggPSBpbnB1dCgnYXV0bycpO1xufVxuIiwiPGRpdiBjbGFzcz1cInRlbXBsYXRlLW1vZGFsXCI+XG4gIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1tb2RhbF9faGVhZGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21vZGFsSGVhZGVyXVwiIC8+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1tb2RhbF9fY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1tb2RhbF9fZm9vdGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21vZGFsRm9vdGVyXVwiIC8+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -3,4 +3,4 @@ export { ParamBase } from './param-base';
|
|
|
3
3
|
export { ParamDateBase } from './param-date-base';
|
|
4
4
|
export { ParamSelectBase } from './param-select-base';
|
|
5
5
|
export { ParamTextBase } from './param-text-base';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2NvcmUvcGFyYW0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wYXJhbS50b2tlbnMnO1xuZXhwb3J0IHsgUGFyYW1CYXNlIH0gZnJvbSAnLi9wYXJhbS1iYXNlJztcbmV4cG9ydCB7IFBhcmFtRGF0ZUJhc2UgfSBmcm9tICcuL3BhcmFtLWRhdGUtYmFzZSc7XG5leHBvcnQgdHlwZSB7IERhdGVSYW5nZVR5cGUgfSBmcm9tICcuL3BhcmFtLWRhdGUtYmFzZSc7XG5leHBvcnQgeyBQYXJhbVNlbGVjdEJhc2UgfSBmcm9tICcuL3BhcmFtLXNlbGVjdC1iYXNlJztcbmV4cG9ydCB7IFBhcmFtVGV4dEJhc2UgfSBmcm9tICcuL3BhcmFtLXRleHQtYmFzZSc7XG4iXX0=
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ChangeDetectorRef, computed, DestroyRef, Directive, forwardRef, inject, input, Input, Optional, Self, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectorRef, computed, DestroyRef, Directive, forwardRef, inject, input, Input, Optional, Self, signal, } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';
|
|
3
3
|
import { filter, skip, tap } from 'rxjs';
|
|
4
4
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { distinctUntilChangedJSONs } from '../../utils';
|
|
6
|
+
import { ValidationMessageService } from '../../services/validation-message.service';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export class ParamBase {
|
|
8
9
|
/** Метод для конвертации значения control при сохранении (используется при сохранении фильтров в БД) */
|
|
@@ -39,10 +40,19 @@ export class ParamBase {
|
|
|
39
40
|
}
|
|
40
41
|
constructor(_injector) {
|
|
41
42
|
this._injector = _injector;
|
|
43
|
+
this.validationMessageService = inject(ValidationMessageService, {
|
|
44
|
+
optional: true,
|
|
45
|
+
});
|
|
42
46
|
/** Название */
|
|
43
47
|
this.label = '';
|
|
44
48
|
/** Текст при пустом значении control (null) */
|
|
45
49
|
this.placeholder = input('');
|
|
50
|
+
/** Отображаемый при наведении на значок рядом с лейблом текст в режиме просмотра */
|
|
51
|
+
this.tooltip = input('');
|
|
52
|
+
/** Отображаемый при наведении на значок рядом с лейблом текст в режиме редактирования */
|
|
53
|
+
this.editTooltip = input('');
|
|
54
|
+
/** Размер поля */
|
|
55
|
+
this.size = input('m');
|
|
46
56
|
/** Режим просмотра, по умолчанию выключен */
|
|
47
57
|
this.readmode = false;
|
|
48
58
|
/** Кнопка быстрой очистки поля, по умолчанию включена */
|
|
@@ -53,6 +63,10 @@ export class ParamBase {
|
|
|
53
63
|
this.paramStyle = 'card';
|
|
54
64
|
/** Метод для отображения значения в режиме просмотра */
|
|
55
65
|
this.buildShowedValue = input((_) => '');
|
|
66
|
+
/** Шаблон для отображения значения в режиме просмотра */
|
|
67
|
+
this.templateReadValue = input(null);
|
|
68
|
+
this._errorMessage = signal(null);
|
|
69
|
+
this.validationErrorHint = computed(() => this._errorMessage() ?? '');
|
|
56
70
|
this._ngControl = inject(NgControl);
|
|
57
71
|
this.cdr = inject(ChangeDetectorRef);
|
|
58
72
|
this.dr = inject(DestroyRef);
|
|
@@ -117,6 +131,7 @@ export class ParamBase {
|
|
|
117
131
|
}
|
|
118
132
|
this._subscribeOnValue();
|
|
119
133
|
this._subscribeOnSavedValue();
|
|
134
|
+
this._subscribeOnValidationMessage();
|
|
120
135
|
}
|
|
121
136
|
this.afterContentInit();
|
|
122
137
|
}
|
|
@@ -124,6 +139,7 @@ export class ParamBase {
|
|
|
124
139
|
this.control.valueChanges
|
|
125
140
|
.pipe(distinctUntilChangedJSONs(), tap((value) => this._updateSavedValue(value)), takeUntilDestroyed(this.dr))
|
|
126
141
|
.subscribe((value) => {
|
|
142
|
+
this.onControlValueChange();
|
|
127
143
|
this.control.gql_value = this.formatterGqlValue(value, this._injector);
|
|
128
144
|
this._updateShowedValue(value);
|
|
129
145
|
if (this.isNotEmpty()) {
|
|
@@ -131,6 +147,7 @@ export class ParamBase {
|
|
|
131
147
|
}
|
|
132
148
|
});
|
|
133
149
|
}
|
|
150
|
+
onControlValueChange() { }
|
|
134
151
|
_updateShowedValue(value) {
|
|
135
152
|
this.showedValue = this.buildShowedValue()(value);
|
|
136
153
|
this.cdr.markForCheck();
|
|
@@ -150,6 +167,14 @@ export class ParamBase {
|
|
|
150
167
|
this.control.setValue(value);
|
|
151
168
|
});
|
|
152
169
|
}
|
|
170
|
+
_subscribeOnValidationMessage() {
|
|
171
|
+
this.validationMessageService
|
|
172
|
+
?.observeControlErrors(this.control)
|
|
173
|
+
.pipe(takeUntilDestroyed(this.dr))
|
|
174
|
+
.subscribe((message) => {
|
|
175
|
+
this._errorMessage.set(message);
|
|
176
|
+
});
|
|
177
|
+
}
|
|
153
178
|
afterContentInit() { }
|
|
154
179
|
_setControlRequired(required) {
|
|
155
180
|
if (required) {
|
|
@@ -168,7 +193,7 @@ export class ParamBase {
|
|
|
168
193
|
}
|
|
169
194
|
}
|
|
170
195
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamBase, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
171
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: ParamBase, inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readmode: { classPropertyName: "readmode", publicName: "readmode", isSignal: false, isRequired: false, transformFunction: null }, forceClear: { classPropertyName: "forceClear", publicName: "forceClear", isSignal: false, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: false, isRequired: false, transformFunction: null }, paramStyle: { classPropertyName: "paramStyle", publicName: "paramStyle", isSignal: false, isRequired: false, transformFunction: null }, formatSavedValue: { classPropertyName: "formatSavedValue", publicName: "formatSavedValue", isSignal: false, isRequired: false, transformFunction: null }, parseSavedValue: { classPropertyName: "parseSavedValue", publicName: "parseSavedValue", isSignal: false, isRequired: false, transformFunction: null }, formatGqlValue: { classPropertyName: "formatGqlValue", publicName: "formatGqlValue", isSignal: false, isRequired: false, transformFunction: null }, buildShowedValue: { classPropertyName: "buildShowedValue", publicName: "buildShowedValue", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null } }, providers: [
|
|
196
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: ParamBase, inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, editTooltip: { classPropertyName: "editTooltip", publicName: "editTooltip", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, readmode: { classPropertyName: "readmode", publicName: "readmode", isSignal: false, isRequired: false, transformFunction: null }, forceClear: { classPropertyName: "forceClear", publicName: "forceClear", isSignal: false, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: false, isRequired: false, transformFunction: null }, paramStyle: { classPropertyName: "paramStyle", publicName: "paramStyle", isSignal: false, isRequired: false, transformFunction: null }, formatSavedValue: { classPropertyName: "formatSavedValue", publicName: "formatSavedValue", isSignal: false, isRequired: false, transformFunction: null }, parseSavedValue: { classPropertyName: "parseSavedValue", publicName: "parseSavedValue", isSignal: false, isRequired: false, transformFunction: null }, formatGqlValue: { classPropertyName: "formatGqlValue", publicName: "formatGqlValue", isSignal: false, isRequired: false, transformFunction: null }, buildShowedValue: { classPropertyName: "buildShowedValue", publicName: "buildShowedValue", isSignal: true, isRequired: false, transformFunction: null }, templateReadValue: { classPropertyName: "templateReadValue", publicName: "templateReadValue", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null } }, providers: [
|
|
172
197
|
{
|
|
173
198
|
provide: NG_VALUE_ACCESSOR,
|
|
174
199
|
useExisting: forwardRef(() => ParamBase),
|
|
@@ -212,4 +237,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
212
237
|
}, {
|
|
213
238
|
type: Self
|
|
214
239
|
}] } });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29yZS9wYXJhbS9wYXJhbS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixLQUFLLEVBQ0wsS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBT2hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFXeEQsTUFBTSxPQUFnQixTQUFTO0lBa0I3Qix3R0FBd0c7SUFDeEcsSUFBYSxnQkFBZ0IsQ0FDM0IsU0FBeUU7UUFFekUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFDRCxvSEFBb0g7SUFDcEgsSUFBYSxlQUFlLENBQzFCLE1BQW1FO1FBRW5FLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBQ0QsNEdBQTRHO0lBQzVHLElBQWEsY0FBYyxDQUFDLFNBQXVEO1FBQ2pGLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO1FBQ3JDLENB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VUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsUUFBaUI7UUFDM0MsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDMUIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDOytHQWhPbUIsU0FBUzttR0FBVCxTQUFTLHNvREFSbEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztnQkFDeEMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGOzs0RkFFbUIsU0FBUztrQkFUOUIsU0FBUzttQkFBQztvQkFDVCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDOzRCQUN4QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs2RUFRVSxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFRTyxlQUFlO3NCQUEzQixLQUFLO2dCQVFPLGNBQWM7c0JBQTFCLEtBQUs7Z0JBUU8sUUFBUTtzQkFBcEIsS0FBSztnQkFTTyxRQUFRO3NCQUFwQixLQUFLO2dCQVdXLFVBQVU7c0JBRjFCLFFBQVE7O3NCQUNSLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgY29tcHV0ZWQsXG4gIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlsdGVyLCBza2lwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IElJbnB1dENvbnRyb2wsIElucHV0Q29udHJvbEdxbFZhbHVlLCBJbnB1dENvbnRyb2xTYXZlVmFsdWUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge1xuICBGb3JtYXR0ZXJHcWxWYWx1ZVR5cGUsXG4gIEZvcm1hdHRlclNhdmVkVmFsdWVUeXBlLFxuICBQYXJzZXJTYXZlZFZhbHVlVHlwZSxcbn0gZnJvbSAnLi4vLi4vdHlwZXMvcGFyYW1zLnR5cGVzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkSlNPTnMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBhcmFtQmFzZSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYXJhbUJhc2U8XG4gICAgVmFsdWVUeXBlIGV4dGVuZHMgYW55IHwgbnVsbCxcbiAgICBTYXZlZFZhbHVlVHlwZSBleHRlbmRzIElucHV0Q29udHJvbFNhdmVWYWx1ZSxcbiAgPlxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXRcbntcbiAgLyoqINCd0LDQt9Cy0LDQvdC40LUgKi9cbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgLyoqINCi0LXQutGB0YIg0L/RgNC4INC/0YPRgdGC0L7QvCDQt9C90LDRh9C10L3QuNC4IGNvbnRyb2wgKG51bGwpICovXG4gIHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIC8qKiDQoNC10LbQuNC8INC/0YDQvtGB0LzQvtGC0YDQsCwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LLRi9C60LvRjtGH0LXQvSAqL1xuICBASW5wdXQoKSByZWFkbW9kZSA9IGZhbHNlO1xuICAvKiog0JrQvdC+0L/QutCwINCx0YvRgdGC0YDQvtC5INC+0YfQuNGB0YLQutC4INC/0L7Qu9GPLCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQstC60LvRjtGH0LXQvdCwICovXG4gIEBJbnB1dCgpIGZvcmNlQ2xlYXIgPSB0cnVlO1xuICAvKiog0KLQtdC60YHRgiDQv9GA0Lgg0L3QsNCy0LXQtNC10L3QuNC4INC90LAg0LfQvdCw0YfQtdC90LjQtSBjb250cm9sICovXG4gIEBJbnB1dCgpIGhpbnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAvKiog0JPQvtGC0L7QstGL0LUg0YHRgtC40LvQuCDQtNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8g0L/QvtC70Y8g0LIg0L/QsNC90LXQu9C4INGE0LjQu9GM0YLRgNC+0LIv0L/QsNGA0LDQvNC10YLRgNC+0LIg0LjQu9C4INC90LAg0LrQsNGA0YLQvtGH0LrQtSwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0YHRgtC40LvQuCDQtNC70Y8g0LrQsNGA0YLQvtGH0LrQuCAqL1xuICBASW5wdXQoKSBwYXJhbVN0eWxlOiAnZmlsdGVyJyB8ICdjYXJkJyA9ICdjYXJkJztcbiAgLyoqINCc0LXRgtC+0LQg0LTQu9GPINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0LfQvdCw0YfQtdC90LjRjyBjb250cm9sINC/0YDQuCDRgdC+0YXRgNCw0L3QtdC90LjQuCAo0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC/0YDQuCDRgdC+0YXRgNCw0L3QtdC90LjQuCDRhNC40LvRjNGC0YDQvtCyINCyINCR0JQpICovXG4gIEBJbnB1dCgpIHNldCBmb3JtYXRTYXZlZFZhbHVlKFxuICAgIGZvcm1hdHRlcjogRm9ybWF0dGVyU2F2ZWRWYWx1ZVR5cGU8VmFsdWVUeXBlLCBTYXZlZFZhbHVlVHlwZT4gfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgaWYgKGZvcm1hdHRlcikge1xuICAgICAgdGhpcy5mb3JtYXR0ZXJTYXZlZFZhbHVlID0gZm9ybWF0dGVyO1xuICAgIH1cbiAgfVxuICAvKiog0JzQtdGC0L7QtCDQtNC70Y8g0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDRgdC+0YXRgNCw0L3QtdC90L3QvtCz0L4g0LfQvdCw0YfQtdC90LjRjyDQsiBjb250cm9sICjQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0L/RgNC4INGD0YHRgtCw0L3QvtCy0LrQtSDRgdC+0YXRgNCw0L3QtdC90L3Ri9GFINGE0LjQu9GM0YLRgNC+0LIg0LjQtyDQkdCUKSAqL1xuICBASW5wdXQoKSBzZXQgcGFyc2VTYXZlZFZhbHVlKFxuICAgIHBhcnNlcjogUGFyc2VyU2F2ZWRWYWx1ZVR5cGU8U2F2ZWRWYWx1ZVR5cGUsIFZhbHVlVHlwZT4gfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgaWYgKHBhcnNlcikge1xuICAgICAgdGhpcy5wYXJzZXJTYXZlZFZhbHVlID0gcGFyc2VyO1xuICAgIH1cbiAgfVxuICAvKiog0JzQtdGC0L7QtCDQtNC70Y8g0LrQvtC90LLQtdGA0YLQsNGG0LjQuCDQt9C90LDRh9C10L3QuNGPIGNvbnRyb2wg0LIgR1FMLdC30L3QsNGH0LXQvdC40LUgKNC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQv9GA0Lgg0LLRi9GH0LjRgdC70LXQvdC40LggZ3FsX3ZhbHVlIGNvbnRyb2wpICovXG4gIEBJbnB1dCgpIHNldCBmb3JtYXRHcWxWYWx1ZShmb3JtYXR0ZXI6IEZvcm1hdHRlckdxbFZhbHVlVHlwZTxWYWx1ZVR5cGU+IHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKGZvcm1hdHRlcikge1xuICAgICAgdGhpcy5mb3JtYXR0ZXJHcWxWYWx1ZSA9IGZvcm1hdHRlcjtcbiAgICB9XG4gIH1cbiAgLyoqINCc0LXRgtC+0LQg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyDQsiDRgNC10LbQuNC80LUg0L/RgNC+0YHQvNC+0YLRgNCwICovXG4gIGJ1aWxkU2hvd2VkVmFsdWUgPSBpbnB1dCgoXzogVmFsdWVUeXBlKTogc3RyaW5nID0+ICcnKTtcblxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IHJlcXVpcmVkO1xuICAgIHRoaXMuX3NldENvbnRyb2xSZXF1aXJlZChyZXF1aXJlZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/PyBmYWxzZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgdGhpcy5fc2V0Q29udHJvbERpc2FibGVkKGRpc2FibGVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZGlzYWJsZWQgPz8gZmFsc2U7XG4gIH1cblxuICBAT3B0aW9uYWwoKVxuICBAU2VsZigpXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nQ29udHJvbCA9IGluamVjdChOZ0NvbnRyb2wpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHIgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcHJvdGVjdGVkIGNvbnRyb2whOiBJSW5wdXRDb250cm9sPFZhbHVlVHlwZSwgU2F2ZWRWYWx1ZVR5cGU+O1xuICBwcm90ZWN0ZWQgZm9ybWF0dGVyU2F2ZWRWYWx1ZTogKHZhbHVlOiBWYWx1ZVR5cGUsIGluamVjdG9yPzogSW5qZWN0b3IpID0+IFNhdmVkVmFsdWVUeXBlID0gKFxuICAgIHZhbHVlXG4gICkgPT4gdmFsdWUgYXMgdW5rbm93biBhcyBTYXZlZFZhbHVlVHlwZTtcbiAgcHJvdGVjdGVkIHBhcnNlclNhdmVkVmFsdWU6ICh2YWx1ZTogU2F2ZWRWYWx1ZVR5cGUsIGluamVjdG9yPzogSW5qZWN0b3IpID0+IFZhbHVlVHlwZSA9ICh2YWx1ZSkgPT5cbiAgICB2YWx1ZSBhcyB1bmtub3duIGFzIFZhbHVlVHlwZTtcbiAgcHJvdGVjdGVkIGZvcm1hdHRlckdxbFZhbHVlOiAodmFsdWU6IFZhbHVlVHlwZSwgaW5qZWN0b3I/OiBJbmplY3RvcikgPT4gSW5wdXRDb250cm9sR3FsVmFsdWUgPSAoXG4gICAgX1xuICApID0+IHVuZGVmaW5lZCBhcyBJbnB1dENvbnRyb2xHcWxWYWx1ZTtcblxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9pc091dGVyVXBkYXRpbmdTYXZlZFZhbHVlID0gdHJ1ZTtcblxuICBwcm90ZWN0ZWQgc2hvd2VkVmFsdWUgPSAnJztcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBwbGllZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29udHJvbC5hcHBsaWVkPy4oKSA/PyBmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgaWYgKHRoaXMuX25nQ29udHJvbCkge1xuICAgICAgdGhpcy5fbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogVmFsdWVUeXBlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5nZXRSYXdWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFZhbHVlVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZVNob3dlZFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wucmVzZXQoKTtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IFZhbHVlVHlwZSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkNoYW5nZTogKHZhbHVlOiBWYWx1ZVR5cGUpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ub3VjaGVkID0gKCk6IHZvaWQgPT4ge307XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub25Jbml0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Jbml0KCk6IHZvaWQge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWZ0ZXJWaWV3SW5pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFmdGVyVmlld0luaXQoKTogdm9pZCB7fVxuXG4gIHByb3RlY3RlZCBnZXQgaXNJbnZhbGlkQW5kTm90UHJpc3RpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5pbnZhbGlkICYmICF0aGlzLmNvbnRyb2wucHJpc3RpbmU7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNOb3RFbXB0eSgpOiBib29sZWFuIHtcbiAgICBjb25zdCB2ID0gdGhpcy52YWx1ZTtcblxuICAgIHJldHVybiAhKFxuICAgICAgdiA9PT0gbnVsbCB8fFxuICAgICAgdiA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAodHlwZW9mIHYgPT09ICdzdHJpbmcnICYmIHYudHJpbSgpID09PSAnJykgfHxcbiAgICAgIChBcnJheS5pc0FycmF5KHYpICYmIHYubGVuZ3RoID09PSAwKSB8fFxuICAgICAgKHR5cGVvZiB2ID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2KSAmJiBPYmplY3Qua2V5cyh2KS5sZW5ndGggPT09IDApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sID1cbiAgICAgIHRoaXMuX25nQ29udHJvbCAmJiAodGhpcy5fbmdDb250cm9sLmNvbnRyb2wgYXMgSUlucHV0Q29udHJvbDxWYWx1ZVR5cGUsIFNhdmVkVmFsdWVUeXBlPik7XG5cbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBpZiAodGhpcy5fcmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5fc2V0Q29udHJvbFJlcXVpcmVkKHRoaXMuX3JlcXVpcmVkKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuX3NldENvbnRyb2xEaXNhYmxlZCh0aGlzLl9kaXNhYmxlZCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3N1YnNjcmliZU9uVmFsdWUoKTtcbiAgICAgIHRoaXMuX3N1YnNjcmliZU9uU2F2ZWRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHRoaXMuYWZ0ZXJDb250ZW50SW5pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlT25WYWx1ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWRKU09OcygpLFxuICAgICAgICB0YXAoKHZhbHVlKSA9PiB0aGlzLl91cGRhdGVTYXZlZFZhbHVlKHZhbHVlKSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRyKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5jb250cm9sLmdxbF92YWx1ZSA9IHRoaXMuZm9ybWF0dGVyR3FsVmFsdWUodmFsdWUsIHRoaXMuX2luamVjdG9yKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlU2hvd2VkVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTm90RW1wdHkoKSkge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5hcHBsaWVkPy5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVNob3dlZFZhbHVlKHZhbHVlOiBWYWx1ZVR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dlZFZhbHVlID0gdGhpcy5idWlsZFNob3dlZFZhbHVlKCkodmFsdWUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2F2ZWRWYWx1ZSh2YWx1ZTogVmFsdWVUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5faXNPdXRlclVwZGF0aW5nU2F2ZWRWYWx1ZSA9IGZhbHNlO1xuICAgIGNvbnN0IHNhdmVkVmFsdWUgPSB0aGlzLmZvcm1hdHRlclNhdmVkVmFsdWUodmFsdWUsIHRoaXMuX2luamVjdG9yKTtcbiAgICB0aGlzLmNvbnRyb2wuc2F2ZWRfdmFsdWUkPy5uZXh0KHNhdmVkVmFsdWUpO1xuICAgIHRoaXMuX2lzT3V0ZXJVcGRhdGluZ1NhdmVkVmFsdWUgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlT25TYXZlZFZhbHVlKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbC5zYXZlZF92YWx1ZSRcbiAgICAgID8ucGlwZShcbiAgICAgICAgc2tpcCgxKSwgLy8g0L/RgNC4INC/0L7QtNC/0LjRgdGL0LLQsNC90LjQuCDQvdCwIHNhdmVkX3ZhbHVlJCDQv9C10YDQstGL0Lwg0L/RgNC40YXQvtC00LjRgiBudWxsIC0g0L/RgNC+0L/Rg9GB0LrQsNC10LxcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuX2lzT3V0ZXJVcGRhdGluZ1NhdmVkVmFsdWUpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHNhdmVkVmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPVxuICAgICAgICAgIHNhdmVkVmFsdWUgPT09IG51bGwgPyBudWxsIDogdGhpcy5wYXJzZXJTYXZlZFZhbHVlKHNhdmVkVmFsdWUsIHRoaXMuX2luamVjdG9yKTtcbiAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlIGFzIFZhbHVlVHlwZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge31cblxuICBwcml2YXRlIF9zZXRDb250cm9sUmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuY29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sPy5yZW1vdmVWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldENvbnRyb2xEaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgdGhpcy5jb250cm9sPy5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29yZS9wYXJhbS9wYXJhbS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFFTixLQUFLLEVBQ0wsS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU9oRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBWXJGLE1BQU0sT0FBZ0IsU0FBUztJQTRCN0Isd0dBQXdHO0lBQ3hHLElBQWEsZ0JBQWdCLENBQzNCLFNBQXlFO1FBRXpFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBQ0Qsb0hBQW9IO0lBQ3BILElBQWEsZUFBZSxDQUMxQixNQUFtRTtRQUVuRSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUNELDRHQUE0RztJQUM1RyxJQUFhLGNBQWMsQ0FBQyxTQUF1RDtRQUNqRixJQUFJLFNBQVMs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QUFFLENBQUM7WUFDYixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzFCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQzsrR0E3UG1CLFNBQVM7bUdBQVQsU0FBUywrcEVBUmxCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUM7Z0JBQ3hDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7NEZBRW1CLFNBQVM7a0JBVDlCLFNBQVM7bUJBQUM7b0JBQ1QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQzs0QkFDeEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7NkVBWVUsS0FBSztzQkFBYixLQUFLO2dCQVVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFTyxnQkFBZ0I7c0JBQTVCLEtBQUs7Z0JBUU8sZUFBZTtzQkFBM0IsS0FBSztnQkFRTyxjQUFjO3NCQUExQixLQUFLO2dCQVVPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBU08sUUFBUTtzQkFBcEIsS0FBSztnQkFlVyxVQUFVO3NCQUYxQixRQUFROztzQkFDUixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIGNvbXB1dGVkLFxuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpbHRlciwgc2tpcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBJSW5wdXRDb250cm9sLCBJbnB1dENvbnRyb2xHcWxWYWx1ZSwgSW5wdXRDb250cm9sU2F2ZVZhbHVlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgRm9ybWF0dGVyR3FsVmFsdWVUeXBlLFxuICBGb3JtYXR0ZXJTYXZlZFZhbHVlVHlwZSxcbiAgUGFyc2VyU2F2ZWRWYWx1ZVR5cGUsXG59IGZyb20gJy4uLy4uL3R5cGVzL3BhcmFtcy50eXBlcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZEpTT05zIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmFsaWRhdGlvbi1tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHVpU2l6ZUwsIFR1aVNpemVTIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQYXJhbUJhc2UpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFyYW1CYXNlPFxuICAgIFZhbHVlVHlwZSBleHRlbmRzIGFueSB8IG51bGwsXG4gICAgU2F2ZWRWYWx1ZVR5cGUgZXh0ZW5kcyBJbnB1dENvbnRyb2xTYXZlVmFsdWUsXG4gID5cbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0XG57XG4gIHByb3RlY3RlZCByZWFkb25seSB2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgPSBpbmplY3QoVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gIH0pO1xuXG4gIC8qKiDQndCw0LfQstCw0L3QuNC1ICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIC8qKiDQotC10LrRgdGCINC/0YDQuCDQv9GD0YHRgtC+0Lwg0LfQvdCw0YfQtdC90LjQuCBjb250cm9sIChudWxsKSAqL1xuICBwdWJsaWMgcGxhY2Vob2xkZXIgPSBpbnB1dCgnJyk7XG4gIC8qKiDQntGC0L7QsdGA0LDQttCw0LXQvNGL0Lkg0L/RgNC4INC90LDQstC10LTQtdC90LjQuCDQvdCwINC30L3QsNGH0L7QuiDRgNGP0LTQvtC8INGBINC70LXQudCx0LvQvtC8INGC0LXQutGB0YIg0LIg0YDQtdC20LjQvNC1INC/0YDQvtGB0LzQvtGC0YDQsCAqL1xuICBwdWJsaWMgdG9vbHRpcCA9IGlucHV0KCcnKTtcbiAgLyoqINCe0YLQvtCx0YDQsNC20LDQtdC80YvQuSDQv9GA0Lgg0L3QsNCy0LXQtNC10L3QuNC4INC90LAg0LfQvdCw0YfQvtC6INGA0Y/QtNC+0Lwg0YEg0LvQtdC50LHQu9C+0Lwg0YLQtdC60YHRgiDQsiDRgNC10LbQuNC80LUg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyAqL1xuICBwdWJsaWMgZWRpdFRvb2x0aXAgPSBpbnB1dCgnJyk7XG4gIC8qKiDQoNCw0LfQvNC10YAg0L/QvtC70Y8gKi9cbiAgcHVibGljIHNpemUgPSBpbnB1dDxUdWlTaXplUyB8IFR1aVNpemVMPignbScpO1xuICAvKiog0KDQtdC20LjQvCDQv9GA0L7RgdC80L7RgtGA0LAsINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINCy0YvQutC70Y7Rh9C10L0gKi9cbiAgQElucHV0KCkgcmVhZG1vZGUgPSBmYWxzZTtcbiAgLyoqINCa0L3QvtC/0LrQsCDQsdGL0YHRgtGA0L7QuSDQvtGH0LjRgdGC0LrQuCDQv9C+0LvRjywg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LLQutC70Y7Rh9C10L3QsCAqL1xuICBASW5wdXQoKSBmb3JjZUNsZWFyID0gdHJ1ZTtcbiAgLyoqINCi0LXQutGB0YIg0L/RgNC4INC90LDQstC10LTQtdC90LjQuCDQvdCwINC30L3QsNGH0LXQvdC40LUgY29udHJvbCAqL1xuICBASW5wdXQoKSBoaW50OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgLyoqINCT0L7RgtC+0LLRi9C1INGB0YLQuNC70Lgg0LTQu9GPINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPINC/0L7Qu9GPINCyINC/0LDQvdC10LvQuCDRhNC40LvRjNGC0YDQvtCyL9C/0LDRgNCw0LzQtdGC0YDQvtCyINC40LvQuCDQvdCwINC60LDRgNGC0L7Rh9C60LUsINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOINGB0YLQuNC70Lgg0LTQu9GPINC60LDRgNGC0L7Rh9C60LggKi9cbiAgQElucHV0KCkgcGFyYW1TdHlsZTogJ2ZpbHRlcicgfCAnY2FyZCcgPSAnY2FyZCc7XG4gIC8qKiDQnNC10YLQvtC0INC00LvRjyDQutC+0L3QstC10YDRgtCw0YbQuNC4INC30L3QsNGH0LXQvdC40Y8gY29udHJvbCDQv9GA0Lgg0YHQvtGF0YDQsNC90LXQvdC40LggKNC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQv9GA0Lgg0YHQvtGF0YDQsNC90LXQvdC40Lgg0YTQuNC70YzRgtGA0L7QsiDQsiDQkdCUKSAqL1xuICBASW5wdXQoKSBzZXQgZm9ybWF0U2F2ZWRWYWx1ZShcbiAgICBmb3JtYXR0ZXI6IEZvcm1hdHRlclNhdmVkVmFsdWVUeXBlPFZhbHVlVHlwZSwgU2F2ZWRWYWx1ZVR5cGU+IHwgdW5kZWZpbmVkXG4gICkge1xuICAgIGlmIChmb3JtYXR0ZXIpIHtcbiAgICAgIHRoaXMuZm9ybWF0dGVyU2F2ZWRWYWx1ZSA9IGZvcm1hdHRlcjtcbiAgICB9XG4gIH1cbiAgLyoqINCc0LXRgtC+0LQg0LTQu9GPINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0YHQvtGF0YDQsNC90LXQvdC90L7Qs9C+INC30L3QsNGH0LXQvdC40Y8g0LIgY29udHJvbCAo0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC/0YDQuCDRg9GB0YLQsNC90L7QstC60LUg0YHQvtGF0YDQsNC90LXQvdC90YvRhSDRhNC40LvRjNGC0YDQvtCyINC40Lcg0JHQlCkgKi9cbiAgQElucHV0KCkgc2V0IHBhcnNlU2F2ZWRWYWx1ZShcbiAgICBwYXJzZXI6IFBhcnNlclNhdmVkVmFsdWVUeXBlPFNhdmVkVmFsdWVUeXBlLCBWYWx1ZVR5cGU+IHwgdW5kZWZpbmVkXG4gICkge1xuICAgIGlmIChwYXJzZXIpIHtcbiAgICAgIHRoaXMucGFyc2VyU2F2ZWRWYWx1ZSA9IHBhcnNlcjtcbiAgICB9XG4gIH1cbiAgLyoqINCc0LXRgtC+0LQg0LTQu9GPINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0LfQvdCw0YfQtdC90LjRjyBjb250cm9sINCyIEdRTC3Qt9C90LDRh9C10L3QuNC1ICjQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0L/RgNC4INCy0YvRh9C40YHQu9C10L3QuNC4IGdxbF92YWx1ZSBjb250cm9sKSAqL1xuICBASW5wdXQoKSBzZXQgZm9ybWF0R3FsVmFsdWUoZm9ybWF0dGVyOiBGb3JtYXR0ZXJHcWxWYWx1ZVR5cGU8VmFsdWVUeXBlPiB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChmb3JtYXR0ZXIpIHtcbiAgICAgIHRoaXMuZm9ybWF0dGVyR3FsVmFsdWUgPSBmb3JtYXR0ZXI7XG4gICAgfVxuICB9XG4gIC8qKiDQnNC10YLQvtC0INC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC30L3QsNGH0LXQvdC40Y8g0LIg0YDQtdC20LjQvNC1INC/0YDQvtGB0LzQvtGC0YDQsCAqL1xuICBidWlsZFNob3dlZFZhbHVlID0gaW5wdXQoKF86IFZhbHVlVHlwZSk6IHN0cmluZyA9PiAnJyk7XG4gIC8qKiDQqNCw0LHQu9C+0L0g0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyDQsiDRgNC10LbQuNC80LUg0L/RgNC+0YHQvNC+0YLRgNCwICovXG4gIHB1YmxpYyB0ZW1wbGF0ZVJlYWRWYWx1ZSA9IGlucHV0PFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBWYWx1ZVR5cGUgfT4gfCBudWxsPihudWxsKTtcblxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IHJlcXVpcmVkO1xuICAgIHRoaXMuX3NldENvbnRyb2xSZXF1aXJlZChyZXF1aXJlZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/PyBmYWxzZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XG4gICAgdGhpcy5fc2V0Q29udHJvbERpc2FibGVkKGRpc2FibGVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZGlzYWJsZWQgPz8gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9lcnJvck1lc3NhZ2UgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25FcnJvckhpbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9lcnJvck1lc3NhZ2UoKSA/PyAnJyk7XG5cbiAgQE9wdGlvbmFsKClcbiAgQFNlbGYoKVxuICBwcml2YXRlIHJlYWRvbmx5IF9uZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIHByb3RlY3RlZCBjb250cm9sITogSUlucHV0Q29udHJvbDxWYWx1ZVR5cGUsIFNhdmVkVmFsdWVUeXBlPjtcbiAgcHJvdGVjdGVkIGZvcm1hdHRlclNhdmVkVmFsdWU6ICh2YWx1ZTogVmFsdWVUeXBlLCBpbmplY3Rvcj86IEluamVjdG9yKSA9PiBTYXZlZFZhbHVlVHlwZSA9IChcbiAgICB2YWx1ZVxuICApID0+IHZhbHVlIGFzIHVua25vd24gYXMgU2F2ZWRWYWx1ZVR5cGU7XG4gIHByb3RlY3RlZCBwYXJzZXJTYXZlZFZhbHVlOiAodmFsdWU6IFNhdmVkVmFsdWVUeXBlLCBpbmplY3Rvcj86IEluamVjdG9yKSA9PiBWYWx1ZVR5cGUgPSAodmFsdWUpID0+XG4gICAgdmFsdWUgYXMgdW5rbm93biBhcyBWYWx1ZVR5cGU7XG4gIHByb3RlY3RlZCBmb3JtYXR0ZXJHcWxWYWx1ZTogKHZhbHVlOiBWYWx1ZVR5cGUsIGluamVjdG9yPzogSW5qZWN0b3IpID0+IElucHV0Q29udHJvbEdxbFZhbHVlID0gKFxuICAgIF9cbiAgKSA9PiB1bmRlZmluZWQgYXMgSW5wdXRDb250cm9sR3FsVmFsdWU7XG5cbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaXNPdXRlclVwZGF0aW5nU2F2ZWRWYWx1ZSA9IHRydWU7XG5cbiAgcHJvdGVjdGVkIHNob3dlZFZhbHVlID0gJyc7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGFwcGxpZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbnRyb2wuYXBwbGllZD8uKCkgPz8gZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2luamVjdG9yOiBJbmplY3Rvcikge1xuICAgIGlmICh0aGlzLl9uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMuX25nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbD8uZ2V0UmF3VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBWYWx1ZVR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVTaG93ZWRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnJlc2V0KCk7XG4gICAgdGhpcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiBWYWx1ZVR5cGUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25DaGFuZ2U6ICh2YWx1ZTogVmFsdWVUeXBlKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9uSW5pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW5pdCgpOiB2b2lkIHt9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFmdGVyVmlld0luaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZnRlclZpZXdJbml0KCk6IHZvaWQge31cblxuICBwcm90ZWN0ZWQgZ2V0IGlzSW52YWxpZEFuZE5vdFByaXN0aW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiAhdGhpcy5jb250cm9sLnByaXN0aW5lO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzTm90RW1wdHkoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdiA9IHRoaXMudmFsdWU7XG5cbiAgICByZXR1cm4gIShcbiAgICAgIHYgPT09IG51bGwgfHxcbiAgICAgIHYgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgKHR5cGVvZiB2ID09PSAnc3RyaW5nJyAmJiB2LnRyaW0oKSA9PT0gJycpIHx8XG4gICAgICAoQXJyYXkuaXNBcnJheSh2KSAmJiB2Lmxlbmd0aCA9PT0gMCkgfHxcbiAgICAgICh0eXBlb2YgdiA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodikgJiYgT2JqZWN0LmtleXModikubGVuZ3RoID09PSAwKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbCA9XG4gICAgICB0aGlzLl9uZ0NvbnRyb2wgJiYgKHRoaXMuX25nQ29udHJvbC5jb250cm9sIGFzIElJbnB1dENvbnRyb2w8VmFsdWVUeXBlLCBTYXZlZFZhbHVlVHlwZT4pO1xuXG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgaWYgKHRoaXMuX3JlcXVpcmVkKSB7XG4gICAgICAgIHRoaXMuX3NldENvbnRyb2xSZXF1aXJlZCh0aGlzLl9yZXF1aXJlZCk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLl9zZXRDb250cm9sRGlzYWJsZWQodGhpcy5fZGlzYWJsZWQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9zdWJzY3JpYmVPblZhbHVlKCk7XG4gICAgICB0aGlzLl9zdWJzY3JpYmVPblNhdmVkVmFsdWUoKTtcbiAgICAgIHRoaXMuX3N1YnNjcmliZU9uVmFsaWRhdGlvbk1lc3NhZ2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLmFmdGVyQ29udGVudEluaXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZU9uVmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkSlNPTnMoKSxcbiAgICAgICAgdGFwKCh2YWx1ZSkgPT4gdGhpcy5fdXBkYXRlU2F2ZWRWYWx1ZSh2YWx1ZSkpLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMub25Db250cm9sVmFsdWVDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jb250cm9sLmdxbF92YWx1ZSA9IHRoaXMuZm9ybWF0dGVyR3FsVmFsdWUodmFsdWUsIHRoaXMuX2luamVjdG9yKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlU2hvd2VkVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTm90RW1wdHkoKSkge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5hcHBsaWVkPy5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkNvbnRyb2xWYWx1ZUNoYW5nZSgpOiB2b2lkIHt9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2hvd2VkVmFsdWUodmFsdWU6IFZhbHVlVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuc2hvd2VkVmFsdWUgPSB0aGlzLmJ1aWxkU2hvd2VkVmFsdWUoKSh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTYXZlZFZhbHVlKHZhbHVlOiBWYWx1ZVR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl9pc091dGVyVXBkYXRpbmdTYXZlZFZhbHVlID0gZmFsc2U7XG4gICAgY29uc3Qgc2F2ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0dGVyU2F2ZWRWYWx1ZSh2YWx1ZSwgdGhpcy5faW5qZWN0b3IpO1xuICAgIHRoaXMuY29udHJvbC5zYXZlZF92YWx1ZSQ/Lm5leHQoc2F2ZWRWYWx1ZSk7XG4gICAgdGhpcy5faXNPdXRlclVwZGF0aW5nU2F2ZWRWYWx1ZSA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVPblNhdmVkVmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sLnNhdmVkX3ZhbHVlJFxuICAgICAgPy5waXBlKFxuICAgICAgICBza2lwKDEpLCAvLyDQv9GA0Lgg0L/QvtC00L/QuNGB0YvQstCw0L3QuNC4INC90LAgc2F2ZWRfdmFsdWUkINC/0LXRgNCy0YvQvCDQv9GA0LjRhdC+0LTQuNGCIG51bGwgLSDQv9GA0L7Qv9GD0YHQutCw0LXQvFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5faXNPdXRlclVwZGF0aW5nU2F2ZWRWYWx1ZSksXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRyKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc2F2ZWRWYWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgc2F2ZWRWYWx1ZSA9PT0gbnVsbCA/IG51bGwgOiB0aGlzLnBhcnNlclNhdmVkVmFsdWUoc2F2ZWRWYWx1ZSwgdGhpcy5faW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUgYXMgVmFsdWVUeXBlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlT25WYWxpZGF0aW9uTWVzc2FnZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlU2VydmljZVxuICAgICAgPy5vYnNlcnZlQ29udHJvbEVycm9ycyh0aGlzLmNvbnRyb2wpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kcikpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMuX2Vycm9yTWVzc2FnZS5zZXQobWVzc2FnZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge31cblxuICBwcml2YXRlIF9zZXRDb250cm9sUmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuY29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sPy5yZW1vdmVWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldENvbnRyb2xEaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgdGhpcy5jb250cm9sPy5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,15 +1,24 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
1
|
+
import { computed, Directive, inject, input } from '@angular/core';
|
|
2
2
|
import { DateTimeService } from '../../services/date-time.service';
|
|
3
3
|
import { ParamBase } from './param-base';
|
|
4
|
-
import { EDatePattern
|
|
4
|
+
import { EDatePattern } from '../../directives/date/date-time.types';
|
|
5
|
+
import { TuiDay } from '@taiga-ui/cdk';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class ParamDateBase extends ParamBase {
|
|
7
|
-
constructor(
|
|
8
|
-
super(
|
|
9
|
-
this.
|
|
10
|
-
this.
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this._dts = inject(DateTimeService);
|
|
11
|
+
this.min = input(null);
|
|
12
|
+
this.max = input(null);
|
|
13
|
+
this.minDay = computed(() => {
|
|
14
|
+
const min = this.min();
|
|
15
|
+
return min ? TuiDay.fromLocalNativeDate(min) : null;
|
|
16
|
+
});
|
|
17
|
+
this.maxDay = computed(() => {
|
|
18
|
+
const max = this.max();
|
|
19
|
+
return max ? TuiDay.fromLocalNativeDate(max) : null;
|
|
20
|
+
});
|
|
11
21
|
this.EDatePattern = EDatePattern;
|
|
12
|
-
this._dts = this._dateInjector.get(DateTimeService);
|
|
13
22
|
this.timezoneChange = this._dts.isTimeZoneChanged$;
|
|
14
23
|
}
|
|
15
24
|
rebuildDateInNewTimezone(date, prevDiff, currDiff) {
|
|
@@ -17,10 +26,10 @@ export class ParamDateBase extends ParamBase {
|
|
|
17
26
|
const utc = new Date(iso).toISOString();
|
|
18
27
|
return this._dts.isoToLocalDate(utc, currDiff);
|
|
19
28
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamDateBase, deps:
|
|
21
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamDateBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
30
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: ParamDateBase, inputs: { min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
|
|
22
31
|
}
|
|
23
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ParamDateBase, decorators: [{
|
|
24
33
|
type: Directive
|
|
25
|
-
}]
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0tZGF0ZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9jb3JlL3BhcmFtL3BhcmFtLWRhdGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUEyQixNQUFNLGVBQWUsQ0FBQzs7QUFPaEUsTUFBTSxPQUFnQixhQUdwQixTQUFRLFNBQW9DO0lBSjlDOztRQUtxQixTQUFJLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTNDLFFBQUcsR0FBRyxLQUFLLENBQTBCLElBQUksQ0FBQyxDQUFDO1FBQzNDLFFBQUcsR0FBRyxLQUFLLENBQTBCLElBQUksQ0FBQyxDQUFDO1FBRXhDLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFDTyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMvQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkIsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBRWdCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBRTVCLG1CQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztLQVFsRTtJQU5XLHdCQUF3QixDQUFDLElBQVUsRUFBRSxRQUFnQixFQUFFLFFBQWdCO1FBQy9FLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdELE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXhDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7K0dBM0JtQixhQUFhO21HQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRGxDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlVGltZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRlLXRpbWUuc2VydmljZSc7XG5pbXBvcnQgeyBQYXJhbUJhc2UgfSBmcm9tICcuL3BhcmFtLWJhc2UnO1xuaW1wb3J0IHsgSW5wdXRDb250cm9sU2F2ZVZhbHVlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRURhdGVQYXR0ZXJuIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kYXRlL2RhdGUtdGltZS50eXBlcyc7XG5pbXBvcnQgeyBUdWlEYXksIFR1aU1vbnRoLCBUdWlNb250aFJhbmdlIH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZVR5cGUgPSB7IGZyb206IERhdGU7IHRvOiBEYXRlIH07XG5cbnR5cGUgUGFyYW1EYXRlVHlwZSA9IFR1aURheSB8IFR1aU1vbnRoIHwgVHVpTW9udGhSYW5nZSB8IERhdGVSYW5nZVR5cGUgfCBEYXRlO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYXJhbURhdGVCYXNlPFxuICBWYWx1ZVR5cGUgZXh0ZW5kcyBQYXJhbURhdGVUeXBlIHwgbnVsbCxcbiAgU2F2ZWRWYWx1ZVR5cGUgZXh0ZW5kcyBJbnB1dENvbnRyb2xTYXZlVmFsdWUsXG4+IGV4dGVuZHMgUGFyYW1CYXNlPFZhbHVlVHlwZSwgU2F2ZWRWYWx1ZVR5cGU+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kdHMgPSBpbmplY3QoRGF0ZVRpbWVTZXJ2aWNlKTtcblxuICBwdWJsaWMgbWluID0gaW5wdXQ8RGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ+KG51bGwpO1xuICBwdWJsaWMgbWF4ID0gaW5wdXQ8RGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBtaW5EYXkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWluID0gdGhpcy5taW4oKTtcbiAgICByZXR1cm4gbWluID8gVHVpRGF5LmZyb21Mb2NhbE5hdGl2ZURhdGUobWluKSA6IG51bGw7XG4gIH0pO1xuICBwcm90ZWN0ZWQgbWF4RGF5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1heCA9IHRoaXMubWF4KCk7XG4gICAgcmV0dXJuIG1heCA/IFR1aURheS5mcm9tTG9jYWxOYXRpdmVEYXRlKG1heCkgOiBudWxsO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgRURhdGVQYXR0ZXJuID0gRURhdGVQYXR0ZXJuO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0aW1lem9uZUNoYW5nZSA9IHRoaXMuX2R0cy5pc1RpbWVab25lQ2hhbmdlZCQ7XG5cbiAgcHJvdGVjdGVkIHJlYnVpbGREYXRlSW5OZXdUaW1lem9uZShkYXRlOiBEYXRlLCBwcmV2RGlmZjogc3RyaW5nLCBjdXJyRGlmZjogc3RyaW5nKTogRGF0ZSB7XG4gICAgY29uc3QgaXNvID0gdGhpcy5fZHRzLmNvbnZlcnREYXRlVG9JU09XaXRoVFooZGF0ZSwgcHJldkRpZmYpO1xuICAgIGNvbnN0IHV0YyA9IG5ldyBEYXRlKGlzbykudG9JU09TdHJpbmcoKTtcblxuICAgIHJldHVybiB0aGlzLl9kdHMuaXNvVG9Mb2NhbERhdGUodXRjLCBjdXJyRGlmZik7XG4gIH1cbn1cbiJdfQ==
|