@tetacom/ng-components 1.0.148 → 1.0.149
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/assets/color-icons.svg +49 -521
- package/assets/file-icons.svg +0 -1
- package/assets/icons.svg +205 -138
- package/common/model/view-type.model.d.ts +1 -0
- package/component/accordion/accordion-item/accordion-item.component.d.ts +4 -1
- package/component/avatar/avatar/avatar.component.d.ts +17 -0
- package/component/avatar/avatar.module.d.ts +9 -0
- package/component/avatar/model/avatar-color.enum.d.ts +20 -0
- package/component/avatar/public-api.d.ts +2 -0
- package/component/button/button/button.component.d.ts +4 -1
- package/component/checkbox/checkbox/checkbox.component.d.ts +2 -1
- package/component/date-picker/base-calendar.d.ts +49 -0
- package/component/date-picker/base-picker.d.ts +60 -0
- package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +20 -0
- package/component/date-picker/date-picker/date-picker.component.d.ts +38 -68
- package/component/date-picker/date-picker.module.d.ts +19 -15
- package/component/date-picker/date-range/date-range.component.d.ts +46 -0
- package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +39 -0
- package/component/date-picker/day-picker/day-item/day-item.component.d.ts +9 -0
- package/component/date-picker/day-picker/day-picker.component.d.ts +30 -0
- package/component/date-picker/model/from-to.model.d.ts +4 -0
- package/component/date-picker/model/min-max-date.model.d.ts +4 -0
- package/component/date-picker/month-picker/month-picker.component.d.ts +16 -50
- package/component/date-picker/public-api.d.ts +5 -4
- package/component/date-picker/year-picker/scroll-to-selected-year.directive.d.ts +11 -0
- package/component/date-picker/year-picker/year-picker.component.d.ts +24 -0
- package/component/divider/divider/divider.component.d.ts +10 -0
- package/component/divider/divider.module.d.ts +8 -0
- package/component/divider/public-api.d.ts +2 -0
- package/component/dropdown/dropdown-base.d.ts +3 -1
- package/component/icon/icon-file/icon-file.component.d.ts +9 -3
- package/component/icon/icon-file/icon-file.module.d.ts +9 -0
- package/component/icon/icon.module.d.ts +4 -5
- package/component/icon/public-api.d.ts +1 -0
- package/component/input/input/input.component.d.ts +3 -1
- package/component/message/model/message.d.ts +3 -0
- package/component/public-api.d.ts +2 -0
- package/component/select/select/select.component.d.ts +4 -1
- package/component/switch/switch/switch.component.d.ts +4 -1
- package/directive/hint/hint.directive.d.ts +3 -1
- package/esm2020/common/model/view-type.model.mjs +2 -0
- package/esm2020/component/accordion/accordion/accordion.component.mjs +3 -2
- package/esm2020/component/accordion/accordion-head/accordion-head.component.mjs +3 -2
- package/esm2020/component/accordion/accordion-item/accordion-item.component.mjs +13 -3
- package/esm2020/component/avatar/avatar/avatar.component.mjs +57 -0
- package/esm2020/component/avatar/avatar.module.mjs +28 -0
- package/esm2020/component/avatar/model/avatar-color.enum.mjs +22 -0
- package/esm2020/component/avatar/public-api.mjs +3 -0
- package/esm2020/component/button/button/button.component.mjs +18 -3
- package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +6 -3
- package/esm2020/component/date-picker/base-calendar.mjs +99 -0
- package/esm2020/component/date-picker/base-picker.mjs +102 -0
- package/esm2020/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +49 -0
- package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +141 -234
- package/esm2020/component/date-picker/date-picker.module.mjs +41 -41
- package/esm2020/component/date-picker/date-range/date-range.component.mjs +211 -0
- package/esm2020/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +108 -0
- package/esm2020/component/date-picker/day-picker/day-item/day-item.component.mjs +15 -0
- package/esm2020/component/date-picker/day-picker/day-picker.component.mjs +113 -0
- package/esm2020/component/date-picker/model/from-to.model.mjs +2 -0
- package/esm2020/component/date-picker/model/min-max-date.model.mjs +2 -0
- package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +33 -236
- package/esm2020/component/date-picker/public-api.mjs +6 -5
- package/esm2020/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +26 -0
- package/esm2020/component/date-picker/year-picker/year-picker.component.mjs +48 -0
- package/esm2020/component/divider/divider/divider.component.mjs +18 -0
- package/esm2020/component/divider/divider.module.mjs +20 -0
- package/esm2020/component/divider/public-api.mjs +3 -0
- package/esm2020/component/dropdown/dropdown/dropdown.component.mjs +3 -2
- package/esm2020/component/dropdown/dropdown-base.mjs +6 -2
- package/esm2020/component/dropdown/dropdown.directive.mjs +1 -1
- package/esm2020/component/expand-card/expand-card/expand-card.component.mjs +1 -1
- package/esm2020/component/expand-card/expand-item/expand-item.component.mjs +1 -1
- package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +1 -1
- package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +1 -1
- package/esm2020/component/filter/date-filter/date-filter.component.mjs +1 -1
- package/esm2020/component/filter/list-filter/list-filter.component.mjs +1 -1
- package/esm2020/component/filter/numeric-filter/numeric-filter.component.mjs +1 -1
- package/esm2020/component/filter/string-filter/string-filter.component.mjs +1 -1
- package/esm2020/component/icon/icon-file/icon-file.component.mjs +20 -6
- package/esm2020/component/icon/icon-file/icon-file.module.mjs +28 -0
- package/esm2020/component/icon/icon.module.mjs +1 -6
- package/esm2020/component/icon/public-api.mjs +2 -1
- package/esm2020/component/input/input/input.component.mjs +6 -3
- package/esm2020/component/input/input.module.mjs +1 -1
- package/esm2020/component/input/text-field/text-field.component.mjs +3 -3
- package/esm2020/component/message/message/message.component.mjs +4 -3
- package/esm2020/component/message/message-host/message-host.component.mjs +1 -1
- package/esm2020/component/message/model/message.mjs +2 -1
- package/esm2020/component/modal/dialog/dialog.component.mjs +1 -1
- package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +2 -2
- package/esm2020/component/public-api.mjs +4 -1
- package/esm2020/component/select/select/select.component.mjs +9 -4
- package/esm2020/component/switch/switch/switch.component.mjs +19 -7
- package/esm2020/component/table/default/boolean-cell/boolean-cell.component.mjs +1 -1
- package/esm2020/component/table/default/date-cell/date-cell.component.mjs +1 -1
- package/esm2020/component/table/default/date-time-cell/date-time-cell.component.mjs +1 -1
- package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +1 -1
- package/esm2020/component/table/default/list-cell/list-cell.component.mjs +1 -1
- package/esm2020/component/table/default/string-cell/string-cell.component.mjs +1 -1
- package/esm2020/component/table/selection-cell/selection-cell.component.mjs +1 -1
- package/esm2020/component/table/selection-head-cell/selection-head-cell.component.mjs +1 -1
- package/esm2020/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +1 -1
- package/esm2020/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +1 -1
- package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +1 -1
- package/esm2020/directive/hint/hint.directive.mjs +6 -3
- package/esm2020/locale/en.mjs +3 -1
- package/esm2020/locale/ru.mjs +3 -1
- package/esm2020/locale/teta-localisation.mjs +1 -1
- package/fesm2015/tetacom-ng-components.mjs +2898 -3015
- package/fesm2015/tetacom-ng-components.mjs.map +1 -1
- package/fesm2020/tetacom-ng-components.mjs +5440 -5565
- package/fesm2020/tetacom-ng-components.mjs.map +1 -1
- package/locale/teta-localisation.d.ts +2 -0
- package/package.json +3 -2
- package/style/accordion.scss +28 -6
- package/style/assembly-library.scss +4 -1
- package/style/badge.scss +28 -0
- package/style/bottombar.scss +5 -0
- package/style/button.scss +16 -12
- package/style/checkbox.scss +26 -13
- package/style/chips.scss +10 -10
- package/style/color.scss +1 -36
- package/style/datepicker.scss +139 -24
- package/style/divider.scss +15 -0
- package/style/drag.scss +1 -1
- package/style/dropdown.scss +6 -4
- package/style/hint.scss +5 -5
- package/style/icon.scss +2 -1
- package/style/input.scss +32 -23
- package/style/layout.scss +6 -2
- package/style/list.scss +11 -8
- package/style/loader.scss +2 -2
- package/style/message.scss +15 -7
- package/style/modal.scss +3 -2
- package/style/navigation.scss +4 -1
- package/style/presets/color-presets.scss +9 -160
- package/style/presets/font-presets.scss +26 -25
- package/style/presets/view-types.scss +15 -0
- package/style/progress.scss +3 -3
- package/style/radio.scss +21 -7
- package/style/resize-panel.scss +2 -2
- package/style/scroll.scss +3 -3
- package/style/select.scss +26 -21
- package/style/shadow.scss +0 -20
- package/style/sidebar.scss +1 -1
- package/style/switch.scss +15 -10
- package/style/table.scss +15 -15
- package/style/tabs.scss +11 -11
- package/style/tag.scss +37 -0
- package/style/toggle.scss +20 -18
- package/style/toolbar.scss +1 -1
- package/style/tooltip.scss +8 -6
- package/style/tree.scss +4 -4
- package/component/date-picker/day-select/day-select.component.d.ts +0 -51
- package/component/date-picker/model/date-picker-mode.enum.d.ts +0 -5
- package/component/date-picker/month-select/month-select.component.d.ts +0 -40
- package/component/date-picker/service/picker-touch.service.d.ts +0 -12
- package/component/date-picker/time-part-control/time-part-control.component.d.ts +0 -26
- package/component/date-picker/util/date-picker-util.d.ts +0 -15
- package/component/date-picker/year-select/year-select.component.d.ts +0 -45
- package/esm2020/component/date-picker/day-select/day-select.component.mjs +0 -184
- package/esm2020/component/date-picker/model/date-picker-mode.enum.mjs +0 -7
- package/esm2020/component/date-picker/month-select/month-select.component.mjs +0 -148
- package/esm2020/component/date-picker/service/picker-touch.service.mjs +0 -34
- package/esm2020/component/date-picker/time-part-control/time-part-control.component.mjs +0 -73
- package/esm2020/component/date-picker/util/date-picker-util.mjs +0 -142
- package/esm2020/component/date-picker/year-select/year-select.component.mjs +0 -189
- package/esm2020/pipe/prepend-zero/prepend-zero.module.mjs +0 -18
- package/esm2020/pipe/prepend-zero/prepend-zero.pipe.mjs +0 -21
- package/pipe/prepend-zero/prepend-zero.module.d.ts +0 -8
- package/pipe/prepend-zero/prepend-zero.pipe.d.ts +0 -7
- package/style/tokens/basedark.tokens.css +0 -77
- package/style/tokens/baselight.tokens.css +0 -61
- package/style/tokens/global.tokens.css +0 -235
- package/style/tokens/utility.tokens.css +0 -1119
|
@@ -1,65 +1,65 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import {
|
|
3
|
+
import { DateCalendarComponent } from "./date-picker/date-calendar/date-calendar.component";
|
|
4
|
+
import { DayItemComponent } from './day-picker/day-item/day-item.component';
|
|
5
|
+
import { DayPickerComponent } from './day-picker/day-picker.component';
|
|
6
|
+
import { DatePickerComponent } from "./date-picker/date-picker.component";
|
|
7
|
+
import { DropdownModule } from "../dropdown/dropdown.module";
|
|
8
|
+
import { ButtonModule } from "../button/button.module";
|
|
9
|
+
import { IconModule } from "../icon/icon.module";
|
|
10
|
+
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
|
|
11
|
+
import { InputModule } from "../input/input.module";
|
|
4
12
|
import { MonthPickerComponent } from './month-picker/month-picker.component';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { ButtonModule } from '../button/button.module';
|
|
13
|
-
import { OnlyNumberModule } from '../../directive/only-number/only-number.module';
|
|
14
|
-
import { FormsModule } from '@angular/forms';
|
|
15
|
-
import { TimePartControlComponent } from './time-part-control/time-part-control.component';
|
|
13
|
+
import { YearPickerComponent } from './year-picker/year-picker.component';
|
|
14
|
+
import { ScrollToSelectedYearDirective } from './year-picker/scroll-to-selected-year.directive';
|
|
15
|
+
import { MaskitoModule } from "@maskito/angular";
|
|
16
|
+
import { ClickOutsideModule } from "../../directive/click-outside/click-outside.module";
|
|
17
|
+
import { DateRangeComponent } from "./date-range/date-range.component";
|
|
18
|
+
import { RangeCalendarComponent } from "./date-range/range-calendar/range-calendar.component";
|
|
19
|
+
import { ScrollIntoViewModule } from "../../directive/scroll-into-view/scroll-into-view.module";
|
|
16
20
|
import * as i0 from "@angular/core";
|
|
17
21
|
export class DatePickerModule {
|
|
18
22
|
}
|
|
19
23
|
DatePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20
|
-
DatePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: DatePickerModule, declarations: [
|
|
24
|
+
DatePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: DatePickerModule, declarations: [DateCalendarComponent,
|
|
25
|
+
DayPickerComponent,
|
|
26
|
+
DatePickerComponent,
|
|
27
|
+
RangeCalendarComponent,
|
|
28
|
+
DayItemComponent,
|
|
21
29
|
MonthPickerComponent,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
ScrollToSelectedYearDirective,
|
|
31
|
+
YearPickerComponent,
|
|
32
|
+
ScrollToSelectedYearDirective,
|
|
33
|
+
DateRangeComponent], imports: [CommonModule,
|
|
26
34
|
DropdownModule,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
IconModule,
|
|
30
|
-
PrependZeroModule,
|
|
31
|
-
ButtonModule,
|
|
32
|
-
OnlyNumberModule], exports: [DatePickerComponent, MonthPickerComponent] });
|
|
35
|
+
ButtonModule, FormsModule, MaskitoModule,
|
|
36
|
+
IconModule, InputModule, ScrollIntoViewModule, ClickOutsideModule, ReactiveFormsModule], exports: [DatePickerComponent, DateCalendarComponent, RangeCalendarComponent, DateRangeComponent] });
|
|
33
37
|
DatePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DatePickerModule, imports: [CommonModule,
|
|
34
38
|
DropdownModule,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
IconModule,
|
|
38
|
-
PrependZeroModule,
|
|
39
|
-
ButtonModule,
|
|
40
|
-
OnlyNumberModule] });
|
|
39
|
+
ButtonModule, FormsModule, MaskitoModule,
|
|
40
|
+
IconModule, InputModule, ScrollIntoViewModule, ClickOutsideModule, ReactiveFormsModule] });
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DatePickerModule, decorators: [{
|
|
42
42
|
type: NgModule,
|
|
43
43
|
args: [{
|
|
44
44
|
declarations: [
|
|
45
|
+
DateCalendarComponent,
|
|
46
|
+
DayPickerComponent,
|
|
45
47
|
DatePickerComponent,
|
|
48
|
+
RangeCalendarComponent,
|
|
49
|
+
DayItemComponent,
|
|
46
50
|
MonthPickerComponent,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
ScrollToSelectedYearDirective,
|
|
52
|
+
YearPickerComponent,
|
|
53
|
+
ScrollToSelectedYearDirective,
|
|
54
|
+
DateRangeComponent
|
|
51
55
|
],
|
|
52
|
-
exports: [DatePickerComponent, MonthPickerComponent],
|
|
53
56
|
imports: [
|
|
54
57
|
CommonModule,
|
|
55
58
|
DropdownModule,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
IconModule,
|
|
59
|
-
PrependZeroModule,
|
|
60
|
-
ButtonModule,
|
|
61
|
-
OnlyNumberModule,
|
|
59
|
+
ButtonModule, FormsModule, MaskitoModule,
|
|
60
|
+
IconModule, InputModule, ScrollIntoViewModule, ClickOutsideModule, ReactiveFormsModule,
|
|
62
61
|
],
|
|
62
|
+
exports: [DatePickerComponent, DateCalendarComponent, RangeCalendarComponent, DateRangeComponent]
|
|
63
63
|
}]
|
|
64
64
|
}] });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDMUYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDMUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUM5RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDdEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDNUYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMERBQTBELENBQUM7O0FBd0I5RixNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBbkJ6QixxQkFBcUI7UUFDckIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLG9CQUFvQjtRQUNwQiw2QkFBNkI7UUFDN0IsbUJBQW1CO1FBQ25CLDZCQUE2QjtRQUM3QixrQkFBa0IsYUFHbEIsWUFBWTtRQUNaLGNBQWM7UUFDZCxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWE7UUFDeEMsVUFBVSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsYUFFOUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCOzhHQUVyRixnQkFBZ0IsWUFQekIsWUFBWTtRQUNaLGNBQWM7UUFDZCxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWE7UUFDeEMsVUFBVSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUI7MkZBSTdFLGdCQUFnQjtrQkFyQjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLDZCQUE2Qjt3QkFDN0IsbUJBQW1CO3dCQUNuQiw2QkFBNkI7d0JBQzdCLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWE7d0JBQ3hDLFVBQVUsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CO3FCQUN2RjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsQ0FBQztpQkFDbEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtEYXRlQ2FsZW5kYXJDb21wb25lbnR9IGZyb20gXCIuL2RhdGUtcGlja2VyL2RhdGUtY2FsZW5kYXIvZGF0ZS1jYWxlbmRhci5jb21wb25lbnRcIjtcbmltcG9ydCB7RGF5SXRlbUNvbXBvbmVudH0gZnJvbSAnLi9kYXktcGlja2VyL2RheS1pdGVtL2RheS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge0RheVBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi9kYXktcGlja2VyL2RheS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7RGF0ZVBpY2tlckNvbXBvbmVudH0gZnJvbSBcIi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50XCI7XG5pbXBvcnQge0Ryb3Bkb3duTW9kdWxlfSBmcm9tIFwiLi4vZHJvcGRvd24vZHJvcGRvd24ubW9kdWxlXCI7XG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSBcIi4uL2J1dHRvbi9idXR0b24ubW9kdWxlXCI7XG5pbXBvcnQge0ljb25Nb2R1bGV9IGZyb20gXCIuLi9pY29uL2ljb24ubW9kdWxlXCI7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7SW5wdXRNb2R1bGV9IGZyb20gXCIuLi9pbnB1dC9pbnB1dC5tb2R1bGVcIjtcbmltcG9ydCB7TW9udGhQaWNrZXJDb21wb25lbnR9IGZyb20gJy4vbW9udGgtcGlja2VyL21vbnRoLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHtZZWFyUGlja2VyQ29tcG9uZW50fSBmcm9tICcuL3llYXItcGlja2VyL3llYXItcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge1Njcm9sbFRvU2VsZWN0ZWRZZWFyRGlyZWN0aXZlfSBmcm9tICcuL3llYXItcGlja2VyL3Njcm9sbC10by1zZWxlY3RlZC15ZWFyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge01hc2tpdG9Nb2R1bGV9IGZyb20gXCJAbWFza2l0by9hbmd1bGFyXCI7XG5pbXBvcnQge0NsaWNrT3V0c2lkZU1vZHVsZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZS9jbGljay1vdXRzaWRlL2NsaWNrLW91dHNpZGUubW9kdWxlXCI7XG5pbXBvcnQge0RhdGVSYW5nZUNvbXBvbmVudH0gZnJvbSBcIi4vZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtSYW5nZUNhbGVuZGFyQ29tcG9uZW50fSBmcm9tIFwiLi9kYXRlLXJhbmdlL3JhbmdlLWNhbGVuZGFyL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTY3JvbGxJbnRvVmlld01vZHVsZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZS9zY3JvbGwtaW50by12aWV3L3Njcm9sbC1pbnRvLXZpZXcubW9kdWxlXCI7XG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRGF0ZUNhbGVuZGFyQ29tcG9uZW50LFxuICAgIERheVBpY2tlckNvbXBvbmVudCxcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICAgIFJhbmdlQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgRGF5SXRlbUNvbXBvbmVudCxcbiAgICBNb250aFBpY2tlckNvbXBvbmVudCxcbiAgICBTY3JvbGxUb1NlbGVjdGVkWWVhckRpcmVjdGl2ZSxcbiAgICBZZWFyUGlja2VyQ29tcG9uZW50LFxuICAgIFNjcm9sbFRvU2VsZWN0ZWRZZWFyRGlyZWN0aXZlLFxuICAgIERhdGVSYW5nZUNvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hc2tpdG9Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSwgSW5wdXRNb2R1bGUsIFNjcm9sbEludG9WaWV3TW9kdWxlLCBDbGlja091dHNpZGVNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtEYXRlUGlja2VyQ29tcG9uZW50LCBEYXRlQ2FsZW5kYXJDb21wb25lbnQsIFJhbmdlQ2FsZW5kYXJDb21wb25lbnQsIERhdGVSYW5nZUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlck1vZHVsZSB7XG59XG4iXX0=
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { BasePicker } from "../base-picker";
|
|
3
|
+
import { DatePipe } from "@angular/common";
|
|
4
|
+
import { Align } from "../../../common/enum/align.enum";
|
|
5
|
+
import { VerticalAlign } from "../../../common/enum/vertical-align.enum";
|
|
6
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
7
|
+
import dayjs from "dayjs";
|
|
8
|
+
import { maskitoDateRangeOptionsGenerator, } from "@maskito/kit";
|
|
9
|
+
import { ReplaySubject } from "rxjs";
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common";
|
|
12
|
+
import * as i2 from "../../dropdown/dropdown/dropdown.component";
|
|
13
|
+
import * as i3 from "../../dropdown/dropdown-head.directive";
|
|
14
|
+
import * as i4 from "../../dropdown/dropdown-content.directive";
|
|
15
|
+
import * as i5 from "@angular/forms";
|
|
16
|
+
import * as i6 from "@maskito/angular";
|
|
17
|
+
import * as i7 from "../../icon/icon/icon.component";
|
|
18
|
+
import * as i8 from "../../input/input/input.component";
|
|
19
|
+
import * as i9 from "./range-calendar/range-calendar.component";
|
|
20
|
+
export const DATE_Range_CONTROL_VALUE_ACCESSOR = {
|
|
21
|
+
provide: NG_VALUE_ACCESSOR,
|
|
22
|
+
useExisting: forwardRef(() => DateRangeComponent),
|
|
23
|
+
multi: true,
|
|
24
|
+
};
|
|
25
|
+
export class DateRangeComponent extends BasePicker {
|
|
26
|
+
constructor(_cdr, _elementRef, datePipe) {
|
|
27
|
+
super(_elementRef, _cdr, datePipe);
|
|
28
|
+
this._cdr = _cdr;
|
|
29
|
+
this._elementRef = _elementRef;
|
|
30
|
+
this.datePipe = datePipe;
|
|
31
|
+
this.date = { from: null, to: null };
|
|
32
|
+
this.locale = 'ru';
|
|
33
|
+
this.showTime = false;
|
|
34
|
+
this.minDate = null;
|
|
35
|
+
this.maxDate = null;
|
|
36
|
+
this.invalid = false;
|
|
37
|
+
this.disabled = false;
|
|
38
|
+
this.align = Align.left;
|
|
39
|
+
this.verticalAlign = VerticalAlign.auto;
|
|
40
|
+
this.viewType = 'rounded';
|
|
41
|
+
this.allowNull = false;
|
|
42
|
+
this.selectDate = new EventEmitter();
|
|
43
|
+
this.mask = '';
|
|
44
|
+
this.selectedDate = new ReplaySubject(1);
|
|
45
|
+
}
|
|
46
|
+
changeSelectedDate(date, selectedDate) {
|
|
47
|
+
if (selectedDate.from) {
|
|
48
|
+
const from = new Date(Math.min(new Date(selectedDate.from).getTime(), date.getTime()));
|
|
49
|
+
const to = new Date(Math.max(new Date(selectedDate.from).getTime(), date.getTime()));
|
|
50
|
+
this.setDate({ from, to });
|
|
51
|
+
this.emitValue({ from, to });
|
|
52
|
+
this.selectedDate.next({ from: null, to: null });
|
|
53
|
+
this.open = false;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.setDate({ from: date, to: null });
|
|
57
|
+
this.selectedDate.next({ from: date, to: null });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
checkNull() {
|
|
61
|
+
if (this.allowNull) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
return this.datePipe.transform(new Date(), 'dd.MM.yyyy') + ' - ' + this.datePipe.transform(new Date(), 'dd.MM.yyyy');
|
|
65
|
+
}
|
|
66
|
+
prepareInput() {
|
|
67
|
+
let str = this.getLocaleString(this.date.from) + ' - ' + this.getLocaleString(this.date.to);
|
|
68
|
+
if (!this.date?.from) {
|
|
69
|
+
str = this.allowNull ? '' : this.getLocaleString(new Date()) + ' - ' + this.getLocaleString(new Date());
|
|
70
|
+
}
|
|
71
|
+
let option = {
|
|
72
|
+
mode: 'dd/mm/yyyy',
|
|
73
|
+
separator: '.',
|
|
74
|
+
};
|
|
75
|
+
this.mask = 'dd.mm.yyyy - dd.mm.yyyy';
|
|
76
|
+
if (this.minDate) {
|
|
77
|
+
option.min = dayjs(new Date(this.minDate)).startOf('day');
|
|
78
|
+
}
|
|
79
|
+
if (this.maxDate) {
|
|
80
|
+
option.max = dayjs(new Date(this.maxDate)).endOf('day');
|
|
81
|
+
}
|
|
82
|
+
this.maskitoOptions = maskitoDateRangeOptionsGenerator(option);
|
|
83
|
+
this.changePlaceholder(str);
|
|
84
|
+
}
|
|
85
|
+
onBlur() {
|
|
86
|
+
if (this.allowNull && this.inputText.trim() === '') {
|
|
87
|
+
this.setDate({ from: null, to: null });
|
|
88
|
+
this.selectedDate.next({ from: null, to: null });
|
|
89
|
+
this.emitValue({ from: null, to: null });
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
const val = this.inputText.replace('–', '-').split('-');
|
|
93
|
+
const from = this.getDateFromStr(val[0].trim());
|
|
94
|
+
const to = this.getDateFromStr(val[1]?.trim());
|
|
95
|
+
if (to.day && to.year && to.month) {
|
|
96
|
+
let fromDate = this.getAvailableDate(this.minDate, this.maxDate, new Date(from.year, from.month - 1, from.day));
|
|
97
|
+
let toDate = this.getAvailableDate(this.minDate, this.maxDate, new Date(to.year, to.month - 1, to.day));
|
|
98
|
+
if (fromDate.getTime() > toDate.getTime()) {
|
|
99
|
+
[fromDate, toDate] = [toDate, fromDate];
|
|
100
|
+
}
|
|
101
|
+
this.setDate({ from: fromDate, to: toDate });
|
|
102
|
+
this.emitValue({ from: fromDate, to: toDate });
|
|
103
|
+
this.selectedDate.next({ from: null, to: null });
|
|
104
|
+
if (toDate && fromDate) {
|
|
105
|
+
this.open = false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.setDate(this.date);
|
|
110
|
+
this.selectedDate.next({ from: null, to: null });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
setDate(range) {
|
|
115
|
+
if (!range?.from && !range?.to && this.allowNull) {
|
|
116
|
+
this.inputText = '';
|
|
117
|
+
this.changePlaceholder('');
|
|
118
|
+
this.selectedDate.next({
|
|
119
|
+
from: range?.from || null,
|
|
120
|
+
to: range?.to || null
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.inputText = this.getLocaleString(range.from) + ' - ' + this.getLocaleString(range.to);
|
|
125
|
+
this.changePlaceholder(this.getLocaleString(range.from) + ' - ' + this.getLocaleString(range.to));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
writeValue(obj) {
|
|
129
|
+
if (obj?.from) {
|
|
130
|
+
this.date = {
|
|
131
|
+
from: new Date(obj.from),
|
|
132
|
+
to: new Date(obj.to)
|
|
133
|
+
};
|
|
134
|
+
this.setDate({
|
|
135
|
+
from: new Date(obj.from),
|
|
136
|
+
to: new Date(obj.to)
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
this.date = { from: null, to: null };
|
|
141
|
+
}
|
|
142
|
+
this.selectedDate.next({
|
|
143
|
+
from: null,
|
|
144
|
+
to: null
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
registerOnChange(fn) {
|
|
148
|
+
this.onChange = fn;
|
|
149
|
+
}
|
|
150
|
+
registerOnTouched(fn) {
|
|
151
|
+
}
|
|
152
|
+
ngOnInit() {
|
|
153
|
+
if (this.date?.from) {
|
|
154
|
+
this.setDate({
|
|
155
|
+
from: this.allowNull ? null : new Date(this.date?.from),
|
|
156
|
+
to: this.allowNull ? null : new Date(this.date?.to)
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this.setDate({
|
|
161
|
+
from: this.allowNull ? null : new Date(),
|
|
162
|
+
to: this.allowNull ? null : new Date()
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
this.selectedDate.next({
|
|
166
|
+
from: null,
|
|
167
|
+
to: null
|
|
168
|
+
});
|
|
169
|
+
this.prepareInput();
|
|
170
|
+
}
|
|
171
|
+
onChange(date) {
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
DateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DateRangeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
+
DateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: DateRangeComponent, selector: "teta-date-range", inputs: { date: "date", locale: "locale", showTime: "showTime", minDate: "minDate", maxDate: "maxDate", invalid: "invalid", disabled: "disabled", align: "align", verticalAlign: "verticalAlign", viewType: "viewType", appendToBody: "appendToBody", backdrop: "backdrop", allowNull: "allowNull" }, outputs: { selectDate: "selectDate" }, providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<teta-dropdown *ngIf=\"{selectedDate:selectedDate|async}as data\" [appendToBody]=\"appendToBody\" [backdrop]=\"backdrop\"\n [(open)]=\"open\" (openChange)=\"openChange($event)\" [viewType]=\"viewType\"\n [disabled]=\"disabled\" [verticalAlign]=\"verticalAlign\" [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside','enter']\">\n <div tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_'+viewType\"\n [ngClass]=\"{'datepicker-head_invalid':invalid,'datepicker-head_disabled':disabled}\">\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_'+viewType\">\n <div class=\"row position-relative font-body-3 align-center\">\n <input [ngClass]=\"{'color-text-90':!disabled}\" [disabled]=\"disabled\" #input style=\"z-index: 1\"\n class=\"border-0 color-text-90\" (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\" (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\">\n <div (click)=\"input.focus()\" *ngIf=\"data.selectedDate||allowNull\" class=\"position-absolute color-text-10\"\n style=\"top:-0.3px;cursor: text;user-select: none\">{{placeholder}}</div>\n </div>\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n <ng-container *ngIf=\"open\">\n <div class=\"row\">\n <teta-range-calendar [isDateNull]=\"date===null||(date?.from===null&&date?.to===null)\" [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event,data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\" [locale]=\"locale\"></teta-range-calendar>\n </div>\n </ng-container>\n </div>\n</teta-dropdown>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DropdownComponent, selector: "teta-dropdown", exportAs: ["dropdown"] }, { kind: "directive", type: i3.DropdownHeadDirective, selector: "[tetaDropdownHead]" }, { kind: "directive", type: i4.DropdownContentDirective, selector: "[tetaDropdownContent]" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "directive", type: i6.MaskitoCva, selector: "input[maskito], textarea[maskito]", inputs: ["maskito"] }, { kind: "component", type: i7.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: i8.InputComponent, selector: "teta-input", inputs: ["label", "hint", "viewType", "horizontal", "required"] }, { kind: "component", type: i9.RangeCalendarComponent, selector: "teta-range-calendar", inputs: ["locale", "open", "date", "viewType", "allowNull", "selectedDate", "min", "isDateNull", "max"], outputs: ["hoveredDateChange", "setDate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DateRangeComponent, decorators: [{
|
|
177
|
+
type: Component,
|
|
178
|
+
args: [{ selector: 'teta-date-range', providers: [DATE_Range_CONTROL_VALUE_ACCESSOR, DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<teta-dropdown *ngIf=\"{selectedDate:selectedDate|async}as data\" [appendToBody]=\"appendToBody\" [backdrop]=\"backdrop\"\n [(open)]=\"open\" (openChange)=\"openChange($event)\" [viewType]=\"viewType\"\n [disabled]=\"disabled\" [verticalAlign]=\"verticalAlign\" [align]=\"align\"\n [autoCloseIgnore]=\"['esc', 'inside','enter']\">\n <div tetaDropdownHead\n [class]=\"'datepicker-head font-body-3 gap-8 datepicker_'+viewType\"\n [ngClass]=\"{'datepicker-head_invalid':invalid,'datepicker-head_disabled':disabled}\">\n <teta-input class=\"row row_auto flex\">\n <div [class]=\"'row_auto row datepicker_'+viewType\">\n <div class=\"row position-relative font-body-3 align-center\">\n <input [ngClass]=\"{'color-text-90':!disabled}\" [disabled]=\"disabled\" #input style=\"z-index: 1\"\n class=\"border-0 color-text-90\" (keydown)=\"checkEnter($event)\"\n [(ngModel)]=\"inputText\" (ngModelChange)=\"changeInput($event)\"\n [maskito]=\"maskitoOptions\">\n <div (click)=\"input.focus()\" *ngIf=\"data.selectedDate||allowNull\" class=\"position-absolute color-text-10\"\n style=\"top:-0.3px;cursor: text;user-select: none\">{{placeholder}}</div>\n </div>\n <teta-icon [name]=\"'calendar'\"></teta-icon>\n </div>\n </teta-input>\n </div>\n <div tetaDropdownContent class=\"scrollable\" (click)=\"$event.preventDefault()\">\n <ng-container *ngIf=\"open\">\n <div class=\"row\">\n <teta-range-calendar [isDateNull]=\"date===null||(date?.from===null&&date?.to===null)\" [open]=\"open\"\n [max]=\"maxDate\"\n [allowNull]=\"allowNull\"\n [min]=\"minDate\"\n (setDate)=\"changeSelectedDate($event,data.selectedDate)\"\n [selectedDate]=\"data.selectedDate\"\n [date]=\"date\"\n [viewType]=\"viewType\" [locale]=\"locale\"></teta-range-calendar>\n </div>\n </ng-container>\n </div>\n</teta-dropdown>\n" }]
|
|
179
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.DatePipe }]; }, propDecorators: { date: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], locale: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], showTime: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], minDate: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], maxDate: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], invalid: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}], disabled: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], align: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], verticalAlign: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], viewType: [{
|
|
198
|
+
type: Input
|
|
199
|
+
}], appendToBody: [{
|
|
200
|
+
type: Input
|
|
201
|
+
}], backdrop: [{
|
|
202
|
+
type: Input
|
|
203
|
+
}], allowNull: [{
|
|
204
|
+
type: Input
|
|
205
|
+
}], input: [{
|
|
206
|
+
type: ViewChild,
|
|
207
|
+
args: ['input']
|
|
208
|
+
}], selectDate: [{
|
|
209
|
+
type: Output
|
|
210
|
+
}] } });
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDRyxZQUFZLEVBQUUsVUFBVSxFQUNwQyxLQUFLLEVBQ0csTUFBTSxFQUNkLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFdkUsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQ0wsZ0NBQWdDLEdBQ2pDLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBR25DLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFRO0lBQ3BELE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztJQUNqRCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFTRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBVTtJQW1CaEQsWUFBcUIsSUFBdUIsRUFBVyxX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dUIsQ0FBQyxNQUFNO3dKQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNjLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDUixVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCwgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VQaWNrZXJ9IGZyb20gXCIuLi9iYXNlLXBpY2tlclwiO1xuaW1wb3J0IHtEYXRlUGlwZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtBbGlnbn0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9lbnVtL2FsaWduLmVudW1cIjtcbmltcG9ydCB7VmVydGljYWxBbGlnbn0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9lbnVtL3ZlcnRpY2FsLWFsaWduLmVudW1cIjtcbmltcG9ydCB7dmlld1R5cGV9IGZyb20gJ3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xuaW1wb3J0IHtcbiAgbWFza2l0b0RhdGVSYW5nZU9wdGlvbnNHZW5lcmF0b3IsXG59IGZyb20gXCJAbWFza2l0by9raXRcIjtcbmltcG9ydCB7UmVwbGF5U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7RGF0ZUZyb21Ub01vZGVsfSBmcm9tIFwiLi4vbW9kZWwvZnJvbS10by5tb2RlbFwiO1xuXG5leHBvcnQgY29uc3QgREFURV9SYW5nZV9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlUmFuZ2VDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtZGF0ZS1yYW5nZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtEQVRFX1JhbmdlX0NPTlRST0xfVkFMVUVfQUNDRVNTT1IsIERhdGVQaXBlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlQ29tcG9uZW50IGV4dGVuZHMgQmFzZVBpY2tlciBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBkYXRlOiBEYXRlRnJvbVRvTW9kZWwgPSB7ZnJvbTogbnVsbCwgdG86IG51bGx9O1xuICBASW5wdXQoKSBsb2NhbGU6IHN0cmluZyA9ICdydSc7XG4gIEBJbnB1dCgpIHNob3dUaW1lOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1pbkRhdGU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBtYXhEYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyID0gbnVsbDtcbiAgQElucHV0KCkgaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhbGlnbjogQWxpZ24gPSBBbGlnbi5sZWZ0O1xuICBASW5wdXQoKSB2ZXJ0aWNhbEFsaWduOiBWZXJ0aWNhbEFsaWduID0gVmVydGljYWxBbGlnbi5hdXRvO1xuICBASW5wdXQoKSB2aWV3VHlwZTogdmlld1R5cGUgPSAncm91bmRlZCdcbiAgQElucHV0KCkgYXBwZW5kVG9Cb2R5OiBib29sZWFuO1xuICBASW5wdXQoKSBiYWNrZHJvcDogYm9vbGVhbjtcbiAgQElucHV0KCkgYWxsb3dOdWxsOiBib29sZWFuID1mYWxzZTtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dDogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpIHNlbGVjdERhdGU6IEV2ZW50RW1pdHRlcjxEYXRlRnJvbVRvTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlRnJvbVRvTW9kZWw+KClcbiAgcHVibGljIG1hc2s6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBSZXBsYXlTdWJqZWN0PERhdGVGcm9tVG9Nb2RlbD4gPSBuZXcgUmVwbGF5U3ViamVjdDxEYXRlRnJvbVRvTW9kZWw+KDEpXG5cbiAgY29uc3RydWN0b3Iob3ZlcnJpZGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIG92ZXJyaWRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBvdmVycmlkZSBkYXRlUGlwZTogRGF0ZVBpcGUpIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZiwgX2NkciwgZGF0ZVBpcGUpXG4gIH1cblxuICBvdmVycmlkZSBjaGFuZ2VTZWxlY3RlZERhdGUoZGF0ZTogRGF0ZSwgc2VsZWN0ZWREYXRlOiBEYXRlRnJvbVRvTW9kZWwpIHtcbiAgICBpZiAoc2VsZWN0ZWREYXRlLmZyb20pIHtcbiAgICAgIGNvbnN0IGZyb20gPSBuZXcgRGF0ZShNYXRoLm1pbihuZXcgRGF0ZShzZWxlY3RlZERhdGUuZnJvbSkuZ2V0VGltZSgpLCBkYXRlLmdldFRpbWUoKSkpO1xuICAgICAgY29uc3QgdG8gPSBuZXcgRGF0ZShNYXRoLm1heChuZXcgRGF0ZShzZWxlY3RlZERhdGUuZnJvbSkuZ2V0VGltZSgpLCBkYXRlLmdldFRpbWUoKSkpO1xuICAgICAgdGhpcy5zZXREYXRlKHtmcm9tLCB0b30pXG4gICAgICB0aGlzLmVtaXRWYWx1ZSh7ZnJvbSwgdG99KVxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUubmV4dCh7ZnJvbTogbnVsbCwgdG86IG51bGx9KVxuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RGF0ZSh7ZnJvbTogZGF0ZSwgdG86IG51bGx9KVxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUubmV4dCh7ZnJvbTogZGF0ZSwgdG86IG51bGx9KVxuICAgIH1cblxuICB9XG5cbiAgb3ZlcnJpZGUgY2hlY2tOdWxsKCkge1xuICAgIGlmICh0aGlzLmFsbG93TnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCksICdkZC5NTS55eXl5JykgKyAnIC0gJyArIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCksICdkZC5NTS55eXl5JylcbiAgfVxuXG4gIHByZXBhcmVJbnB1dCgpIHtcbiAgICBsZXQgc3RyID0gdGhpcy5nZXRMb2NhbGVTdHJpbmcodGhpcy5kYXRlLmZyb20pICsgJyAtICcgKyB0aGlzLmdldExvY2FsZVN0cmluZyh0aGlzLmRhdGUudG8pXG4gICAgaWYgKCF0aGlzLmRhdGU/LmZyb20pIHtcbiAgICAgIHN0ciA9IHRoaXMuYWxsb3dOdWxsID8gJycgOiB0aGlzLmdldExvY2FsZVN0cmluZyhuZXcgRGF0ZSgpKSArICcgLSAnICsgdGhpcy5nZXRMb2NhbGVTdHJpbmcobmV3IERhdGUoKSlcbiAgICB9XG4gICAgbGV0IG9wdGlvbjogeyBtb2RlLCBzZXBhcmF0b3IsIG1pbj8sIG1heD8sIG1pbkxlbmd0aD8sIG1heExlbmd0aD8gfSA9IHtcbiAgICAgIG1vZGU6ICdkZC9tbS95eXl5JyxcbiAgICAgIHNlcGFyYXRvcjogJy4nLFxuICAgIH07XG4gICAgdGhpcy5tYXNrID0gJ2RkLm1tLnl5eXkgLSBkZC5tbS55eXl5JztcbiAgICBpZiAodGhpcy5taW5EYXRlKSB7XG4gICAgICBvcHRpb24ubWluID0gZGF5anMobmV3IERhdGUodGhpcy5taW5EYXRlKSkuc3RhcnRPZignZGF5JylcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4RGF0ZSkge1xuICAgICAgb3B0aW9uLm1heCA9IGRheWpzKG5ldyBEYXRlKHRoaXMubWF4RGF0ZSkpLmVuZE9mKCdkYXknKVxuICAgIH1cbiAgICB0aGlzLm1hc2tpdG9PcHRpb25zID0gbWFza2l0b0RhdGVSYW5nZU9wdGlvbnNHZW5lcmF0b3Iob3B0aW9uKVxuICAgIHRoaXMuY2hhbmdlUGxhY2Vob2xkZXIoc3RyKVxuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIGlmICh0aGlzLmFsbG93TnVsbCAmJiB0aGlzLmlucHV0VGV4dC50cmltKCkgPT09ICcnKSB7XG4gICAgICB0aGlzLnNldERhdGUoe2Zyb206IG51bGwsIHRvOiBudWxsfSlcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLm5leHQoe2Zyb206IG51bGwsIHRvOiBudWxsfSlcbiAgICAgIHRoaXMuZW1pdFZhbHVlKHtmcm9tOiBudWxsLCB0bzogbnVsbH0pXG4gICAgfSBlbHNlIHtcblxuICAgICAgY29uc3QgdmFsID0gdGhpcy5pbnB1dFRleHQucmVwbGFjZSgn4oCTJywnLScpLnNwbGl0KCctJyk7XG4gICAgICBjb25zdCBmcm9tID0gdGhpcy5nZXREYXRlRnJvbVN0cih2YWxbMF0udHJpbSgpKTtcbiAgICAgIGNvbnN0IHRvID0gdGhpcy5nZXREYXRlRnJvbVN0cih2YWxbMV0/LnRyaW0oKSk7XG4gICAgICBpZiAodG8uZGF5ICYmIHRvLnllYXIgJiYgdG8ubW9udGgpIHtcbiAgICAgICAgbGV0IGZyb21EYXRlID0gdGhpcy5nZXRBdmFpbGFibGVEYXRlKHRoaXMubWluRGF0ZSwgdGhpcy5tYXhEYXRlLCBuZXcgRGF0ZShmcm9tLnllYXIsIGZyb20ubW9udGggLSAxLCBmcm9tLmRheSkpXG4gICAgICAgIGxldCB0b0RhdGUgPSB0aGlzLmdldEF2YWlsYWJsZURhdGUodGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUsIG5ldyBEYXRlKHRvLnllYXIsIHRvLm1vbnRoIC0gMSwgdG8uZGF5KSlcbiAgICAgICAgaWYgKGZyb21EYXRlLmdldFRpbWUoKSA+IHRvRGF0ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgICBbZnJvbURhdGUsIHRvRGF0ZV0gPSBbdG9EYXRlLCBmcm9tRGF0ZV1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0RGF0ZSh7ZnJvbTogZnJvbURhdGUsIHRvOiB0b0RhdGV9KVxuICAgICAgICB0aGlzLmVtaXRWYWx1ZSh7ZnJvbTogZnJvbURhdGUsIHRvOiB0b0RhdGV9KVxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5uZXh0KHtmcm9tOiBudWxsLCB0bzogbnVsbH0pXG4gICAgICAgIGlmICh0b0RhdGUgJiYgZnJvbURhdGUpIHtcbiAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXREYXRlKHRoaXMuZGF0ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLm5leHQoe2Zyb206IG51bGwsIHRvOiBudWxsfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIHNldERhdGUocmFuZ2U6IERhdGVGcm9tVG9Nb2RlbCkge1xuICAgIGlmICghcmFuZ2U/LmZyb20gJiYgIXJhbmdlPy50byAmJiB0aGlzLmFsbG93TnVsbCkge1xuICAgICAgdGhpcy5pbnB1dFRleHQgPSAnJ1xuICAgICAgdGhpcy5jaGFuZ2VQbGFjZWhvbGRlcignJylcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLm5leHQoe1xuICAgICAgICBmcm9tOiByYW5nZT8uZnJvbSB8fCBudWxsLFxuICAgICAgICB0bzogcmFuZ2U/LnRvIHx8IG51bGxcbiAgICAgIH0pXG5cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLmdldExvY2FsZVN0cmluZyhyYW5nZS5mcm9tKSArICcgLSAnICsgdGhpcy5nZXRMb2NhbGVTdHJpbmcocmFuZ2UudG8pXG4gICAgICB0aGlzLmNoYW5nZVBsYWNlaG9sZGVyKHRoaXMuZ2V0TG9jYWxlU3RyaW5nKHJhbmdlLmZyb20pICsgJyAtICcgKyB0aGlzLmdldExvY2FsZVN0cmluZyhyYW5nZS50bykpXG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IERhdGVGcm9tVG9Nb2RlbCk6IHZvaWQge1xuICAgIGlmIChvYmo/LmZyb20pIHtcbiAgICAgIHRoaXMuZGF0ZSA9IHtcbiAgICAgICAgZnJvbTogbmV3IERhdGUob2JqLmZyb20pLFxuICAgICAgICB0bzogbmV3IERhdGUob2JqLnRvKVxuICAgICAgfVxuICAgICAgdGhpcy5zZXREYXRlKHtcbiAgICAgICAgZnJvbTogbmV3IERhdGUob2JqLmZyb20pLFxuICAgICAgICB0bzogbmV3IERhdGUob2JqLnRvKVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRlID0ge2Zyb206IG51bGwsIHRvOiBudWxsfVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkRGF0ZS5uZXh0KHtcbiAgICAgIGZyb206IG51bGwsXG4gICAgICB0bzogbnVsbFxuICAgIH0pXG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm5cbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGU/LmZyb20pIHtcbiAgICAgIHRoaXMuc2V0RGF0ZSh7XG4gICAgICAgIGZyb206IHRoaXMuYWxsb3dOdWxsID8gbnVsbCA6IG5ldyBEYXRlKHRoaXMuZGF0ZT8uZnJvbSksXG4gICAgICAgIHRvOiB0aGlzLmFsbG93TnVsbCA/IG51bGwgOiBuZXcgRGF0ZSh0aGlzLmRhdGU/LnRvKVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXREYXRlKHtcbiAgICAgICAgZnJvbTogdGhpcy5hbGxvd051bGwgPyBudWxsIDogbmV3IERhdGUoKSxcbiAgICAgICAgdG86IHRoaXMuYWxsb3dOdWxsID8gbnVsbCA6IG5ldyBEYXRlKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZERhdGUubmV4dCh7XG4gICAgICBmcm9tOiBudWxsLFxuICAgICAgdG86IG51bGxcbiAgICB9KVxuXG4gICAgdGhpcy5wcmVwYXJlSW5wdXQoKVxuICB9XG5cbiAgb25DaGFuZ2UoZGF0ZTogRGF0ZSkge1xuICB9XG59XG4iLCI8dGV0YS1kcm9wZG93biAqbmdJZj1cIntzZWxlY3RlZERhdGU6c2VsZWN0ZWREYXRlfGFzeW5jfWFzIGRhdGFcIiBbYXBwZW5kVG9Cb2R5XT1cImFwcGVuZFRvQm9keVwiIFtiYWNrZHJvcF09XCJiYWNrZHJvcFwiXG4gICAgICAgICAgICAgICBbKG9wZW4pXT1cIm9wZW5cIiAob3BlbkNoYW5nZSk9XCJvcGVuQ2hhbmdlKCRldmVudClcIiBbdmlld1R5cGVdPVwidmlld1R5cGVcIlxuICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3ZlcnRpY2FsQWxpZ25dPVwidmVydGljYWxBbGlnblwiIFthbGlnbl09XCJhbGlnblwiXG4gICAgICAgICAgICAgICBbYXV0b0Nsb3NlSWdub3JlXT1cIlsnZXNjJywgJ2luc2lkZScsJ2VudGVyJ11cIj5cbiAgPGRpdiB0ZXRhRHJvcGRvd25IZWFkXG4gICAgICAgW2NsYXNzXT1cIidkYXRlcGlja2VyLWhlYWQgZm9udC1ib2R5LTMgZ2FwLTggZGF0ZXBpY2tlcl8nK3ZpZXdUeXBlXCJcbiAgICAgICBbbmdDbGFzc109XCJ7J2RhdGVwaWNrZXItaGVhZF9pbnZhbGlkJzppbnZhbGlkLCdkYXRlcGlja2VyLWhlYWRfZGlzYWJsZWQnOmRpc2FibGVkfVwiPlxuICAgIDx0ZXRhLWlucHV0IGNsYXNzPVwicm93IHJvd19hdXRvIGZsZXhcIj5cbiAgICAgIDxkaXYgW2NsYXNzXT1cIidyb3dfYXV0byByb3cgZGF0ZXBpY2tlcl8nK3ZpZXdUeXBlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcG9zaXRpb24tcmVsYXRpdmUgZm9udC1ib2R5LTMgYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgPGlucHV0IFtuZ0NsYXNzXT1cInsnY29sb3ItdGV4dC05MCc6IWRpc2FibGVkfVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiICNpbnB1dCBzdHlsZT1cInotaW5kZXg6IDFcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImJvcmRlci0wIGNvbG9yLXRleHQtOTBcIiAoa2V5ZG93bik9XCJjaGVja0VudGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUlucHV0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICBbbWFza2l0b109XCJtYXNraXRvT3B0aW9uc1wiPlxuICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImlucHV0LmZvY3VzKClcIiAqbmdJZj1cImRhdGEuc2VsZWN0ZWREYXRlfHxhbGxvd051bGxcIiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNvbG9yLXRleHQtMTBcIlxuICAgICAgICAgICAgICAgc3R5bGU9XCJ0b3A6LTAuM3B4O2N1cnNvcjogdGV4dDt1c2VyLXNlbGVjdDogbm9uZVwiPnt7cGxhY2Vob2xkZXJ9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHRldGEtaWNvbiBbbmFtZV09XCInY2FsZW5kYXInXCI+PC90ZXRhLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L3RldGEtaW5wdXQ+XG4gIDwvZGl2PlxuICA8ZGl2IHRldGFEcm9wZG93bkNvbnRlbnQgY2xhc3M9XCJzY3JvbGxhYmxlXCIgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPHRldGEtcmFuZ2UtY2FsZW5kYXIgW2lzRGF0ZU51bGxdPVwiZGF0ZT09PW51bGx8fChkYXRlPy5mcm9tPT09bnVsbCYmZGF0ZT8udG89PT1udWxsKVwiIFtvcGVuXT1cIm9wZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIm1heERhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dOdWxsXT1cImFsbG93TnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluRGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXREYXRlKT1cImNoYW5nZVNlbGVjdGVkRGF0ZSgkZXZlbnQsZGF0YS5zZWxlY3RlZERhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJkYXRhLnNlbGVjdGVkRGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRlXT1cImRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlld1R5cGVdPVwidmlld1R5cGVcIiBbbG9jYWxlXT1cImxvY2FsZVwiPjwvdGV0YS1yYW5nZS1jYWxlbmRhcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvdGV0YS1kcm9wZG93bj5cbiJdfQ==
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { combineLatest, filter, map, shareReplay, takeWhile } from "rxjs";
|
|
3
|
+
import dayjs from "dayjs";
|
|
4
|
+
import { BaseCalendar } from "../../base-calendar";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "../../../button/button/button.component";
|
|
8
|
+
import * as i3 from "../../../icon/icon/icon.component";
|
|
9
|
+
import * as i4 from "../../day-picker/day-picker.component";
|
|
10
|
+
import * as i5 from "../../month-picker/month-picker.component";
|
|
11
|
+
import * as i6 from "../../year-picker/year-picker.component";
|
|
12
|
+
export class RangeCalendarComponent extends BaseCalendar {
|
|
13
|
+
constructor(_cdr) {
|
|
14
|
+
super(_cdr);
|
|
15
|
+
this._cdr = _cdr;
|
|
16
|
+
this.hoveredDateChange = new EventEmitter();
|
|
17
|
+
this.setDate = new EventEmitter();
|
|
18
|
+
this._hoveredDate = null;
|
|
19
|
+
dayjs().locale('ru', { weekStart: 1 });
|
|
20
|
+
combineLatest([this.currentYear, this.currentMonth, this.minMax]).pipe(takeWhile(() => this.alive), shareReplay({ bufferSize: 1, refCount: false }), filter(([currentYear, currentMonth]) => currentMonth !== null && currentYear !== null), map(([year, month, minMax]) => {
|
|
21
|
+
const { availableYear, availableMonth } = this.getAvailableMonthYear(month + 1, year);
|
|
22
|
+
return {
|
|
23
|
+
currentMonth: this.generateCalendar(dayjs(new Date(this.selectedDate.from || new Date())).locale(this.locale), year, month, minMax),
|
|
24
|
+
nextMonth: this.generateCalendar(dayjs(new Date(this.selectedDate.from || new Date())).locale(this.locale), availableYear, availableMonth, minMax)
|
|
25
|
+
};
|
|
26
|
+
})).subscribe((_) => {
|
|
27
|
+
this.calendar = _;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
get hoveredDate() {
|
|
31
|
+
return this._hoveredDate;
|
|
32
|
+
}
|
|
33
|
+
set hoveredDate(e) {
|
|
34
|
+
this._hoveredDate = e;
|
|
35
|
+
this._cdr.detectChanges();
|
|
36
|
+
}
|
|
37
|
+
getFromTo() {
|
|
38
|
+
let dateFrom;
|
|
39
|
+
let dateTo;
|
|
40
|
+
if (this.selectedDate?.from) {
|
|
41
|
+
dateFrom = new Date(this.selectedDate.from);
|
|
42
|
+
dateTo = null;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
if (this.allowNull) {
|
|
46
|
+
dateFrom = this.date?.from ? new Date(this.date.from) : null;
|
|
47
|
+
dateTo = this.date?.to ? new Date(this.date.to) : null;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
dateFrom = this.date?.from ? new Date(this.date.from) : new Date();
|
|
51
|
+
dateTo = this.date?.to ? new Date(this.date.to) : new Date();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return { from: dateFrom, to: dateTo };
|
|
55
|
+
}
|
|
56
|
+
isSelected(d, selectedDate) {
|
|
57
|
+
const { from, to } = this.getFromTo();
|
|
58
|
+
return this.checkSelected(d, from) || this.checkSelected(d, to);
|
|
59
|
+
}
|
|
60
|
+
checkSelected(date, selectedDate) {
|
|
61
|
+
const isSelectedDate = date.getDate() === selectedDate?.getDate();
|
|
62
|
+
const isSelectedYear = date.getFullYear() === selectedDate?.getFullYear();
|
|
63
|
+
const isSelectedMonth = date.getMonth() === selectedDate?.getMonth();
|
|
64
|
+
return isSelectedDate && isSelectedMonth && isSelectedYear;
|
|
65
|
+
}
|
|
66
|
+
isFirstDaySuitable(m, y, max) {
|
|
67
|
+
const { availableYear, availableMonth } = this.getAvailableMonthYear(m, y);
|
|
68
|
+
return this.isSuitableMaxDate(dayjs(new Date(availableYear, availableMonth)).startOf('month').toDate(), max);
|
|
69
|
+
}
|
|
70
|
+
isLastDaySuitable(m, y, min) {
|
|
71
|
+
const { availableYear, availableMonth } = this.getAvailableMonthYear(m, y);
|
|
72
|
+
return this.isSuitableMinDate(dayjs(new Date(availableYear, availableMonth)).endOf('month').toDate(), min);
|
|
73
|
+
}
|
|
74
|
+
ngOnChanges(changes) {
|
|
75
|
+
if (!changes?.['hoveredDate']) {
|
|
76
|
+
this.changeCalendarData(this.selectedDate.from || this.date.from);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
RangeCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: RangeCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
RangeCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: RangeCalendarComponent, selector: "teta-range-calendar", inputs: { locale: "locale", open: "open", date: "date", viewType: "viewType", allowNull: "allowNull", selectedDate: "selectedDate", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { hoveredDateChange: "hoveredDateChange", setDate: "setDate" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"{currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async} as data\"\n class=\"datepicker-content overflow-y-auto\"\n>\n <ng-container *ngIf=\"data.selectedPicker==='day'\">\n <div class=\"row \">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{'datepicker-arrow_hidden':!isLastDaySuitable(data.currentMonth-1,data.currentYear,min)}\"\n [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p> {{getMothName(data.currentMonth)}}</p>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker-arrow_hidden datepicker_'+viewType\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [(hoveredDate)]=\"hoveredDate\" [range]=\"getFromTo()\" [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"></teta-day-picker>\n </div>\n </div>\n <div class=\"padding-h-3 padding-v-2\"\n *ngIf=\"getAvailableMonthYear(data.currentMonth+1,data.currentYear) as availableMonthYear\">\n <div class=\"row align-center justify-content-between\">\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker-arrow_hidden datepicker_'+viewType\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{getMothName(availableMonthYear.availableMonth)}}</p>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{availableMonthYear.availableYear}}</button>\n </div>\n <teta-button [square]=\"true\"\n [ngClass]=\"{'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth+2,data.currentYear,max)}\"\n [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [(hoveredDate)]=\"hoveredDate\" [range]=\"getFromTo()\" [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"></teta-day-picker>\n </div>\n </div>\n </div>\n\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='month'\">\n <teta-month-picker [localeMoths]=\"localeMonths\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\" [locale]=\"locale\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='year'\">\n <teta-year-picker [minMax]=\"data.minMax\" [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n </ng-container>\n</div>\n\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: i4.DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: i5.MonthPickerComponent, selector: "teta-month-picker", inputs: ["locale", "selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: i6.YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: RangeCalendarComponent, decorators: [{
|
|
83
|
+
type: Component,
|
|
84
|
+
args: [{ selector: 'teta-range-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"{currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async,minMax:minMax|async} as data\"\n class=\"datepicker-content overflow-y-auto\"\n>\n <ng-container *ngIf=\"data.selectedPicker==='day'\">\n <div class=\"row \">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{'datepicker-arrow_hidden':!isLastDaySuitable(data.currentMonth-1,data.currentYear,min)}\"\n [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p> {{getMothName(data.currentMonth)}}</p>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker-arrow_hidden datepicker_'+viewType\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [(hoveredDate)]=\"hoveredDate\" [range]=\"getFromTo()\" [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"></teta-day-picker>\n </div>\n </div>\n <div class=\"padding-h-3 padding-v-2\"\n *ngIf=\"getAvailableMonthYear(data.currentMonth+1,data.currentYear) as availableMonthYear\">\n <div class=\"row align-center justify-content-between\">\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker-arrow_hidden datepicker_'+viewType\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{getMothName(availableMonthYear.availableMonth)}}</p>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{availableMonthYear.availableYear}}</button>\n </div>\n <teta-button [square]=\"true\"\n [ngClass]=\"{'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth+2,data.currentYear,max)}\"\n [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [(hoveredDate)]=\"hoveredDate\" [range]=\"getFromTo()\" [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"></teta-day-picker>\n </div>\n </div>\n </div>\n\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='month'\">\n <teta-month-picker [localeMoths]=\"localeMonths\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\" [locale]=\"locale\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='year'\">\n <teta-year-picker [minMax]=\"data.minMax\" [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n </ng-container>\n</div>\n\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { locale: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], open: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], date: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], viewType: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], allowNull: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], selectedDate: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], min: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], isDateNull: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], max: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], hoveredDateChange: [{
|
|
104
|
+
type: Output
|
|
105
|
+
}], setDate: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}] } });
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9kYXRlLXJhbmdlL3JhbmdlLWNhbGVuZGFyL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS9yYW5nZS1jYWxlbmRhci9yYW5nZS1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd4RSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7OztBQVNqRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQXVCdEQsWUFBcUIsSUFBdUI7UUFFMUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRk8sU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFibEMsc0JBQWlCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDakUsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTFELGlCQUFZLEdBQVMsSUFBSSxDQUFDO1FBYS9CLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBQyxTQUFTLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUNyQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUMzQixXQUFXLENBQUMsRUFBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUM3QyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxLQUFLLElBQUksSUFBSSxXQUFXLEtBQUssSUFBSSxDQUFDLEVBQ3RGLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQzVCLE1BQU0sRUFBQyxhQUFhLEVBQUUsY0FBYyxFQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFDbkYsT0FBTztnQkFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO2dCQUNuSSxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDO2FBQ25KLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQTNCRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUE7SUFDMUIsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQzNCLENBQUM7SUF1QkQsU0FBUztRQUNQLElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxNQUFNLENBQUM7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFO1lBQzNCLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzNDLE1BQU0sR0FBRyxJQUFJLENBQUE7U0FDZDthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtnQkFDNUQsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7YUFDdkQ7aUJBQU07Z0JBQ0wsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFBO2dCQUNsRSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUE7YUFDN0Q7U0FFRjtRQUVELE9BQU8sRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBR1EsVUFBVSxDQUFDLENBQU8sRUFBRSxZQUFrQjtRQUM3QyxNQUFNLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUNuQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ2pFLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBVSxFQUFFLFlBQWtCO1FBQzFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUE7UUFDakUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQTtRQUN6RSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssWUFBWSxFQUFFLFFBQVEsRUFBRSxDQUFBO1FBQ3BFLE9BQU8sY0FBYyxJQUFJLGVBQWUsSUFBSSxjQUFjLENBQUE7SUFDNUQsQ0FBQztJQUVELGtCQUFrQixDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsR0FBUztRQUVoRCxNQUFNLEVBQUMsYUFBYSxFQUFFLGNBQWMsRUFBQyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDeEUsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUM5RyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxHQUFTO1FBQy9DLE1BQU0sRUFBQyxhQUFhLEVBQUUsY0FBYyxFQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN4RSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQzVHLENBQUM7SUFFUSxXQUFXLENBQUMsT0FBc0I7UUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ2xFO0lBQ0gsQ0FBQzs7bUhBNUZVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHdXQ3pCbkMsa29JQTJFQTsyRkRsRGEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNO3dHQUd0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCB0YWtlV2hpbGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0RheU1vZGVsfSBmcm9tICcuLi8uLi9tb2RlbC9kYXktbW9kZWwnO1xuaW1wb3J0IHt2aWV3VHlwZX0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWxcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCB7RGF0ZUZyb21Ub01vZGVsfSBmcm9tIFwiLi4vLi4vbW9kZWwvZnJvbS10by5tb2RlbFwiO1xuaW1wb3J0IHtCYXNlQ2FsZW5kYXJ9IGZyb20gXCIuLi8uLi9iYXNlLWNhbGVuZGFyXCI7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1yYW5nZS1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ2FsZW5kYXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxvY2FsZTogc3RyaW5nO1xuICBASW5wdXQoKSBvcGVuOiBib29sZWFuO1xuICBASW5wdXQoKSBkYXRlOiBEYXRlRnJvbVRvTW9kZWxcbiAgQElucHV0KCkgdmlld1R5cGU6IHZpZXdUeXBlO1xuICBASW5wdXQoKSBhbGxvd051bGw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTogRGF0ZUZyb21Ub01vZGVsO1xuICBASW5wdXQoKSBtaW46IERhdGUgfCBzdHJpbmcgfCBudW1iZXI7XG4gIEBJbnB1dCgpIGlzRGF0ZU51bGw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heDogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgQE91dHB1dCgpIGhvdmVyZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBzZXREYXRlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIHB1YmxpYyBjYWxlbmRhcjogeyBjdXJyZW50TW9udGg6IERheU1vZGVsW10sIG5leHRNb250aDogRGF5TW9kZWxbXSB9O1xuICBwdWJsaWMgX2hvdmVyZWREYXRlOiBEYXRlID0gbnVsbDtcbiAgZ2V0IGhvdmVyZWREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9ob3ZlcmVkRGF0ZVxuICB9XG5cbiAgc2V0IGhvdmVyZWREYXRlKGUpIHtcbiAgICB0aGlzLl9ob3ZlcmVkRGF0ZSA9IGVcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBjb25zdHJ1Y3RvcihvdmVycmlkZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcihfY2RyKTtcbiAgICBkYXlqcygpLmxvY2FsZSgncnUnLCB7d2Vla1N0YXJ0OiAxfSk7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5jdXJyZW50WWVhciwgdGhpcy5jdXJyZW50TW9udGgsIHRoaXMubWluTWF4XSkucGlwZShcbiAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLmFsaXZlKSxcbiAgICAgIHNoYXJlUmVwbGF5KHtidWZmZXJTaXplOiAxLCByZWZDb3VudDogZmFsc2V9KSxcbiAgICAgIGZpbHRlcigoW2N1cnJlbnRZZWFyLCBjdXJyZW50TW9udGhdKSA9PiBjdXJyZW50TW9udGggIT09IG51bGwgJiYgY3VycmVudFllYXIgIT09IG51bGwpLFxuICAgICAgbWFwKChbeWVhciwgbW9udGgsIG1pbk1heF0pID0+IHtcbiAgICAgICAgY29uc3Qge2F2YWlsYWJsZVllYXIsIGF2YWlsYWJsZU1vbnRofSA9IHRoaXMuZ2V0QXZhaWxhYmxlTW9udGhZZWFyKG1vbnRoICsgMSwgeWVhcilcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjdXJyZW50TW9udGg6IHRoaXMuZ2VuZXJhdGVDYWxlbmRhcihkYXlqcyhuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tIHx8IG5ldyBEYXRlKCkpKS5sb2NhbGUodGhpcy5sb2NhbGUpLCB5ZWFyLCBtb250aCwgbWluTWF4KSxcbiAgICAgICAgICBuZXh0TW9udGg6IHRoaXMuZ2VuZXJhdGVDYWxlbmRhcihkYXlqcyhuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZS5mcm9tIHx8IG5ldyBEYXRlKCkpKS5sb2NhbGUodGhpcy5sb2NhbGUpLCBhdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aCwgbWluTWF4KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLmNhbGVuZGFyID0gXztcbiAgICB9KVxuICB9XG5cblxuICBnZXRGcm9tVG8oKSB7XG4gICAgbGV0IGRhdGVGcm9tO1xuICAgIGxldCBkYXRlVG87XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlPy5mcm9tKSB7XG4gICAgICBkYXRlRnJvbSA9IG5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20pXG4gICAgICBkYXRlVG8gPSBudWxsXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmFsbG93TnVsbCkge1xuICAgICAgICBkYXRlRnJvbSA9IHRoaXMuZGF0ZT8uZnJvbSA/IG5ldyBEYXRlKHRoaXMuZGF0ZS5mcm9tKSA6IG51bGxcbiAgICAgICAgZGF0ZVRvID0gdGhpcy5kYXRlPy50byA/IG5ldyBEYXRlKHRoaXMuZGF0ZS50bykgOiBudWxsXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRlRnJvbSA9IHRoaXMuZGF0ZT8uZnJvbSA/IG5ldyBEYXRlKHRoaXMuZGF0ZS5mcm9tKSA6IG5ldyBEYXRlKClcbiAgICAgICAgZGF0ZVRvID0gdGhpcy5kYXRlPy50byA/IG5ldyBEYXRlKHRoaXMuZGF0ZS50bykgOiBuZXcgRGF0ZSgpXG4gICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4ge2Zyb206IGRhdGVGcm9tLCB0bzogZGF0ZVRvfVxuICB9XG5cblxuICBvdmVycmlkZSBpc1NlbGVjdGVkKGQ6IERhdGUsIHNlbGVjdGVkRGF0ZTogRGF0ZSkge1xuICAgIGNvbnN0IHtmcm9tLCB0b30gPSB0aGlzLmdldEZyb21UbygpXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tTZWxlY3RlZChkLCBmcm9tKSB8fCB0aGlzLmNoZWNrU2VsZWN0ZWQoZCwgdG8pXG4gIH1cblxuICBjaGVja1NlbGVjdGVkKGRhdGU6IERhdGUsIHNlbGVjdGVkRGF0ZTogRGF0ZSkge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWREYXRlID0gZGF0ZS5nZXREYXRlKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0RGF0ZSgpXG4gICAgY29uc3QgaXNTZWxlY3RlZFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0RnVsbFllYXIoKVxuICAgIGNvbnN0IGlzU2VsZWN0ZWRNb250aCA9IGRhdGUuZ2V0TW9udGgoKSA9PT0gc2VsZWN0ZWREYXRlPy5nZXRNb250aCgpXG4gICAgcmV0dXJuIGlzU2VsZWN0ZWREYXRlICYmIGlzU2VsZWN0ZWRNb250aCAmJiBpc1NlbGVjdGVkWWVhclxuICB9XG5cbiAgaXNGaXJzdERheVN1aXRhYmxlKG06IG51bWJlciwgeTogbnVtYmVyLCBtYXg6IERhdGUpIHtcblxuICAgIGNvbnN0IHthdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aH0gPSB0aGlzLmdldEF2YWlsYWJsZU1vbnRoWWVhcihtLCB5KVxuICAgIHJldHVybiB0aGlzLmlzU3VpdGFibGVNYXhEYXRlKGRheWpzKG5ldyBEYXRlKGF2YWlsYWJsZVllYXIsIGF2YWlsYWJsZU1vbnRoKSkuc3RhcnRPZignbW9udGgnKS50b0RhdGUoKSwgbWF4KVxuICB9XG5cbiAgaXNMYXN0RGF5U3VpdGFibGUobTogbnVtYmVyLCB5OiBudW1iZXIsIG1pbjogRGF0ZSkge1xuICAgIGNvbnN0IHthdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aH0gPSB0aGlzLmdldEF2YWlsYWJsZU1vbnRoWWVhcihtLCB5KVxuICAgIHJldHVybiB0aGlzLmlzU3VpdGFibGVNaW5EYXRlKGRheWpzKG5ldyBEYXRlKGF2YWlsYWJsZVllYXIsIGF2YWlsYWJsZU1vbnRoKSkuZW5kT2YoJ21vbnRoJykudG9EYXRlKCksIG1pbilcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXM/LlsnaG92ZXJlZERhdGUnXSkge1xuICAgICAgdGhpcy5jaGFuZ2VDYWxlbmRhckRhdGEodGhpcy5zZWxlY3RlZERhdGUuZnJvbSB8fCB0aGlzLmRhdGUuZnJvbSlcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJ7Y3VycmVudE1vbnRoOmN1cnJlbnRNb250aHxhc3luYyxjdXJyZW50WWVhcjpjdXJyZW50WWVhcnxhc3luYyxzZWxlY3RlZFBpY2tlcjpzZWxlY3RlZFBpY2tlcnxhc3luYyxtaW5NYXg6bWluTWF4fGFzeW5jfSBhcyBkYXRhXCJcbiAgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRlbnQgb3ZlcmZsb3cteS1hdXRvXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEuc2VsZWN0ZWRQaWNrZXI9PT0nZGF5J1wiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicGFkZGluZy1oLTMgcGFkZGluZy12LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICA8dGV0YS1idXR0b25cbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGF0ZXBpY2tlci1hcnJvd19oaWRkZW4nOiFpc0xhc3REYXlTdWl0YWJsZShkYXRhLmN1cnJlbnRNb250aC0xLGRhdGEuY3VycmVudFllYXIsbWluKX1cIlxuICAgICAgICAgICAgW2NsYXNzXT1cIidjaGFuZ2UtbW9udGgtYnV0dG9uIGRhdGVwaWNrZXJfJyt2aWV3VHlwZVwiIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlTW9udGgoZGF0YS5jdXJyZW50TW9udGgtMSxkYXRhLmN1cnJlbnRZZWFyKVwiXG4gICAgICAgICAgICBwYWxldHRlPVwidGV4dFwiXG4gICAgICAgICAgICB2aWV3PVwiZ2hvc3RcIj5cbiAgICAgICAgICAgIDx0ZXRhLWljb24gbmFtZT1cImFycm93TGVmdEtleVwiPjwvdGV0YS1pY29uPlxuICAgICAgICAgIDwvdGV0YS1idXR0b24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnYXAtNCBmb250LWJ1dHRvbi0yIGFsaWduLWNlbnRlciBwYWRkaW5nLWxlZnQtMVwiPlxuICAgICAgICAgICAgPHA+IHt7Z2V0TW90aE5hbWUoZGF0YS5jdXJyZW50TW9udGgpfX08L3A+XG4gICAgICAgICAgICA8YnV0dG9uIFtjbGFzc109XCInZGF0ZXBpY2tlcl8nK3ZpZXdUeXBlXCIgdGV0YS1idXR0b24gdmlldz1cImdob3N0XCIgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGlja2VyKCd5ZWFyJylcIj57e2RhdGEuY3VycmVudFllYXJ9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx0ZXRhLWJ1dHRvbiBbc3F1YXJlXT1cInRydWVcIiBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlci1hcnJvd19oaWRkZW4gZGF0ZXBpY2tlcl8nK3ZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICB2aWV3PVwiZ2hvc3RcIj5cbiAgICAgICAgICAgIDx0ZXRhLWljb24gbmFtZT1cImFycm93UmlnaHRLZXlcIj48L3RldGEtaWNvbj5cbiAgICAgICAgICA8L3RldGEtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8dGV0YS1kYXktcGlja2VyIFsoaG92ZXJlZERhdGUpXT1cImhvdmVyZWREYXRlXCIgW3JhbmdlXT1cImdldEZyb21UbygpXCIgW3ZpZXdUeXBlXT1cInZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3REYXRlKT1cInNlbGVjdERhdGUoJGV2ZW50KVwiIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYWxlbmRhcl09XCJjYWxlbmRhci5jdXJyZW50TW9udGhcIj48L3RldGEtZGF5LXBpY2tlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwYWRkaW5nLWgtMyBwYWRkaW5nLXYtMlwiXG4gICAgICAgICAgICpuZ0lmPVwiZ2V0QXZhaWxhYmxlTW9udGhZZWFyKGRhdGEuY3VycmVudE1vbnRoKzEsZGF0YS5jdXJyZW50WWVhcikgYXMgYXZhaWxhYmxlTW9udGhZZWFyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24tY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgICAgPHRldGEtYnV0dG9uIFtzcXVhcmVdPVwidHJ1ZVwiIFtjbGFzc109XCInY2hhbmdlLW1vbnRoLWJ1dHRvbiBkYXRlcGlja2VyLWFycm93X2hpZGRlbiBkYXRlcGlja2VyXycrdmlld1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBwYWxldHRlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgIHZpZXc9XCJnaG9zdFwiPlxuICAgICAgICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dMZWZ0S2V5XCI+PC90ZXRhLWljb24+XG4gICAgICAgICAgPC90ZXRhLWJ1dHRvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGdhcC00IGZvbnQtYnV0dG9uLTIgYWxpZ24tY2VudGVyIHBhZGRpbmctbGVmdC0xXCI+XG4gICAgICAgICAgICA8cD57e2dldE1vdGhOYW1lKGF2YWlsYWJsZU1vbnRoWWVhci5hdmFpbGFibGVNb250aCl9fTwvcD5cbiAgICAgICAgICAgIDxidXR0b24gW2NsYXNzXT1cIidkYXRlcGlja2VyXycrdmlld1R5cGVcIiB0ZXRhLWJ1dHRvbiB2aWV3PVwiZ2hvc3RcIiBwYWxldHRlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQaWNrZXIoJ3llYXInKVwiPnt7YXZhaWxhYmxlTW9udGhZZWFyLmF2YWlsYWJsZVllYXJ9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx0ZXRhLWJ1dHRvbiBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2RhdGVwaWNrZXItYXJyb3dfaGlkZGVuJzogIWlzRmlyc3REYXlTdWl0YWJsZShkYXRhLmN1cnJlbnRNb250aCsyLGRhdGEuY3VycmVudFllYXIsbWF4KX1cIlxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nK3ZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZU1vbnRoKGRhdGEuY3VycmVudE1vbnRoKzEsZGF0YS5jdXJyZW50WWVhcilcIlxuICAgICAgICAgICAgICAgICAgICAgICBwYWxldHRlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgIHZpZXc9XCJnaG9zdFwiPlxuICAgICAgICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dSaWdodEtleVwiPjwvdGV0YS1pY29uPlxuICAgICAgICAgIDwvdGV0YS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDx0ZXRhLWRheS1waWNrZXIgWyhob3ZlcmVkRGF0ZSldPVwiaG92ZXJlZERhdGVcIiBbcmFuZ2VdPVwiZ2V0RnJvbVRvKClcIiBbdmlld1R5cGVdPVwidmlld1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdERhdGUpPVwic2VsZWN0RGF0ZSgkZXZlbnQpXCIgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbGVuZGFyXT1cImNhbGVuZGFyLm5leHRNb250aFwiPjwvdGV0YS1kYXktcGlja2VyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5zZWxlY3RlZFBpY2tlcj09PSdtb250aCdcIj5cbiAgICA8dGV0YS1tb250aC1waWNrZXIgW2xvY2FsZU1vdGhzXT1cImxvY2FsZU1vbnRoc1wiIFtjdXJyZW50WWVhcl09XCJkYXRhLmN1cnJlbnRZZWFyXCIgKGNoYW5nZVllYXIpPVwic2V0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkTW9udGhdPVwiZGF0YS5jdXJyZW50TW9udGhcIiBbdmlld1R5cGVdPVwidmlld1R5cGVcIiBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RNb250aCk9XCJzZWxlY3RNb250aCgkZXZlbnQpXCI+PC90ZXRhLW1vbnRoLXBpY2tlcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLnNlbGVjdGVkUGlja2VyPT09J3llYXInXCI+XG4gICAgPHRldGEteWVhci1waWNrZXIgW21pbk1heF09XCJkYXRhLm1pbk1heFwiIFtsb2NhbGVdPVwibG9jYWxlXCIgW3ZpZXdUeXBlXT1cInZpZXdUeXBlXCIgKHNlbGVjdFllYXIpPVwic2VsZWN0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRZZWFyXT1cImRhdGEuY3VycmVudFllYXJcIj48L3RldGEteWVhci1waWNrZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DayItemComponent {
|
|
4
|
+
ngOnInit() {
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
DayItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
+
DayItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: DayItemComponent, selector: "teta-day-item", inputs: { day: "day" }, ngImport: i0, template: "<p>{{day.date.getDate()}}</p>\n\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DayItemComponent, decorators: [{
|
|
10
|
+
type: Component,
|
|
11
|
+
args: [{ selector: 'teta-day-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p>{{day.date.getDate()}}</p>\n\n" }]
|
|
12
|
+
}], propDecorators: { day: [{
|
|
13
|
+
type: Input
|
|
14
|
+
}] } });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9kYXktcGlja2VyL2RheS1pdGVtL2RheS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvZGF5LXBpY2tlci9kYXktaXRlbS9kYXktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFDLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQzs7QUFVL0UsTUFBTSxPQUFPLGdCQUFnQjtJQUkzQixRQUFRO0lBQ1IsQ0FBQzs7NkdBTFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsNkVDVjdCLG1DQUVBOzJGRFFhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCxJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF5TW9kZWx9IGZyb20gJ3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9tb2RlbC9kYXktbW9kZWwnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtZGF5LWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXktaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXlJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGF5OiBEYXlNb2RlbDtcblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbn1cbiIsIjxwPnt7ZGF5LmRhdGUuZ2V0RGF0ZSgpfX08L3A+XG5cbiJdfQ==
|