@datarailsshared/datarailsshared 1.6.275 → 1.6.279
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/datarailsshared-datarailsshared-1.6.279.tgz +0 -0
- package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +2 -2
- package/esm2022/lib/dr-inputs/date-pickers/dr-fiscal-month-calendar-picker/dr-fiscal-month-calendar-picker.component.mjs +2 -2
- package/esm2022/lib/dr-tags/_consts/scenario-tags-config.mjs +87 -0
- package/esm2022/lib/dr-tags/_interfaces/scenario.mjs +8 -0
- package/esm2022/lib/dr-tags/_services/scenario.service.mjs +195 -0
- package/esm2022/lib/dr-tags/_services/tags-constructor.service.mjs +71 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/any-tag.component.mjs +42 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-date.component.mjs +151 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-day/dr-tag-day.component.mjs +98 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-forecast/dr-tag-forecast.component.mjs +225 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-forecast/forecast-tag.service.mjs +87 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-month/dr-tag-month.component.mjs +101 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-quarter/dr-tag-quarter.component.mjs +129 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-week/dr-tag-week.component.mjs +105 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-year/dr-tag-year.component.mjs +99 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-dynamic/dr-tag-dynamic.component.mjs +230 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag-list/dr-tag-list.component.mjs +85 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag.component.mjs +241 -0
- package/esm2022/lib/dr-tags/dr-tag/dr-tag.types.mjs +2 -0
- package/esm2022/lib/dr-tags/dr-tags-and-scenario/dr-tags-and-scenario.component.mjs +103 -0
- package/esm2022/lib/dr-tags/dr-tags-and-scenario-constructor/dr-tags-and-scenario-constructor.component.mjs +107 -0
- package/esm2022/lib/dr-tags/dr-tags-constructor/dr-tags-constructor.component.mjs +164 -0
- package/esm2022/local-api.mjs +18 -25
- package/fesm2022/datarailsshared-datarailsshared.mjs +8635 -8737
- package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -1
- package/lib/{dr-scenario/consts → dr-tags/_consts}/scenario-tags-config.d.ts +1 -1
- package/lib/{dr-scenario/services → dr-tags/_services}/scenario.service.d.ts +1 -1
- package/lib/{dr-tags-constructor → dr-tags/_services}/tags-constructor.service.d.ts +2 -2
- package/lib/{date-tags → dr-tags/dr-tag/dr-tag-date}/any-tag.component.d.ts +1 -1
- package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-date.component.d.ts +18 -0
- package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-day/dr-tag-day.component.d.ts +14 -0
- package/lib/{date-tags/forecast-tag/forecast-tag.component.d.ts → dr-tags/dr-tag/dr-tag-date/dr-tag-forecast/dr-tag-forecast.component.d.ts} +5 -5
- package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-month/dr-tag-month.component.d.ts +14 -0
- package/lib/{date-tags/quarter-tag/quarter-tag.component.d.ts → dr-tags/dr-tag/dr-tag-date/dr-tag-quarter/dr-tag-quarter.component.d.ts} +3 -3
- package/lib/{date-tags/week-tag/week-tag.component.d.ts → dr-tags/dr-tag/dr-tag-date/dr-tag-week/dr-tag-week.component.d.ts} +3 -3
- package/lib/dr-tags/dr-tag/dr-tag-date/dr-tag-year/dr-tag-year.component.d.ts +14 -0
- package/lib/{dr-dynamic-tag/dr-dynamic-tag.component.d.ts → dr-tags/dr-tag/dr-tag-dynamic/dr-tag-dynamic.component.d.ts} +5 -5
- package/lib/dr-tags/dr-tag/dr-tag-list/dr-tag-list.component.d.ts +15 -0
- package/lib/dr-tags/{dr-tag.component.d.ts → dr-tag/dr-tag.component.d.ts} +2 -2
- package/lib/dr-tags/dr-tags-and-scenario/dr-tags-and-scenario.component.d.ts +31 -0
- package/lib/{dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts → dr-tags/dr-tags-and-scenario-constructor/dr-tags-and-scenario-constructor.component.d.ts} +6 -6
- package/lib/{dr-tags-constructor → dr-tags/dr-tags-constructor}/dr-tags-constructor.component.d.ts +6 -6
- package/local-api.d.ts +17 -24
- package/package.json +1 -1
- package/datarailsshared-datarailsshared-1.6.275.tgz +0 -0
- package/esm2022/lib/date-tags/any-tag.component.mjs +0 -42
- package/esm2022/lib/date-tags/date-tag.component.mjs +0 -131
- package/esm2022/lib/date-tags/date-tag.module.mjs +0 -53
- package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +0 -95
- package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +0 -222
- package/esm2022/lib/date-tags/forecast-tag/forecast-tag.service.mjs +0 -87
- package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +0 -98
- package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +0 -126
- package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +0 -102
- package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +0 -96
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +0 -227
- package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +0 -21
- package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +0 -104
- package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +0 -100
- package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +0 -87
- package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +0 -27
- package/esm2022/lib/dr-scenario/interfaces/scenario.mjs +0 -8
- package/esm2022/lib/dr-scenario/services/scenario.service.mjs +0 -195
- package/esm2022/lib/dr-tags/dr-tag.component.mjs +0 -240
- package/esm2022/lib/dr-tags/dr-tag.module.mjs +0 -23
- package/esm2022/lib/dr-tags/dr-tag.types.mjs +0 -2
- package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.component.mjs +0 -161
- package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.module.mjs +0 -24
- package/esm2022/lib/dr-tags-constructor/tags-constructor.service.mjs +0 -71
- package/esm2022/lib/list-tags/list-tag.component.mjs +0 -82
- package/esm2022/lib/list-tags/list-tag.module.mjs +0 -22
- package/lib/date-tags/date-tag.component.d.ts +0 -18
- package/lib/date-tags/date-tag.module.d.ts +0 -21
- package/lib/date-tags/day-tag/day-tag.component.d.ts +0 -14
- package/lib/date-tags/month-tag/month-tag.component.d.ts +0 -14
- package/lib/date-tags/year-tag/year-tag.component.d.ts +0 -14
- package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +0 -10
- package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +0 -31
- package/lib/dr-scenario/dr-scenario.module.d.ts +0 -13
- package/lib/dr-tags/dr-tag.module.d.ts +0 -11
- package/lib/dr-tags-constructor/dr-tags-constructor.module.d.ts +0 -10
- package/lib/list-tags/list-tag.component.d.ts +0 -15
- package/lib/list-tags/list-tag.module.d.ts +0 -10
- /package/lib/{dr-scenario/interfaces → dr-tags/_interfaces}/scenario.d.ts +0 -0
- /package/lib/{date-tags/forecast-tag → dr-tags/dr-tag/dr-tag-date/dr-tag-forecast}/forecast-tag.service.d.ts +0 -0
- /package/lib/dr-tags/{dr-tag.types.d.ts → dr-tag/dr-tag.types.d.ts} +0 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import { AnyTagComponent } from '../any-tag.component';
|
|
3
|
+
import moment from 'moment';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { FormsModule } from '@angular/forms';
|
|
6
|
+
import { DrInputsModule } from '../../../../dr-inputs/dr-inputs.module';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
import * as i2 from "../../../../dr-inputs/dr-select/dr-select.component";
|
|
10
|
+
export class DrTagQuarterComponent extends AnyTagComponent {
|
|
11
|
+
get isLocked() {
|
|
12
|
+
return this.quarters ? this.quarters.some((quarter) => !this.dateFilter(moment.unix(quarter.value))) : false;
|
|
13
|
+
}
|
|
14
|
+
constructor() {
|
|
15
|
+
super();
|
|
16
|
+
this.lockedDate = [];
|
|
17
|
+
this.selectedValue = 0;
|
|
18
|
+
this.quarters = [];
|
|
19
|
+
}
|
|
20
|
+
ngOnChanges(changes) {
|
|
21
|
+
if (changes.lockedDate) {
|
|
22
|
+
this.initName();
|
|
23
|
+
this.initTags();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
ngOnInit() {
|
|
27
|
+
this.initName();
|
|
28
|
+
this.initTags();
|
|
29
|
+
}
|
|
30
|
+
initName() {
|
|
31
|
+
if (!this.name) {
|
|
32
|
+
this.name = 'Quarter';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
initTags() {
|
|
36
|
+
this.quarters = this.getQuarterOptions();
|
|
37
|
+
for (const quarter of this.quarters) {
|
|
38
|
+
if (quarter.isSelected) {
|
|
39
|
+
this.selectedValue = quarter;
|
|
40
|
+
this.chosenTagHandler(quarter);
|
|
41
|
+
}
|
|
42
|
+
this.dateFilter(quarter);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
chosenTagHandler(quarter) {
|
|
46
|
+
const resultDate = moment.unix(quarter.value);
|
|
47
|
+
const resultTag = {
|
|
48
|
+
name: this.name,
|
|
49
|
+
value: resultDate.unix(),
|
|
50
|
+
label: this.getQuarterLabel(resultDate.toString()),
|
|
51
|
+
locked: !this.dateFilter(quarter),
|
|
52
|
+
};
|
|
53
|
+
this.dateChange.emit(resultTag);
|
|
54
|
+
}
|
|
55
|
+
getQuarterOptions() {
|
|
56
|
+
const quartersBeforeToday = 8;
|
|
57
|
+
const quartersAfterToday = 8;
|
|
58
|
+
const dateNow = new Date();
|
|
59
|
+
const dateNowUnix = this.getUTCTimestamp(dateNow);
|
|
60
|
+
let defaultValue = dateNowUnix;
|
|
61
|
+
let tempDate = new Date();
|
|
62
|
+
if (this.defaultValue) {
|
|
63
|
+
defaultValue = this.defaultValue * 1000;
|
|
64
|
+
}
|
|
65
|
+
let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;
|
|
66
|
+
afterDefault = Math.min(afterDefault, 100);
|
|
67
|
+
let i;
|
|
68
|
+
let tempValue;
|
|
69
|
+
const to_return = [];
|
|
70
|
+
for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {
|
|
71
|
+
tempDate = new Date(defaultValue);
|
|
72
|
+
tempDate.setDate(15);
|
|
73
|
+
tempDate.setMonth(tempDate.getMonth() + 3 * i);
|
|
74
|
+
tempValue = this.getUTCTimestamp(tempDate);
|
|
75
|
+
to_return.push({
|
|
76
|
+
value: tempValue / 1000,
|
|
77
|
+
label: this.getQuarterLabel(tempValue),
|
|
78
|
+
isSelected: i === 0,
|
|
79
|
+
disabled: false,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return to_return;
|
|
83
|
+
}
|
|
84
|
+
getQuarterLabel(timeValue) {
|
|
85
|
+
const date = new Date(timeValue);
|
|
86
|
+
return 'Q' + Math.floor(date.getMonth() / 3 + 1) + ' ' + date.getFullYear();
|
|
87
|
+
}
|
|
88
|
+
getUTCTimestamp(date) {
|
|
89
|
+
const month = Math.floor(date.getMonth() / 3) * 3;
|
|
90
|
+
return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);
|
|
91
|
+
}
|
|
92
|
+
dateFilter(quarter) {
|
|
93
|
+
const quarterDate = moment.unix(quarter.value);
|
|
94
|
+
return !this.lockedDate.some((timestamp) => {
|
|
95
|
+
const lockDate = moment.unix(timestamp);
|
|
96
|
+
if (lockDate.year() === quarterDate.year() && lockDate.quarter() === quarterDate.quarter()) {
|
|
97
|
+
quarter.disabled = true;
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
return false;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/** @nocollapse */ static { this.ɵfac = function DrTagQuarterComponent_Factory(t) { return new (t || DrTagQuarterComponent)(); }; }
|
|
104
|
+
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrTagQuarterComponent, selectors: [["dr-tag-quarter"]], hostVars: 2, hostBindings: function DrTagQuarterComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
105
|
+
i0.ɵɵclassProp("locked", ctx.isLocked);
|
|
106
|
+
} }, inputs: { lockedDate: "lockedDate" }, standalone: true, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 4, vars: 4, consts: [[1, "tag-wrapper", "dr-tag-quarter"], [1, "tag__label"], ["placeholder", "Select", "bindLabel", "label", "dropdownClass", "quarter-tag__select dr-tag__select", 1, "quarter-tag__list", 3, "ngModel", "disabled", "items", "ngModelChange"]], template: function DrTagQuarterComponent_Template(rf, ctx) { if (rf & 1) {
|
|
107
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
|
|
108
|
+
i0.ɵɵtext(2);
|
|
109
|
+
i0.ɵɵelementEnd();
|
|
110
|
+
i0.ɵɵelementStart(3, "dr-select", 2);
|
|
111
|
+
i0.ɵɵlistener("ngModelChange", function DrTagQuarterComponent_Template_dr_select_ngModelChange_3_listener($event) { return ctx.selectedValue = $event; })("ngModelChange", function DrTagQuarterComponent_Template_dr_select_ngModelChange_3_listener($event) { return ctx.chosenTagHandler($event); });
|
|
112
|
+
i0.ɵɵelementEnd()();
|
|
113
|
+
} if (rf & 2) {
|
|
114
|
+
i0.ɵɵadvance(2);
|
|
115
|
+
i0.ɵɵtextInterpolate(ctx.name);
|
|
116
|
+
i0.ɵɵadvance(1);
|
|
117
|
+
i0.ɵɵproperty("ngModel", ctx.selectedValue)("disabled", ctx.disabled)("items", ctx.quarters);
|
|
118
|
+
} }, dependencies: [CommonModule, FormsModule, i1.NgControlStatus, i1.NgModel, DrInputsModule, i2.DrSelectComponent], styles: [".locked[_nghost-%COMP%] > .tag-wrapper[_ngcontent-%COMP%] > dr-select.quarter-tag__list[_ngcontent-%COMP%]{opacity:.4}.tag__label[_ngcontent-%COMP%]{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}"] }); }
|
|
119
|
+
}
|
|
120
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrTagQuarterComponent, [{
|
|
121
|
+
type: Component,
|
|
122
|
+
args: [{ selector: 'dr-tag-quarter', standalone: true, imports: [CommonModule, FormsModule, DrInputsModule], template: "<div class=\"tag-wrapper dr-tag-quarter\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select\n class=\"quarter-tag__list\"\n placeholder=\"Select\"\n bindLabel=\"label\"\n [(ngModel)]=\"selectedValue\"\n [disabled]=\"disabled\"\n [items]=\"quarters\"\n dropdownClass=\"quarter-tag__select dr-tag__select\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-select>\n</div>\n", styles: [":host.locked>.tag-wrapper>dr-select.quarter-tag__list{opacity:.4}.tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}\n"] }]
|
|
123
|
+
}], function () { return []; }, { isLocked: [{
|
|
124
|
+
type: HostBinding,
|
|
125
|
+
args: ['class.locked']
|
|
126
|
+
}], lockedDate: [{
|
|
127
|
+
type: Input
|
|
128
|
+
}] }); })();
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFnLXF1YXJ0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFncy9kci10YWcvZHItdGFnLWRhdGUvZHItdGFnLXF1YXJ0ZXIvZHItdGFnLXF1YXJ0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFncy9kci10YWcvZHItdGFnLWRhdGUvZHItdGFnLXF1YXJ0ZXIvZHItdGFnLXF1YXJ0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBU3hFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFlO0lBQ3RELElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqSCxDQUFDO0lBTUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUxILGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDbEIsYUFBUSxHQUFVLEVBQUUsQ0FBQztJQUlyQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUNwQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztTQUN6QjtJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xDO1lBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFPO1FBQ3BCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFhO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsRCxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztTQUNwQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDM0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxJQUFJLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxRQUFRLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzNDO1FBRUQsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxrQkFBa0IsQ0FBQztRQUN0RyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLENBQUM7UUFDTixJQUFJLFNBQVMsQ0FBQztRQUNkLE1BQU0sU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUM1QixLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0RCxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQixRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0MsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDWCxLQUFLLEVBQUUsU0FBUyxHQUFHLElBQUk7Z0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQztnQkFDdEMsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDO2dCQUNuQixRQUFRLEVBQUUsS0FBSzthQUNsQixDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxlQUFlLENBQUMsU0FBUztRQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoRixDQUFDO0lBRU8sZUFBZSxDQUFDLElBQUk7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQU87UUFDZCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN2QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN4RixPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUM7YUFDZjtZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt5R0E1R1EscUJBQXFCO21HQUFyQixxQkFBcUI7OztZQ2ZsQyw4QkFBd0MsV0FBQTtZQUNkLFlBQVU7WUFBQSxpQkFBSTtZQUNwQyxvQ0FRK0M7WUFKM0MseUpBQTJCLDhHQUlWLDRCQUF3QixJQUpkO1lBSWdCLGlCQUFZLEVBQUE7O1lBVHJDLGVBQVU7WUFBViw4QkFBVTtZQUs1QixlQUEyQjtZQUEzQiwyQ0FBMkIsMEJBQUEsdUJBQUE7NEJET3JCLFlBQVksRUFBRSxXQUFXLGtDQUFFLGNBQWM7O3VGQUUxQyxxQkFBcUI7Y0FQakMsU0FBUzsyQkFHSSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQztzQ0FJaEQsUUFBUTtrQkFEWCxXQUFXO21CQUFDLGNBQWM7WUFLbEIsVUFBVTtrQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURhdGVUYWcgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyBBbnlUYWdDb21wb25lbnQgfSBmcm9tICcuLi9hbnktdGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEcklucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RyLWlucHV0cy9kci1pbnB1dHMubW9kdWxlJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICdkci10YWctcXVhcnRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItdGFnLXF1YXJ0ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzZWxlY3RvcjogJ2RyLXRhZy1xdWFydGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBEcklucHV0c01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIERyVGFnUXVhcnRlckNvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxvY2tlZCcpXG4gICAgZ2V0IGlzTG9ja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWFydGVycyA/IHRoaXMucXVhcnRlcnMuc29tZSgocXVhcnRlcikgPT4gIXRoaXMuZGF0ZUZpbHRlcihtb21lbnQudW5peChxdWFydGVyLnZhbHVlKSkpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZFZhbHVlID0gMDtcbiAgICBxdWFydGVyczogYW55W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMubG9ja2VkRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5pbml0TmFtZSgpO1xuICAgICAgICAgICAgdGhpcy5pbml0VGFncygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdE5hbWUoKTtcbiAgICAgICAgdGhpcy5pbml0VGFncygpO1xuICAgIH1cblxuICAgIGluaXROYW1lKCkge1xuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gJ1F1YXJ0ZXInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdFRhZ3MoKSB7XG4gICAgICAgIHRoaXMucXVhcnRlcnMgPSB0aGlzLmdldFF1YXJ0ZXJPcHRpb25zKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBxdWFydGVyIG9mIHRoaXMucXVhcnRlcnMpIHtcbiAgICAgICAgICAgIGlmIChxdWFydGVyLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBxdWFydGVyO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcihxdWFydGVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5kYXRlRmlsdGVyKHF1YXJ0ZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hvc2VuVGFnSGFuZGxlcihxdWFydGVyKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdERhdGUgPSBtb21lbnQudW5peChxdWFydGVyLnZhbHVlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiByZXN1bHREYXRlLnVuaXgoKSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFF1YXJ0ZXJMYWJlbChyZXN1bHREYXRlLnRvU3RyaW5nKCkpLFxuICAgICAgICAgICAgbG9ja2VkOiAhdGhpcy5kYXRlRmlsdGVyKHF1YXJ0ZXIpLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyZXN1bHRUYWcpO1xuICAgIH1cblxuICAgIGdldFF1YXJ0ZXJPcHRpb25zKCkge1xuICAgICAgICBjb25zdCBxdWFydGVyc0JlZm9yZVRvZGF5ID0gODtcbiAgICAgICAgY29uc3QgcXVhcnRlcnNBZnRlclRvZGF5ID0gODtcbiAgICAgICAgY29uc3QgZGF0ZU5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGRhdGVOb3dVbml4ID0gdGhpcy5nZXRVVENUaW1lc3RhbXAoZGF0ZU5vdyk7XG4gICAgICAgIGxldCBkZWZhdWx0VmFsdWUgPSBkYXRlTm93VW5peDtcbiAgICAgICAgbGV0IHRlbXBEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZSAqIDEwMDA7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYWZ0ZXJEZWZhdWx0ID0gTWF0aC5yb3VuZChNYXRoLmFicyhkYXRlTm93VW5peCAtIGRlZmF1bHRWYWx1ZSkgLyA3Nzc2MDAwMDAwKSArIHF1YXJ0ZXJzQWZ0ZXJUb2RheTtcbiAgICAgICAgYWZ0ZXJEZWZhdWx0ID0gTWF0aC5taW4oYWZ0ZXJEZWZhdWx0LCAxMDApO1xuICAgICAgICBsZXQgaTtcbiAgICAgICAgbGV0IHRlbXBWYWx1ZTtcbiAgICAgICAgY29uc3QgdG9fcmV0dXJuOiBhbnlbXSA9IFtdO1xuICAgICAgICBmb3IgKGkgPSAwIC0gcXVhcnRlcnNCZWZvcmVUb2RheTsgaSA8PSBhZnRlckRlZmF1bHQ7IGkrKykge1xuICAgICAgICAgICAgdGVtcERhdGUgPSBuZXcgRGF0ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgdGVtcERhdGUuc2V0RGF0ZSgxNSk7XG4gICAgICAgICAgICB0ZW1wRGF0ZS5zZXRNb250aCh0ZW1wRGF0ZS5nZXRNb250aCgpICsgMyAqIGkpO1xuICAgICAgICAgICAgdGVtcFZhbHVlID0gdGhpcy5nZXRVVENUaW1lc3RhbXAodGVtcERhdGUpO1xuICAgICAgICAgICAgdG9fcmV0dXJuLnB1c2goe1xuICAgICAgICAgICAgICAgIHZhbHVlOiB0ZW1wVmFsdWUgLyAxMDAwLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFF1YXJ0ZXJMYWJlbCh0ZW1wVmFsdWUpLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IGkgPT09IDAsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRvX3JldHVybjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFF1YXJ0ZXJMYWJlbCh0aW1lVmFsdWUpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVWYWx1ZSk7XG4gICAgICAgIHJldHVybiAnUScgKyBNYXRoLmZsb29yKGRhdGUuZ2V0TW9udGgoKSAvIDMgKyAxKSArICcgJyArIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVUQ1RpbWVzdGFtcChkYXRlKSB7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gTWF0aC5mbG9vcihkYXRlLmdldE1vbnRoKCkgLyAzKSAqIDM7XG4gICAgICAgIHJldHVybiBEYXRlLlVUQyhkYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoLCAxLCAxMiwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgZGF0ZUZpbHRlcihxdWFydGVyKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHF1YXJ0ZXJEYXRlID0gbW9tZW50LnVuaXgocXVhcnRlci52YWx1ZSk7XG4gICAgICAgIHJldHVybiAhdGhpcy5sb2NrZWREYXRlLnNvbWUoKHRpbWVzdGFtcCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9ja0RhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuICAgICAgICAgICAgaWYgKGxvY2tEYXRlLnllYXIoKSA9PT0gcXVhcnRlckRhdGUueWVhcigpICYmIGxvY2tEYXRlLnF1YXJ0ZXIoKSA9PT0gcXVhcnRlckRhdGUucXVhcnRlcigpKSB7XG4gICAgICAgICAgICAgICAgcXVhcnRlci5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhZy13cmFwcGVyIGRyLXRhZy1xdWFydGVyXCI+XG4gICAgPHAgY2xhc3M9XCJ0YWdfX2xhYmVsXCI+e3sgbmFtZSB9fTwvcD5cbiAgICA8ZHItc2VsZWN0XG4gICAgICAgIGNsYXNzPVwicXVhcnRlci10YWdfX2xpc3RcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2l0ZW1zXT1cInF1YXJ0ZXJzXCJcbiAgICAgICAgZHJvcGRvd25DbGFzcz1cInF1YXJ0ZXItdGFnX19zZWxlY3QgZHItdGFnX19zZWxlY3RcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaG9zZW5UYWdIYW5kbGVyKCRldmVudClcIj48L2RyLXNlbGVjdD5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import { AnyTagComponent } from '../any-tag.component';
|
|
3
|
+
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
4
|
+
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
5
|
+
import moment from 'moment';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import { FormsModule } from '@angular/forms';
|
|
8
|
+
import { DrInputsModule } from '../../../../dr-inputs/dr-inputs.module';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/forms";
|
|
11
|
+
import * as i2 from "../../../../dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component";
|
|
12
|
+
const WEEK_FORMATS = {
|
|
13
|
+
parse: {
|
|
14
|
+
dateInput: 'WW-YYYY',
|
|
15
|
+
},
|
|
16
|
+
display: {
|
|
17
|
+
dateInput: '[Week] WW, YYYY',
|
|
18
|
+
monthYearLabel: 'MMMM YYYY',
|
|
19
|
+
dateA11yLabel: 'LL',
|
|
20
|
+
monthYearA11yLabel: 'MMMM YYYY',
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
export class DrTagWeekComponent extends AnyTagComponent {
|
|
24
|
+
get isLocked() {
|
|
25
|
+
return this.date ? !this.dateFilter(moment.unix(this.date)) : false;
|
|
26
|
+
}
|
|
27
|
+
constructor() {
|
|
28
|
+
super();
|
|
29
|
+
this.lockedDate = [];
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
this.initName();
|
|
33
|
+
const timestamp = this.defaultValue || moment().unix();
|
|
34
|
+
this.date = timestamp;
|
|
35
|
+
this.dateObj.date = timestamp;
|
|
36
|
+
this.chosenTagHandler(timestamp);
|
|
37
|
+
}
|
|
38
|
+
initName() {
|
|
39
|
+
if (!this.name) {
|
|
40
|
+
this.name = 'Week';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
dateFilter(date) {
|
|
44
|
+
const week = date.week();
|
|
45
|
+
const year = date.year();
|
|
46
|
+
return !this.lockedDate.some((timestamp) => {
|
|
47
|
+
const lockDate = moment.unix(timestamp);
|
|
48
|
+
return lockDate.week() === week && lockDate.year() === year;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
chosenTagHandler(value) {
|
|
52
|
+
const resultDate = moment.unix(value).utc().weekday(1);
|
|
53
|
+
const resultTag = {
|
|
54
|
+
name: this.name,
|
|
55
|
+
value: resultDate.unix(),
|
|
56
|
+
label: this.getWeekLabel(resultDate),
|
|
57
|
+
locked: !this.dateFilter(resultDate),
|
|
58
|
+
};
|
|
59
|
+
console.log('resultTag', resultTag);
|
|
60
|
+
this.dateChange.emit(resultTag);
|
|
61
|
+
}
|
|
62
|
+
getWeekLabel(moment) {
|
|
63
|
+
return `W${moment.week()} ${moment.year()}`;
|
|
64
|
+
}
|
|
65
|
+
/** @nocollapse */ static { this.ɵfac = function DrTagWeekComponent_Factory(t) { return new (t || DrTagWeekComponent)(); }; }
|
|
66
|
+
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrTagWeekComponent, selectors: [["dr-tag-week"]], hostVars: 2, hostBindings: function DrTagWeekComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
67
|
+
i0.ɵɵclassProp("locked", ctx.isLocked);
|
|
68
|
+
} }, inputs: { lockedDate: "lockedDate" }, standalone: true, features: [i0.ɵɵProvidersFeature([
|
|
69
|
+
{
|
|
70
|
+
provide: DateAdapter,
|
|
71
|
+
useClass: MomentDateAdapter,
|
|
72
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
73
|
+
},
|
|
74
|
+
{ provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },
|
|
75
|
+
]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 4, vars: 4, consts: [[1, "tag-wrapper"], [1, "tag__label"], ["format", "week", 3, "ngModel", "disabled", "datepickerFilter", "ngModelChange"]], template: function DrTagWeekComponent_Template(rf, ctx) { if (rf & 1) {
|
|
76
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
|
|
77
|
+
i0.ɵɵtext(2);
|
|
78
|
+
i0.ɵɵelementEnd();
|
|
79
|
+
i0.ɵɵelementStart(3, "dr-date-picker", 2);
|
|
80
|
+
i0.ɵɵlistener("ngModelChange", function DrTagWeekComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.date = $event; })("ngModelChange", function DrTagWeekComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.chosenTagHandler($event); });
|
|
81
|
+
i0.ɵɵelementEnd()();
|
|
82
|
+
} if (rf & 2) {
|
|
83
|
+
i0.ɵɵadvance(2);
|
|
84
|
+
i0.ɵɵtextInterpolate(ctx.name);
|
|
85
|
+
i0.ɵɵadvance(1);
|
|
86
|
+
i0.ɵɵproperty("ngModel", ctx.date)("disabled", ctx.disabled)("datepickerFilter", ctx.dateFilter.bind(ctx));
|
|
87
|
+
} }, dependencies: [CommonModule, FormsModule, i1.NgControlStatus, i1.NgModel, DrInputsModule, i2.DrDatePickerComponent], styles: [".locked[_nghost-%COMP%] > .tag-wrapper[_ngcontent-%COMP%] > dr-date-picker[_ngcontent-%COMP%]{opacity:.4}.tag__label[_ngcontent-%COMP%]{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}"] }); }
|
|
88
|
+
}
|
|
89
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrTagWeekComponent, [{
|
|
90
|
+
type: Component,
|
|
91
|
+
args: [{ selector: 'dr-tag-week', standalone: true, imports: [CommonModule, FormsModule, DrInputsModule], providers: [
|
|
92
|
+
{
|
|
93
|
+
provide: DateAdapter,
|
|
94
|
+
useClass: MomentDateAdapter,
|
|
95
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
96
|
+
},
|
|
97
|
+
{ provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },
|
|
98
|
+
], template: "<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"week\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n", styles: [":host.locked>.tag-wrapper>dr-date-picker{opacity:.4}.tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}\n"] }]
|
|
99
|
+
}], function () { return []; }, { isLocked: [{
|
|
100
|
+
type: HostBinding,
|
|
101
|
+
args: ['class.locked']
|
|
102
|
+
}], lockedDate: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}] }); })();
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFnLXdlZWsuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFncy9kci10YWcvZHItdGFnLWRhdGUvZHItdGFnLXdlZWsvZHItdGFnLXdlZWsuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFncy9kci10YWcvZHItdGFnLWRhdGUvZHItdGFnLXdlZWsvZHItdGFnLXdlZWsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RHLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQUV4RSxNQUFNLFlBQVksR0FBRztJQUNqQixLQUFLLEVBQUU7UUFDSCxTQUFTLEVBQUUsU0FBUztLQUN2QjtJQUNELE9BQU8sRUFBRTtRQUNMLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsY0FBYyxFQUFFLFdBQVc7UUFDM0IsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztL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Viw4QkFBVTtZQUc1QixlQUFrQjtZQUFsQixrQ0FBa0IsMEJBQUEsOENBQUE7NEJEdUJaLFlBQVksRUFBRSxXQUFXLGtDQUFFLGNBQWM7O3VGQVUxQyxrQkFBa0I7Y0FmOUIsU0FBUzsyQkFFSSxhQUFhLGNBRVgsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsYUFDekM7b0JBQ1A7d0JBQ0ksT0FBTyxFQUFFLFdBQVc7d0JBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7d0JBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSwrQkFBK0IsQ0FBQztxQkFDM0Q7b0JBQ0QsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRTtpQkFDeEQ7c0NBSUcsUUFBUTtrQkFEWCxXQUFXO21CQUFDLGNBQWM7WUFLbEIsVUFBVTtrQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEYXRlVGFnIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgQW55VGFnQ29tcG9uZW50IH0gZnJvbSAnLi4vYW55LXRhZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgTW9tZW50RGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEcklucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RyLWlucHV0cy9kci1pbnB1dHMubW9kdWxlJztcblxuY29uc3QgV0VFS19GT1JNQVRTID0ge1xuICAgIHBhcnNlOiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ1dXLVlZWVknLFxuICAgIH0sXG4gICAgZGlzcGxheToge1xuICAgICAgICBkYXRlSW5wdXQ6ICdbV2Vla10gV1csIFlZWVknLFxuICAgICAgICBtb250aFllYXJMYWJlbDogJ01NTU0gWVlZWScsXG4gICAgICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXG4gICAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnZHItdGFnLXdlZWsuY29tcG9uZW50Lmh0bWwnLFxuICAgIHNlbGVjdG9yOiAnZHItdGFnLXdlZWsnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLXRhZy13ZWVrLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgRHJJbnB1dHNNb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgICAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBXRUVLX0ZPUk1BVFMgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEclRhZ1dlZWtDb21wb25lbnQgZXh0ZW5kcyBBbnlUYWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MubG9ja2VkJylcbiAgICBnZXQgaXNMb2NrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGUgPyAhdGhpcy5kYXRlRmlsdGVyKG1vbWVudC51bml4KHRoaXMuZGF0ZSkpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcblxuICAgIGRhdGU7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0TmFtZSgpO1xuICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSB0aGlzLmRlZmF1bHRWYWx1ZSB8fCBtb21lbnQoKS51bml4KCk7XG4gICAgICAgIHRoaXMuZGF0ZSA9IHRpbWVzdGFtcDtcbiAgICAgICAgdGhpcy5kYXRlT2JqLmRhdGUgPSB0aW1lc3RhbXA7XG4gICAgICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcih0aW1lc3RhbXApO1xuICAgIH1cblxuICAgIGluaXROYW1lKCkge1xuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gJ1dlZWsnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGF0ZUZpbHRlcihkYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHdlZWsgPSBkYXRlLndlZWsoKTtcbiAgICAgICAgY29uc3QgeWVhciA9IGRhdGUueWVhcigpO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5sb2NrZWREYXRlLnNvbWUoKHRpbWVzdGFtcCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9ja0RhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuICAgICAgICAgICAgcmV0dXJuIGxvY2tEYXRlLndlZWsoKSA9PT0gd2VlayAmJiBsb2NrRGF0ZS55ZWFyKCkgPT09IHllYXI7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNob3NlblRhZ0hhbmRsZXIodmFsdWU6IG51bWJlcikge1xuICAgICAgICBjb25zdCByZXN1bHREYXRlID0gbW9tZW50LnVuaXgodmFsdWUpLnV0YygpLndlZWtkYXkoMSk7XG4gICAgICAgIGNvbnN0IHJlc3VsdFRhZzogSURhdGVUYWcgPSB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogcmVzdWx0RGF0ZS51bml4KCksXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRXZWVrTGFiZWwocmVzdWx0RGF0ZSksXG4gICAgICAgICAgICBsb2NrZWQ6ICF0aGlzLmRhdGVGaWx0ZXIocmVzdWx0RGF0ZSksXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKCdyZXN1bHRUYWcnLCByZXN1bHRUYWcpO1xuICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyZXN1bHRUYWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0V2Vla0xhYmVsKG1vbWVudCkge1xuICAgICAgICByZXR1cm4gYFcke21vbWVudC53ZWVrKCl9ICR7bW9tZW50LnllYXIoKX1gO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0YWctd3JhcHBlclwiPlxuICAgIDxwIGNsYXNzPVwidGFnX19sYWJlbFwiPnt7IG5hbWUgfX08L3A+XG4gICAgPGRyLWRhdGUtcGlja2VyXG4gICAgICAgIGZvcm1hdD1cIndlZWtcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbZGF0ZXBpY2tlckZpbHRlcl09XCJkYXRlRmlsdGVyLmJpbmQodGhpcylcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaG9zZW5UYWdIYW5kbGVyKCRldmVudClcIj48L2RyLWRhdGUtcGlja2VyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import { AnyTagComponent } from '../any-tag.component';
|
|
3
|
+
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
|
|
4
|
+
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
|
|
5
|
+
import moment from 'moment';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
import { FormsModule } from '@angular/forms';
|
|
8
|
+
import { DrInputsModule } from '../../../../dr-inputs/dr-inputs.module';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/forms";
|
|
11
|
+
import * as i2 from "../../../../dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component";
|
|
12
|
+
const YEAR_FORMATS = {
|
|
13
|
+
parse: {
|
|
14
|
+
dateInput: 'YYYY',
|
|
15
|
+
},
|
|
16
|
+
display: {
|
|
17
|
+
dateInput: 'YYYY',
|
|
18
|
+
monthYearLabel: 'MMMM YYYY',
|
|
19
|
+
dateA11yLabel: 'LL',
|
|
20
|
+
monthYearA11yLabel: 'MMMM YYYY',
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
export class DrTagYearComponent extends AnyTagComponent {
|
|
24
|
+
get isLocked() {
|
|
25
|
+
return this.date ? !this.dateFilter(moment.unix(this.date)) : false;
|
|
26
|
+
}
|
|
27
|
+
constructor() {
|
|
28
|
+
super();
|
|
29
|
+
this.lockedDate = [];
|
|
30
|
+
}
|
|
31
|
+
initDate() {
|
|
32
|
+
this.date = this.defaultValue || moment().unix();
|
|
33
|
+
this.dateObj.date = this.date;
|
|
34
|
+
}
|
|
35
|
+
initName() {
|
|
36
|
+
if (!this.name) {
|
|
37
|
+
this.name = 'Year';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
chosenTagHandler(value) {
|
|
41
|
+
const resultDate = moment.unix(value);
|
|
42
|
+
resultDate.hour(12);
|
|
43
|
+
const resultTag = {
|
|
44
|
+
name: this.name,
|
|
45
|
+
value: resultDate.unix(),
|
|
46
|
+
label: resultDate.format('YYYY'),
|
|
47
|
+
locked: !this.dateFilter(resultDate),
|
|
48
|
+
};
|
|
49
|
+
console.log('resultTag', resultTag);
|
|
50
|
+
this.dateChange.emit(resultTag);
|
|
51
|
+
}
|
|
52
|
+
dateFilter(date) {
|
|
53
|
+
const calendarDateYear = date.year();
|
|
54
|
+
return !this.lockedDate.some((timestamp) => {
|
|
55
|
+
const lockDate = moment.unix(timestamp);
|
|
56
|
+
return lockDate.year() === calendarDateYear;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/** @nocollapse */ static { this.ɵfac = function DrTagYearComponent_Factory(t) { return new (t || DrTagYearComponent)(); }; }
|
|
60
|
+
/** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrTagYearComponent, selectors: [["dr-tag-year"]], hostVars: 2, hostBindings: function DrTagYearComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
61
|
+
i0.ɵɵclassProp("locked", ctx.isLocked);
|
|
62
|
+
} }, inputs: { lockedDate: "lockedDate" }, standalone: true, features: [i0.ɵɵProvidersFeature([
|
|
63
|
+
{
|
|
64
|
+
provide: DateAdapter,
|
|
65
|
+
useClass: MomentDateAdapter,
|
|
66
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
67
|
+
},
|
|
68
|
+
{ provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },
|
|
69
|
+
]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 4, vars: 4, consts: [[1, "tag-wrapper"], [1, "tag__label"], ["format", "year", 3, "ngModel", "disabled", "datepickerFilter", "ngModelChange"]], template: function DrTagYearComponent_Template(rf, ctx) { if (rf & 1) {
|
|
70
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
|
|
71
|
+
i0.ɵɵtext(2);
|
|
72
|
+
i0.ɵɵelementEnd();
|
|
73
|
+
i0.ɵɵelementStart(3, "dr-date-picker", 2);
|
|
74
|
+
i0.ɵɵlistener("ngModelChange", function DrTagYearComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.date = $event; })("ngModelChange", function DrTagYearComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.chosenTagHandler($event); });
|
|
75
|
+
i0.ɵɵelementEnd()();
|
|
76
|
+
} if (rf & 2) {
|
|
77
|
+
i0.ɵɵadvance(2);
|
|
78
|
+
i0.ɵɵtextInterpolate(ctx.name);
|
|
79
|
+
i0.ɵɵadvance(1);
|
|
80
|
+
i0.ɵɵproperty("ngModel", ctx.date)("disabled", ctx.disabled)("datepickerFilter", ctx.dateFilter.bind(ctx));
|
|
81
|
+
} }, dependencies: [CommonModule, FormsModule, i1.NgControlStatus, i1.NgModel, DrInputsModule, i2.DrDatePickerComponent], styles: [".locked[_nghost-%COMP%] > .tag-wrapper[_ngcontent-%COMP%] > dr-date-picker[_ngcontent-%COMP%]{opacity:.4}.tag__label[_ngcontent-%COMP%]{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}"] }); }
|
|
82
|
+
}
|
|
83
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrTagYearComponent, [{
|
|
84
|
+
type: Component,
|
|
85
|
+
args: [{ selector: 'dr-tag-year', standalone: true, imports: [CommonModule, FormsModule, DrInputsModule], providers: [
|
|
86
|
+
{
|
|
87
|
+
provide: DateAdapter,
|
|
88
|
+
useClass: MomentDateAdapter,
|
|
89
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
90
|
+
},
|
|
91
|
+
{ provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },
|
|
92
|
+
], template: "<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n", styles: [":host.locked>.tag-wrapper>dr-date-picker{opacity:.4}.tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}\n"] }]
|
|
93
|
+
}], function () { return []; }, { isLocked: [{
|
|
94
|
+
type: HostBinding,
|
|
95
|
+
args: ['class.locked']
|
|
96
|
+
}], lockedDate: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}] }); })();
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFnLXllYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFncy9kci10YWcvZHItdGFnLWRhdGUvZHItdGFnLXllYXIvZHItdGFnLXllYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFncy9kci10YWcvZHItdGFnLWRhdGUvZHItdGFnLXllYXIvZHItdGFnLXllYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RHLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQUV4RSxNQUFNLFlBQVksR0FBRztJQUNqQixLQUFLLEVBQUU7UUFDSCxTQUFTLEVBQUUsTUFBTTtLQUNwQjtJQUNELE9BQU8sRUFBRTtRQUNMLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLGNBQWMsRUFBRSxXQUFXO1FBQzNCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FD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QUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7aUJBQ3hEO3NDQUlHLFFBQVE7a0JBRFgsV0FBVzttQkFBQyxjQUFjO1lBS2xCLFVBQVU7a0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSURhdGVUYWcgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyBBbnlUYWdDb21wb25lbnQgfSBmcm9tICcuLi9hbnktdGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLCBNb21lbnREYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERySW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZHItaW5wdXRzL2RyLWlucHV0cy5tb2R1bGUnO1xuXG5jb25zdCBZRUFSX0ZPUk1BVFMgPSB7XG4gICAgcGFyc2U6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnWVlZWScsXG4gICAgfSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ1lZWVknLFxuICAgICAgICBtb250aFllYXJMYWJlbDogJ01NTU0gWVlZWScsXG4gICAgICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXG4gICAgICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXG4gICAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHN0eWxlVXJsczogWycuL2RyLXRhZy15ZWFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgdGVtcGxhdGVVcmw6ICdkci10YWcteWVhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICdkci10YWcteWVhcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgRHJJbnB1dHNNb2R1bGVdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgICAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBZRUFSX0ZPUk1BVFMgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEclRhZ1llYXJDb21wb25lbnQgZXh0ZW5kcyBBbnlUYWdDb21wb25lbnQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MubG9ja2VkJylcbiAgICBnZXQgaXNMb2NrZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGUgPyAhdGhpcy5kYXRlRmlsdGVyKG1vbWVudC51bml4KHRoaXMuZGF0ZSkpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcblxuICAgIGRhdGU7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBpbml0RGF0ZSgpIHtcbiAgICAgICAgdGhpcy5kYXRlID0gdGhpcy5kZWZhdWx0VmFsdWUgfHwgbW9tZW50KCkudW5peCgpO1xuICAgICAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IHRoaXMuZGF0ZTtcbiAgICB9XG5cbiAgICBpbml0TmFtZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMubmFtZSA9ICdZZWFyJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNob3NlblRhZ0hhbmRsZXIodmFsdWU6IG51bWJlcikge1xuICAgICAgICBjb25zdCByZXN1bHREYXRlID0gbW9tZW50LnVuaXgodmFsdWUpO1xuICAgICAgICByZXN1bHREYXRlLmhvdXIoMTIpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdFRhZzogSURhdGVUYWcgPSB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogcmVzdWx0RGF0ZS51bml4KCksXG4gICAgICAgICAgICBsYWJlbDogcmVzdWx0RGF0ZS5mb3JtYXQoJ1lZWVknKSxcbiAgICAgICAgICAgIGxvY2tlZDogIXRoaXMuZGF0ZUZpbHRlcihyZXN1bHREYXRlKSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc29sZS5sb2coJ3Jlc3VsdFRhZycsIHJlc3VsdFRhZyk7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHJlc3VsdFRhZyk7XG4gICAgfVxuXG4gICAgZGF0ZUZpbHRlcihkYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyRGF0ZVllYXIgPSBkYXRlLnllYXIoKTtcblxuICAgICAgICByZXR1cm4gIXRoaXMubG9ja2VkRGF0ZS5zb21lKCh0aW1lc3RhbXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2tEYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcbiAgICAgICAgICAgIHJldHVybiBsb2NrRGF0ZS55ZWFyKCkgPT09IGNhbGVuZGFyRGF0ZVllYXI7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0YWctd3JhcHBlclwiPlxuICAgIDxwIGNsYXNzPVwidGFnX19sYWJlbFwiPnt7IG5hbWUgfX08L3A+XG4gICAgPGRyLWRhdGUtcGlja2VyXG4gICAgICAgIGZvcm1hdD1cInllYXJcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbZGF0ZXBpY2tlckZpbHRlcl09XCJkYXRlRmlsdGVyLmJpbmQodGhpcylcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaG9zZW5UYWdIYW5kbGVyKCRldmVudClcIj48L2RyLWRhdGUtcGlja2VyPlxuPC9kaXY+XG4iXX0=
|