@morozeckiy/dd-lib 0.4.26 → 0.5.1
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/esm2022/lib/core/directives/ban-symbol.directive.mjs +36 -0
- package/esm2022/lib/core/directives/max-num.directive.mjs +56 -0
- package/esm2022/lib/lib-calendar/lib-calendar.component.mjs +25 -5
- package/esm2022/lib/lib-date-range/lib-date-range.component.mjs +2 -2
- package/esm2022/lib/lib-file-upload/lib-file-upload.component.mjs +3 -3
- package/esm2022/lib/lib-period/lib-period.component.mjs +2 -2
- package/fesm2022/morozeckiy-dd-lib.mjs +111 -7
- package/fesm2022/morozeckiy-dd-lib.mjs.map +1 -1
- package/lib/core/directives/ban-symbol.directive.d.ts +9 -0
- package/lib/core/directives/max-num.directive.d.ts +12 -0
- package/lib/lib-calendar/lib-calendar.component.d.ts +6 -1
- package/morozeckiy-dd-lib-0.5.1.tgz +0 -0
- package/package.json +1 -1
- package/morozeckiy-dd-lib-0.4.26.tgz +0 -0
|
@@ -89,7 +89,7 @@ export class LibPeriodComponent {
|
|
|
89
89
|
useExisting: forwardRef(() => LibPeriodComponent),
|
|
90
90
|
multi: true,
|
|
91
91
|
},
|
|
92
|
-
], ngImport: i0, template: "<div class=\"pos-relative\">\r\n <dd-lib-filter-button\r\n (clearEvent)=\"clearPeriod()\"\r\n (clickEvent)=\"showPeriod()\"\r\n [active]=\"periodIsSelected || calendarIsSelected\"\r\n [id]=\"idPeriod\"\r\n btnColor=\"transparent\">\r\n <div>\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n </dd-lib-filter-button>\r\n @if (periodIsShown) {\r\n <div (ddClickOutside)=\"clickOutside($event)\" [elements]=\"[idPeriod, idCalendar]\" class=\"period__wrapper\">\r\n <dd-lib-card class=\"period__block\" type=\"small\">\r\n <div>\r\n <div class=\"period__header\">\r\n <div class=\"period__back\" (click)=\"periodIsShown = false\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <div class=\"g-h5-title\">\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n </div>\r\n <div class=\"g-h5-title hide-tablet\">\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n <div (click)=\"clearPeriod()\" class=\"g-text font-medium green cup\">\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"period__list\">\r\n @for (period of periodMenu; track period) {\r\n <dd-lib-radio (changed)=\"selectPeriod($event)\" [(ngModel)]=\"selectedPeriod\" [value]=\"period.name\">{{\r\n period.title\r\n }}</dd-lib-radio>\r\n }\r\n </div>\r\n <div (click)=\"calendarIsShown = !calendarIsShown\" class=\"g-text font-medium green cup mt-8\">\r\n {{ calendarIsShown ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : '\u041E\u0442\u043A\u0440\u044B\u0442\u044C' }} \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C\r\n </div>\r\n </div>\r\n </dd-lib-card>\r\n @if (calendarIsShown) {\r\n <dd-lib-calendar\r\n (emitDate)=\"selectDate($event)\"\r\n [(ngModel)]=\"selectedDate\"\r\n [id]=\"idCalendar\"\r\n [maxDate]=\"maxDate\"\r\n class=\"period__calendar\">\r\n </dd-lib-calendar>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["dd-lib-filter-button{position:relative}.period__wrapper{position:absolute;left:0;z-index:400;display:block;width:352px;height:348px;margin-top:8px;animation:filter-show .5s forwards}@media screen and (max-width: 840px){.period__wrapper{position:fixed;top:0;width:100%;height:100%;overflow:auto;margin-top:0;animation:shift .3s}}@media screen and (max-width: 840px){.period__block{height:100%}}.period__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}@media screen and (max-width: 840px){.period__header{padding-bottom:24px;border-bottom:1px solid var(--gray-color-200)}}@media screen and (max-width: 480px){.period__header{padding-top:8px}}.period__back{display:none}@media screen and (max-width: 840px){.period__back{display:flex;align-items:center}}.period__back ::ng-deep svg{margin-right:16px}.period__back ::ng-deep svg path{stroke:var(--menu-arr-color)}.period__list{max-height:400px;overflow:auto}@media screen and (max-width: 840px){.period__list{max-height:none}}.period__list ::ng-deep dd-lib-radio{display:block;margin-bottom:16px}@media screen and (max-width: 840px){.period__list ::ng-deep dd-lib-radio:not(:last-child){padding-bottom:16px;border-bottom:1px solid var(--gray-color-200)}}.period__calendar{margin-top:8px;display:block;animation:filter-show .5s forwards}@media screen and (max-width: 840px){.period__calendar{position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;margin-top:0;animation:shift .3s}}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "component", type: LibFilterButtonComponent, selector: "dd-lib-filter-button", inputs: ["btnTitle", "hintContent"], outputs: ["clearEvent", "hintEvent"] }, { kind: "component", type: LibRadioComponent, selector: "dd-lib-radio", inputs: ["radioId", "disabled", "required", "name", "value", "checked"], outputs: ["changed"] }, { kind: "component", type: LibCalendarComponent, selector: "dd-lib-calendar", inputs: ["type", "formatDate", "formatTime", "rangeMode", "mode", "maxDate", "minDate"], outputs: ["emitDate", "emitPeriod"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
92
|
+
], ngImport: i0, template: "<div class=\"pos-relative\">\r\n <dd-lib-filter-button\r\n (clearEvent)=\"clearPeriod()\"\r\n (clickEvent)=\"showPeriod()\"\r\n [active]=\"periodIsSelected || calendarIsSelected\"\r\n [id]=\"idPeriod\"\r\n btnColor=\"transparent\">\r\n <div>\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n </dd-lib-filter-button>\r\n @if (periodIsShown) {\r\n <div (ddClickOutside)=\"clickOutside($event)\" [elements]=\"[idPeriod, idCalendar]\" class=\"period__wrapper\">\r\n <dd-lib-card class=\"period__block\" type=\"small\">\r\n <div>\r\n <div class=\"period__header\">\r\n <div class=\"period__back\" (click)=\"periodIsShown = false\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <div class=\"g-h5-title\">\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n </div>\r\n <div class=\"g-h5-title hide-tablet\">\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n <div (click)=\"clearPeriod()\" class=\"g-text font-medium green cup\">\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"period__list\">\r\n @for (period of periodMenu; track period) {\r\n <dd-lib-radio (changed)=\"selectPeriod($event)\" [(ngModel)]=\"selectedPeriod\" [value]=\"period.name\">{{\r\n period.title\r\n }}</dd-lib-radio>\r\n }\r\n </div>\r\n <div (click)=\"calendarIsShown = !calendarIsShown\" class=\"g-text font-medium green cup mt-8\">\r\n {{ calendarIsShown ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : '\u041E\u0442\u043A\u0440\u044B\u0442\u044C' }} \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C\r\n </div>\r\n </div>\r\n </dd-lib-card>\r\n @if (calendarIsShown) {\r\n <dd-lib-calendar\r\n (emitDate)=\"selectDate($event)\"\r\n [(ngModel)]=\"selectedDate\"\r\n [id]=\"idCalendar\"\r\n [maxDate]=\"maxDate\"\r\n class=\"period__calendar\">\r\n </dd-lib-calendar>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["dd-lib-filter-button{position:relative}.period__wrapper{position:absolute;left:0;z-index:400;display:block;width:352px;height:348px;margin-top:8px;animation:filter-show .5s forwards}@media screen and (max-width: 840px){.period__wrapper{position:fixed;top:0;width:100%;height:100%;overflow:auto;margin-top:0;animation:shift .3s}}@media screen and (max-width: 840px){.period__block{height:100%}}.period__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}@media screen and (max-width: 840px){.period__header{padding-bottom:24px;border-bottom:1px solid var(--gray-color-200)}}@media screen and (max-width: 480px){.period__header{padding-top:8px}}.period__back{display:none}@media screen and (max-width: 840px){.period__back{display:flex;align-items:center}}.period__back ::ng-deep svg{margin-right:16px}.period__back ::ng-deep svg path{stroke:var(--menu-arr-color)}.period__list{max-height:400px;overflow:auto}@media screen and (max-width: 840px){.period__list{max-height:none}}.period__list ::ng-deep dd-lib-radio{display:block;margin-bottom:16px}@media screen and (max-width: 840px){.period__list ::ng-deep dd-lib-radio:not(:last-child){padding-bottom:16px;border-bottom:1px solid var(--gray-color-200)}}.period__calendar{margin-top:8px;display:block;animation:filter-show .5s forwards}@media screen and (max-width: 840px){.period__calendar{position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;margin-top:0;animation:shift .3s}}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "component", type: LibFilterButtonComponent, selector: "dd-lib-filter-button", inputs: ["btnTitle", "hintContent"], outputs: ["clearEvent", "hintEvent"] }, { kind: "component", type: LibRadioComponent, selector: "dd-lib-radio", inputs: ["radioId", "disabled", "required", "name", "value", "checked"], outputs: ["changed"] }, { kind: "component", type: LibCalendarComponent, selector: "dd-lib-calendar", inputs: ["type", "formatDate", "formatTime", "rangeMode", "maxHours", "maxMinutes", "needTime", "mode", "maxDate", "minDate"], outputs: ["emitDate", "emitPeriod"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
93
93
|
}
|
|
94
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibPeriodComponent, decorators: [{
|
|
95
95
|
type: Component,
|
|
@@ -113,4 +113,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
113
113
|
}], setPeriodDate: [{
|
|
114
114
|
type: Output
|
|
115
115
|
}] } });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXBlcmlvZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9saWItcGVyaW9kL2xpYi1wZXJpb2QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLXBlcmlvZC9saWItcGVyaW9kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFDLHFCQUFxQixFQUFlLGNBQWMsRUFBd0MsTUFBTSxTQUFTLENBQUM7QUFDbEgsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUEwQjNFLE1BQU0sT0FBTyxrQkFBa0I7YUFDZixjQUFTLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFlNUIsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFiM0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBK0MsQ0FBQztRQUcxRixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixvQkFBZSxH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VyxhQUFhO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGliQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL2xpYi1jYXJkL2xpYi1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYkZpbHRlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2xpYi1maWx0ZXItYnV0dG9uL2xpYi1maWx0ZXItYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYlJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi4vbGliLXJhZGlvL2xpYi1yYWRpby5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgTGliQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuLi9saWItY2FsZW5kYXIvbGliLWNhbGVuZGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XHJcbmltcG9ydCB7Q2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBEYXRlU2VydmljZSwgREVGQVVMVF9GT1JNQVQsIEdldERhdGVCeSwgUGVyaW9kTWVudURhdGUsIFBlcmlvZE5hbWV9IGZyb20gXCIuLi9jb3JlXCI7XHJcbmltcG9ydCB7TGliU3ZnSWNvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2xpYi1zdmctaWNvbi9saWItc3ZnLWljb24uY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1wZXJpb2QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTGliQ2FyZENvbXBvbmVudCxcclxuICAgIExpYkZpbHRlckJ1dHRvbkNvbXBvbmVudCxcclxuICAgIExpYlJhZGlvQ29tcG9uZW50LFxyXG4gICAgTGliQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcclxuICAgIExpYlN2Z0ljb25Db21wb25lbnQsXHJcbiAgXSxcclxuXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi1wZXJpb2QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9saWItcGVyaW9kLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpYlBlcmlvZENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGliUGVyaW9kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHVibGljIHN0YXRpYyBpZENvdW50ZXIgPSAxO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2V0UGVyaW9kRGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBba2V5IGluIGtleW9mIEdldERhdGVCeV06IHN0cmluZyB9IHwgbnVsbD4oKTtcclxuXHJcbiAgcHVibGljIHBlcmlvZE1lbnU6IFBlcmlvZE1lbnVEYXRlW10gfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIHBlcmlvZElzU2hvd24gPSBmYWxzZTtcclxuICBwdWJsaWMgY2FsZW5kYXJJc1Nob3duID0gZmFsc2U7XHJcbiAgcHVibGljIHBlcmlvZElzU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgY2FsZW5kYXJJc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdGVkUGVyaW9kOiBQZXJpb2ROYW1lIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBzZWxlY3RlZERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGlkUGVyaW9kITogc3RyaW5nO1xyXG4gIHB1YmxpYyBpZENhbGVuZGFyITogc3RyaW5nO1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRlU2VydmljZTogRGF0ZVNlcnZpY2UpIHt9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaWRQZXJpb2QgPSAncGVyaW9kLXdyYXBwZXItJyArIExpYlBlcmlvZENvbXBvbmVudC5pZENvdW50ZXIrKztcclxuICAgIHRoaXMuaWRDYWxlbmRhciA9ICdjYWxlbmRhci13cmFwcGVyLScgKyBMaWJQZXJpb2RDb21wb25lbnQuaWRDb3VudGVyKys7XHJcbiAgICB0aGlzLnBlcmlvZE1lbnUgPSB0aGlzLmRhdGVTZXJ2aWNlLmdldFBlcmlvZE1lbnUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dQZXJpb2QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBlcmlvZElzU2hvd24gPSAhdGhpcy5wZXJpb2RJc1Nob3duO1xyXG4gICAgdGhpcy5jYWxlbmRhcklzU2hvd24gPSAhIXRoaXMuc2VsZWN0ZWREYXRlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyUGVyaW9kKCk6IHZvaWQge1xyXG4gICAgdGhpcy5wZXJpb2RJc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhbGVuZGFySXNTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5wZXJpb2RJc1Nob3duID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhbGVuZGFySXNTaG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zZXRQZXJpb2REYXRlLmVtaXQobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0UGVyaW9kKHR5cGU6IGtleW9mIEdldERhdGVCeSk6IHZvaWQge1xyXG4gICAgdGhpcy5wZXJpb2RJc1Nob3duID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhbGVuZGFySXNTaG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5wZXJpb2RJc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuY2FsZW5kYXJJc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICBjb25zdCBkYXRlID0gdGhpcy5kYXRlU2VydmljZS5nZXRGb3JtYXR0ZWREYXRlKHR5cGUpO1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodHlwZSk7XHJcbiAgICB0aGlzLnNldFBlcmlvZERhdGUuZW1pdCh7IFt0eXBlXTogZGF0ZSB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2QgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3REYXRlKCRldmVudDogRGF0ZSB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxlbmRhcklzU2hvd24gPSBmYWxzZTtcclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9ICdjYWxlbmRhcic7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRQZXJpb2QpO1xyXG4gICAgICB0aGlzLnBlcmlvZElzU2hvd24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5wZXJpb2RJc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2FsZW5kYXJJc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZXRQZXJpb2REYXRlLmVtaXQoeyBjYWxlbmRhcjogZm9ybWF0KCRldmVudCwgREVGQVVMVF9GT1JNQVQpIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMuc2V0UGVyaW9kRGF0ZS5lbWl0KG51bGwpO1xyXG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRQZXJpb2QpIHtcclxuICAgICAgICB0aGlzLnBlcmlvZElzU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNhbGVuZGFySXNTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsaWNrT3V0c2lkZSgkZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMucGVyaW9kSXNTaG93biA9ICRldmVudDtcclxuICAgIGlmICh0aGlzLnBlcmlvZElzU2hvd24gJiYgISRldmVudCkge1xyXG4gICAgICB0aGlzLmNhbGVuZGFySXNTaG93biA9ICRldmVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlKHZhbHVlOiBQZXJpb2ROYW1lKSB7fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwb3MtcmVsYXRpdmVcIj5cclxuICA8ZGQtbGliLWZpbHRlci1idXR0b25cclxuICAgIChjbGVhckV2ZW50KT1cImNsZWFyUGVyaW9kKClcIlxyXG4gICAgKGNsaWNrRXZlbnQpPVwic2hvd1BlcmlvZCgpXCJcclxuICAgIFthY3RpdmVdPVwicGVyaW9kSXNTZWxlY3RlZCB8fCBjYWxlbmRhcklzU2VsZWN0ZWRcIlxyXG4gICAgW2lkXT1cImlkUGVyaW9kXCJcclxuICAgIGJ0bkNvbG9yPVwidHJhbnNwYXJlbnRcIj5cclxuICAgIDxkaXY+0J/QtdGA0LjQvtC0PC9kaXY+XHJcbiAgPC9kZC1saWItZmlsdGVyLWJ1dHRvbj5cclxuICBAaWYgKHBlcmlvZElzU2hvd24pIHtcclxuICA8ZGl2IChkZENsaWNrT3V0c2lkZSk9XCJjbGlja091dHNpZGUoJGV2ZW50KVwiIFtlbGVtZW50c109XCJbaWRQZXJpb2QsIGlkQ2FsZW5kYXJdXCIgY2xhc3M9XCJwZXJpb2RfX3dyYXBwZXJcIj5cclxuICAgIDxkZC1saWItY2FyZCBjbGFzcz1cInBlcmlvZF9fYmxvY2tcIiB0eXBlPVwic21hbGxcIj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVyaW9kX19oZWFkZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJpb2RfX2JhY2tcIiAoY2xpY2spPVwicGVyaW9kSXNTaG93biA9IGZhbHNlXCI+XHJcbiAgICAgICAgICAgIDxkZC1saWItc3ZnLWljb24gaWNvbj1cInRvZ2dsZV9hcnJvd19sZWZ0XCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnLWg1LXRpdGxlXCI+0J/QtdGA0LjQvtC0PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnLWg1LXRpdGxlIGhpZGUtdGFibGV0XCI+0J/QtdGA0LjQvtC0PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IChjbGljayk9XCJjbGVhclBlcmlvZCgpXCIgY2xhc3M9XCJnLXRleHQgZm9udC1tZWRpdW0gZ3JlZW4gY3VwXCI+0KHQsdGA0L7RgdC40YLRjDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZXJpb2RfX2xpc3RcIj5cclxuICAgICAgICAgIEBmb3IgKHBlcmlvZCBvZiBwZXJpb2RNZW51OyB0cmFjayBwZXJpb2QpIHtcclxuICAgICAgICAgIDxkZC1saWItcmFkaW8gKGNoYW5nZWQpPVwic2VsZWN0UGVyaW9kKCRldmVudClcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUGVyaW9kXCIgW3ZhbHVlXT1cInBlcmlvZC5uYW1lXCI+e3tcclxuICAgICAgICAgICAgcGVyaW9kLnRpdGxlXHJcbiAgICAgICAgICB9fTwvZGQtbGliLXJhZGlvPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cImNhbGVuZGFySXNTaG93biA9ICFjYWxlbmRhcklzU2hvd25cIiBjbGFzcz1cImctdGV4dCBmb250LW1lZGl1bSBncmVlbiBjdXAgbXQtOFwiPlxyXG4gICAgICAgICAge3sgY2FsZW5kYXJJc1Nob3duID8gJ9CX0LDQutGA0YvRgtGMJyA6ICfQntGC0LrRgNGL0YLRjCcgfX0g0LrQsNC70LXQvdC00LDRgNGMXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kZC1saWItY2FyZD5cclxuICAgIEBpZiAoY2FsZW5kYXJJc1Nob3duKSB7XHJcbiAgICA8ZGQtbGliLWNhbGVuZGFyXHJcbiAgICAgIChlbWl0RGF0ZSk9XCJzZWxlY3REYXRlKCRldmVudClcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVwiXHJcbiAgICAgIFtpZF09XCJpZENhbGVuZGFyXCJcclxuICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXHJcbiAgICAgIGNsYXNzPVwicGVyaW9kX19jYWxlbmRhclwiPlxyXG4gICAgPC9kZC1saWItY2FsZW5kYXI+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXBlcmlvZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9saWItcGVyaW9kL2xpYi1wZXJpb2QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLXBlcmlvZC9saWItcGVyaW9kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFDLHFCQUFxQixFQUFlLGNBQWMsRUFBd0MsTUFBTSxTQUFTLENBQUM7QUFDbEgsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7Ozs7QUEwQjNFLE1BQU0sT0FBTyxrQkFBa0I7YUFDZixjQUFTLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFlNUIsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFiM0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBK0MsQ0FBQztRQUcxRixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixvQkFBZSxH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VyxhQUFhO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGliQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uL2xpYi1jYXJkL2xpYi1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYkZpbHRlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2xpYi1maWx0ZXItYnV0dG9uL2xpYi1maWx0ZXItYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpYlJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi4vbGliLXJhZGlvL2xpYi1yYWRpby5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgTGliQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuLi9saWItY2FsZW5kYXIvbGliLWNhbGVuZGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XHJcbmltcG9ydCB7Q2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBEYXRlU2VydmljZSwgREVGQVVMVF9GT1JNQVQsIEdldERhdGVCeSwgUGVyaW9kTWVudURhdGUsIFBlcmlvZE5hbWV9IGZyb20gXCIuLi9jb3JlXCI7XHJcbmltcG9ydCB7TGliU3ZnSWNvbkNvbXBvbmVudH0gZnJvbSBcIi4uL2xpYi1zdmctaWNvbi9saWItc3ZnLWljb24uY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1wZXJpb2QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTGliQ2FyZENvbXBvbmVudCxcclxuICAgIExpYkZpbHRlckJ1dHRvbkNvbXBvbmVudCxcclxuICAgIExpYlJhZGlvQ29tcG9uZW50LFxyXG4gICAgTGliQ2FsZW5kYXJDb21wb25lbnQsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcclxuICAgIExpYlN2Z0ljb25Db21wb25lbnQsXHJcbiAgXSxcclxuXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi1wZXJpb2QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9saWItcGVyaW9kLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpYlBlcmlvZENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGliUGVyaW9kQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHVibGljIHN0YXRpYyBpZENvdW50ZXIgPSAxO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2V0UGVyaW9kRGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBba2V5IGluIGtleW9mIEdldERhdGVCeV06IHN0cmluZyB9IHwgbnVsbD4oKTtcclxuXHJcbiAgcHVibGljIHBlcmlvZE1lbnU6IFBlcmlvZE1lbnVEYXRlW10gfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIHBlcmlvZElzU2hvd24gPSBmYWxzZTtcclxuICBwdWJsaWMgY2FsZW5kYXJJc1Nob3duID0gZmFsc2U7XHJcbiAgcHVibGljIHBlcmlvZElzU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgY2FsZW5kYXJJc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdGVkUGVyaW9kOiBQZXJpb2ROYW1lIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBzZWxlY3RlZERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGlkUGVyaW9kITogc3RyaW5nO1xyXG4gIHB1YmxpYyBpZENhbGVuZGFyITogc3RyaW5nO1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRlU2VydmljZTogRGF0ZVNlcnZpY2UpIHt9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaWRQZXJpb2QgPSAncGVyaW9kLXdyYXBwZXItJyArIExpYlBlcmlvZENvbXBvbmVudC5pZENvdW50ZXIrKztcclxuICAgIHRoaXMuaWRDYWxlbmRhciA9ICdjYWxlbmRhci13cmFwcGVyLScgKyBMaWJQZXJpb2RDb21wb25lbnQuaWRDb3VudGVyKys7XHJcbiAgICB0aGlzLnBlcmlvZE1lbnUgPSB0aGlzLmRhdGVTZXJ2aWNlLmdldFBlcmlvZE1lbnUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dQZXJpb2QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBlcmlvZElzU2hvd24gPSAhdGhpcy5wZXJpb2RJc1Nob3duO1xyXG4gICAgdGhpcy5jYWxlbmRhcklzU2hvd24gPSAhIXRoaXMuc2VsZWN0ZWREYXRlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyUGVyaW9kKCk6IHZvaWQge1xyXG4gICAgdGhpcy5wZXJpb2RJc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhbGVuZGFySXNTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5wZXJpb2RJc1Nob3duID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhbGVuZGFySXNTaG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zZXRQZXJpb2REYXRlLmVtaXQobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0UGVyaW9kKHR5cGU6IGtleW9mIEdldERhdGVCeSk6IHZvaWQge1xyXG4gICAgdGhpcy5wZXJpb2RJc1Nob3duID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhbGVuZGFySXNTaG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5wZXJpb2RJc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuY2FsZW5kYXJJc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICBjb25zdCBkYXRlID0gdGhpcy5kYXRlU2VydmljZS5nZXRGb3JtYXR0ZWREYXRlKHR5cGUpO1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodHlwZSk7XHJcbiAgICB0aGlzLnNldFBlcmlvZERhdGUuZW1pdCh7IFt0eXBlXTogZGF0ZSB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRQZXJpb2QgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3REYXRlKCRldmVudDogRGF0ZSB8IHVuZGVmaW5lZCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxlbmRhcklzU2hvd24gPSBmYWxzZTtcclxuICAgIGlmICgkZXZlbnQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFBlcmlvZCA9ICdjYWxlbmRhcic7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMuc2VsZWN0ZWRQZXJpb2QpO1xyXG4gICAgICB0aGlzLnBlcmlvZElzU2hvd24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5wZXJpb2RJc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2FsZW5kYXJJc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZXRQZXJpb2REYXRlLmVtaXQoeyBjYWxlbmRhcjogZm9ybWF0KCRldmVudCwgREVGQVVMVF9GT1JNQVQpIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMuc2V0UGVyaW9kRGF0ZS5lbWl0KG51bGwpO1xyXG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRQZXJpb2QpIHtcclxuICAgICAgICB0aGlzLnBlcmlvZElzU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNhbGVuZGFySXNTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsaWNrT3V0c2lkZSgkZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMucGVyaW9kSXNTaG93biA9ICRldmVudDtcclxuICAgIGlmICh0aGlzLnBlcmlvZElzU2hvd24gJiYgISRldmVudCkge1xyXG4gICAgICB0aGlzLmNhbGVuZGFySXNTaG93biA9ICRldmVudDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlKHZhbHVlOiBQZXJpb2ROYW1lKSB7fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwb3MtcmVsYXRpdmVcIj5cclxuICA8ZGQtbGliLWZpbHRlci1idXR0b25cclxuICAgIChjbGVhckV2ZW50KT1cImNsZWFyUGVyaW9kKClcIlxyXG4gICAgKGNsaWNrRXZlbnQpPVwic2hvd1BlcmlvZCgpXCJcclxuICAgIFthY3RpdmVdPVwicGVyaW9kSXNTZWxlY3RlZCB8fCBjYWxlbmRhcklzU2VsZWN0ZWRcIlxyXG4gICAgW2lkXT1cImlkUGVyaW9kXCJcclxuICAgIGJ0bkNvbG9yPVwidHJhbnNwYXJlbnRcIj5cclxuICAgIDxkaXY+0J/QtdGA0LjQvtC0PC9kaXY+XHJcbiAgPC9kZC1saWItZmlsdGVyLWJ1dHRvbj5cclxuICBAaWYgKHBlcmlvZElzU2hvd24pIHtcclxuICA8ZGl2IChkZENsaWNrT3V0c2lkZSk9XCJjbGlja091dHNpZGUoJGV2ZW50KVwiIFtlbGVtZW50c109XCJbaWRQZXJpb2QsIGlkQ2FsZW5kYXJdXCIgY2xhc3M9XCJwZXJpb2RfX3dyYXBwZXJcIj5cclxuICAgIDxkZC1saWItY2FyZCBjbGFzcz1cInBlcmlvZF9fYmxvY2tcIiB0eXBlPVwic21hbGxcIj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVyaW9kX19oZWFkZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXJpb2RfX2JhY2tcIiAoY2xpY2spPVwicGVyaW9kSXNTaG93biA9IGZhbHNlXCI+XHJcbiAgICAgICAgICAgIDxkZC1saWItc3ZnLWljb24gaWNvbj1cInRvZ2dsZV9hcnJvd19sZWZ0XCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnLWg1LXRpdGxlXCI+0J/QtdGA0LjQvtC0PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnLWg1LXRpdGxlIGhpZGUtdGFibGV0XCI+0J/QtdGA0LjQvtC0PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IChjbGljayk9XCJjbGVhclBlcmlvZCgpXCIgY2xhc3M9XCJnLXRleHQgZm9udC1tZWRpdW0gZ3JlZW4gY3VwXCI+0KHQsdGA0L7RgdC40YLRjDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZXJpb2RfX2xpc3RcIj5cclxuICAgICAgICAgIEBmb3IgKHBlcmlvZCBvZiBwZXJpb2RNZW51OyB0cmFjayBwZXJpb2QpIHtcclxuICAgICAgICAgIDxkZC1saWItcmFkaW8gKGNoYW5nZWQpPVwic2VsZWN0UGVyaW9kKCRldmVudClcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUGVyaW9kXCIgW3ZhbHVlXT1cInBlcmlvZC5uYW1lXCI+e3tcclxuICAgICAgICAgICAgcGVyaW9kLnRpdGxlXHJcbiAgICAgICAgICB9fTwvZGQtbGliLXJhZGlvPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cImNhbGVuZGFySXNTaG93biA9ICFjYWxlbmRhcklzU2hvd25cIiBjbGFzcz1cImctdGV4dCBmb250LW1lZGl1bSBncmVlbiBjdXAgbXQtOFwiPlxyXG4gICAgICAgICAge3sgY2FsZW5kYXJJc1Nob3duID8gJ9CX0LDQutGA0YvRgtGMJyA6ICfQntGC0LrRgNGL0YLRjCcgfX0g0LrQsNC70LXQvdC00LDRgNGMXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kZC1saWItY2FyZD5cclxuICAgIEBpZiAoY2FsZW5kYXJJc1Nob3duKSB7XHJcbiAgICA8ZGQtbGliLWNhbGVuZGFyXHJcbiAgICAgIChlbWl0RGF0ZSk9XCJzZWxlY3REYXRlKCRldmVudClcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVwiXHJcbiAgICAgIFtpZF09XCJpZENhbGVuZGFyXCJcclxuICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXHJcbiAgICAgIGNsYXNzPVwicGVyaW9kX19jYWxlbmRhclwiPlxyXG4gICAgPC9kZC1saWItY2FsZW5kYXI+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
@@ -2005,6 +2005,93 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
2005
2005
|
type: Output
|
|
2006
2006
|
}] } });
|
|
2007
2007
|
|
|
2008
|
+
class BanSymbolDirective {
|
|
2009
|
+
constructor() {
|
|
2010
|
+
this.ddBanSymbol = '';
|
|
2011
|
+
this.regExp = false;
|
|
2012
|
+
}
|
|
2013
|
+
onKeyPress(e) {
|
|
2014
|
+
if (this.regExp) {
|
|
2015
|
+
const regExp = new RegExp(this.ddBanSymbol);
|
|
2016
|
+
if (!regExp.test(e.key)) {
|
|
2017
|
+
e.preventDefault();
|
|
2018
|
+
}
|
|
2019
|
+
}
|
|
2020
|
+
if (e.key === this.ddBanSymbol) {
|
|
2021
|
+
e.preventDefault();
|
|
2022
|
+
}
|
|
2023
|
+
}
|
|
2024
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BanSymbolDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2025
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: BanSymbolDirective, isStandalone: true, selector: "[ddBanSymbol]", inputs: { ddBanSymbol: "ddBanSymbol", regExp: "regExp" }, host: { listeners: { "keypress": "onKeyPress($event)" } }, ngImport: i0 }); }
|
|
2026
|
+
}
|
|
2027
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: BanSymbolDirective, decorators: [{
|
|
2028
|
+
type: Directive,
|
|
2029
|
+
args: [{
|
|
2030
|
+
standalone: true,
|
|
2031
|
+
selector: '[ddBanSymbol]'
|
|
2032
|
+
}]
|
|
2033
|
+
}], ctorParameters: () => [], propDecorators: { ddBanSymbol: [{
|
|
2034
|
+
type: Input
|
|
2035
|
+
}], regExp: [{
|
|
2036
|
+
type: Input
|
|
2037
|
+
}], onKeyPress: [{
|
|
2038
|
+
type: HostListener,
|
|
2039
|
+
args: ['keypress', ['$event']]
|
|
2040
|
+
}] } });
|
|
2041
|
+
|
|
2042
|
+
class MaxNumDirective {
|
|
2043
|
+
constructor(model) {
|
|
2044
|
+
this.model = model;
|
|
2045
|
+
}
|
|
2046
|
+
keydown(e) {
|
|
2047
|
+
const fullZero = '00' === e.target.value;
|
|
2048
|
+
const firstZero = this.curVal && '0' === this.curVal.toString()[0] && this.curVal.toString().length > 1;
|
|
2049
|
+
if (fullZero && e.code.includes('Digit')) {
|
|
2050
|
+
e.target.value = 0;
|
|
2051
|
+
}
|
|
2052
|
+
if (firstZero && e.code.includes('Digit')) {
|
|
2053
|
+
e.target.value = +e.target.value;
|
|
2054
|
+
}
|
|
2055
|
+
setTimeout(() => {
|
|
2056
|
+
if (+e.target.value > this.ddMaxNum) {
|
|
2057
|
+
e.preventDefault();
|
|
2058
|
+
this.model.viewToModelUpdate(this.ddMaxNum);
|
|
2059
|
+
this.model.valueAccessor?.writeValue(this.ddMaxNum);
|
|
2060
|
+
}
|
|
2061
|
+
}, 1);
|
|
2062
|
+
}
|
|
2063
|
+
keyup(e) {
|
|
2064
|
+
const firstZero = '0' === e.target.value[0] && e.target.value?.length > 2;
|
|
2065
|
+
if (firstZero && e.code.includes('Digit')) {
|
|
2066
|
+
e.target.value = +e.target.value;
|
|
2067
|
+
}
|
|
2068
|
+
if (+e.target > this.ddMaxNum) {
|
|
2069
|
+
e.preventDefault();
|
|
2070
|
+
this.model.viewToModelUpdate(this.ddMaxNum);
|
|
2071
|
+
this.model.valueAccessor?.writeValue(this.ddMaxNum);
|
|
2072
|
+
}
|
|
2073
|
+
}
|
|
2074
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: MaxNumDirective, deps: [{ token: i2$1.NgModel }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2075
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: MaxNumDirective, isStandalone: true, selector: "[ddMaxNum]", inputs: { ddMaxNum: "ddMaxNum", curVal: "curVal" }, host: { listeners: { "keydown": "keydown($event)", "keyup": "keyup($event)" } }, ngImport: i0 }); }
|
|
2076
|
+
}
|
|
2077
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: MaxNumDirective, decorators: [{
|
|
2078
|
+
type: Directive,
|
|
2079
|
+
args: [{
|
|
2080
|
+
standalone: true,
|
|
2081
|
+
selector: '[ddMaxNum]'
|
|
2082
|
+
}]
|
|
2083
|
+
}], ctorParameters: () => [{ type: i2$1.NgModel }], propDecorators: { ddMaxNum: [{
|
|
2084
|
+
type: Input
|
|
2085
|
+
}], curVal: [{
|
|
2086
|
+
type: Input
|
|
2087
|
+
}], keydown: [{
|
|
2088
|
+
type: HostListener,
|
|
2089
|
+
args: ['keydown', ['$event']]
|
|
2090
|
+
}], keyup: [{
|
|
2091
|
+
type: HostListener,
|
|
2092
|
+
args: ['keyup', ['$event']]
|
|
2093
|
+
}] } });
|
|
2094
|
+
|
|
2008
2095
|
const Months = [
|
|
2009
2096
|
'Январь',
|
|
2010
2097
|
'Февраль',
|
|
@@ -2087,6 +2174,9 @@ class LibCalendarComponent {
|
|
|
2087
2174
|
this.type = 'string';
|
|
2088
2175
|
this.formatDate = 'dd.MM.yyyy';
|
|
2089
2176
|
this.rangeMode = false;
|
|
2177
|
+
this.maxHours = 23;
|
|
2178
|
+
this.maxMinutes = 59;
|
|
2179
|
+
this.needTime = false;
|
|
2090
2180
|
this.mode = 'full';
|
|
2091
2181
|
this.emitDate = new EventEmitter();
|
|
2092
2182
|
this.emitPeriod = new EventEmitter();
|
|
@@ -2098,6 +2188,8 @@ class LibCalendarComponent {
|
|
|
2098
2188
|
// minDate = setMinDate();
|
|
2099
2189
|
this.currentDate = new Date();
|
|
2100
2190
|
this.dateNow = new Date();
|
|
2191
|
+
this.hours = '00';
|
|
2192
|
+
this.minutes = '00';
|
|
2101
2193
|
}
|
|
2102
2194
|
propagateChange(_value) {
|
|
2103
2195
|
}
|
|
@@ -2175,6 +2267,9 @@ class LibCalendarComponent {
|
|
|
2175
2267
|
this.emitPeriod.emit({ start: this.dateStart, end: this.dateEnd });
|
|
2176
2268
|
}
|
|
2177
2269
|
else {
|
|
2270
|
+
if (this.needTime) {
|
|
2271
|
+
this.dateValue?.setHours(+this.hours, +this.minutes);
|
|
2272
|
+
}
|
|
2178
2273
|
this.propagateChange(this.dateValue);
|
|
2179
2274
|
this.emitDate.emit(this.dateValue);
|
|
2180
2275
|
}
|
|
@@ -2244,13 +2339,13 @@ class LibCalendarComponent {
|
|
|
2244
2339
|
}
|
|
2245
2340
|
}
|
|
2246
2341
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCalendarComponent, deps: [{ token: DateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2247
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibCalendarComponent, isStandalone: true, selector: "dd-lib-calendar", inputs: { type: "type", formatDate: "formatDate", formatTime: "formatTime", rangeMode: "rangeMode", mode: "mode", maxDate: "maxDate", minDate: "minDate" }, outputs: { emitDate: "emitDate", emitPeriod: "emitPeriod" }, providers: [
|
|
2342
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibCalendarComponent, isStandalone: true, selector: "dd-lib-calendar", inputs: { type: "type", formatDate: "formatDate", formatTime: "formatTime", rangeMode: "rangeMode", maxHours: "maxHours", maxMinutes: "maxMinutes", needTime: "needTime", mode: "mode", maxDate: "maxDate", minDate: "minDate" }, outputs: { emitDate: "emitDate", emitPeriod: "emitPeriod" }, providers: [
|
|
2248
2343
|
{
|
|
2249
2344
|
provide: NG_VALUE_ACCESSOR,
|
|
2250
2345
|
useExisting: forwardRef(() => LibCalendarComponent),
|
|
2251
2346
|
multi: true,
|
|
2252
2347
|
},
|
|
2253
|
-
], ngImport: i0, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2348
|
+
], ngImport: i0, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2$1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: BanSymbolDirective, selector: "[ddBanSymbol]", inputs: ["ddBanSymbol", "regExp"] }, { kind: "directive", type: MaxNumDirective, selector: "[ddMaxNum]", inputs: ["ddMaxNum", "curVal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2254
2349
|
}
|
|
2255
2350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCalendarComponent, decorators: [{
|
|
2256
2351
|
type: Component,
|
|
@@ -2262,13 +2357,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
2262
2357
|
LibButtonComponent,
|
|
2263
2358
|
NgOptimizedImage,
|
|
2264
2359
|
LibSvgIconComponent,
|
|
2360
|
+
FormsModule,
|
|
2361
|
+
BanSymbolDirective,
|
|
2362
|
+
MaxNumDirective
|
|
2265
2363
|
], providers: [
|
|
2266
2364
|
{
|
|
2267
2365
|
provide: NG_VALUE_ACCESSOR,
|
|
2268
2366
|
useExisting: forwardRef(() => LibCalendarComponent),
|
|
2269
2367
|
multi: true,
|
|
2270
2368
|
},
|
|
2271
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}\n"] }]
|
|
2369
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
|
|
2272
2370
|
}], ctorParameters: () => [{ type: DateService }], propDecorators: { type: [{
|
|
2273
2371
|
type: Input
|
|
2274
2372
|
}], formatDate: [{
|
|
@@ -2277,6 +2375,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
2277
2375
|
type: Input
|
|
2278
2376
|
}], rangeMode: [{
|
|
2279
2377
|
type: Input
|
|
2378
|
+
}], maxHours: [{
|
|
2379
|
+
type: Input
|
|
2380
|
+
}], maxMinutes: [{
|
|
2381
|
+
type: Input
|
|
2382
|
+
}], needTime: [{
|
|
2383
|
+
type: Input
|
|
2280
2384
|
}], mode: [{
|
|
2281
2385
|
type: Input
|
|
2282
2386
|
}], emitDate: [{
|
|
@@ -2383,11 +2487,11 @@ class LibFileUploadComponent {
|
|
|
2383
2487
|
}
|
|
2384
2488
|
}
|
|
2385
2489
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2386
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibFileUploadComponent, isStandalone: true, selector: "dd-lib-file-upload", inputs: { background: "background", width: "width", name: "name", file: "file" }, outputs: { deleteFile: "deleteFile" }, ngImport: i0, template: "<div class=\"file\" [ngStyle]=\"{background}\">\r\n <div class=\"d-flex align-center gap-12\">\r\n <dd-lib-svg-icon icon=\"file\"></dd-lib-svg-icon>\r\n <div class=\"d-flex align-start\" [title]=\"name || file?.name\">\r\n <div [ngStyle]=\"{'max-width': width}\" class=\"file-name\">{{fileName}}</div>\r\n @if (this.fileExtension){\r\n <div>.{{fileExtension}}</div>\r\n }\r\n </div>\r\n </div>\r\n <dd-lib-svg-icon (click)=\"deleteFile.emit(file)\" class=\"gray-trash\" icon=\"trash\"></dd-lib-svg-icon>\r\n</div>\r\n", styles: [".file{padding:16px;display:flex;align-items:center;justify-content:space-between;border-radius:8px;background-color:var(--low-bgc-color);gap:12px}.file-name{max-width:100px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gray-trash{cursor:pointer}.gray-trash ::ng-deep svg path{stroke:var(--second-gray-color)}\n"], dependencies: [{ kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2490
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibFileUploadComponent, isStandalone: true, selector: "dd-lib-file-upload", inputs: { background: "background", width: "width", name: "name", file: "file" }, outputs: { deleteFile: "deleteFile" }, ngImport: i0, template: "<div class=\"file\" [ngStyle]=\"{background}\">\r\n <div class=\"d-flex align-center gap-12\">\r\n <dd-lib-svg-icon icon=\"file\"></dd-lib-svg-icon>\r\n <div class=\"d-flex align-start\" [title]=\"name || file?.name\">\r\n <div [ngStyle]=\"{'max-width': width}\" class=\"file-name\">{{fileName}}</div>\r\n @if (this.fileExtension){\r\n <div>.{{fileExtension}}</div>\r\n }\r\n </div>\r\n </div>\r\n <dd-lib-svg-icon (click)=\"deleteFile.emit(file)\" class=\"gray-trash\" icon=\"trash\"></dd-lib-svg-icon>\r\n</div>\r\n", styles: [".file{padding:16px;display:flex;align-items:center;justify-content:space-between;border-radius:8px;background-color:var(--low-bgc-color);gap:12px;box-shadow:0 14px 64px -4px #18274b0f,0 8px 22px -6px #18274b0f}.file-name{max-width:100px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gray-trash{cursor:pointer}.gray-trash ::ng-deep svg path{stroke:var(--second-gray-color)}\n"], dependencies: [{ kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2387
2491
|
}
|
|
2388
2492
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibFileUploadComponent, decorators: [{
|
|
2389
2493
|
type: Component,
|
|
2390
|
-
args: [{ selector: 'dd-lib-file-upload', standalone: true, imports: [NgTemplateOutlet, LibSvgIconComponent, JsonPipe, NgStyle], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"file\" [ngStyle]=\"{background}\">\r\n <div class=\"d-flex align-center gap-12\">\r\n <dd-lib-svg-icon icon=\"file\"></dd-lib-svg-icon>\r\n <div class=\"d-flex align-start\" [title]=\"name || file?.name\">\r\n <div [ngStyle]=\"{'max-width': width}\" class=\"file-name\">{{fileName}}</div>\r\n @if (this.fileExtension){\r\n <div>.{{fileExtension}}</div>\r\n }\r\n </div>\r\n </div>\r\n <dd-lib-svg-icon (click)=\"deleteFile.emit(file)\" class=\"gray-trash\" icon=\"trash\"></dd-lib-svg-icon>\r\n</div>\r\n", styles: [".file{padding:16px;display:flex;align-items:center;justify-content:space-between;border-radius:8px;background-color:var(--low-bgc-color);gap:12px}.file-name{max-width:100px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gray-trash{cursor:pointer}.gray-trash ::ng-deep svg path{stroke:var(--second-gray-color)}\n"] }]
|
|
2494
|
+
args: [{ selector: 'dd-lib-file-upload', standalone: true, imports: [NgTemplateOutlet, LibSvgIconComponent, JsonPipe, NgStyle], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"file\" [ngStyle]=\"{background}\">\r\n <div class=\"d-flex align-center gap-12\">\r\n <dd-lib-svg-icon icon=\"file\"></dd-lib-svg-icon>\r\n <div class=\"d-flex align-start\" [title]=\"name || file?.name\">\r\n <div [ngStyle]=\"{'max-width': width}\" class=\"file-name\">{{fileName}}</div>\r\n @if (this.fileExtension){\r\n <div>.{{fileExtension}}</div>\r\n }\r\n </div>\r\n </div>\r\n <dd-lib-svg-icon (click)=\"deleteFile.emit(file)\" class=\"gray-trash\" icon=\"trash\"></dd-lib-svg-icon>\r\n</div>\r\n", styles: [".file{padding:16px;display:flex;align-items:center;justify-content:space-between;border-radius:8px;background-color:var(--low-bgc-color);gap:12px;box-shadow:0 14px 64px -4px #18274b0f,0 8px 22px -6px #18274b0f}.file-name{max-width:100px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.gray-trash{cursor:pointer}.gray-trash ::ng-deep svg path{stroke:var(--second-gray-color)}\n"] }]
|
|
2391
2495
|
}], propDecorators: { background: [{
|
|
2392
2496
|
type: Input
|
|
2393
2497
|
}], width: [{
|
|
@@ -2575,7 +2679,7 @@ class LibPeriodComponent {
|
|
|
2575
2679
|
useExisting: forwardRef(() => LibPeriodComponent),
|
|
2576
2680
|
multi: true,
|
|
2577
2681
|
},
|
|
2578
|
-
], ngImport: i0, template: "<div class=\"pos-relative\">\r\n <dd-lib-filter-button\r\n (clearEvent)=\"clearPeriod()\"\r\n (clickEvent)=\"showPeriod()\"\r\n [active]=\"periodIsSelected || calendarIsSelected\"\r\n [id]=\"idPeriod\"\r\n btnColor=\"transparent\">\r\n <div>\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n </dd-lib-filter-button>\r\n @if (periodIsShown) {\r\n <div (ddClickOutside)=\"clickOutside($event)\" [elements]=\"[idPeriod, idCalendar]\" class=\"period__wrapper\">\r\n <dd-lib-card class=\"period__block\" type=\"small\">\r\n <div>\r\n <div class=\"period__header\">\r\n <div class=\"period__back\" (click)=\"periodIsShown = false\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <div class=\"g-h5-title\">\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n </div>\r\n <div class=\"g-h5-title hide-tablet\">\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n <div (click)=\"clearPeriod()\" class=\"g-text font-medium green cup\">\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"period__list\">\r\n @for (period of periodMenu; track period) {\r\n <dd-lib-radio (changed)=\"selectPeriod($event)\" [(ngModel)]=\"selectedPeriod\" [value]=\"period.name\">{{\r\n period.title\r\n }}</dd-lib-radio>\r\n }\r\n </div>\r\n <div (click)=\"calendarIsShown = !calendarIsShown\" class=\"g-text font-medium green cup mt-8\">\r\n {{ calendarIsShown ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : '\u041E\u0442\u043A\u0440\u044B\u0442\u044C' }} \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C\r\n </div>\r\n </div>\r\n </dd-lib-card>\r\n @if (calendarIsShown) {\r\n <dd-lib-calendar\r\n (emitDate)=\"selectDate($event)\"\r\n [(ngModel)]=\"selectedDate\"\r\n [id]=\"idCalendar\"\r\n [maxDate]=\"maxDate\"\r\n class=\"period__calendar\">\r\n </dd-lib-calendar>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["dd-lib-filter-button{position:relative}.period__wrapper{position:absolute;left:0;z-index:400;display:block;width:352px;height:348px;margin-top:8px;animation:filter-show .5s forwards}@media screen and (max-width: 840px){.period__wrapper{position:fixed;top:0;width:100%;height:100%;overflow:auto;margin-top:0;animation:shift .3s}}@media screen and (max-width: 840px){.period__block{height:100%}}.period__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}@media screen and (max-width: 840px){.period__header{padding-bottom:24px;border-bottom:1px solid var(--gray-color-200)}}@media screen and (max-width: 480px){.period__header{padding-top:8px}}.period__back{display:none}@media screen and (max-width: 840px){.period__back{display:flex;align-items:center}}.period__back ::ng-deep svg{margin-right:16px}.period__back ::ng-deep svg path{stroke:var(--menu-arr-color)}.period__list{max-height:400px;overflow:auto}@media screen and (max-width: 840px){.period__list{max-height:none}}.period__list ::ng-deep dd-lib-radio{display:block;margin-bottom:16px}@media screen and (max-width: 840px){.period__list ::ng-deep dd-lib-radio:not(:last-child){padding-bottom:16px;border-bottom:1px solid var(--gray-color-200)}}.period__calendar{margin-top:8px;display:block;animation:filter-show .5s forwards}@media screen and (max-width: 840px){.period__calendar{position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;margin-top:0;animation:shift .3s}}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "component", type: LibFilterButtonComponent, selector: "dd-lib-filter-button", inputs: ["btnTitle", "hintContent"], outputs: ["clearEvent", "hintEvent"] }, { kind: "component", type: LibRadioComponent, selector: "dd-lib-radio", inputs: ["radioId", "disabled", "required", "name", "value", "checked"], outputs: ["changed"] }, { kind: "component", type: LibCalendarComponent, selector: "dd-lib-calendar", inputs: ["type", "formatDate", "formatTime", "rangeMode", "mode", "maxDate", "minDate"], outputs: ["emitDate", "emitPeriod"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2682
|
+
], ngImport: i0, template: "<div class=\"pos-relative\">\r\n <dd-lib-filter-button\r\n (clearEvent)=\"clearPeriod()\"\r\n (clickEvent)=\"showPeriod()\"\r\n [active]=\"periodIsSelected || calendarIsSelected\"\r\n [id]=\"idPeriod\"\r\n btnColor=\"transparent\">\r\n <div>\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n </dd-lib-filter-button>\r\n @if (periodIsShown) {\r\n <div (ddClickOutside)=\"clickOutside($event)\" [elements]=\"[idPeriod, idCalendar]\" class=\"period__wrapper\">\r\n <dd-lib-card class=\"period__block\" type=\"small\">\r\n <div>\r\n <div class=\"period__header\">\r\n <div class=\"period__back\" (click)=\"periodIsShown = false\">\r\n <dd-lib-svg-icon icon=\"toggle_arrow_left\"></dd-lib-svg-icon>\r\n <div class=\"g-h5-title\">\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n </div>\r\n <div class=\"g-h5-title hide-tablet\">\u041F\u0435\u0440\u0438\u043E\u0434</div>\r\n <div (click)=\"clearPeriod()\" class=\"g-text font-medium green cup\">\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C</div>\r\n </div>\r\n <div class=\"period__list\">\r\n @for (period of periodMenu; track period) {\r\n <dd-lib-radio (changed)=\"selectPeriod($event)\" [(ngModel)]=\"selectedPeriod\" [value]=\"period.name\">{{\r\n period.title\r\n }}</dd-lib-radio>\r\n }\r\n </div>\r\n <div (click)=\"calendarIsShown = !calendarIsShown\" class=\"g-text font-medium green cup mt-8\">\r\n {{ calendarIsShown ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : '\u041E\u0442\u043A\u0440\u044B\u0442\u044C' }} \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C\r\n </div>\r\n </div>\r\n </dd-lib-card>\r\n @if (calendarIsShown) {\r\n <dd-lib-calendar\r\n (emitDate)=\"selectDate($event)\"\r\n [(ngModel)]=\"selectedDate\"\r\n [id]=\"idCalendar\"\r\n [maxDate]=\"maxDate\"\r\n class=\"period__calendar\">\r\n </dd-lib-calendar>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: ["dd-lib-filter-button{position:relative}.period__wrapper{position:absolute;left:0;z-index:400;display:block;width:352px;height:348px;margin-top:8px;animation:filter-show .5s forwards}@media screen and (max-width: 840px){.period__wrapper{position:fixed;top:0;width:100%;height:100%;overflow:auto;margin-top:0;animation:shift .3s}}@media screen and (max-width: 840px){.period__block{height:100%}}.period__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}@media screen and (max-width: 840px){.period__header{padding-bottom:24px;border-bottom:1px solid var(--gray-color-200)}}@media screen and (max-width: 480px){.period__header{padding-top:8px}}.period__back{display:none}@media screen and (max-width: 840px){.period__back{display:flex;align-items:center}}.period__back ::ng-deep svg{margin-right:16px}.period__back ::ng-deep svg path{stroke:var(--menu-arr-color)}.period__list{max-height:400px;overflow:auto}@media screen and (max-width: 840px){.period__list{max-height:none}}.period__list ::ng-deep dd-lib-radio{display:block;margin-bottom:16px}@media screen and (max-width: 840px){.period__list ::ng-deep dd-lib-radio:not(:last-child){padding-bottom:16px;border-bottom:1px solid var(--gray-color-200)}}.period__calendar{margin-top:8px;display:block;animation:filter-show .5s forwards}@media screen and (max-width: 840px){.period__calendar{position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;margin-top:0;animation:shift .3s}}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "component", type: LibFilterButtonComponent, selector: "dd-lib-filter-button", inputs: ["btnTitle", "hintContent"], outputs: ["clearEvent", "hintEvent"] }, { kind: "component", type: LibRadioComponent, selector: "dd-lib-radio", inputs: ["radioId", "disabled", "required", "name", "value", "checked"], outputs: ["changed"] }, { kind: "component", type: LibCalendarComponent, selector: "dd-lib-calendar", inputs: ["type", "formatDate", "formatTime", "rangeMode", "maxHours", "maxMinutes", "needTime", "mode", "maxDate", "minDate"], outputs: ["emitDate", "emitPeriod"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2579
2683
|
}
|
|
2580
2684
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibPeriodComponent, decorators: [{
|
|
2581
2685
|
type: Component,
|
|
@@ -3484,7 +3588,7 @@ class LibDateRangeComponent {
|
|
|
3484
3588
|
useExisting: forwardRef(() => LibDateRangeComponent),
|
|
3485
3589
|
multi: true,
|
|
3486
3590
|
},
|
|
3487
|
-
], ngImport: i0, template: "<div class=\"lib-range\" id=\"lib-range-{{ rangeId }}\">\r\n @if (label) {\r\n <label [for]=\"rangeId\" class=\"lib-range__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n <div class=\"pos-relative\">\r\n <input\r\n [attr.id]=\"rangeId\"\r\n [attr.placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n [(ngModel)]=\"selectedPeriodStr\"\r\n [mask]=\"'d0.M0.0000 - d0.M0.0000'\"\r\n (ngModelChange)=\"changeStrDate($event)\"\r\n [leadZeroDateTime]=\"true\"\r\n class=\"text-select\"/>\r\n @if (!selectedPeriodStr) {\r\n <dd-lib-svg-icon [class.gray-svg]=\"!isShownPeriod\"\r\n (click)=\"openCalendar()\"\r\n id=\"calendar-{{ rangeId }}\"\r\n class=\"calendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n\r\n\r\n } @else {\r\n <dd-lib-svg-icon\r\n (click)=\"setPeriod(undefined)\"\r\n class=\"clear\"\r\n icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n }\r\n </div>\r\n @if (isShownPeriod) {\r\n <div\r\n (ddClickOutside)=\"closeCalendar()\"\r\n [elements]=\"['lib-range-' + rangeId, 'calendar' + rangeId]\"\r\n class=\"calendar-wrapper\">\r\n <dd-lib-calendar [(ngModel)]=\"selectedPeriod\" [rangeMode]=\"true\" (emitPeriod)=\"setPeriod($event)\"></dd-lib-calendar>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-range{min-width:340px;position:relative}.lib-range input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-range input:hover{border-color:var(--input-active-border-colort)}.lib-range input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-range input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-range input:disabled::placeholder{color:var(--input-placeholder)}.lib-range input.invalid,.lib-range input.invalid:hover{border-color:var(--input-error-border-color)}.lib-range input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-range .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-range .calendar{cursor:pointer;position:absolute;right:16px;top:10px}.lib-range .calendar.up{transform:rotate(180deg)}.lib-range__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-range__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-range .calendar-wrapper{position:absolute;display:block;z-index:100;width:100%;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibCalendarComponent, selector: "dd-lib-calendar", inputs: ["type", "formatDate", "formatTime", "rangeMode", "mode", "maxDate", "minDate"], outputs: ["emitDate", "emitPeriod"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3591
|
+
], ngImport: i0, template: "<div class=\"lib-range\" id=\"lib-range-{{ rangeId }}\">\r\n @if (label) {\r\n <label [for]=\"rangeId\" class=\"lib-range__title\">\r\n {{ label }}\r\n @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n }\r\n <div class=\"pos-relative\">\r\n <input\r\n [attr.id]=\"rangeId\"\r\n [attr.placeholder]=\"placeholder\"\r\n (click)=\"openCalendar()\"\r\n [(ngModel)]=\"selectedPeriodStr\"\r\n [mask]=\"'d0.M0.0000 - d0.M0.0000'\"\r\n (ngModelChange)=\"changeStrDate($event)\"\r\n [leadZeroDateTime]=\"true\"\r\n class=\"text-select\"/>\r\n @if (!selectedPeriodStr) {\r\n <dd-lib-svg-icon [class.gray-svg]=\"!isShownPeriod\"\r\n (click)=\"openCalendar()\"\r\n id=\"calendar-{{ rangeId }}\"\r\n class=\"calendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n\r\n\r\n } @else {\r\n <dd-lib-svg-icon\r\n (click)=\"setPeriod(undefined)\"\r\n class=\"clear\"\r\n icon=\"clear\"></dd-lib-svg-icon>\r\n\r\n }\r\n </div>\r\n @if (isShownPeriod) {\r\n <div\r\n (ddClickOutside)=\"closeCalendar()\"\r\n [elements]=\"['lib-range-' + rangeId, 'calendar' + rangeId]\"\r\n class=\"calendar-wrapper\">\r\n <dd-lib-calendar [(ngModel)]=\"selectedPeriod\" [rangeMode]=\"true\" (emitPeriod)=\"setPeriod($event)\"></dd-lib-calendar>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".lib-range{min-width:340px;position:relative}.lib-range input{width:100%;height:48px;padding:15px 28px 15px 16px;overflow:hidden;text-overflow:ellipsis;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;position:relative}.lib-range input:hover{border-color:var(--input-active-border-colort)}.lib-range input:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-range input:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-range input:disabled::placeholder{color:var(--input-placeholder)}.lib-range input.invalid,.lib-range input.invalid:hover{border-color:var(--input-error-border-color)}.lib-range input.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-range .clear{cursor:pointer;position:absolute;right:8px;top:12px}.lib-range .calendar{cursor:pointer;position:absolute;right:16px;top:10px}.lib-range .calendar.up{transform:rotate(180deg)}.lib-range__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-range__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}.lib-range .calendar-wrapper{position:absolute;display:block;z-index:100;width:100%;overflow:auto;border-radius:8px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "directive", type: ClickOutsideDirective, selector: "[ddClickOutside]", inputs: ["elements"], outputs: ["ddClickOutside"] }, { kind: "component", type: LibCalendarComponent, selector: "dd-lib-calendar", inputs: ["type", "formatDate", "formatTime", "rangeMode", "maxHours", "maxMinutes", "needTime", "mode", "maxDate", "minDate"], outputs: ["emitDate", "emitPeriod"] }, { kind: "directive", type: NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3488
3592
|
}
|
|
3489
3593
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibDateRangeComponent, decorators: [{
|
|
3490
3594
|
type: Component,
|