@datarailsshared/datarailsshared 1.2.3 → 1.3.2
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/bundles/datarailsshared-datarailsshared.umd.js +1591 -0
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -0
- package/datarailsshared-datarailsshared-1.3.2.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +5 -0
- package/datarailsshared-datarailsshared.metadata.json +1 -0
- package/esm2015/datarailsshared-datarailsshared.js +6 -0
- package/esm2015/lib/date-tags/date-tag.component.js +70 -0
- package/esm2015/lib/date-tags/date-tag.module.js +50 -0
- package/esm2015/lib/date-tags/day-tag/day-tag.component.js +79 -0
- package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +143 -0
- package/esm2015/lib/date-tags/month-tag/month-tag.component.js +86 -0
- package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +101 -0
- package/esm2015/lib/date-tags/week-tag/week-tag.component.js +124 -0
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +92 -0
- package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +46 -0
- package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +147 -0
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +24 -0
- package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +51 -0
- package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +50 -0
- package/esm2015/lib/dr-tags/dr-tag.component.js +54 -0
- package/esm2015/lib/dr-tags/dr-tag.module.js +22 -0
- package/esm2015/lib/list-tags/list-tag.component.js +41 -0
- package/esm2015/lib/list-tags/list-tag.module.js +29 -0
- package/esm2015/lib/models/serverTags.js +2 -0
- package/esm2015/public-api.js +21 -0
- package/fesm2015/datarailsshared-datarailsshared.js +1152 -0
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -0
- package/{DateTags/dateTag.component.d.ts → lib/date-tags/date-tag.component.d.ts} +27 -27
- package/lib/date-tags/date-tag.module.d.ts +4 -0
- package/{DateTags/dayTag/dayTag.component.d.ts → lib/date-tags/day-tag/day-tag.component.d.ts} +12 -12
- package/{DateTags/forecastTag/forecastTag.component.d.ts → lib/date-tags/forecast-tag/forecast-tag.component.d.ts} +21 -21
- package/{DateTags/monthTag/monthTag.component.d.ts → lib/date-tags/month-tag/month-tag.component.d.ts} +14 -14
- package/{DateTags/quarterTag/quarterTag.component.d.ts → lib/date-tags/quarter-tag/quarter-tag.component.d.ts} +17 -17
- package/{DateTags/weekTag/weekTag.component.d.ts → lib/date-tags/week-tag/week-tag.component.d.ts} +19 -19
- package/{DateTags/yearTag/yearTag.component.d.ts → lib/date-tags/year-tag/year-tag.component.d.ts} +14 -14
- package/lib/dr-inputs/checkbox/checkbox.component.d.ts +14 -0
- package/lib/dr-inputs/dr-input/dr-input.component.d.ts +44 -0
- package/lib/dr-inputs/dr-inputs.module.d.ts +2 -0
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +27 -0
- package/lib/dr-inputs/radio-button/radio-button.component.d.ts +15 -0
- package/{DrTags/drTag.component.d.ts → lib/dr-tags/dr-tag.component.d.ts} +15 -15
- package/{DrTags/drTag.module.d.ts → lib/dr-tags/dr-tag.module.d.ts} +2 -2
- package/{ListTags/listTag.component.d.ts → lib/list-tags/list-tag.component.d.ts} +14 -14
- package/{ListTags/listTag.module.d.ts → lib/list-tags/list-tag.module.d.ts} +2 -2
- package/{models → lib/models}/serverTags.d.ts +28 -28
- package/package.json +11 -11
- package/public-api.d.ts +18 -0
- package/DateTags/dateTag.module.d.ts +0 -2
- package/bundles/ng-datarails.umd.js +0 -1206
- package/bundles/ng-datarails.umd.js.map +0 -1
- package/datarailsshared-datarailsshared-1.2.3.tgz +0 -0
- package/esm2015/DateTags/dateTag.component.js +0 -69
- package/esm2015/DateTags/dateTag.module.js +0 -54
- package/esm2015/DateTags/dayTag/dayTag.component.js +0 -79
- package/esm2015/DateTags/forecastTag/forecastTag.component.js +0 -143
- package/esm2015/DateTags/monthTag/monthTag.component.js +0 -86
- package/esm2015/DateTags/quarterTag/quarterTag.component.js +0 -101
- package/esm2015/DateTags/weekTag/weekTag.component.js +0 -124
- package/esm2015/DateTags/yearTag/yearTag.component.js +0 -92
- package/esm2015/DrTags/drTag.component.js +0 -54
- package/esm2015/DrTags/drTag.module.js +0 -26
- package/esm2015/ListTags/listTag.component.js +0 -41
- package/esm2015/ListTags/listTag.module.js +0 -33
- package/esm2015/index.js +0 -5
- package/esm2015/models/serverTags.js +0 -2
- package/esm2015/ng-datarails.js +0 -14
- package/fesm2015/ng-datarails.js +0 -854
- package/fesm2015/ng-datarails.js.map +0 -1
- package/index.d.ts +0 -4
- package/ng-datarails.d.ts +0 -13
- package/ng-datarails.metadata.json +0 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { AnyTagComponent } from "../date-tag.component";
|
|
3
|
+
import { FormControl } from "@angular/forms";
|
|
4
|
+
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from "@angular/material/core";
|
|
5
|
+
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from "@angular/material-moment-adapter";
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
const moment = require("moment");
|
|
8
|
+
const MONTH_FORMATS = {
|
|
9
|
+
parse: {
|
|
10
|
+
dateInput: "DD-MM-YYYY",
|
|
11
|
+
},
|
|
12
|
+
display: {
|
|
13
|
+
dateInput: "MMMM YYYY",
|
|
14
|
+
monthYearLabel: "MMMM YYYY",
|
|
15
|
+
dateA11yLabel: "LL",
|
|
16
|
+
monthYearA11yLabel: "MMMM YYYY"
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
const ɵ0 = MONTH_FORMATS;
|
|
20
|
+
export class MonthTagComponent extends AnyTagComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
this.lockedDate = [];
|
|
24
|
+
this.date = new FormControl(moment());
|
|
25
|
+
this.dateFilter = (date) => {
|
|
26
|
+
const calendarDate = moment(date);
|
|
27
|
+
let status = true;
|
|
28
|
+
this.lockedDate.forEach(timestamp => {
|
|
29
|
+
const lockDate = moment.unix(timestamp);
|
|
30
|
+
return status = !(lockDate.year() === calendarDate.year() && lockDate.month() === calendarDate.month());
|
|
31
|
+
});
|
|
32
|
+
return status;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
initDate() {
|
|
36
|
+
if (this.defaultValue) {
|
|
37
|
+
this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format("YYYY-MM");
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.dateObj.date = moment(new Date()).format("YYYY-MM");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
initName() {
|
|
44
|
+
if (!this.name) {
|
|
45
|
+
this.name = "Month and Year";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
chosenTagHandler(value) {
|
|
49
|
+
const resultDate = moment.utc(value);
|
|
50
|
+
resultDate.hour(12);
|
|
51
|
+
const resultTag = {
|
|
52
|
+
name: this.name,
|
|
53
|
+
value: parseInt(resultDate.format("X"), 10),
|
|
54
|
+
label: resultDate.format("MMMM YYYY"),
|
|
55
|
+
locked: !this.dateFilter(value)
|
|
56
|
+
};
|
|
57
|
+
console.log(resultTag, value);
|
|
58
|
+
this.dateChange.emit(resultTag);
|
|
59
|
+
}
|
|
60
|
+
chosenMonthHandler(normalizedMonth, datepicker) {
|
|
61
|
+
this.date.setValue(normalizedMonth);
|
|
62
|
+
this.dateObj.date = this.date.value;
|
|
63
|
+
this.chosenTagHandler(this.date.value);
|
|
64
|
+
datepicker.close();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
MonthTagComponent.decorators = [
|
|
68
|
+
{ type: Component, args: [{
|
|
69
|
+
template: "<div>\r\n <mat-form-field class=\"date-select-box\">\r\n <input\r\n matInput\r\n placeholder=\"{{name}}\"\r\n name=\"Month\"\r\n [formControl]=\"date\"\r\n [matDatepickerFilter]=\"dateFilter\"\r\n [matDatepicker]=\"datepicker\">\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #datepicker\r\n startView=\"year\"\r\n (monthSelected)=\"chosenMonthHandler($event, datepicker)\"\r\n ></mat-datepicker>\r\n </mat-form-field>\r\n</div>\r\n",
|
|
70
|
+
selector: "month-tag",
|
|
71
|
+
providers: [
|
|
72
|
+
{
|
|
73
|
+
provide: DateAdapter,
|
|
74
|
+
useClass: MomentDateAdapter,
|
|
75
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
76
|
+
},
|
|
77
|
+
{ provide: MAT_DATE_FORMATS, useValue: ɵ0 },
|
|
78
|
+
]
|
|
79
|
+
},] }
|
|
80
|
+
];
|
|
81
|
+
MonthTagComponent.ctorParameters = () => [];
|
|
82
|
+
MonthTagComponent.propDecorators = {
|
|
83
|
+
lockedDate: [{ type: Input }]
|
|
84
|
+
};
|
|
85
|
+
export { ɵ0 };
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9tb250aC10YWcvbW9udGgtdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBZ0IsS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdoRyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsT0FBTyxFQUFDLCtCQUErQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDcEcsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVqQyxNQUFNLGFBQWEsR0FBRztJQUNwQixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsWUFBWTtLQUN4QjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxXQUFXO1FBQ3RCLGNBQWMsRUFBRSxXQUFXO1FBQzNCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO1dBVzBDLGFBQWE7QUFJekQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGVBQWU7SUFLbEQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUxILGVBQVUsR0FBVSxFQUFFLENBQUM7UUFFaEMsU0FBSSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUEwQ2pDLGVBQVUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFFbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBRXhDLE9BQU8sTUFBTSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMxRyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQTtJQWpERCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN4RjthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ2xCLE1BQU0sVUFBVSxHQUFXLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixNQUFNLFNBQVMsR0FBYTtZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNDLEtBQUssRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUNyQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztTQUNsQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLGVBQXVCLEVBQUUsVUFBaUM7UUFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OztZQXhESixTQUFTLFNBQUM7Z0JBQ1AsNm5CQUF1QztnQkFDdkMsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsV0FBVzt3QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjt3QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3FCQUN6RDtvQkFDRCxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLElBQWUsRUFBQztpQkFDckQ7YUFDSjs7Ozt5QkFHSSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtNb21lbnR9IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHtJRGF0ZVRhZ30gZnJvbSBcIi4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzXCI7XHJcbmltcG9ydCB7QW55VGFnQ29tcG9uZW50fSBmcm9tIFwiLi4vZGF0ZS10YWcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7TWF0RGF0ZXBpY2tlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXJcIjtcclxuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7RGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuaW1wb3J0IHtNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLCBNb21lbnREYXRlQWRhcHRlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyXCI7XHJcbi8vIEB0cy1pZ25vcmVcclxuY29uc3QgbW9tZW50ID0gcmVxdWlyZShcIm1vbWVudFwiKTtcclxuXHJcbmNvbnN0IE1PTlRIX0ZPUk1BVFMgPSB7XHJcbiAgcGFyc2U6IHtcclxuICAgIGRhdGVJbnB1dDogXCJERC1NTS1ZWVlZXCIsXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6IFwiTU1NTSBZWVlZXCIsXHJcbiAgICBtb250aFllYXJMYWJlbDogXCJNTU1NIFlZWVlcIixcclxuICAgIGRhdGVBMTF5TGFiZWw6IFwiTExcIixcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogXCJNTU1NIFlZWVlcIlxyXG4gIH0sXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlVXJsOiBcIm1vbnRoLXRhZy5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc2VsZWN0b3I6IFwibW9udGgtdGFnXCIsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IERhdGVBZGFwdGVyLFxyXG4gICAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcclxuICAgICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcclxuICAgICAgfSxcclxuICAgICAge3Byb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBNT05USF9GT1JNQVRTfSxcclxuICAgIF0sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTW9udGhUYWdDb21wb25lbnQgZXh0ZW5kcyBBbnlUYWdDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcclxuXHJcbiAgICBkYXRlID0gbmV3IEZvcm1Db250cm9sKG1vbWVudCgpKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXREYXRlKCkge1xyXG4gICAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLmRlZmF1bHRWYWx1ZSAqIDEwMDApKS51dGMoKS5mb3JtYXQoXCJZWVlZLU1NXCIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gbW9tZW50KG5ldyBEYXRlKCkpLmZvcm1hdChcIllZWVktTU1cIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpbml0TmFtZSgpIHtcclxuICAgICAgaWYgKCF0aGlzLm5hbWUpIHtcclxuICAgICAgICB0aGlzLm5hbWUgPSBcIk1vbnRoIGFuZCBZZWFyXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaG9zZW5UYWdIYW5kbGVyKHZhbHVlKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0RGF0ZTogTW9tZW50ID0gbW9tZW50LnV0Yyh2YWx1ZSk7XHJcbiAgICAgICAgcmVzdWx0RGF0ZS5ob3VyKDEyKTtcclxuICAgICAgICBjb25zdCByZXN1bHRUYWc6IElEYXRlVGFnID0ge1xyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXHJcbiAgICAgICAgICAgIHZhbHVlOiBwYXJzZUludChyZXN1bHREYXRlLmZvcm1hdChcIlhcIiksIDEwKSxcclxuICAgICAgICAgICAgbGFiZWw6IHJlc3VsdERhdGUuZm9ybWF0KFwiTU1NTSBZWVlZXCIpLFxyXG4gICAgICAgICAgICBsb2NrZWQ6ICF0aGlzLmRhdGVGaWx0ZXIodmFsdWUpXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHRUYWcsIHZhbHVlKTtcclxuICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyZXN1bHRUYWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNob3Nlbk1vbnRoSGFuZGxlcihub3JtYWxpemVkTW9udGg6IE1vbWVudCwgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+KSB7XHJcbiAgICAgICAgdGhpcy5kYXRlLnNldFZhbHVlKG5vcm1hbGl6ZWRNb250aCk7XHJcbiAgICAgICAgdGhpcy5kYXRlT2JqLmRhdGUgPSB0aGlzLmRhdGUudmFsdWU7XHJcblxyXG4gICAgICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcih0aGlzLmRhdGUudmFsdWUpO1xyXG5cclxuICAgICAgICBkYXRlcGlja2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGF0ZUZpbHRlciA9IChkYXRlKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNhbGVuZGFyRGF0ZSA9IG1vbWVudChkYXRlKTtcclxuICAgICAgbGV0IHN0YXR1cyA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmxvY2tlZERhdGUuZm9yRWFjaCh0aW1lc3RhbXAgPT4ge1xyXG4gICAgICAgIGNvbnN0IGxvY2tEYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHN0YXR1cyA9ICEobG9ja0RhdGUueWVhcigpID09PSBjYWxlbmRhckRhdGUueWVhcigpICYmIGxvY2tEYXRlLm1vbnRoKCkgPT09IGNhbGVuZGFyRGF0ZS5tb250aCgpKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gc3RhdHVzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { AnyTagComponent } from "../date-tag.component";
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
const moment = require("moment");
|
|
5
|
+
export class QuarterTagComponent extends AnyTagComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
this.lockedDate = [];
|
|
9
|
+
this.selectedValue = 0;
|
|
10
|
+
this.quarters = [];
|
|
11
|
+
this.dateFilter = (date) => {
|
|
12
|
+
let status = true;
|
|
13
|
+
this.lockedDate.forEach(timestamp => {
|
|
14
|
+
const lockDate = moment.unix(timestamp);
|
|
15
|
+
const quarterDate = moment.unix(date.value);
|
|
16
|
+
if (lockDate.year() === quarterDate.year() && lockDate.month() === quarterDate.month()) {
|
|
17
|
+
date.disable = true;
|
|
18
|
+
status = false;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return status;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.initName();
|
|
26
|
+
this.quarters = this.getQuarterOptions();
|
|
27
|
+
for (const quarter of this.quarters) {
|
|
28
|
+
quarter.disable = false;
|
|
29
|
+
if (quarter.isSelected) {
|
|
30
|
+
this.selectedValue = quarter.value;
|
|
31
|
+
this.chosenTagHandler(quarter.value);
|
|
32
|
+
}
|
|
33
|
+
this.dateFilter(quarter);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
initName() {
|
|
37
|
+
if (!this.name) {
|
|
38
|
+
this.name = "Quarter";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
changeSelectHandler(event) {
|
|
42
|
+
this.chosenTagHandler(event.value);
|
|
43
|
+
}
|
|
44
|
+
chosenTagHandler(value) {
|
|
45
|
+
const date = new Date(value * 1000);
|
|
46
|
+
const resultDate = moment.utc(date);
|
|
47
|
+
const resultTag = {
|
|
48
|
+
name: this.name,
|
|
49
|
+
value: parseInt(resultDate.format("X"), 10),
|
|
50
|
+
label: this.getQuarterLabel(resultDate.toString()),
|
|
51
|
+
locked: !this.dateFilter(value)
|
|
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, tempValue;
|
|
68
|
+
const to_return = [];
|
|
69
|
+
for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {
|
|
70
|
+
tempDate = new Date(defaultValue);
|
|
71
|
+
tempDate.setDate(15);
|
|
72
|
+
tempDate.setMonth(tempDate.getMonth() + 3 * i);
|
|
73
|
+
tempValue = this.getUTCTimestamp(tempDate);
|
|
74
|
+
to_return.push({
|
|
75
|
+
value: tempValue / 1000,
|
|
76
|
+
label: this.getQuarterLabel(tempValue),
|
|
77
|
+
isSelected: (i === 0),
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return to_return;
|
|
81
|
+
}
|
|
82
|
+
getQuarterLabel(timeValue) {
|
|
83
|
+
const date = new Date(timeValue);
|
|
84
|
+
return "Q" + Math.floor((date.getMonth() / 3) + 1) + " " + date.getFullYear();
|
|
85
|
+
}
|
|
86
|
+
getUTCTimestamp(date) {
|
|
87
|
+
const month = Math.floor(date.getMonth() / 3) * 3;
|
|
88
|
+
return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
QuarterTagComponent.decorators = [
|
|
92
|
+
{ type: Component, args: [{
|
|
93
|
+
template: "<div>\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{name}}\" (selectionChange)=\"changeSelectHandler($event)\" [(value)]=\"selectedValue\">\r\n <mat-option *ngFor=\"let quarter of quarters\" [value]=\"quarter.value\" [disabled]=\"quarter.disable\">{{quarter.label}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n",
|
|
94
|
+
selector: "quarter-tag"
|
|
95
|
+
},] }
|
|
96
|
+
];
|
|
97
|
+
QuarterTagComponent.ctorParameters = () => [];
|
|
98
|
+
QuarterTagComponent.propDecorators = {
|
|
99
|
+
lockedDate: [{ type: Input }]
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3F1YXJ0ZXItdGFnL3F1YXJ0ZXItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUd2RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU1qQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQUtwRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBTEgsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBbUZ2QixlQUFVLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNwQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFFbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUU1QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDdEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ3BCLE1BQU0sR0FBRyxLQUFLLENB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IElucHV0LCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SURhdGVUYWd9IGZyb20gXCIuLi8uLi9tb2RlbHMvc2VydmVyVGFnc1wiO1xyXG5pbXBvcnQge01vbWVudH0gZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQge0FueVRhZ0NvbXBvbmVudH0gZnJvbSBcIi4uL2RhdGUtdGFnLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge01hdFNlbGVjdENoYW5nZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG4vLyBAdHMtaWdub3JlXHJcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoXCJtb21lbnRcIik7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlVXJsOiBcInF1YXJ0ZXItdGFnLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzZWxlY3RvcjogXCJxdWFydGVyLXRhZ1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVhcnRlclRhZ0NvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xyXG4gICAgc2VsZWN0ZWRWYWx1ZSA9IDA7XHJcbiAgICBxdWFydGVyczogYW55W10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICB0aGlzLmluaXROYW1lKCk7XHJcbiAgICAgIHRoaXMucXVhcnRlcnMgPSB0aGlzLmdldFF1YXJ0ZXJPcHRpb25zKCk7XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IHF1YXJ0ZXIgb2YgdGhpcy5xdWFydGVycykge1xyXG4gICAgICAgICAgcXVhcnRlci5kaXNhYmxlID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgaWYgKHF1YXJ0ZXIuaXNTZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHF1YXJ0ZXIudmFsdWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKHF1YXJ0ZXIudmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuZGF0ZUZpbHRlcihxdWFydGVyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXROYW1lKCkge1xyXG4gICAgICBpZiAoIXRoaXMubmFtZSkge1xyXG4gICAgICAgIHRoaXMubmFtZSA9IFwiUXVhcnRlclwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlU2VsZWN0SGFuZGxlcihldmVudDogTWF0U2VsZWN0Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcihldmVudC52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hvc2VuVGFnSGFuZGxlcih2YWx1ZSkge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSAqIDEwMDApO1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdERhdGU6IE1vbWVudCA9IG1vbWVudC51dGMoZGF0ZSk7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxyXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQocmVzdWx0RGF0ZS5mb3JtYXQoXCJYXCIpLCAxMCksXHJcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFF1YXJ0ZXJMYWJlbChyZXN1bHREYXRlLnRvU3RyaW5nKCkpLFxyXG4gICAgICAgICAgICBsb2NrZWQ6ICF0aGlzLmRhdGVGaWx0ZXIodmFsdWUpXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyZXN1bHRUYWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFF1YXJ0ZXJPcHRpb25zKCkge1xyXG4gICAgICAgIGNvbnN0IHF1YXJ0ZXJzQmVmb3JlVG9kYXkgPSA4O1xyXG4gICAgICAgIGNvbnN0IHF1YXJ0ZXJzQWZ0ZXJUb2RheSA9IDg7XHJcbiAgICAgICAgY29uc3QgZGF0ZU5vdyA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgY29uc3QgZGF0ZU5vd1VuaXggPSB0aGlzLmdldFVUQ1RpbWVzdGFtcChkYXRlTm93KTtcclxuICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gZGF0ZU5vd1VuaXg7XHJcbiAgICAgICAgbGV0IHRlbXBEYXRlID0gIG5ldyBEYXRlKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZSAqIDEwMDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgYWZ0ZXJEZWZhdWx0ID0gTWF0aC5yb3VuZChNYXRoLmFicyhkYXRlTm93VW5peCAtIGRlZmF1bHRWYWx1ZSkgLyA3Nzc2MDAwMDAwKSArIHF1YXJ0ZXJzQWZ0ZXJUb2RheTtcclxuICAgICAgICBhZnRlckRlZmF1bHQgPSBNYXRoLm1pbihhZnRlckRlZmF1bHQsIDEwMCk7XHJcbiAgICAgICAgbGV0IGksIHRlbXBWYWx1ZTtcclxuICAgICAgICBjb25zdCB0b19yZXR1cm46IGFueVtdID0gW107XHJcbiAgICAgICAgZm9yIChpID0gMCAtIHF1YXJ0ZXJzQmVmb3JlVG9kYXk7IGkgPD0gYWZ0ZXJEZWZhdWx0OyBpKyspIHtcclxuICAgICAgICAgICAgdGVtcERhdGUgPSBuZXcgRGF0ZShkZWZhdWx0VmFsdWUpO1xyXG4gICAgICAgICAgICB0ZW1wRGF0ZS5zZXREYXRlKDE1KTtcclxuICAgICAgICAgICAgdGVtcERhdGUuc2V0TW9udGgodGVtcERhdGUuZ2V0TW9udGgoKSArIDMgKiBpKTtcclxuICAgICAgICAgICAgdGVtcFZhbHVlID0gdGhpcy5nZXRVVENUaW1lc3RhbXAodGVtcERhdGUpO1xyXG4gICAgICAgICAgICB0b19yZXR1cm4ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGVtcFZhbHVlIC8gMTAwMCxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFF1YXJ0ZXJMYWJlbCh0ZW1wVmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RlZDogKGkgPT09IDApLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRvX3JldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFF1YXJ0ZXJMYWJlbCh0aW1lVmFsdWUpIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGltZVZhbHVlKTtcclxuICAgICAgICByZXR1cm4gXCJRXCIgKyBNYXRoLmZsb29yKChkYXRlLmdldE1vbnRoKCkgLyAzKSArIDEpICsgXCIgXCIgKyBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRVVENUaW1lc3RhbXAoZGF0ZSkge1xyXG4gICAgICAgIGNvbnN0IG1vbnRoID0gTWF0aC5mbG9vcihkYXRlLmdldE1vbnRoKCkgLyAzKSAqIDM7XHJcbiAgICAgICAgcmV0dXJuIERhdGUuVVRDKGRhdGUuZ2V0RnVsbFllYXIoKSwgbW9udGgsIDEsIDEyLCAwLCAwLCAwKTtcclxuICAgIH1cclxuXHJcbiAgZGF0ZUZpbHRlciA9IChkYXRlKSA9PiB7XHJcbiAgICBsZXQgc3RhdHVzID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmxvY2tlZERhdGUuZm9yRWFjaCh0aW1lc3RhbXAgPT4ge1xyXG4gICAgICBjb25zdCBsb2NrRGF0ZSA9IG1vbWVudC51bml4KHRpbWVzdGFtcCk7XHJcbiAgICAgIGNvbnN0IHF1YXJ0ZXJEYXRlID0gbW9tZW50LnVuaXgoZGF0ZS52YWx1ZSk7XHJcblxyXG4gICAgICBpZiAobG9ja0RhdGUueWVhcigpID09PSBxdWFydGVyRGF0ZS55ZWFyKCkgJiYgbG9ja0RhdGUubW9udGgoKSA9PT0gcXVhcnRlckRhdGUubW9udGgoKSkge1xyXG4gICAgICAgIGRhdGUuZGlzYWJsZSA9IHRydWU7XHJcbiAgICAgICAgc3RhdHVzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBzdGF0dXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { AnyTagComponent } from "../date-tag.component";
|
|
3
|
+
import { FormControl } from "@angular/forms";
|
|
4
|
+
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from "@angular/material/core";
|
|
5
|
+
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from "@angular/material-moment-adapter";
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
const moment = require("moment");
|
|
8
|
+
const WEEK_FORMATS = {
|
|
9
|
+
parse: {
|
|
10
|
+
dateInput: "WW-YYYY",
|
|
11
|
+
},
|
|
12
|
+
display: {
|
|
13
|
+
dateInput: "[Week] WW, YYYY",
|
|
14
|
+
monthYearLabel: "MMMM YYYY",
|
|
15
|
+
dateA11yLabel: "LL",
|
|
16
|
+
monthYearA11yLabel: "MMMM YYYY"
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
const ɵ0 = WEEK_FORMATS;
|
|
20
|
+
export class WeekTagComponent extends AnyTagComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
this.lockedDate = [];
|
|
24
|
+
this.date = new FormControl(moment());
|
|
25
|
+
this.selectedValue = "";
|
|
26
|
+
this.dateFilter = (date) => {
|
|
27
|
+
const calendarDate = moment(date);
|
|
28
|
+
let status = true;
|
|
29
|
+
this.lockedDate.forEach(timestamp => {
|
|
30
|
+
const lockDate = moment.unix(timestamp);
|
|
31
|
+
return status = !(lockDate.week() === calendarDate.week() && lockDate.year() === calendarDate.year());
|
|
32
|
+
});
|
|
33
|
+
return status;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
ngOnInit() {
|
|
37
|
+
this.initName();
|
|
38
|
+
const now = new Date();
|
|
39
|
+
now.setHours(0, 0, 0, 0);
|
|
40
|
+
const dateUnix = this.getUTCTimestamp(this.getMonday(now));
|
|
41
|
+
let default_value_time = dateUnix;
|
|
42
|
+
const one_day_in_seconds = 86400;
|
|
43
|
+
if (this.defaultValue) {
|
|
44
|
+
default_value_time = (this.defaultValue + one_day_in_seconds) * 1000;
|
|
45
|
+
}
|
|
46
|
+
const default_date = new Date(default_value_time);
|
|
47
|
+
const weekNumber = this.getWeekNumberByDate(default_date);
|
|
48
|
+
const yearNumber = default_date.getFullYear();
|
|
49
|
+
const dateStr = `${yearNumber}-W${weekNumber}`;
|
|
50
|
+
this.dateObj.date = dateStr;
|
|
51
|
+
this.selectedValue = dateStr;
|
|
52
|
+
this.chosenTagHandler(default_date);
|
|
53
|
+
}
|
|
54
|
+
initName() {
|
|
55
|
+
if (!this.name) {
|
|
56
|
+
this.name = "Week";
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
chosenDateHandler(normalizedDay) {
|
|
60
|
+
const date = moment(normalizedDay).unix();
|
|
61
|
+
this.chosenTagHandler(date);
|
|
62
|
+
}
|
|
63
|
+
chosenTagHandler(value) {
|
|
64
|
+
let date;
|
|
65
|
+
console.log("chosenTag", value);
|
|
66
|
+
if (value > 1000000000000) {
|
|
67
|
+
date = new Date(value);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
date = new Date(value * 1000);
|
|
71
|
+
}
|
|
72
|
+
const resultDate = moment(date);
|
|
73
|
+
const resultTag = {
|
|
74
|
+
name: this.name,
|
|
75
|
+
value: parseInt(resultDate.format("X"), 10),
|
|
76
|
+
label: this.getWeekLabel(date),
|
|
77
|
+
locked: !this.dateFilter(value)
|
|
78
|
+
};
|
|
79
|
+
console.log("resultTag", resultTag);
|
|
80
|
+
this.dateChange.emit(resultTag);
|
|
81
|
+
}
|
|
82
|
+
getWeekLabel(date) {
|
|
83
|
+
return "W" + this.pad(moment(date).isoWeek(), 2) +
|
|
84
|
+
" " + moment(date).year();
|
|
85
|
+
}
|
|
86
|
+
getUTCTimestamp(date) {
|
|
87
|
+
return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 12, 0, 0, 0);
|
|
88
|
+
}
|
|
89
|
+
getMonday(date) {
|
|
90
|
+
const day = date.getDay() || 7;
|
|
91
|
+
if (day !== 1) {
|
|
92
|
+
date.setHours(-24 * (day - 1));
|
|
93
|
+
}
|
|
94
|
+
return date;
|
|
95
|
+
}
|
|
96
|
+
getWeekNumberByDate(date) {
|
|
97
|
+
return this.pad(moment(date).isoWeek(), 2);
|
|
98
|
+
}
|
|
99
|
+
pad(n, width, z = "0") {
|
|
100
|
+
z = z || "0";
|
|
101
|
+
n = n + "";
|
|
102
|
+
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
WeekTagComponent.decorators = [
|
|
106
|
+
{ type: Component, args: [{
|
|
107
|
+
template: "<div>\r\n <mat-form-field class=\"date-select-box\">\r\n <input\r\n matInput\r\n placeholder=\"{{name}}\"\r\n name=\"week\"\r\n [formControl]=\"date\"\r\n [matDatepicker]=\"datepicker\"\r\n [matDatepickerFilter]=\"dateFilter\"\r\n (ngModelChange)=\"chosenDateHandler($event)\">\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #datepicker\r\n startView=\"month\"\r\n ></mat-datepicker>\r\n </mat-form-field>\r\n</div>\r\n",
|
|
108
|
+
selector: "week-tag",
|
|
109
|
+
providers: [
|
|
110
|
+
{
|
|
111
|
+
provide: DateAdapter,
|
|
112
|
+
useClass: MomentDateAdapter,
|
|
113
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
114
|
+
},
|
|
115
|
+
{ provide: MAT_DATE_FORMATS, useValue: ɵ0 },
|
|
116
|
+
]
|
|
117
|
+
},] }
|
|
118
|
+
];
|
|
119
|
+
WeekTagComponent.ctorParameters = () => [];
|
|
120
|
+
WeekTagComponent.propDecorators = {
|
|
121
|
+
lockedDate: [{ type: Input }]
|
|
122
|
+
};
|
|
123
|
+
export { ɵ0 };
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vlay10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3dlZWstdGFnL3dlZWstdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUd2RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsT0FBTyxFQUFDLCtCQUErQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDcEcsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVqQyxNQUFNLFlBQVksR0FBRztJQUNuQixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsU0FBUztLQUNyQjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsY0FBYyxFQUFFLFdBQVc7UUFDM0IsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztLQUNoQztDQUNGLENBQUM7V0FXMEMsWUFBWTtBQUd4RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQU1qRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBTkgsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUVoQyxTQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNqQyxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQXVDbkIsZUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEIs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QUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFHO1FBQzNCLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ2IsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0UsQ0FBQzs7O1lBakhKLFNBQVMsU0FBQztnQkFDUCxnbkJBQXNDO2dCQUN0QyxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxXQUFXO3dCQUNwQixRQUFRLEVBQUUsaUJBQWlCO3dCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsK0JBQStCLENBQUM7cUJBQ3pEO29CQUNELEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsSUFBYyxFQUFDO2lCQUNwRDthQUNKOzs7O3lCQUVJLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJRGF0ZVRhZ30gZnJvbSBcIi4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzXCI7XHJcbmltcG9ydCB7TW9tZW50fSBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7QW55VGFnQ29tcG9uZW50fSBmcm9tIFwiLi4vZGF0ZS10YWcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0RhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XHJcbmltcG9ydCB7TUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgTW9tZW50RGF0ZUFkYXB0ZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlclwiO1xyXG4vLyBAdHMtaWdub3JlXHJcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoXCJtb21lbnRcIik7XHJcblxyXG5jb25zdCBXRUVLX0ZPUk1BVFMgPSB7XHJcbiAgcGFyc2U6IHtcclxuICAgIGRhdGVJbnB1dDogXCJXVy1ZWVlZXCIsXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6IFwiW1dlZWtdIFdXLCBZWVlZXCIsXHJcbiAgICBtb250aFllYXJMYWJlbDogXCJNTU1NIFlZWVlcIixcclxuICAgIGRhdGVBMTF5TGFiZWw6IFwiTExcIixcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogXCJNTU1NIFlZWVlcIlxyXG4gIH0sXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlVXJsOiBcIndlZWstdGFnLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzZWxlY3RvcjogXCJ3ZWVrLXRhZ1wiLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcclxuICAgICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXHJcbiAgICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRSwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OU10sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogV0VFS19GT1JNQVRTfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWVrVGFnQ29tcG9uZW50IGV4dGVuZHMgQW55VGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueVtdID0gW107XHJcblxyXG4gICAgZGF0ZSA9IG5ldyBGb3JtQ29udHJvbChtb21lbnQoKSk7XHJcbiAgICBzZWxlY3RlZFZhbHVlID0gXCJcIjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICB0aGlzLmluaXROYW1lKCk7XHJcblxyXG4gICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBub3cuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcblxyXG4gICAgICBjb25zdCBkYXRlVW5peCA9IHRoaXMuZ2V0VVRDVGltZXN0YW1wKHRoaXMuZ2V0TW9uZGF5KG5vdykpO1xyXG4gICAgICBsZXQgZGVmYXVsdF92YWx1ZV90aW1lID0gZGF0ZVVuaXg7XHJcbiAgICAgIGNvbnN0IG9uZV9kYXlfaW5fc2Vjb25kcyA9IDg2NDAwO1xyXG4gICAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUpIHtcclxuICAgICAgICBkZWZhdWx0X3ZhbHVlX3RpbWUgPSAodGhpcy5kZWZhdWx0VmFsdWUgKyBvbmVfZGF5X2luX3NlY29uZHMpICogMTAwMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgZGVmYXVsdF9kYXRlID0gbmV3IERhdGUoZGVmYXVsdF92YWx1ZV90aW1lKTtcclxuICAgICAgY29uc3Qgd2Vla051bWJlciA9IHRoaXMuZ2V0V2Vla051bWJlckJ5RGF0ZShkZWZhdWx0X2RhdGUpO1xyXG4gICAgICBjb25zdCB5ZWFyTnVtYmVyID0gZGVmYXVsdF9kYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSBgJHt5ZWFyTnVtYmVyfS1XJHt3ZWVrTnVtYmVyfWA7XHJcbiAgICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gZGF0ZVN0cjtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZGF0ZVN0cjtcclxuICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKGRlZmF1bHRfZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdE5hbWUoKSB7XHJcbiAgICAgIGlmICghdGhpcy5uYW1lKSB7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gXCJXZWVrXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaG9zZW5EYXRlSGFuZGxlcihub3JtYWxpemVkRGF5KSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQobm9ybWFsaXplZERheSkudW5peCgpO1xyXG4gICAgICB0aGlzLmNob3NlblRhZ0hhbmRsZXIoZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGF0ZUZpbHRlciA9IChkYXRlKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNhbGVuZGFyRGF0ZSA9IG1vbWVudChkYXRlKTtcclxuICAgICAgbGV0IHN0YXR1cyA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmxvY2tlZERhdGUuZm9yRWFjaCh0aW1lc3RhbXAgPT4ge1xyXG4gICAgICAgIGNvbnN0IGxvY2tEYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHN0YXR1cyA9ICEobG9ja0RhdGUud2VlaygpID09PSBjYWxlbmRhckRhdGUud2VlaygpICYmIGxvY2tEYXRlLnllYXIoKSA9PT0gY2FsZW5kYXJEYXRlLnllYXIoKSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgcmV0dXJuIHN0YXR1cztcclxuICAgIH1cclxuXHJcbiAgICBjaG9zZW5UYWdIYW5kbGVyKHZhbHVlKSB7XHJcbiAgICAgICAgbGV0IGRhdGU7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJjaG9zZW5UYWdcIiwgdmFsdWUpO1xyXG4gICAgICAgIGlmICh2YWx1ZSA+IDEwMDAwMDAwMDAwMDApIHtcclxuICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSAqIDEwMDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcmVzdWx0RGF0ZTogTW9tZW50ID0gbW9tZW50KGRhdGUpO1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdFRhZzogSURhdGVUYWcgPSB7XHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcclxuICAgICAgICAgICAgdmFsdWU6IHBhcnNlSW50KHJlc3VsdERhdGUuZm9ybWF0KFwiWFwiKSwgMTApLFxyXG4gICAgICAgICAgICBsYWJlbDogdGhpcy5nZXRXZWVrTGFiZWwoZGF0ZSksXHJcbiAgICAgICAgICAgIGxvY2tlZDogIXRoaXMuZGF0ZUZpbHRlcih2YWx1ZSlcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwicmVzdWx0VGFnXCIsIHJlc3VsdFRhZyk7XHJcbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQocmVzdWx0VGFnKTtcclxuICAgICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0V2Vla0xhYmVsKGRhdGUpIHtcclxuICAgICAgcmV0dXJuIFwiV1wiICsgdGhpcy5wYWQoIG1vbWVudChkYXRlKS5pc29XZWVrKCksIDIpICtcclxuICAgICAgICBcIiBcIiArIG1vbWVudChkYXRlKS55ZWFyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRVVENUaW1lc3RhbXAoZGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBEYXRlLlVUQyhkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCksIDEyLCAwLCAwLCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE1vbmRheShkYXRlKSB7XHJcbiAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXkoKSB8fCA3O1xyXG4gICAgICAgIGlmIChkYXkgIT09IDEpIHtcclxuICAgICAgICAgICAgZGF0ZS5zZXRIb3VycygtMjQgKiAoZGF5IC0gMSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFdlZWtOdW1iZXJCeURhdGUoZGF0ZTogRGF0ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5wYWQobW9tZW50KGRhdGUpLmlzb1dlZWsoKSwgMik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwYWQobiwgd2lkdGgsIHogPSBcIjBcIikge1xyXG4gICAgICB6ID0geiB8fCBcIjBcIjtcclxuICAgICAgbiA9IG4gKyBcIlwiO1xyXG4gICAgICByZXR1cm4gbi5sZW5ndGggPj0gd2lkdGggPyBuIDogbmV3IEFycmF5KHdpZHRoIC0gbi5sZW5ndGggKyAxKS5qb2luKHopICsgbjtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { FormControl } from "@angular/forms";
|
|
3
|
+
import { AnyTagComponent } from "../date-tag.component";
|
|
4
|
+
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from "@angular/material/core";
|
|
5
|
+
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from "@angular/material-moment-adapter";
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
const moment = require("moment");
|
|
8
|
+
const YEAR_FORMATS = {
|
|
9
|
+
parse: {
|
|
10
|
+
dateInput: "YYYY",
|
|
11
|
+
},
|
|
12
|
+
display: {
|
|
13
|
+
dateInput: "YYYY",
|
|
14
|
+
monthYearLabel: "MMMM YYYY",
|
|
15
|
+
dateA11yLabel: "LL",
|
|
16
|
+
monthYearA11yLabel: "MMMM YYYY"
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
const ɵ0 = YEAR_FORMATS;
|
|
20
|
+
export class YearTagComponent extends AnyTagComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
this.lockedDate = [];
|
|
24
|
+
this.date = new FormControl(moment());
|
|
25
|
+
this.dateFilter = (date) => {
|
|
26
|
+
const calendarDateYear = moment(date).year();
|
|
27
|
+
let status = true;
|
|
28
|
+
this.lockedDate.forEach(timestamp => {
|
|
29
|
+
const lockDate = moment.unix(timestamp);
|
|
30
|
+
return status = !(lockDate.year() === calendarDateYear);
|
|
31
|
+
});
|
|
32
|
+
return status;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
initDate() {
|
|
36
|
+
if (this.defaultValue) {
|
|
37
|
+
this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format("YYYY");
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.dateObj.date = moment(new Date()).format("YYYY");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
initName() {
|
|
44
|
+
if (!this.name) {
|
|
45
|
+
this.name = "Year";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
chosenTagHandler(value) {
|
|
49
|
+
const date = new Date();
|
|
50
|
+
const year = moment(value).year();
|
|
51
|
+
date.setTime(0);
|
|
52
|
+
date.setFullYear(year, 0, 1);
|
|
53
|
+
const resultDate = moment.utc(date);
|
|
54
|
+
resultDate.hour(12);
|
|
55
|
+
const resultTag = {
|
|
56
|
+
name: this.name,
|
|
57
|
+
value: parseInt(resultDate.format("X"), 10),
|
|
58
|
+
label: resultDate.format("YYYY"),
|
|
59
|
+
locked: !this.dateFilter(value)
|
|
60
|
+
};
|
|
61
|
+
console.log("resultTag", resultTag);
|
|
62
|
+
this.dateChange.emit(resultTag);
|
|
63
|
+
}
|
|
64
|
+
chosenYearHandler(normalizedYear, datepicker) {
|
|
65
|
+
const ctrlValue = this.date.value;
|
|
66
|
+
ctrlValue.year(normalizedYear.year());
|
|
67
|
+
this.date.setValue(ctrlValue);
|
|
68
|
+
this.dateObj.date = this.date.value;
|
|
69
|
+
this.chosenTagHandler(this.date.value);
|
|
70
|
+
datepicker.close();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
YearTagComponent.decorators = [
|
|
74
|
+
{ type: Component, args: [{
|
|
75
|
+
template: "<div>\r\n <mat-form-field class=\"date-select-box\">\r\n <input\r\n matInput\r\n placeholder=\"{{name}}\"\r\n name=\"Year\"\r\n [formControl]=\"date\"\r\n [matDatepicker]=\"datepicker\"\r\n [matDatepickerFilter]=\"dateFilter\">\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #datepicker\r\n startView=\"multi-year\"\r\n (yearSelected)=\"chosenYearHandler($event, datepicker)\"\r\n panelClass=\"date-month-picker\"\r\n ></mat-datepicker>\r\n </mat-form-field>\r\n</div>\r\n",
|
|
76
|
+
selector: "year-tag",
|
|
77
|
+
providers: [
|
|
78
|
+
{
|
|
79
|
+
provide: DateAdapter,
|
|
80
|
+
useClass: MomentDateAdapter,
|
|
81
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
82
|
+
},
|
|
83
|
+
{ provide: MAT_DATE_FORMATS, useValue: ɵ0 },
|
|
84
|
+
]
|
|
85
|
+
},] }
|
|
86
|
+
];
|
|
87
|
+
YearTagComponent.ctorParameters = () => [];
|
|
88
|
+
YearTagComponent.propDecorators = {
|
|
89
|
+
lockedDate: [{ type: Input }]
|
|
90
|
+
};
|
|
91
|
+
export { ɵ0 };
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3llYXItdGFnL3llYXItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsT0FBTyxFQUFDLCtCQUErQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDcEcsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVqQyxNQUFNLFlBQVksR0FBRztJQUNuQixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsTUFBTTtLQUNsQjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLGNBQWMsRUFBRSxXQUFXO1FBQzNCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO1dBVzBDLFlBQVk7QUFJeEQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWU7SUFLbkQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUxELGVBQVUsR0FBVSxFQUFFLENBQUM7UUFFaEMsU0FBSSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFnRGpDLGVBQVUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BCLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLElB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UyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxXQUFXO3dCQUNwQixRQUFRLEVBQUUsaUJBQWlCO3dCQUMzQixJQUFJLEVBQUUsQ0FBQyxlQUFlLEVBQUUsK0JBQStCLENBQUM7cUJBQ3pEO29CQUNELEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsSUFBYyxFQUFDO2lCQUNwRDthQUNKOzs7O3lCQUdFLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7TWF0RGF0ZXBpY2tlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXJcIjtcclxuaW1wb3J0IHtNb21lbnR9IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHtJRGF0ZVRhZ30gZnJvbSBcIi4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzXCI7XHJcbmltcG9ydCB7QW55VGFnQ29tcG9uZW50fSBmcm9tIFwiLi4vZGF0ZS10YWcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuaW1wb3J0IHtNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLCBNb21lbnREYXRlQWRhcHRlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyXCI7XHJcbi8vIEB0cy1pZ25vcmVcclxuY29uc3QgbW9tZW50ID0gcmVxdWlyZShcIm1vbWVudFwiKTtcclxuXHJcbmNvbnN0IFlFQVJfRk9STUFUUyA9IHtcclxuICBwYXJzZToge1xyXG4gICAgZGF0ZUlucHV0OiBcIllZWVlcIixcclxuICB9LFxyXG4gIGRpc3BsYXk6IHtcclxuICAgIGRhdGVJbnB1dDogXCJZWVlZXCIsXHJcbiAgICBtb250aFllYXJMYWJlbDogXCJNTU1NIFlZWVlcIixcclxuICAgIGRhdGVBMTF5TGFiZWw6IFwiTExcIixcclxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogXCJNTU1NIFlZWVlcIlxyXG4gIH0sXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlVXJsOiBcInllYXItdGFnLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzZWxlY3RvcjogXCJ5ZWFyLXRhZ1wiLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcclxuICAgICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXHJcbiAgICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRSwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OU10sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogWUVBUl9GT1JNQVRTfSxcclxuICAgIF0sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgWWVhclRhZ0NvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcclxuXHJcbiAgZGF0ZSA9IG5ldyBGb3JtQ29udHJvbChtb21lbnQoKSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGluaXREYXRlKCkge1xyXG4gICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gbW9tZW50KG5ldyBEYXRlKHRoaXMuZGVmYXVsdFZhbHVlICogMTAwMCkpLnV0YygpLmZvcm1hdChcIllZWVlcIik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IG1vbWVudChuZXcgRGF0ZSgpKS5mb3JtYXQoXCJZWVlZXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdE5hbWUoKSB7XHJcbiAgICBpZiAoIXRoaXMubmFtZSkge1xyXG4gICAgICB0aGlzLm5hbWUgPSBcIlllYXJcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNob3NlblRhZ0hhbmRsZXIodmFsdWUpIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGNvbnN0IHllYXIgPSBtb21lbnQodmFsdWUpLnllYXIoKTtcclxuICAgICAgZGF0ZS5zZXRUaW1lKDApO1xyXG4gICAgICBkYXRlLnNldEZ1bGxZZWFyKHllYXIsIDAsIDEpO1xyXG4gICAgICBjb25zdCByZXN1bHREYXRlOiBNb21lbnQgPSBtb21lbnQudXRjKGRhdGUpO1xyXG4gICAgICByZXN1bHREYXRlLmhvdXIoMTIpO1xyXG4gICAgICBjb25zdCByZXN1bHRUYWc6IElEYXRlVGFnID0ge1xyXG4gICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxyXG4gICAgICAgICAgdmFsdWU6IHBhcnNlSW50KHJlc3VsdERhdGUuZm9ybWF0KFwiWFwiKSwgMTApLFxyXG4gICAgICAgICAgbGFiZWw6IHJlc3VsdERhdGUuZm9ybWF0KFwiWVlZWVwiKSxcclxuICAgICAgICAgIGxvY2tlZDogIXRoaXMuZGF0ZUZpbHRlcih2YWx1ZSlcclxuICAgICAgfTtcclxuICAgICAgY29uc29sZS5sb2coXCJyZXN1bHRUYWdcIiwgcmVzdWx0VGFnKTtcclxuICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQocmVzdWx0VGFnKTtcclxuICB9XHJcblxyXG4gIGNob3NlblllYXJIYW5kbGVyKG5vcm1hbGl6ZWRZZWFyOiBNb21lbnQsIGRhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXI8TW9tZW50Pikge1xyXG4gICAgY29uc3QgY3RybFZhbHVlID0gdGhpcy5kYXRlLnZhbHVlO1xyXG4gICAgY3RybFZhbHVlLnllYXIobm9ybWFsaXplZFllYXIueWVhcigpKTtcclxuXHJcbiAgICB0aGlzLmRhdGUuc2V0VmFsdWUoY3RybFZhbHVlKTtcclxuICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gdGhpcy5kYXRlLnZhbHVlO1xyXG4gICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKHRoaXMuZGF0ZS52YWx1ZSk7XHJcblxyXG4gICAgZGF0ZXBpY2tlci5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUZpbHRlciA9IChkYXRlKSA9PiB7XHJcbiAgICBjb25zdCBjYWxlbmRhckRhdGVZZWFyID0gbW9tZW50KGRhdGUpLnllYXIoKTtcclxuICAgIGxldCBzdGF0dXMgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubG9ja2VkRGF0ZS5mb3JFYWNoKHRpbWVzdGFtcCA9PiB7XHJcbiAgICAgIGNvbnN0IGxvY2tEYXRlID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcclxuXHJcbiAgICAgIHJldHVybiBzdGF0dXMgPSAhKGxvY2tEYXRlLnllYXIoKSA9PT0gY2FsZW5kYXJEYXRlWWVhcilcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBzdGF0dXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
|
|
2
|
+
import { NG_VALUE_ACCESSOR } from "@angular/forms";
|
|
3
|
+
export class CheckboxComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.disabled = false;
|
|
6
|
+
this.checkedChange = new EventEmitter();
|
|
7
|
+
this.onChange = () => { };
|
|
8
|
+
this.onTouched = () => { };
|
|
9
|
+
}
|
|
10
|
+
writeValue(value) {
|
|
11
|
+
this.checkedStatus = value;
|
|
12
|
+
}
|
|
13
|
+
registerOnChange(fn) {
|
|
14
|
+
this.onChange = fn;
|
|
15
|
+
}
|
|
16
|
+
registerOnTouched(fn) {
|
|
17
|
+
this.onTouched = fn;
|
|
18
|
+
}
|
|
19
|
+
setDisabledState(isDisabled) {
|
|
20
|
+
this.disabled = isDisabled;
|
|
21
|
+
}
|
|
22
|
+
setValue() {
|
|
23
|
+
this.checkedStatus = !this.checkedStatus;
|
|
24
|
+
this.onChange(this.checkedStatus);
|
|
25
|
+
this.checkedChange.emit(this.checkedStatus);
|
|
26
|
+
this.onTouched();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
CheckboxComponent.decorators = [
|
|
30
|
+
{ type: Component, args: [{
|
|
31
|
+
selector: 'dr-checkbox',
|
|
32
|
+
template: "<label>\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"checkedStatus\"\r\n [disabled]=\"disabled\"\r\n (click)=\"setValue()\">\r\n <span>\r\n <ng-content></ng-content>\r\n </span>\r\n</label>\r\n",
|
|
33
|
+
providers: [
|
|
34
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }
|
|
35
|
+
],
|
|
36
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
37
|
+
encapsulation: ViewEncapsulation.ShadowDom,
|
|
38
|
+
styles: ["input+span{vertical-align:middle;line-height:30px}input+span,input+span:before{box-sizing:content-box!important;-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important}input{visibility:hidden;position:absolute}label input+span{position:relative;z-index:19;display:inline-block;margin:0 5px 0 0;line-height:17px;min-height:14px;min-width:14px}label input+span:hover{cursor:pointer}label input+span:before{content:\"\";font-size:14px;border-radius:0;display:inline-block;text-align:center;vertical-align:middle;padding:1px;min-height:12px;line-height:12px;min-width:12px;margin-right:5px;border:1.5px solid #85889C;background-color:#f4f4f4;font-weight:normal;margin-top:-1px}label input+span:before,label:hover input+span:before{background-color:#fff;border-color:#85889c;color:#579bf2;border-radius:2px}label input:checked+span:before,label:hover input:checked+span:before{content:url('data:image/svg+xml; utf8, <svg width=\"12\" height=\"10\" viewBox=\"0 0 12 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M1 5L4.5 8.5L11 1.5\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/> </svg>');background:#579BF2;border-color:#579bf2;color:#fff}label input:disabled+span:before{border-color:#bcbcbc;pointer-events:none}label input[disabled]:checked+span:before{background:#BCBCBC;border-color:#bcbcbc;pointer-events:none}label input:not([disabled])+span:hover:after{content:\"\";width:28px;height:28px;background:#F6F7F8;border-radius:50%;position:absolute;left:-6px;top:-5px;z-index:-1}\n"]
|
|
39
|
+
},] }
|
|
40
|
+
];
|
|
41
|
+
CheckboxComponent.propDecorators = {
|
|
42
|
+
checkedStatus: [{ type: Input }],
|
|
43
|
+
disabled: [{ type: Input }],
|
|
44
|
+
checkedChange: [{ type: Output }]
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBWXpFLE1BQU0sT0FBTyxpQkFBaUI7SUFWOUI7UUFjRSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ1Asa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdDLGFBQVEsR0FBNkIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzlDLGNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUF1Qm5DLENBQUM7SUFyQkMsVUFBVSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7WUF4Q0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2QixxT0FBd0M7Z0JBRXhDLFNBQVMsRUFBRTtvQkFDVCxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztpQkFDMUU7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTOzthQUMzQzs7OzRCQUVFLEtBQUs7dUJBRUwsS0FBSzs0QkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkci1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogQ2hlY2tib3hDb21wb25lbnQsIG11bHRpOiB0cnVlfVxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KClcclxuICBjaGVja2VkU3RhdHVzOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgY2hlY2tlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgb25DaGFuZ2U6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmNoZWNrZWRTdGF0dXMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZSgpIHtcclxuICAgIHRoaXMuY2hlY2tlZFN0YXR1cyA9ICF0aGlzLmNoZWNrZWRTdGF0dXM7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuY2hlY2tlZFN0YXR1cyk7XHJcbiAgICB0aGlzLmNoZWNrZWRDaGFuZ2UuZW1pdCh0aGlzLmNoZWNrZWRTdGF0dXMpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcbn1cclxuIl19
|