@datarailsshared/datarailsshared 1.3.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +122 -4
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.3.1.tgz +0 -0
  4. package/datarailsshared-datarailsshared.d.ts +1 -1
  5. package/datarailsshared-datarailsshared.metadata.json +1 -1
  6. package/esm2015/datarailsshared-datarailsshared.js +2 -2
  7. package/esm2015/lib/{DateTags/dateTag.component.js → date-tags/date-tag.component.js} +1 -1
  8. package/esm2015/lib/date-tags/date-tag.module.js +50 -0
  9. package/esm2015/lib/date-tags/day-tag/day-tag.component.js +79 -0
  10. package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +143 -0
  11. package/esm2015/lib/date-tags/month-tag/month-tag.component.js +86 -0
  12. package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +101 -0
  13. package/esm2015/lib/date-tags/week-tag/week-tag.component.js +124 -0
  14. package/esm2015/lib/date-tags/year-tag/year-tag.component.js +92 -0
  15. package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +46 -0
  16. package/esm2015/lib/dr-inputs/dr-inputs.module.js +18 -0
  17. package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +50 -0
  18. package/esm2015/lib/{DrTags/drTag.component.js → dr-tags/dr-tag.component.js} +1 -1
  19. package/esm2015/lib/dr-tags/dr-tag.module.js +22 -0
  20. package/esm2015/lib/{ListTags/listTag.component.js → list-tags/list-tag.component.js} +1 -1
  21. package/esm2015/lib/list-tags/list-tag.module.js +29 -0
  22. package/esm2015/public-api.js +17 -14
  23. package/fesm2015/datarailsshared-datarailsshared.js +112 -6
  24. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  25. package/lib/{DateTags/dateTag.component.d.ts → date-tags/date-tag.component.d.ts} +0 -0
  26. package/lib/{DateTags/dateTag.module.d.ts → date-tags/date-tag.module.d.ts} +1 -1
  27. package/lib/{DateTags/dayTag/dayTag.component.d.ts → date-tags/day-tag/day-tag.component.d.ts} +1 -1
  28. package/lib/{DateTags/forecastTag/forecastTag.component.d.ts → date-tags/forecast-tag/forecast-tag.component.d.ts} +1 -1
  29. package/lib/{DateTags/monthTag/monthTag.component.d.ts → date-tags/month-tag/month-tag.component.d.ts} +1 -1
  30. package/lib/{DateTags/quarterTag/quarterTag.component.d.ts → date-tags/quarter-tag/quarter-tag.component.d.ts} +1 -1
  31. package/lib/{DateTags/weekTag/weekTag.component.d.ts → date-tags/week-tag/week-tag.component.d.ts} +1 -1
  32. package/lib/{DateTags/yearTag/yearTag.component.d.ts → date-tags/year-tag/year-tag.component.d.ts} +1 -1
  33. package/lib/dr-inputs/checkbox/checkbox.component.d.ts +14 -0
  34. package/lib/dr-inputs/dr-inputs.module.d.ts +2 -0
  35. package/lib/dr-inputs/radio-button/radio-button.component.d.ts +15 -0
  36. package/lib/{DrTags/drTag.component.d.ts → dr-tags/dr-tag.component.d.ts} +0 -0
  37. package/lib/{DrTags/drTag.module.d.ts → dr-tags/dr-tag.module.d.ts} +0 -0
  38. package/lib/{ListTags/listTag.component.d.ts → list-tags/list-tag.component.d.ts} +0 -0
  39. package/lib/{ListTags/listTag.module.d.ts → list-tags/list-tag.module.d.ts} +0 -0
  40. package/package.json +1 -1
  41. package/public-api.d.ts +16 -13
  42. package/datarailsshared-datarailsshared-1.3.0.tgz +0 -0
  43. package/esm2015/lib/DateTags/dateTag.module.js +0 -50
  44. package/esm2015/lib/DateTags/dayTag/dayTag.component.js +0 -79
  45. package/esm2015/lib/DateTags/forecastTag/forecastTag.component.js +0 -143
  46. package/esm2015/lib/DateTags/monthTag/monthTag.component.js +0 -86
  47. package/esm2015/lib/DateTags/quarterTag/quarterTag.component.js +0 -101
  48. package/esm2015/lib/DateTags/weekTag/weekTag.component.js +0 -124
  49. package/esm2015/lib/DateTags/yearTag/yearTag.component.js +0 -92
  50. package/esm2015/lib/DrTags/drTag.module.js +0 -22
  51. package/esm2015/lib/ListTags/listTag.module.js +0 -29
@@ -2,5 +2,5 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- export { components as ɵa } from './lib/DateTags/dateTag.module';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXJhaWxzc2hhcmVkLWRhdGFyYWlsc3NoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvZGF0YXJhaWxzc2hhcmVkLWRhdGFyYWlsc3NoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7Y29tcG9uZW50cyBhcyDJtWF9IGZyb20gJy4vbGliL0RhdGVUYWdzL2RhdGVUYWcubW9kdWxlJzsiXX0=
5
+ export { components as ɵa } from './lib/date-tags/date-tag.module';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXJhaWxzc2hhcmVkLWRhdGFyYWlsc3NoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvZGF0YXJhaWxzc2hhcmVkLWRhdGFyYWlsc3NoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLE1BQU0saUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7Y29tcG9uZW50cyBhcyDJtWF9IGZyb20gJy4vbGliL2RhdGUtdGFncy9kYXRlLXRhZy5tb2R1bGUnOyJdfQ==
@@ -67,4 +67,4 @@ AnyTagComponent.propDecorators = {
67
67
  name: [{ type: Input }],
68
68
  defaultValue: [{ type: Input }]
69
69
  };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZVRhZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9EYXRlVGFncy9kYXRlVGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWhHLHFCQUFxQjtBQU9yQixNQUFNLE9BQU8sZ0JBQWdCO0lBVXpCO1FBVFMsU0FBSSxHQUF1QixTQUFTLENBQUM7UUFDckMsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUN2QixpQkFBWSxHQUF1QixTQUFTLENBQUM7UUFDN0MsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFHeEIsaUJBQVksR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztJQUk5RSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBSTtRQUNuQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQzs7O1lBeEJKLFNBQVMsU0FBQztnQkFDUCxrZ0RBQXFDO2dCQUNyQyxRQUFRLEVBQUUsVUFBVTtnQkFFcEIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3hDOzs7O21CQUVJLEtBQUs7eUJBQ0wsS0FBSzsyQkFDTCxLQUFLOzZCQUNMLEtBQUs7bUNBQ0wsS0FBSzs2QkFDTCxLQUFLOzJCQUNMLE1BQU07O0FBa0JYLE1BQU0sT0FBTyxlQUFlO0lBTTFCO1FBTFUsZUFBVSxHQUEyQixJQUFJLFlBQVksRUFBWSxDQUFDO1FBQ25FLFNBQUksR0FBdUIsU0FBUyxDQUFDO1FBQ3JDLGlCQUFZLEdBQXVCLFNBQVMsQ0FBQztRQUN0RCxZQUFPLEdBQUcsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUM7SUFHNUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxRQUFRLEtBQUksQ0FBQztJQUViLFFBQVEsS0FBSSxDQUFDO0lBRWIsa0JBQWtCLENBQUMsS0FBWTtRQUM3QixNQUFNLEtBQUssR0FBdUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLDZCQUE2QjtJQUMvQixDQUFDOzs7WUE5QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2dCQUNaLFFBQVEsRUFBRSxTQUFTO2FBQ3BCOzs7O3lCQUVFLE1BQU07bUJBQ04sS0FBSzsyQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7SURhdGVUYWd9IGZyb20gXCIuLi9tb2RlbHMvc2VydmVyVGFnc1wiO1xuLy8gaW1wb3J0IHsqfSBmcm9tIFwiXCJcbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcImRhdGVUYWcuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzZWxlY3RvcjogXCJkYXRlLXRhZ1wiLFxuICAgIHN0eWxlVXJsczogW1wiZGF0ZVRhZy5jb21wb25lbnQuY3NzXCIsIFwiLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0Bhbmd1bGFyL21hdGVyaWFsL3ByZWJ1aWx0LXRoZW1lcy9pbmRpZ28tcGluay5jc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlVGFnQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcbiAgICBASW5wdXQoKSBkZWZhdWx0VmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBkYXRlVHlwZUNob3NlbjogYW55ID0ge307XG4gICAgQElucHV0KCkgZmlzY2FsWWVhclN0YXJ0c0Zyb20/OiBudW1iZXI7XG4gICAgQElucHV0KCkgZmlzY2FsWWVhckJhY2s/OiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSBzZWxlY3RlZERhdGU6IEV2ZW50RW1pdHRlcjxJRGF0ZVRhZz4gPSBuZXcgRXZlbnRFbWl0dGVyPElEYXRlVGFnPigpO1xuXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBjaGFuZ2VTZWxlY3RlZERhdGUoZGF0ZSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlIGRhdGVcIiwgZGF0ZSk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5lbWl0KGRhdGUpO1xuICAgICAgICB9LCAzMDApO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc2VsZWN0b3I6IFwiYW55LXRhZ1wiXG59KVxuZXhwb3J0IGNsYXNzIEFueVRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SURhdGVUYWc+ID0gbmV3IEV2ZW50RW1pdHRlcjxJRGF0ZVRhZz4oKTtcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBASW5wdXQoKSBkZWZhdWx0VmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgZGF0ZU9iaiA9IHtkYXRlOiB1bmRlZmluZWR9O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0RGF0ZSgpO1xuICAgIHRoaXMuaW5pdE5hbWUoKTtcbiAgICB0aGlzLmNob3NlblRhZ0hhbmRsZXIodGhpcy5kYXRlT2JqLmRhdGUpO1xuICB9XG5cbiAgaW5pdERhdGUoKSB7fVxuXG4gIGluaXROYW1lKCkge31cblxuICBjaGFuZ2VJbnB1dEhhbmRsZXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSA8SFRNTElucHV0RWxlbWVudD5ldmVudC50YXJnZXQ7XG4gICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKGlucHV0LnZhbHVlKTtcbiAgfVxuXG4gIGNob3NlblRhZ0hhbmRsZXIodmFsdWUpIHtcbiAgICAvLyBuZWVkIGltcGxlbWVudCBpbiBhbGwgdGFnc1xuICB9XG59XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL2RhdGUtdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWhHLHFCQUFxQjtBQU9yQixNQUFNLE9BQU8sZ0JBQWdCO0lBVXpCO1FBVFMsU0FBSSxHQUF1QixTQUFTLENBQUM7UUFDckMsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUN2QixpQkFBWSxHQUF1QixTQUFTLENBQUM7UUFDN0MsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFHeEIsaUJBQVksR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztJQUk5RSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBSTtRQUNuQixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1osQ0FBQzs7O1lBeEJKLFNBQVMsU0FBQztnQkFDUCxrZ0RBQXNDO2dCQUN0QyxRQUFRLEVBQUUsVUFBVTtnQkFFcEIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3hDOzs7O21CQUVJLEtBQUs7eUJBQ0wsS0FBSzsyQkFDTCxLQUFLOzZCQUNMLEtBQUs7bUNBQ0wsS0FBSzs2QkFDTCxLQUFLOzJCQUNMLE1BQU07O0FBa0JYLE1BQU0sT0FBTyxlQUFlO0lBTTFCO1FBTFUsZUFBVSxHQUEyQixJQUFJLFlBQVksRUFBWSxDQUFDO1FBQ25FLFNBQUksR0FBdUIsU0FBUyxDQUFDO1FBQ3JDLGlCQUFZLEdBQXVCLFNBQVMsQ0FBQztRQUN0RCxZQUFPLEdBQUcsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUM7SUFHNUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxRQUFRLEtBQUksQ0FBQztJQUViLFFBQVEsS0FBSSxDQUFDO0lBRWIsa0JBQWtCLENBQUMsS0FBWTtRQUM3QixNQUFNLEtBQUssR0FBdUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3BCLDZCQUE2QjtJQUMvQixDQUFDOzs7WUE5QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxFQUFFO2dCQUNaLFFBQVEsRUFBRSxTQUFTO2FBQ3BCOzs7O3lCQUVFLE1BQU07bUJBQ04sS0FBSzsyQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7SURhdGVUYWd9IGZyb20gXCIuLi9tb2RlbHMvc2VydmVyVGFnc1wiO1xuLy8gaW1wb3J0IHsqfSBmcm9tIFwiXCJcbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcImRhdGUtdGFnLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc2VsZWN0b3I6IFwiZGF0ZS10YWdcIixcbiAgICBzdHlsZVVybHM6IFtcImRhdGUtdGFnLmNvbXBvbmVudC5jc3NcIiwgXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvbWF0ZXJpYWwvcHJlYnVpbHQtdGhlbWVzL2luZGlnby1waW5rLmNzc1wiXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIERhdGVUYWdDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xuICAgIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGRhdGVUeXBlQ2hvc2VuOiBhbnkgPSB7fTtcbiAgICBASW5wdXQoKSBmaXNjYWxZZWFyU3RhcnRzRnJvbT86IG51bWJlcjtcbiAgICBASW5wdXQoKSBmaXNjYWxZZWFyQmFjaz86IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIHNlbGVjdGVkRGF0ZTogRXZlbnRFbWl0dGVyPElEYXRlVGFnPiA9IG5ldyBFdmVudEVtaXR0ZXI8SURhdGVUYWc+KCk7XG5cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgIH1cblxuICAgIGNoYW5nZVNlbGVjdGVkRGF0ZShkYXRlKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJjaGFuZ2UgZGF0ZVwiLCBkYXRlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLmVtaXQoZGF0ZSk7XG4gICAgICAgIH0sIDMwMCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBgLFxuICBzZWxlY3RvcjogXCJhbnktdGFnXCJcbn0pXG5leHBvcnQgY2xhc3MgQW55VGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpIGRhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGF0ZVRhZz4gPSBuZXcgRXZlbnRFbWl0dGVyPElEYXRlVGFnPigpO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRlZmF1bHRWYWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBkYXRlT2JqID0ge2RhdGU6IHVuZGVmaW5lZH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXREYXRlKCk7XG4gICAgdGhpcy5pbml0TmFtZSgpO1xuICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcih0aGlzLmRhdGVPYmouZGF0ZSk7XG4gIH1cblxuICBpbml0RGF0ZSgpIHt9XG5cbiAgaW5pdE5hbWUoKSB7fVxuXG4gIGNoYW5nZUlucHV0SGFuZGxlcihldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBpbnB1dDogSFRNTElucHV0RWxlbWVudCA9IDxIVE1MSW5wdXRFbGVtZW50PmV2ZW50LnRhcmdldDtcbiAgICB0aGlzLmNob3NlblRhZ0hhbmRsZXIoaW5wdXQudmFsdWUpO1xuICB9XG5cbiAgY2hvc2VuVGFnSGFuZGxlcih2YWx1ZSkge1xuICAgIC8vIG5lZWQgaW1wbGVtZW50IGluIGFsbCB0YWdzXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { AnyTagComponent, DateTagComponent } from "./date-tag.component";
3
+ import { DayTagComponent } from "./day-tag/day-tag.component";
4
+ import { WeekTagComponent } from "./week-tag/week-tag.component";
5
+ import { MonthTagComponent } from "./month-tag/month-tag.component";
6
+ import { QuarterTagComponent } from "./quarter-tag/quarter-tag.component";
7
+ import { YearTagComponent } from "./year-tag/year-tag.component";
8
+ import { ForecastTagComponent } from "./forecast-tag/forecast-tag.component";
9
+ import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from "@angular/material-moment-adapter";
10
+ import { CommonModule } from "@angular/common";
11
+ import { MatNativeDateModule } from "@angular/material/core";
12
+ import { MatDatepickerModule } from "@angular/material/datepicker";
13
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
14
+ import { MatFormFieldModule } from "@angular/material/form-field";
15
+ import { MatInputModule } from "@angular/material/input";
16
+ import { MatSelectModule } from "@angular/material/select";
17
+ export const components = [DateTagComponent,
18
+ DayTagComponent,
19
+ WeekTagComponent,
20
+ MonthTagComponent,
21
+ QuarterTagComponent,
22
+ AnyTagComponent,
23
+ YearTagComponent,
24
+ ForecastTagComponent];
25
+ const ɵ0 = { useUtc: true };
26
+ export class DateTagModule {
27
+ }
28
+ DateTagModule.decorators = [
29
+ { type: NgModule, args: [{
30
+ imports: [
31
+ CommonModule,
32
+ MatNativeDateModule,
33
+ MatDatepickerModule,
34
+ FormsModule,
35
+ MatFormFieldModule,
36
+ ReactiveFormsModule,
37
+ MatInputModule,
38
+ MatMomentDateModule,
39
+ MatSelectModule
40
+ ],
41
+ exports: components,
42
+ providers: [
43
+ { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: ɵ0 }
44
+ ],
45
+ declarations: components,
46
+ },] }
47
+ ];
48
+ ;
49
+ export { ɵ0 };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10YWcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL2RhdGUtdGFnLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLGdCQUFnQjtJQUN2QyxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixvQkFBb0IsQ0FBQyxDQUFDO1dBZ0JvQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFLOUUsTUFBTSxPQUFPLGFBQWE7OztZQW5CekIsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLG1CQUFtQjtvQkFDbkIsbUJBQW1CO29CQUNuQixXQUFXO29CQUNYLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixjQUFjO29CQUNkLG1CQUFtQjtvQkFDbkIsZUFBZTtpQkFDbEI7Z0JBQ0QsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLFNBQVMsRUFBRTtvQkFDUCxFQUFFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxRQUFRLElBQWtCLEVBQUU7aUJBQzNFO2dCQUNELFlBQVksRUFBRSxVQUFVO2FBQzNCOztBQUU2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQW55VGFnQ29tcG9uZW50LCBEYXRlVGFnQ29tcG9uZW50IH0gZnJvbSBcIi4vZGF0ZS10YWcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEYXlUYWdDb21wb25lbnQgfSBmcm9tIFwiLi9kYXktdGFnL2RheS10YWcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBXZWVrVGFnQ29tcG9uZW50IH0gZnJvbSBcIi4vd2Vlay10YWcvd2Vlay10YWcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBNb250aFRhZ0NvbXBvbmVudCB9IGZyb20gXCIuL21vbnRoLXRhZy9tb250aC10YWcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBRdWFydGVyVGFnQ29tcG9uZW50IH0gZnJvbSBcIi4vcXVhcnRlci10YWcvcXVhcnRlci10YWcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBZZWFyVGFnQ29tcG9uZW50IH0gZnJvbSBcIi4veWVhci10YWcveWVhci10YWcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBGb3JlY2FzdFRhZ0NvbXBvbmVudCB9IGZyb20gXCIuL2ZvcmVjYXN0LXRhZy9mb3JlY2FzdC10YWcuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TLCBNYXRNb21lbnREYXRlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsLW1vbWVudC1hZGFwdGVyXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlclwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xuXG5leHBvcnQgY29uc3QgY29tcG9uZW50cyA9IFtEYXRlVGFnQ29tcG9uZW50LFxuICAgIERheVRhZ0NvbXBvbmVudCxcbiAgICBXZWVrVGFnQ29tcG9uZW50LFxuICAgIE1vbnRoVGFnQ29tcG9uZW50LFxuICAgIFF1YXJ0ZXJUYWdDb21wb25lbnQsXG4gICAgQW55VGFnQ29tcG9uZW50LFxuICAgIFllYXJUYWdDb21wb25lbnQsXG4gICAgRm9yZWNhc3RUYWdDb21wb25lbnRdO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgTWF0TW9tZW50RGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBjb21wb25lbnRzLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMsIHVzZVZhbHVlOiB7IHVzZVV0YzogdHJ1ZSB9IH1cbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogY29tcG9uZW50cyxcbn0pXG5cbmV4cG9ydCBjbGFzcyBEYXRlVGFnTW9kdWxlIHsgfTtcbiJdfQ==
@@ -0,0 +1,79 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { AnyTagComponent } from "../date-tag.component";
3
+ import { FormControl } from "@angular/forms";
4
+ import { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from "@angular/material-moment-adapter";
5
+ import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from "@angular/material/core";
6
+ // @ts-ignore
7
+ const moment = require("moment");
8
+ const DAY_FORMATS = {
9
+ parse: {
10
+ dateInput: "DD-MM-YYYY",
11
+ },
12
+ display: {
13
+ dateInput: "DD.MM.YYYY",
14
+ monthYearLabel: "MMMM YYYY",
15
+ dateA11yLabel: "LL",
16
+ monthYearA11yLabel: "MMMM YYYY"
17
+ },
18
+ };
19
+ const ɵ0 = DAY_FORMATS;
20
+ export class DayTagComponent extends AnyTagComponent {
21
+ constructor() {
22
+ super();
23
+ this.lockedDate = [];
24
+ this.date = new FormControl(moment());
25
+ this.dateFilter = (date) => {
26
+ const calendarDate = moment(date).unix();
27
+ let status = true;
28
+ this.lockedDate.forEach(timestamp => {
29
+ return status = !(timestamp === calendarDate);
30
+ });
31
+ return status;
32
+ };
33
+ }
34
+ initDate() {
35
+ this.dateObj.date = moment(new Date()).format("YYYY-MM-DD");
36
+ if (this.defaultValue) {
37
+ this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format("YYYY-MM-DD");
38
+ }
39
+ }
40
+ initName() {
41
+ if (!this.name) {
42
+ this.name = "Day";
43
+ }
44
+ }
45
+ chosenTagHandler(value) {
46
+ const date = moment(value).unix();
47
+ const resultTag = {
48
+ name: this.name,
49
+ value: date,
50
+ label: moment.unix(date).format("MM/DD/YYYY"),
51
+ locked: !this.dateFilter(value)
52
+ };
53
+ console.log("resultTag", resultTag);
54
+ this.dateChange.emit(resultTag);
55
+ }
56
+ chosenDateHandler(normalizedDay) {
57
+ this.chosenTagHandler(normalizedDay);
58
+ }
59
+ }
60
+ DayTagComponent.decorators = [
61
+ { type: Component, args: [{
62
+ template: "<div>\n <mat-form-field class=\"date-select-box\">\n <input\n matInput\n placeholder=\"{{name}}\"\n name=\"Day\"\n [formControl]=\"date\"\n [matDatepicker]=\"datepicker\"\n [matDatepickerFilter]=\"dateFilter\"\n (ngModelChange)=\"chosenDateHandler($event)\">\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\n <mat-datepicker\n #datepicker\n startView=\"month\"\n ></mat-datepicker>\n </mat-form-field>\n</div>\n",
63
+ selector: "day-tag",
64
+ providers: [
65
+ {
66
+ provide: DateAdapter,
67
+ useClass: MomentDateAdapter,
68
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
69
+ },
70
+ { provide: MAT_DATE_FORMATS, useValue: ɵ0 },
71
+ ]
72
+ },] }
73
+ ];
74
+ DayTagComponent.ctorParameters = () => [];
75
+ DayTagComponent.propDecorators = {
76
+ lockedDate: [{ type: Input }]
77
+ };
78
+ export { ɵ0 };
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXRhZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kYXRlLXRhZ3MvZGF5LXRhZy9kYXktdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSwrQkFBK0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVqQyxNQUFNLFdBQVcsR0FBRztJQUNsQixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsWUFBWTtLQUN4QjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLGNBQWMsRUFBRSxXQUFXO1FBQzNCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO1dBVzBDLFdBQVc7QUFJdkQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBZTtJQUtoRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBTEgsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUVoQyxTQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQW1DL0IsZUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztZQUVsQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDbEMsT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDLFNBQVMsS0FBSyxZQUFZLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQTtJQXhDRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMzRjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxNQUFNLFNBQVMsR0FBYTtZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7WUFDN0MsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7U0FDbEMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxhQUFhO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7WUFqREosU0FBUyxTQUFDO2dCQUNQLDZrQkFBcUM7Z0JBQ3JDLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLFdBQVc7d0JBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7d0JBQzNCLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSwrQkFBK0IsQ0FBQztxQkFDekQ7b0JBQ0QsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxJQUFhLEVBQUM7aUJBQ25EO2FBQ0o7Ozs7eUJBR0UsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7SURhdGVUYWd9IGZyb20gXCIuLi8uLi9tb2RlbHMvc2VydmVyVGFnc1wiO1xuaW1wb3J0IHtNb21lbnR9IGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCB7QW55VGFnQ29tcG9uZW50fSBmcm9tIFwiLi4vZGF0ZS10YWcuY29tcG9uZW50XCI7XG5pbXBvcnQge01hdERhdGVwaWNrZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7TW9tZW50RGF0ZUFkYXB0ZXIsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlN9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlclwiO1xuaW1wb3J0IHtEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUUywgTUFUX0RBVEVfTE9DQUxFfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuLy8gQHRzLWlnbm9yZVxuY29uc3QgbW9tZW50ID0gcmVxdWlyZShcIm1vbWVudFwiKTtcblxuY29uc3QgREFZX0ZPUk1BVFMgPSB7XG4gIHBhcnNlOiB7XG4gICAgZGF0ZUlucHV0OiBcIkRELU1NLVlZWVlcIixcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogXCJERC5NTS5ZWVlZXCIsXG4gICAgbW9udGhZZWFyTGFiZWw6IFwiTU1NTSBZWVlZXCIsXG4gICAgZGF0ZUExMXlMYWJlbDogXCJMTFwiLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogXCJNTU1NIFlZWVlcIlxuICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6IFwiZGF5LXRhZy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHNlbGVjdG9yOiBcImRheS10YWdcIixcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlcixcbiAgICAgICAgZGVwczogW01BVF9EQVRFX0xPQ0FMRSwgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OU10sXG4gICAgICB9LFxuICAgICAge3Byb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBEQVlfRk9STUFUU30sXG4gICAgXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBEYXlUYWdDb21wb25lbnQgZXh0ZW5kcyBBbnlUYWdDb21wb25lbnQge1xuICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xuXG4gIGRhdGUgPSBuZXcgRm9ybUNvbnRyb2wobW9tZW50KCkpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGluaXREYXRlKCkge1xuICAgICAgdGhpcy5kYXRlT2JqLmRhdGUgPSBtb21lbnQobmV3IERhdGUoKSkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKTtcbiAgICAgIGlmICh0aGlzLmRlZmF1bHRWYWx1ZSkge1xuICAgICAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLmRlZmF1bHRWYWx1ZSAqIDEwMDApKS51dGMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGluaXROYW1lKCkge1xuICAgICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gXCJEYXlcIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjaG9zZW5UYWdIYW5kbGVyKHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQodmFsdWUpLnVuaXgoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBkYXRlLFxuICAgICAgICAgICAgbGFiZWw6IG1vbWVudC51bml4KGRhdGUpLmZvcm1hdChcIk1NL0REL1lZWVlcIiksXG4gICAgICAgICAgICBsb2NrZWQ6ICF0aGlzLmRhdGVGaWx0ZXIodmFsdWUpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKFwicmVzdWx0VGFnXCIsIHJlc3VsdFRhZyk7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHJlc3VsdFRhZyk7XG4gICAgfVxuXG4gICAgY2hvc2VuRGF0ZUhhbmRsZXIobm9ybWFsaXplZERheSkge1xuICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKG5vcm1hbGl6ZWREYXkpO1xuICAgIH1cblxuICAgIGRhdGVGaWx0ZXIgPSAoZGF0ZSkgPT4ge1xuICAgICAgY29uc3QgY2FsZW5kYXJEYXRlID0gbW9tZW50KGRhdGUpLnVuaXgoKTtcbiAgICAgIGxldCBzdGF0dXMgPSB0cnVlO1xuXG4gICAgICB0aGlzLmxvY2tlZERhdGUuZm9yRWFjaCh0aW1lc3RhbXAgPT4ge1xuICAgICAgICByZXR1cm4gc3RhdHVzID0gISh0aW1lc3RhbXAgPT09IGNhbGVuZGFyRGF0ZSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,143 @@
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 ForecastTagComponent extends AnyTagComponent {
6
+ constructor() {
7
+ super();
8
+ this.lockedDate = [];
9
+ this.forecastValue = undefined;
10
+ this.forecastTags = [
11
+ { "value": 0, "label": "0+12" },
12
+ { "value": 1, "label": "1+11" },
13
+ { "value": 2, "label": "2+10" },
14
+ { "value": 3, "label": "3+9" },
15
+ { "value": 4, "label": "4+8" },
16
+ { "value": 5, "label": "5+7" },
17
+ { "value": 6, "label": "6+6" },
18
+ { "value": 7, "label": "7+5" },
19
+ { "value": 8, "label": "8+4" },
20
+ { "value": 9, "label": "9+3" },
21
+ { "value": 10, "label": "10+2" },
22
+ { "value": 11, "label": "11+1" }
23
+ ];
24
+ this.dateFilter = (date) => {
25
+ const forecastDate = moment.unix(date);
26
+ let status = true;
27
+ this.lockedDate.forEach(timestamp => {
28
+ const locked = moment.unix(timestamp);
29
+ return status = !(locked.month() === forecastDate.month() && locked.year() === forecastDate.year());
30
+ });
31
+ return status;
32
+ };
33
+ }
34
+ initDate() {
35
+ let dateVal = new Date();
36
+ if (this.defaultValue) {
37
+ dateVal = new Date(this.defaultValue * 1000);
38
+ }
39
+ let fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;
40
+ let fiscal_year_back = this.fiscalYearBack || false;
41
+ this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;
42
+ let fiscal_year = this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, fiscal_year_back);
43
+ console.log("test", dateVal, fiscal_year_starts_from, this.forecastValue, fiscal_year);
44
+ this.dateObj.date = moment(new Date(fiscal_year, 0, 1)).format("YYYY");
45
+ this.updateLockedDate();
46
+ }
47
+ updateLockedDate() {
48
+ for (let forecastTag of this.forecastTags) {
49
+ forecastTag.disable = false;
50
+ this.lockedDate.forEach(timestamp => {
51
+ const locked = moment.unix(timestamp);
52
+ if (locked.month() - 1 === forecastTag.value && +locked.year() + 1 === +this.dateObj.date) {
53
+ forecastTag.disable = true;
54
+ }
55
+ });
56
+ }
57
+ }
58
+ initName() {
59
+ if (!this.name) {
60
+ this.name = "Forecast";
61
+ }
62
+ }
63
+ getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {
64
+ let all_months = [];
65
+ for (let i = fiscal_year_starts_from; i < 13; i++) {
66
+ all_months.push(i);
67
+ }
68
+ for (let i = 1; i < fiscal_year_starts_from; i++) {
69
+ all_months.push(i);
70
+ }
71
+ return all_months.indexOf(dateObj.getMonth() + 1) + 1;
72
+ }
73
+ getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {
74
+ let fiscal_year = dateObj.getFullYear();
75
+ if (!fiscal_year_back) {
76
+ if (dateObj.getMonth() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {
77
+ fiscal_year += 1;
78
+ }
79
+ }
80
+ else {
81
+ if (dateObj.getMonth() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {
82
+ fiscal_year -= 1;
83
+ }
84
+ }
85
+ return fiscal_year;
86
+ }
87
+ getForecastLabelFromValue(value, fiscal_year_starts_from, fiscal_year_back) {
88
+ let label = "";
89
+ if (value) {
90
+ let dateObj = new Date(value * 1000);
91
+ let fiscal_month = this.getFiscalMonthFromDate(dateObj, fiscal_year_starts_from);
92
+ let fiscal_year = this.getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back);
93
+ label = (fiscal_month - 1) + "+" + (13 - fiscal_month) + " (" + fiscal_year + ")";
94
+ }
95
+ return label;
96
+ }
97
+ changeTagInputHandler(event) {
98
+ this.chosenTagHandler();
99
+ }
100
+ changeYearInputHandler(event) {
101
+ this.updateLockedDate();
102
+ this.chosenTagHandler();
103
+ }
104
+ chosenTagHandler() {
105
+ let month = this.forecastValue;
106
+ let year = Number.parseInt(this.dateObj.date);
107
+ let timeStampVal = 0;
108
+ let label = "";
109
+ if (!Number.isNaN(month) && !Number.isNaN(year)) {
110
+ let date = new Date(year, month, 1, 12, 0, 0, 0);
111
+ let fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;
112
+ let fiscal_year_back = this.fiscalYearBack || false;
113
+ if (fiscal_year_starts_from !== 1) {
114
+ if (!fiscal_year_back)
115
+ date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);
116
+ else
117
+ date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);
118
+ }
119
+ timeStampVal = date.getTime() / 1000;
120
+ label = this.getForecastLabelFromValue(timeStampVal, fiscal_year_starts_from, fiscal_year_back);
121
+ }
122
+ const resultTag = {
123
+ "name": this.name,
124
+ "value": timeStampVal,
125
+ "label": label,
126
+ "locked": !this.dateFilter(timeStampVal)
127
+ };
128
+ this.dateChange.emit(resultTag);
129
+ }
130
+ }
131
+ ForecastTagComponent.decorators = [
132
+ { type: Component, args: [{
133
+ template: "<div>\n <mat-form-field style=\"margin-right: 3px; margin-bottom:3px\">\n <mat-select placeholder=\"{{name}}\" (selectionChange)=\"changeTagInputHandler($event)\" [(value)]=\"forecastValue\">\n <mat-option *ngFor=\"let forecastTag of forecastTags\" [value]=\"forecastTag.value\" [disabled]=\"forecastTag.disable\">{{forecastTag.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"date-select-box\">\n <input matInput placeholder=\"Year\" type=\"number\" name=\"Year\"\n (change)=\"changeYearInputHandler($event)\"\n [(ngModel)]=\"dateObj.date\">\n </mat-form-field>\n</div>\n",
134
+ selector: "forecast-tag"
135
+ },] }
136
+ ];
137
+ ForecastTagComponent.ctorParameters = () => [];
138
+ ForecastTagComponent.propDecorators = {
139
+ fiscalYearStartsFrom: [{ type: Input }],
140
+ fiscalYearBack: [{ type: Input }],
141
+ lockedDate: [{ type: Input }]
142
+ };
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZWNhc3QtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9mb3JlY2FzdC10YWcvZm9yZWNhc3QtdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHdEQsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU9qQyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQXFCdkQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQW5CRCxlQUFVLEdBQVUsRUFBRSxDQUFDO1FBQ2hDLGtCQUFhLEdBQXVCLFNBQVMsQ0FBQztRQUU5QyxpQkFBWSxHQUFVO1lBQ3BCLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDO1lBQzdCLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDO1lBQzdCLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDO1lBQzdCLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDO1lBQzVCLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDO1lBQzVCLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDO1lBQzVCLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDO1lBQzVCLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDO1lBQzVCLEVBQUMs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QyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pELElBQUksdUJBQXVCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQztZQUM3RCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksS0FBSyxDQUFDO1lBQ3BELElBQUksdUJBQXVCLEtBQUssQ0FBQyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsZ0JBQWdCO29CQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsQ0FBQzs7b0JBRTlELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDO2FBQ2hFO1lBRUQsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDckMsS0FBSyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztTQUNqRztRQUVELE1BQU0sU0FBUyxHQUFhO1lBQ3RCLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNqQixPQUFPLEVBQUUsWUFBWTtZQUNyQixPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1NBQzNDLENBQUM7UUFFSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs7WUF2SkYsU0FBUyxTQUFDO2dCQUNQLDBxQkFBMEM7Z0JBQzFDLFFBQVEsRUFBRSxjQUFjO2FBQzNCOzs7O21DQUdFLEtBQUs7NkJBQ0wsS0FBSzt5QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtNb21lbnR9IGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCB7SURhdGVUYWd9IGZyb20gXCIuLi8uLi9tb2RlbHMvc2VydmVyVGFnc1wiO1xuaW1wb3J0IHtBbnlUYWdDb21wb25lbnR9IGZyb20gXCIuLi9kYXRlLXRhZy5jb21wb25lbnRcIjtcbmltcG9ydCB7TWF0U2VsZWN0Q2hhbmdlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XG5pbXBvcnQge01hdEJ1dHRvblRvZ2dsZUNoYW5nZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGVcIjtcbi8vIEB0cy1pZ25vcmVcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoXCJtb21lbnRcIik7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcImZvcmVjYXN0LXRhZy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHNlbGVjdG9yOiBcImZvcmVjYXN0LXRhZ1wiLFxufSlcblxuZXhwb3J0IGNsYXNzIEZvcmVjYXN0VGFnQ29tcG9uZW50IGV4dGVuZHMgQW55VGFnQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZmlzY2FsWWVhclN0YXJ0c0Zyb20/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGZpc2NhbFllYXJCYWNrPzogYm9vbGVhbjtcbiAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcbiAgZm9yZWNhc3RWYWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIGZvcmVjYXN0VGFnczogYW55W10gPSBbXG4gICAge1widmFsdWVcIjogMCwgXCJsYWJlbFwiOiBcIjArMTJcIn0sXG4gICAge1widmFsdWVcIjogMSwgXCJsYWJlbFwiOiBcIjErMTFcIn0sXG4gICAge1widmFsdWVcIjogMiwgXCJsYWJlbFwiOiBcIjIrMTBcIn0sXG4gICAge1widmFsdWVcIjogMywgXCJsYWJlbFwiOiBcIjMrOVwifSxcbiAgICB7XCJ2YWx1ZVwiOiA0LCBcImxhYmVsXCI6IFwiNCs4XCJ9LFxuICAgIHtcInZhbHVlXCI6IDUsIFwibGFiZWxcIjogXCI1KzdcIn0sXG4gICAge1widmFsdWVcIjogNiwgXCJsYWJlbFwiOiBcIjYrNlwifSxcbiAgICB7XCJ2YWx1ZVwiOiA3LCBcImxhYmVsXCI6IFwiNys1XCJ9LFxuICAgIHtcInZhbHVlXCI6IDgsIFwibGFiZWxcIjogXCI4KzRcIn0sXG4gICAge1widmFsdWVcIjogOSwgXCJsYWJlbFwiOiBcIjkrM1wifSxcbiAgICB7XCJ2YWx1ZVwiOiAxMCwgXCJsYWJlbFwiOiBcIjEwKzJcIn0sXG4gICAge1widmFsdWVcIjogMTEsIFwibGFiZWxcIjogXCIxMSsxXCJ9XG4gIF07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGluaXREYXRlKCkge1xuICAgIGxldCBkYXRlVmFsID0gbmV3IERhdGUoKTtcbiAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUpIHtcbiAgICAgIGRhdGVWYWwgPSBuZXcgRGF0ZSh0aGlzLmRlZmF1bHRWYWx1ZSAqIDEwMDApO1xuICAgIH1cbiAgICBsZXQgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20gPSB0aGlzLmZpc2NhbFllYXJTdGFydHNGcm9tIHx8IDE7XG4gICAgbGV0IGZpc2NhbF95ZWFyX2JhY2sgPSB0aGlzLmZpc2NhbFllYXJCYWNrIHx8IGZhbHNlO1xuICAgIHRoaXMuZm9yZWNhc3RWYWx1ZSA9IHRoaXMuZ2V0RmlzY2FsTW9udGhGcm9tRGF0ZShkYXRlVmFsLCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSkgLSAxO1xuICAgIGxldCBmaXNjYWxfeWVhciA9IHRoaXMuZ2V0RmlzY2FsWWVhckZyb21EYXRlKGRhdGVWYWwsIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tLCBmaXNjYWxfeWVhcl9iYWNrKTtcblxuICAgIGNvbnNvbGUubG9nKFwidGVzdFwiLCBkYXRlVmFsLCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSwgdGhpcy5mb3JlY2FzdFZhbHVlLCBmaXNjYWxfeWVhcik7XG5cbiAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IG1vbWVudChuZXcgRGF0ZShmaXNjYWxfeWVhciwgMCwgMSkpLmZvcm1hdChcIllZWVlcIik7XG5cbiAgICB0aGlzLnVwZGF0ZUxvY2tlZERhdGUoKTtcbiAgfVxuXG4gIHVwZGF0ZUxvY2tlZERhdGUoKSB7XG4gICAgZm9yIChsZXQgZm9yZWNhc3RUYWcgb2YgdGhpcy5mb3JlY2FzdFRhZ3MpIHtcbiAgICAgIGZvcmVjYXN0VGFnLmRpc2FibGUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5sb2NrZWREYXRlLmZvckVhY2godGltZXN0YW1wID0+IHtcbiAgICAgICAgY29uc3QgbG9ja2VkID0gbW9tZW50LnVuaXgodGltZXN0YW1wKTtcblxuICAgICAgICBpZiAobG9ja2VkLm1vbnRoKCkgLSAxID09PSBmb3JlY2FzdFRhZy52YWx1ZSAmJiArbG9ja2VkLnllYXIoKSArIDEgPT09ICt0aGlzLmRhdGVPYmouZGF0ZSkge1xuICAgICAgICAgIGZvcmVjYXN0VGFnLmRpc2FibGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpbml0TmFtZSgpIHtcbiAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgdGhpcy5uYW1lID0gXCJGb3JlY2FzdFwiO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpc2NhbE1vbnRoRnJvbURhdGUoZGF0ZU9iaiwgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20pIHtcbiAgICBsZXQgYWxsX21vbnRocyA9IFtdO1xuXG4gICAgZm9yIChsZXQgaSA9IGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tOyBpIDwgMTM7IGkrKykge1xuICAgICAgYWxsX21vbnRocy5wdXNoKGkpO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb207IGkrKykge1xuICAgICAgYWxsX21vbnRocy5wdXNoKGkpO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxfbW9udGhzLmluZGV4T2YoZGF0ZU9iai5nZXRNb250aCgpICsgMSkgKyAxO1xuICB9XG5cbiAgZ2V0RmlzY2FsWWVhckZyb21EYXRlKGRhdGVPYmosIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tLCBmaXNjYWxfeWVhcl9iYWNrKSB7XG4gICAgbGV0IGZpc2NhbF95ZWFyID0gZGF0ZU9iai5nZXRGdWxsWWVhcigpO1xuXG4gICAgaWYgKCFmaXNjYWxfeWVhcl9iYWNrKSB7XG4gICAgICBpZiAoZGF0ZU9iai5nZXRNb250aCgpICsgMSA+PSBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSAmJiBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSAhPT0gMSkge1xuICAgICAgICBmaXNjYWxfeWVhciArPSAxO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZGF0ZU9iai5nZXRNb250aCgpICsgMSA8IGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tICYmIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tICE9PSAxKSB7XG4gICAgICAgIGZpc2NhbF95ZWFyIC09IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpc2NhbF95ZWFyO1xuICB9XG5cbiAgZ2V0Rm9yZWNhc3RMYWJlbEZyb21WYWx1ZSh2YWx1ZSwgZmlzY2FsX3llYXJfc3RhcnRzX2Zyb20sIGZpc2NhbF95ZWFyX2JhY2spIHtcbiAgICBsZXQgbGFiZWwgPSBcIlwiO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgbGV0IGRhdGVPYmogPSBuZXcgRGF0ZSh2YWx1ZSAqIDEwMDApO1xuXG4gICAgICBsZXQgZmlzY2FsX21vbnRoID0gdGhpcy5nZXRGaXNjYWxNb250aEZyb21EYXRlKGRhdGVPYmosIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tKTtcbiAgICAgIGxldCBmaXNjYWxfeWVhciA9IHRoaXMuZ2V0RmlzY2FsWWVhckZyb21EYXRlKGRhdGVPYmosIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tLCBmaXNjYWxfeWVhcl9iYWNrKTtcblxuICAgICAgbGFiZWwgPSAoZmlzY2FsX21vbnRoIC0gMSkgKyBcIitcIiArICgxMyAtIGZpc2NhbF9tb250aCkgKyBcIiAoXCIgKyBmaXNjYWxfeWVhciArIFwiKVwiO1xuICAgIH1cbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICBjaGFuZ2VUYWdJbnB1dEhhbmRsZXIoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSB8IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSkge1xuICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcigpO1xuICB9XG5cbiAgY2hhbmdlWWVhcklucHV0SGFuZGxlcihldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLnVwZGF0ZUxvY2tlZERhdGUoKTtcbiAgICB0aGlzLmNob3NlblRhZ0hhbmRsZXIoKTtcbiAgfVxuXG4gIGNob3NlblRhZ0hhbmRsZXIoKSB7XG4gICAgbGV0IG1vbnRoID0gdGhpcy5mb3JlY2FzdFZhbHVlO1xuICAgIGxldCB5ZWFyID0gTnVtYmVyLnBhcnNlSW50KHRoaXMuZGF0ZU9iai5kYXRlKTtcblxuICAgIGxldCB0aW1lU3RhbXBWYWwgPSAwO1xuICAgIGxldCBsYWJlbCA9IFwiXCI7XG5cbiAgICBpZiAoIU51bWJlci5pc05hTihtb250aCkgJiYgIU51bWJlci5pc05hTih5ZWFyKSkge1xuXG5cbiAgICAgIGxldCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEsIDEyLCAwLCAwLCAwKTtcbiAgICAgIGxldCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSA9IHRoaXMuZmlzY2FsWWVhclN0YXJ0c0Zyb20gfHwgMTtcbiAgICAgIGxldCBmaXNjYWxfeWVhcl9iYWNrID0gdGhpcy5maXNjYWxZZWFyQmFjayB8fCBmYWxzZTtcbiAgICAgIGlmIChmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSAhPT0gMSkge1xuICAgICAgICBpZiAoIWZpc2NhbF95ZWFyX2JhY2spXG4gICAgICAgICAgZGF0ZS5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgLSAxMyArIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGRhdGUuc2V0TW9udGgoZGF0ZS5nZXRNb250aCgpIC0gMSArIGZpc2NhbF95ZWFyX3N0YXJ0c19mcm9tKTtcbiAgICAgIH1cblxuICAgICAgdGltZVN0YW1wVmFsID0gZGF0ZS5nZXRUaW1lKCkgLyAxMDAwO1xuICAgICAgbGFiZWwgPSB0aGlzLmdldEZvcmVjYXN0TGFiZWxGcm9tVmFsdWUodGltZVN0YW1wVmFsLCBmaXNjYWxfeWVhcl9zdGFydHNfZnJvbSwgZmlzY2FsX3llYXJfYmFjayk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcbiAgICAgICAgICBcIm5hbWVcIjogdGhpcy5uYW1lLFxuICAgICAgICAgIFwidmFsdWVcIjogdGltZVN0YW1wVmFsLFxuICAgICAgICAgIFwibGFiZWxcIjogbGFiZWwsXG4gICAgICAgICAgXCJsb2NrZWRcIjogIXRoaXMuZGF0ZUZpbHRlcih0aW1lU3RhbXBWYWwpXG4gICAgICB9O1xuXG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQocmVzdWx0VGFnKTtcbiAgfVxuXG4gIGRhdGVGaWx0ZXIgPSAoZGF0ZSkgPT4ge1xuICAgIGNvbnN0IGZvcmVjYXN0RGF0ZSA9IG1vbWVudC51bml4KGRhdGUpO1xuICAgIGxldCBzdGF0dXMgPSB0cnVlO1xuXG4gICAgdGhpcy5sb2NrZWREYXRlLmZvckVhY2godGltZXN0YW1wID0+IHtcbiAgICAgIGNvbnN0IGxvY2tlZCA9IG1vbWVudC51bml4KHRpbWVzdGFtcCk7XG5cbiAgICAgIHJldHVybiBzdGF0dXMgPSAhKGxvY2tlZC5tb250aCgpID09PSBmb3JlY2FzdERhdGUubW9udGgoKSAmJiBsb2NrZWQueWVhcigpID09PSBmb3JlY2FzdERhdGUueWVhcigpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBzdGF0dXM7XG4gIH1cbn1cbiJdfQ==
@@ -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>\n <mat-form-field class=\"date-select-box\">\n <input\n matInput\n placeholder=\"{{name}}\"\n name=\"Month\"\n [formControl]=\"date\"\n [matDatepickerFilter]=\"dateFilter\"\n [matDatepicker]=\"datepicker\">\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\n <mat-datepicker\n #datepicker\n startView=\"year\"\n (monthSelected)=\"chosenMonthHandler($event, datepicker)\"\n ></mat-datepicker>\n </mat-form-field>\n</div>\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9tb250aC10YWcvbW9udGgtdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBZ0IsS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdoRyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsT0FBTyxFQUFDLCtCQUErQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDcEcsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVqQyxNQUFNLGFBQWEsR0FBRztJQUNwQixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsWUFBWTtLQUN4QjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxXQUFXO1FBQ3RCLGNBQWMsRUFBRSxXQUFXO1FBQzNCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO1dBVzBDLGFBQWE7QUFJekQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGVBQWU7SUFLbEQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUxILGVBQVUsR0FBVSxFQUFFLENBQUM7UUFFaEMsU0FBSSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUEwQ2pDLGVBQVUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFFbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBRXhDLE9BQU8sTUFBTSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMxRyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQTtJQWpERCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN4RjthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ2xCLE1BQU0sVUFBVSxHQUFXLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixNQUFNLFNBQVMsR0FBYTtZQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzNDLEtBQUssRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUNyQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztTQUNsQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLGVBQXVCLEVBQUUsVUFBaUM7UUFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OztZQXhESixTQUFTLFNBQUM7Z0JBQ1AsMmxCQUF1QztnQkFDdkMsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsV0FBVzt3QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjt3QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3FCQUN6RDtvQkFDRCxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLElBQWUsRUFBQztpQkFDckQ7YUFDSjs7Ozt5QkFHSSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7TW9tZW50fSBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQge0lEYXRlVGFnfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3NcIjtcbmltcG9ydCB7QW55VGFnQ29tcG9uZW50fSBmcm9tIFwiLi4vZGF0ZS10YWcuY29tcG9uZW50XCI7XG5pbXBvcnQge01hdERhdGVwaWNrZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7RGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7TUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgTW9tZW50RGF0ZUFkYXB0ZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlclwiO1xuLy8gQHRzLWlnbm9yZVxuY29uc3QgbW9tZW50ID0gcmVxdWlyZShcIm1vbWVudFwiKTtcblxuY29uc3QgTU9OVEhfRk9STUFUUyA9IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6IFwiREQtTU0tWVlZWVwiLFxuICB9LFxuICBkaXNwbGF5OiB7XG4gICAgZGF0ZUlucHV0OiBcIk1NTU0gWVlZWVwiLFxuICAgIG1vbnRoWWVhckxhYmVsOiBcIk1NTU0gWVlZWVwiLFxuICAgIGRhdGVBMTF5TGFiZWw6IFwiTExcIixcbiAgICBtb250aFllYXJBMTF5TGFiZWw6IFwiTU1NTSBZWVlZXCJcbiAgfSxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcIm1vbnRoLXRhZy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHNlbGVjdG9yOiBcIm1vbnRoLXRhZ1wiLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxuICAgICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcbiAgICAgIH0sXG4gICAgICB7cHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IE1PTlRIX0ZPUk1BVFN9LFxuICAgIF0sXG59KVxuXG5leHBvcnQgY2xhc3MgTW9udGhUYWdDb21wb25lbnQgZXh0ZW5kcyBBbnlUYWdDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueVtdID0gW107XG5cbiAgICBkYXRlID0gbmV3IEZvcm1Db250cm9sKG1vbWVudCgpKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGluaXREYXRlKCkge1xuICAgICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gbW9tZW50KG5ldyBEYXRlKHRoaXMuZGVmYXVsdFZhbHVlICogMTAwMCkpLnV0YygpLmZvcm1hdChcIllZWVktTU1cIik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IG1vbWVudChuZXcgRGF0ZSgpKS5mb3JtYXQoXCJZWVlZLU1NXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGluaXROYW1lKCkge1xuICAgICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gXCJNb250aCBhbmQgWWVhclwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNob3NlblRhZ0hhbmRsZXIodmFsdWUpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0RGF0ZTogTW9tZW50ID0gbW9tZW50LnV0Yyh2YWx1ZSk7XG4gICAgICAgIHJlc3VsdERhdGUuaG91cigxMik7XG4gICAgICAgIGNvbnN0IHJlc3VsdFRhZzogSURhdGVUYWcgPSB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQocmVzdWx0RGF0ZS5mb3JtYXQoXCJYXCIpLCAxMCksXG4gICAgICAgICAgICBsYWJlbDogcmVzdWx0RGF0ZS5mb3JtYXQoXCJNTU1NIFlZWVlcIiksXG4gICAgICAgICAgICBsb2NrZWQ6ICF0aGlzLmRhdGVGaWx0ZXIodmFsdWUpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3VsdFRhZywgdmFsdWUpO1xuICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyZXN1bHRUYWcpO1xuICAgIH1cblxuICAgIGNob3Nlbk1vbnRoSGFuZGxlcihub3JtYWxpemVkTW9udGg6IE1vbWVudCwgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxNb21lbnQ+KSB7XG4gICAgICAgIHRoaXMuZGF0ZS5zZXRWYWx1ZShub3JtYWxpemVkTW9udGgpO1xuICAgICAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IHRoaXMuZGF0ZS52YWx1ZTtcblxuICAgICAgICB0aGlzLmNob3NlblRhZ0hhbmRsZXIodGhpcy5kYXRlLnZhbHVlKTtcblxuICAgICAgICBkYXRlcGlja2VyLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgZGF0ZUZpbHRlciA9IChkYXRlKSA9PiB7XG4gICAgICBjb25zdCBjYWxlbmRhckRhdGUgPSBtb21lbnQoZGF0ZSk7XG4gICAgICBsZXQgc3RhdHVzID0gdHJ1ZTtcblxuICAgICAgdGhpcy5sb2NrZWREYXRlLmZvckVhY2godGltZXN0YW1wID0+IHtcbiAgICAgICAgY29uc3QgbG9ja0RhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuXG4gICAgICAgIHJldHVybiBzdGF0dXMgPSAhKGxvY2tEYXRlLnllYXIoKSA9PT0gY2FsZW5kYXJEYXRlLnllYXIoKSAmJiBsb2NrRGF0ZS5tb250aCgpID09PSBjYWxlbmRhckRhdGUubW9udGgoKSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHN0YXR1cztcbiAgICB9XG59XG4iXX0=
@@ -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>\n <mat-form-field>\n <mat-select placeholder=\"{{name}}\" (selectionChange)=\"changeSelectHandler($event)\" [(value)]=\"selectedValue\">\n <mat-option *ngFor=\"let quarter of quarters\" [value]=\"quarter.value\" [disabled]=\"quarter.disable\">{{quarter.label}}</mat-option>\n </mat-select>\n </mat-form-field>\n</div>\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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IElucHV0LCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0lEYXRlVGFnfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3NcIjtcbmltcG9ydCB7TW9tZW50fSBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQge0FueVRhZ0NvbXBvbmVudH0gZnJvbSBcIi4uL2RhdGUtdGFnLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtNYXRTZWxlY3RDaGFuZ2V9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcbi8vIEB0cy1pZ25vcmVcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoXCJtb21lbnRcIik7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcInF1YXJ0ZXItdGFnLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc2VsZWN0b3I6IFwicXVhcnRlci10YWdcIixcbn0pXG5leHBvcnQgY2xhc3MgUXVhcnRlclRhZ0NvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZFZhbHVlID0gMDtcbiAgICBxdWFydGVyczogYW55W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgdGhpcy5pbml0TmFtZSgpO1xuICAgICAgdGhpcy5xdWFydGVycyA9IHRoaXMuZ2V0UXVhcnRlck9wdGlvbnMoKTtcblxuICAgICAgZm9yIChjb25zdCBxdWFydGVyIG9mIHRoaXMucXVhcnRlcnMpIHtcbiAgICAgICAgICBxdWFydGVyLmRpc2FibGUgPSBmYWxzZTtcblxuICAgICAgICAgIGlmIChxdWFydGVyLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gcXVhcnRlci52YWx1ZTtcbiAgICAgICAgICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKHF1YXJ0ZXIudmFsdWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuZGF0ZUZpbHRlcihxdWFydGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0TmFtZSgpIHtcbiAgICAgIGlmICghdGhpcy5uYW1lKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IFwiUXVhcnRlclwiO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZVNlbGVjdEhhbmRsZXIoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSkge1xuICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKGV2ZW50LnZhbHVlKTtcbiAgICB9XG5cbiAgICBjaG9zZW5UYWdIYW5kbGVyKHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSAqIDEwMDApO1xuICAgICAgICBjb25zdCByZXN1bHREYXRlOiBNb21lbnQgPSBtb21lbnQudXRjKGRhdGUpO1xuICAgICAgICBjb25zdCByZXN1bHRUYWc6IElEYXRlVGFnID0ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgdmFsdWU6IHBhcnNlSW50KHJlc3VsdERhdGUuZm9ybWF0KFwiWFwiKSwgMTApLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMuZ2V0UXVhcnRlckxhYmVsKHJlc3VsdERhdGUudG9TdHJpbmcoKSksXG4gICAgICAgICAgICBsb2NrZWQ6ICF0aGlzLmRhdGVGaWx0ZXIodmFsdWUpXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHJlc3VsdFRhZyk7XG4gICAgfVxuXG4gICAgZ2V0UXVhcnRlck9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IHF1YXJ0ZXJzQmVmb3JlVG9kYXkgPSA4O1xuICAgICAgICBjb25zdCBxdWFydGVyc0FmdGVyVG9kYXkgPSA4O1xuICAgICAgICBjb25zdCBkYXRlTm93ID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZGF0ZU5vd1VuaXggPSB0aGlzLmdldFVUQ1RpbWVzdGFtcChkYXRlTm93KTtcbiAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IGRhdGVOb3dVbml4O1xuICAgICAgICBsZXQgdGVtcERhdGUgPSAgbmV3IERhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgZGVmYXVsdFZhbHVlID0gdGhpcy5kZWZhdWx0VmFsdWUgKiAxMDAwO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGFmdGVyRGVmYXVsdCA9IE1hdGgucm91bmQoTWF0aC5hYnMoZGF0ZU5vd1VuaXggLSBkZWZhdWx0VmFsdWUpIC8gNzc3NjAwMDAwMCkgKyBxdWFydGVyc0FmdGVyVG9kYXk7XG4gICAgICAgIGFmdGVyRGVmYXVsdCA9IE1hdGgubWluKGFmdGVyRGVmYXVsdCwgMTAwKTtcbiAgICAgICAgbGV0IGksIHRlbXBWYWx1ZTtcbiAgICAgICAgY29uc3QgdG9fcmV0dXJuOiBhbnlbXSA9IFtdO1xuICAgICAgICBmb3IgKGkgPSAwIC0gcXVhcnRlcnNCZWZvcmVUb2RheTsgaSA8PSBhZnRlckRlZmF1bHQ7IGkrKykge1xuICAgICAgICAgICAgdGVtcERhdGUgPSBuZXcgRGF0ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgdGVtcERhdGUuc2V0RGF0ZSgxNSk7XG4gICAgICAgICAgICB0ZW1wRGF0ZS5zZXRNb250aCh0ZW1wRGF0ZS5nZXRNb250aCgpICsgMyAqIGkpO1xuICAgICAgICAgICAgdGVtcFZhbHVlID0gdGhpcy5nZXRVVENUaW1lc3RhbXAodGVtcERhdGUpO1xuICAgICAgICAgICAgdG9fcmV0dXJuLnB1c2goe1xuICAgICAgICAgICAgICAgIHZhbHVlOiB0ZW1wVmFsdWUgLyAxMDAwLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFF1YXJ0ZXJMYWJlbCh0ZW1wVmFsdWUpLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IChpID09PSAwKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b19yZXR1cm47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRRdWFydGVyTGFiZWwodGltZVZhbHVlKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aW1lVmFsdWUpO1xuICAgICAgICByZXR1cm4gXCJRXCIgKyBNYXRoLmZsb29yKChkYXRlLmdldE1vbnRoKCkgLyAzKSArIDEpICsgXCIgXCIgKyBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVVENUaW1lc3RhbXAoZGF0ZSkge1xuICAgICAgICBjb25zdCBtb250aCA9IE1hdGguZmxvb3IoZGF0ZS5nZXRNb250aCgpIC8gMykgKiAzO1xuICAgICAgICByZXR1cm4gRGF0ZS5VVEMoZGF0ZS5nZXRGdWxsWWVhcigpLCBtb250aCwgMSwgMTIsIDAsIDAsIDApO1xuICAgIH1cblxuICBkYXRlRmlsdGVyID0gKGRhdGUpID0+IHtcbiAgICBsZXQgc3RhdHVzID0gdHJ1ZTtcblxuICAgIHRoaXMubG9ja2VkRGF0ZS5mb3JFYWNoKHRpbWVzdGFtcCA9PiB7XG4gICAgICBjb25zdCBsb2NrRGF0ZSA9IG1vbWVudC51bml4KHRpbWVzdGFtcCk7XG4gICAgICBjb25zdCBxdWFydGVyRGF0ZSA9IG1vbWVudC51bml4KGRhdGUudmFsdWUpO1xuXG4gICAgICBpZiAobG9ja0RhdGUueWVhcigpID09PSBxdWFydGVyRGF0ZS55ZWFyKCkgJiYgbG9ja0RhdGUubW9udGgoKSA9PT0gcXVhcnRlckRhdGUubW9udGgoKSkge1xuICAgICAgICBkYXRlLmRpc2FibGUgPSB0cnVlO1xuICAgICAgICBzdGF0dXMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBzdGF0dXM7XG4gIH1cbn1cbiJdfQ==