@datarailsshared/datarailsshared 1.4.19-tigers → 1.4.21-tigers

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 (38) hide show
  1. package/bundles/datarailsshared-datarailsshared.umd.js +1426 -1300
  2. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
  3. package/datarailsshared-datarailsshared-1.4.21-tigers.tgz +0 -0
  4. package/datarailsshared-datarailsshared.d.ts +5 -3
  5. package/datarailsshared-datarailsshared.metadata.json +1 -1
  6. package/esm2015/datarailsshared-datarailsshared.js +6 -4
  7. package/esm2015/lib/dr-avatar/dr-avatar.component.js +5 -3
  8. package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +3 -2
  9. package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +47 -0
  10. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +152 -0
  11. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +72 -0
  12. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +128 -0
  13. package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +55 -0
  14. package/esm2015/lib/dr-inputs/dr-inputs.module.js +13 -9
  15. package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +13 -3
  16. package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +43 -10
  17. package/esm2015/lib/models/datePicker.js +8 -1
  18. package/esm2015/public-api.js +3 -3
  19. package/fesm2015/datarailsshared-datarailsshared.js +630 -526
  20. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
  21. package/lib/dr-avatar/dr-avatar.component.d.ts +1 -0
  22. package/lib/dr-inputs/{dr-date-picker → date-pickers/directives}/dr-date-picker-format.directive.d.ts +1 -1
  23. package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +55 -0
  24. package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +26 -0
  25. package/lib/dr-inputs/{dr-date-picker → date-pickers}/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +4 -4
  26. package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +18 -0
  27. package/lib/dr-tooltip/dr-tooltip.component.d.ts +4 -0
  28. package/lib/dr-tooltip/dr-tooltip.directive.d.ts +4 -0
  29. package/lib/models/datePicker.d.ts +12 -0
  30. package/package.json +1 -1
  31. package/public-api.d.ts +1 -2
  32. package/datarailsshared-datarailsshared-1.4.19-tigers.tgz +0 -0
  33. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.js +0 -47
  34. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.component.js +0 -183
  35. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.service.js +0 -41
  36. package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +0 -129
  37. package/lib/dr-inputs/dr-date-picker/dr-date-picker.component.d.ts +0 -54
  38. package/lib/dr-inputs/dr-date-picker/dr-date-picker.service.d.ts +0 -12
@@ -3,8 +3,10 @@
3
3
  */
4
4
  export * from './public-api';
5
5
  export { components as ɵa } from './lib/date-tags/date-tag.module';
6
- export { DrDatePickerService as ɵc } from './lib/dr-inputs/dr-date-picker/dr-date-picker.service';
7
- export { DrDatePickerCustomHeaderComponent as ɵe } from './lib/dr-inputs/dr-date-picker/dr-date-picker_custom-header/dr-date-picker_custom-header.component';
6
+ export { DrDatePickerFormatDirective as ɵf } from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';
7
+ export { DrDatePickerWithTimeframeComponent as ɵe } from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';
8
+ export { DrDatePickerComponent as ɵc } from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';
9
+ export { DrDatePickerCustomHeaderComponent as ɵg } from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';
10
+ export { DrDatePickerService as ɵd } from './lib/dr-inputs/date-pickers/services/dr-date-picker.service';
8
11
  export { POPUP_ANIMATION as ɵb } from './lib/models/constants';
9
- export { CustomDateFormat as ɵd } from './lib/models/datePicker';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXJhaWxzc2hhcmVkLWRhdGFyYWlsc3NoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvZGF0YXJhaWxzc2hhcmVkLWRhdGFyYWlsc3NoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxpQ0FBaUMsSUFBSSxFQUFFLEVBQUMsTUFBTSxvR0FBb0csQ0FBQztBQUMzSixPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtjb21wb25lbnRzIGFzIMm1YX0gZnJvbSAnLi9saWIvZGF0ZS10YWdzL2RhdGUtdGFnLm1vZHVsZSc7XG5leHBvcnQge0RyRGF0ZVBpY2tlclNlcnZpY2UgYXMgybVjfSBmcm9tICcuL2xpYi9kci1pbnB1dHMvZHItZGF0ZS1waWNrZXIvZHItZGF0ZS1waWNrZXIuc2VydmljZSc7XG5leHBvcnQge0RyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudCBhcyDJtWV9IGZyb20gJy4vbGliL2RyLWlucHV0cy9kci1kYXRlLXBpY2tlci9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCB7UE9QVVBfQU5JTUFUSU9OIGFzIMm1Yn0gZnJvbSAnLi9saWIvbW9kZWxzL2NvbnN0YW50cyc7XG5leHBvcnQge0N1c3RvbURhdGVGb3JtYXQgYXMgybVkfSBmcm9tICcuL2xpYi9tb2RlbHMvZGF0ZVBpY2tlcic7Il19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXJhaWxzc2hhcmVkLWRhdGFyYWlsc3NoYXJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvZGF0YXJhaWxzc2hhcmVkLWRhdGFyYWlsc3NoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFDLDJCQUEyQixJQUFJLEVBQUUsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQzFILE9BQU8sRUFBQyxrQ0FBa0MsSUFBSSxFQUFFLEVBQUMsTUFBTSxvR0FBb0csQ0FBQztBQUM1SixPQUFPLEVBQUMscUJBQXFCLElBQUksRUFBRSxFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFDakgsT0FBTyxFQUFDLGlDQUFpQyxJQUFJLEVBQUUsRUFBQyxNQUFNLGtHQUFrRyxDQUFDO0FBQ3pKLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUN2RyxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge2NvbXBvbmVudHMgYXMgybVhfSBmcm9tICcuL2xpYi9kYXRlLXRhZ3MvZGF0ZS10YWcubW9kdWxlJztcbmV4cG9ydCB7RHJEYXRlUGlja2VyRm9ybWF0RGlyZWN0aXZlIGFzIMm1Zn0gZnJvbSAnLi9saWIvZHItaW5wdXRzL2RhdGUtcGlja2Vycy9kaXJlY3RpdmVzL2RyLWRhdGUtcGlja2VyLWZvcm1hdC5kaXJlY3RpdmUnO1xuZXhwb3J0IHtEckRhdGVQaWNrZXJXaXRoVGltZWZyYW1lQ29tcG9uZW50IGFzIMm1ZX0gZnJvbSAnLi9saWIvZHItaW5wdXRzL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS5jb21wb25lbnQnO1xuZXhwb3J0IHtEckRhdGVQaWNrZXJDb21wb25lbnQgYXMgybVjfSBmcm9tICcuL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQge0RyRGF0ZVBpY2tlckN1c3RvbUhlYWRlckNvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vbGliL2RyLWlucHV0cy9kYXRlLXBpY2tlcnMvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQge0RyRGF0ZVBpY2tlclNlcnZpY2UgYXMgybVkfSBmcm9tICcuL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL3NlcnZpY2VzL2RyLWRhdGUtcGlja2VyLnNlcnZpY2UnO1xuZXhwb3J0IHtQT1BVUF9BTklNQVRJT04gYXMgybVifSBmcm9tICcuL2xpYi9tb2RlbHMvY29uc3RhbnRzJzsiXX0=
@@ -2,6 +2,7 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from
2
2
  export class DrAvatarComponent {
3
3
  constructor() {
4
4
  this.warning = false;
5
+ this.showUnassigned = false;
5
6
  this.userClicked = new EventEmitter();
6
7
  this.parsedUsers = [];
7
8
  }
@@ -28,15 +29,16 @@ export class DrAvatarComponent {
28
29
  DrAvatarComponent.decorators = [
29
30
  { type: Component, args: [{
30
31
  selector: 'dr-avatar',
31
- template: "<div class=\"users-section\">\n <div *ngIf=\"!parsedUsers.length\"\n class=\"users-section__default\">\n </div>\n\n <div *ngFor=\"let user of getFirstUsers()\"\n class=\"users-section__user\"\n [class]=\"'icon-' + user.colorNumber + ' ' + user.status\"\n (click)=\"userClicked.emit()\"\n [matTooltip]=\"user | drAvatar\"\n [matTooltipPosition]=\"'below'\">\n {{user | drAvatar: 'initials'}}\n </div>\n\n <div *ngIf=\"parsedUsers.length > 2\"\n class=\"users-section__user icon-2\"\n [drTooltip]=\"usersTemplate\"\n [drTooltipPosition]=\"'bottom'\">\n {{getLastUsers().length}}\n </div>\n</div>\n\n<ng-template #usersTemplate>\n <div *ngFor=\"let user of getLastUsers()\" class=\"users-popover-item\">\n <div class=\"users-section__user\"\n (click)=\"userClicked.emit()\"\n [class]=\"user.class\">\n {{user | drAvatar: 'initials'}}\n </div>\n <span class=\"username\">\n {{user | drAvatar}}\n </span>\n </div>\n</ng-template>\n",
32
+ template: "<div class=\"users-section\">\n <div *ngIf=\"!parsedUsers.length\"\n class=\"users-section__default\">\n </div>\n\n <div *ngFor=\"let user of getFirstUsers()\"\n class=\"users-section__user\"\n [class]=\"'icon-' + user.colorNumber + ' ' + user.status\"\n [ngClass]=\"{ 'users-section__default': showUnassigned && !user.email }\"\n (click)=\"userClicked.emit()\"\n [matTooltip]=\"user | drAvatar\"\n [matTooltipPosition]=\"'below'\">\n {{user | drAvatar: 'initials'}}\n </div>\n\n <div *ngIf=\"parsedUsers.length > 2\"\n class=\"users-section__user icon-2\"\n [drTooltip]=\"usersTemplate\"\n [drTooltipPosition]=\"'bottom'\">\n {{getLastUsers().length}}\n </div>\n</div>\n\n<ng-template #usersTemplate>\n <div *ngFor=\"let user of getLastUsers()\" class=\"users-popover-item\">\n <div class=\"users-section__user\"\n (click)=\"userClicked.emit()\"\n [class]=\"user.class\">\n {{user | drAvatar: 'initials'}}\n </div>\n <span class=\"username\">\n {{user | drAvatar}}\n </span>\n </div>\n</ng-template>\n",
32
33
  changeDetection: ChangeDetectionStrategy.OnPush,
33
- styles: [":host{width:auto}.users-section{display:flex;height:28px}.users-section__default{display:flex;height:28px;width:28px;border-radius:14px;background:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect width%3D%2224%22 height%3D%2224%22 rx%3D%2212%22 fill%3D%22%23E5E6EA%22%2F%3E%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M15 9.75C15 11.4069 13.6569 12.75 12 12.75C10.3431 12.75 9 11.4069 9 9.75C9 8.09315 10.3431 6.75 12 6.75C13.6569 6.75 15 8.09315 15 9.75ZM13.875 9.75C13.875 10.7855 13.0355 11.625 12 11.625C10.9645 11.625 10.125 10.7855 10.125 9.75C10.125 8.71447 10.9645 7.875 12 7.875C13.0355 7.875 13.875 8.71447 13.875 9.75Z%22 fill%3D%22%2351566F%22%2F%3E%3Cpath d%3D%22M15.9968 16.7631C15.5425 15.3973 14.0368 14.25 12 14.25C9.9632 14.25 8.45748 15.3973 8.00319 16.7631C7.91242 17.0359 7.67416 17.25 7.38657 17.25C7.04536 17.25 6.77507 16.9539 6.86275 16.6241C7.39546 14.6206 9.49327 13.125 12 13.125C14.5067 13.125 16.6045 14.6206 17.1373 16.6241C17.2249 16.9539 16.9546 17.25 16.6134 17.25C16.3259 17.25 16.0876 17.0359 15.9968 16.7631Z%22 fill%3D%22%2351566F%22%2F%3E%3C%2Fsvg%3E\") no-repeat;background-size:cover}.users-popover-item{display:flex;align-items:center;margin:12px}.users-popover-item .username{color:#51566f;font-size:14px}.users-popover-item .users-section__user{margin-right:8px}.users-section__user{position:relative;display:flex;justify-content:center;align-items:center;height:28px;width:28px;border-radius:14px;background:red;color:#fff;font-size:12px}.users-section__user.icon-0{background-color:#7b61ff}.users-section__user.icon-1{background-color:#21b8f1}.users-section__user.icon-2{background-color:#2969b0}.users-section__user.icon-3{background-color:#51566f}.users-section__user.icon-4{background-color:#0061ff}.users-section__user:hover{cursor:pointer}.users-section__user:not(:first-child){margin-left:4px}.users-section__user.online:after,.users-section__user.offline:after,.users-section__user.warning:after{content:\"\";display:flex;width:8px;height:8px;position:absolute;border-radius:4px;top:-2px;right:0}.users-section__user.online:after{background:#03A678}.users-section__user.offline:after{background:#DE2833}.users-section__user.warning:after{background:#FDA014}\n"]
34
+ styles: [":host{width:auto}.users-section{display:flex;height:28px}.users-section__default{display:flex;height:28px;width:28px;border-radius:14px;background:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect width%3D%2224%22 height%3D%2224%22 rx%3D%2212%22 fill%3D%22%23E5E6EA%22%2F%3E%3Cpath fill-rule%3D%22evenodd%22 clip-rule%3D%22evenodd%22 d%3D%22M15 9.75C15 11.4069 13.6569 12.75 12 12.75C10.3431 12.75 9 11.4069 9 9.75C9 8.09315 10.3431 6.75 12 6.75C13.6569 6.75 15 8.09315 15 9.75ZM13.875 9.75C13.875 10.7855 13.0355 11.625 12 11.625C10.9645 11.625 10.125 10.7855 10.125 9.75C10.125 8.71447 10.9645 7.875 12 7.875C13.0355 7.875 13.875 8.71447 13.875 9.75Z%22 fill%3D%22%2351566F%22%2F%3E%3Cpath d%3D%22M15.9968 16.7631C15.5425 15.3973 14.0368 14.25 12 14.25C9.9632 14.25 8.45748 15.3973 8.00319 16.7631C7.91242 17.0359 7.67416 17.25 7.38657 17.25C7.04536 17.25 6.77507 16.9539 6.86275 16.6241C7.39546 14.6206 9.49327 13.125 12 13.125C14.5067 13.125 16.6045 14.6206 17.1373 16.6241C17.2249 16.9539 16.9546 17.25 16.6134 17.25C16.3259 17.25 16.0876 17.0359 15.9968 16.7631Z%22 fill%3D%22%2351566F%22%2F%3E%3C%2Fsvg%3E\") no-repeat!important;background-size:cover}.users-popover-item{display:flex;align-items:center;margin:12px}.users-popover-item .username{color:#51566f;font-size:14px}.users-popover-item .users-section__user{margin-right:8px}.users-section__user{position:relative;display:flex;justify-content:center;align-items:center;height:28px;width:28px;border-radius:14px;background:red;color:#fff;font-size:12px}.users-section__user.icon-0{background-color:#7b61ff}.users-section__user.icon-1{background-color:#21b8f1}.users-section__user.icon-2{background-color:#2969b0}.users-section__user.icon-3{background-color:#51566f}.users-section__user.icon-4{background-color:#0061ff}.users-section__user:hover{cursor:pointer}.users-section__user:not(:first-child){margin-left:4px}.users-section__user.online:after,.users-section__user.offline:after,.users-section__user.warning:after{content:\"\";display:flex;width:8px;height:8px;position:absolute;border-radius:4px;top:-2px;right:0}.users-section__user.online:after{background:#03A678}.users-section__user.offline:after{background:#DE2833}.users-section__user.warning:after{background:#FDA014}\n"]
34
35
  },] }
35
36
  ];
36
37
  DrAvatarComponent.ctorParameters = () => [];
37
38
  DrAvatarComponent.propDecorators = {
38
39
  users: [{ type: Input }],
39
40
  warning: [{ type: Input }],
41
+ showUnassigned: [{ type: Input }],
40
42
  userClicked: [{ type: Output }]
41
43
  };
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWF2YXRhci9kci1hdmF0YXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBUTFILE1BQU0sT0FBTyxpQkFBaUI7SUFjNUI7UUFIUyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3hCLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkUsZ0JBQVcsR0FBVSxFQUFFLENBQUM7SUFFeEIsQ0FBQztJQWRELElBQWEsS0FBSyxDQUFDLEtBQXFCO1FBQ3RDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQzlCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFPRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvRDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7O1lBaENGLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsV0FBVztnQkFDckIscW1DQUF1QztnQkFFdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7O29CQUVFLEtBQUs7c0JBVUwsS0FBSzswQkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1hdmF0YXInLFxuICAgIHRlbXBsYXRlVXJsOiAnZHItYXZhdGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnZHItYXZhdGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRHJBdmF0YXJDb21wb25lbnQge1xuICBASW5wdXQoKSBzZXQgdXNlcnModXNlcnM6IGFueVtdIHwgb2JqZWN0KSB7XG4gICAgaWYgKHVzZXJzKSB7XG4gICAgICB0aGlzLnBhcnNlZFVzZXJzID0gQXJyYXkuaXNBcnJheSh1c2VycykgPyB1c2VycyA6IFt1c2Vyc107XG4gICAgICB0aGlzLnBhcnNlZFVzZXJzLmZvckVhY2goKHVzZXIsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghdXNlci5jb2xvck51bWJlcikge1xuICAgICAgICAgIHVzZXIuY29sb3JOdW1iZXIgPSBpbmRleCAlIDU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSB3YXJuaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSB1c2VyQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcGFyc2VkVXNlcnM6IGFueVtdID0gW107XG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgZ2V0Rmlyc3RVc2VycygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VkVXNlcnMuc2xpY2UoMCwgMik7XG4gIH1cblxuICBnZXRMYXN0VXNlcnMoKTogYW55W10ge1xuICAgIGlmICh0aGlzLnBhcnNlZFVzZXJzLmxlbmd0aCA+IDIpIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlZFVzZXJzLnNsaWNlKDIsIHRoaXMucGFyc2VkVXNlcnMubGVuZ3RoIC0gMSk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxufVxuIl19
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWF2YXRhci9kci1hdmF0YXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBUTFILE1BQU0sT0FBTyxpQkFBaUI7SUFnQjVCO1FBTFMsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUUvQixnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ25FLGdCQUFXLEdBQVUsRUFBRSxDQUFDO0lBRXhCLENBQUM7SUFoQkQsSUFBYSxLQUFLLENBQUMsS0FBcUI7UUFDdEMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztpQkFDOUI7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQVNELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzs7WUFsQ0YsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxXQUFXO2dCQUNyQix5ckNBQXVDO2dCQUV2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7Ozs7b0JBRUUsS0FBSztzQkFVTCxLQUFLOzZCQUNMLEtBQUs7MEJBRUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItYXZhdGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2RyLWF2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2RyLWF2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERyQXZhdGFyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc2V0IHVzZXJzKHVzZXJzOiBhbnlbXSB8IG9iamVjdCkge1xuICAgIGlmICh1c2Vycykge1xuICAgICAgdGhpcy5wYXJzZWRVc2VycyA9IEFycmF5LmlzQXJyYXkodXNlcnMpID8gdXNlcnMgOiBbdXNlcnNdO1xuICAgICAgdGhpcy5wYXJzZWRVc2Vycy5mb3JFYWNoKCh1c2VyLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIXVzZXIuY29sb3JOdW1iZXIpIHtcbiAgICAgICAgICB1c2VyLmNvbG9yTnVtYmVyID0gaW5kZXggJSA1O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCkgd2FybmluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93VW5hc3NpZ25lZDogYm9vbGVhbiA9IGZhbHNlO1xuICBcbiAgQE91dHB1dCgpIHVzZXJDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBwYXJzZWRVc2VyczogYW55W10gPSBbXTtcbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBnZXRGaXJzdFVzZXJzKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZWRVc2Vycy5zbGljZSgwLCAyKTtcbiAgfVxuXG4gIGdldExhc3RVc2VycygpOiBhbnlbXSB7XG4gICAgaWYgKHRoaXMucGFyc2VkVXNlcnMubGVuZ3RoID4gMikge1xuICAgICAgcmV0dXJuIHRoaXMucGFyc2VkVXNlcnMuc2xpY2UoMiwgdGhpcy5wYXJzZWRVc2Vycy5sZW5ndGggLSAxKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG4iXX0=
@@ -2,7 +2,8 @@ import { Pipe } from '@angular/core';
2
2
  export class DrAvatarPipe {
3
3
  transform(item, type = 'full') {
4
4
  if (type === 'initials') {
5
- return (item.first_name && item.last_name ? (item.first_name[0] + item.last_name[0]) : item.email[0]).toUpperCase();
5
+ const email = item.email ? item.email[0] : '';
6
+ return (item.first_name && item.last_name ? (item.first_name[0] + item.last_name[0]) : email).toUpperCase();
6
7
  }
7
8
  return item.first_name && item.last_name ? (item.first_name + ' ' + item.last_name) : item.email;
8
9
  }
@@ -12,4 +13,4 @@ DrAvatarPipe.decorators = [
12
13
  name: 'drAvatar'
13
14
  },] }
14
15
  ];
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItYXZhdGFyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1hdmF0YXIvZHItYXZhdGFyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFLcEQsTUFBTSxPQUFPLFlBQVk7SUFFdkIsU0FBUyxDQUFDLElBQVMsRUFBRSxPQUFlLE1BQU07UUFDeEMsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNySDtRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuRyxDQUFDOzs7WUFYRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLFVBQVU7YUFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2RyQXZhdGFyJ1xufSlcbmV4cG9ydCBjbGFzcyBEckF2YXRhclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0oaXRlbTogYW55LCB0eXBlOiBzdHJpbmcgPSAnZnVsbCcpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlID09PSAnaW5pdGlhbHMnKSB7XG4gICAgICByZXR1cm4gKGl0ZW0uZmlyc3RfbmFtZSAmJiBpdGVtLmxhc3RfbmFtZSA/IChpdGVtLmZpcnN0X25hbWVbMF0gKyBpdGVtLmxhc3RfbmFtZVswXSkgOiBpdGVtLmVtYWlsWzBdKS50b1VwcGVyQ2FzZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtLmZpcnN0X25hbWUgJiYgaXRlbS5sYXN0X25hbWUgPyAoaXRlbS5maXJzdF9uYW1lICsgJyAnICsgaXRlbS5sYXN0X25hbWUpIDogaXRlbS5lbWFpbDtcbiAgfVxufVxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItYXZhdGFyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1hdmF0YXIvZHItYXZhdGFyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFLcEQsTUFBTSxPQUFPLFlBQVk7SUFFdkIsU0FBUyxDQUFDLElBQVMsRUFBRSxPQUFlLE1BQU07UUFDeEMsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM3RztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNuRyxDQUFDOzs7WUFaRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLFVBQVU7YUFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2RyQXZhdGFyJ1xufSlcbmV4cG9ydCBjbGFzcyBEckF2YXRhclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0oaXRlbTogYW55LCB0eXBlOiBzdHJpbmcgPSAnZnVsbCcpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlID09PSAnaW5pdGlhbHMnKSB7XG4gICAgICBjb25zdCBlbWFpbCA9IGl0ZW0uZW1haWwgPyBpdGVtLmVtYWlsWzBdIDogJyc7XG4gICAgICByZXR1cm4gKGl0ZW0uZmlyc3RfbmFtZSAmJiBpdGVtLmxhc3RfbmFtZSA/IChpdGVtLmZpcnN0X25hbWVbMF0gKyBpdGVtLmxhc3RfbmFtZVswXSkgOiBlbWFpbCkudG9VcHBlckNhc2UoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbS5maXJzdF9uYW1lICYmIGl0ZW0ubGFzdF9uYW1lID8gKGl0ZW0uZmlyc3RfbmFtZSArICcgJyArIGl0ZW0ubGFzdF9uYW1lKSA6IGl0ZW0uZW1haWw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { Directive, Inject, Input, Optional } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
4
+ import { MomentDateAdapter } from '@angular/material-moment-adapter';
5
+ import { CustomDateFormat } from '../../../models/datePicker';
6
+ export class DrDatePickerFormatDirective {
7
+ constructor(matDateFormat, ngControl) {
8
+ this.matDateFormat = matDateFormat;
9
+ this.ngControl = ngControl;
10
+ }
11
+ set datePickerFormat(format) {
12
+ var _a;
13
+ if (this.configDateParse) {
14
+ this.matDateFormat.updateDateFormat(this.configDateParse, this.configDateDisplay);
15
+ }
16
+ else {
17
+ this.matDateFormat.updateDateFormat({ dateInput: format });
18
+ }
19
+ const value = this.ngControl.value;
20
+ (_a = this.ngControl.valueAccessor) === null || _a === void 0 ? void 0 : _a.writeValue(value);
21
+ }
22
+ }
23
+ DrDatePickerFormatDirective.decorators = [
24
+ { type: Directive, args: [{
25
+ selector: '[drDatePickerFormat]',
26
+ providers: [
27
+ {
28
+ provide: DateAdapter,
29
+ useClass: MomentDateAdapter
30
+ },
31
+ {
32
+ provide: MAT_DATE_FORMATS,
33
+ useClass: CustomDateFormat
34
+ }
35
+ ]
36
+ },] }
37
+ ];
38
+ DrDatePickerFormatDirective.ctorParameters = () => [
39
+ { type: CustomDateFormat, decorators: [{ type: Inject, args: [MAT_DATE_FORMATS,] }] },
40
+ { type: NgControl, decorators: [{ type: Optional }] }
41
+ ];
42
+ DrDatePickerFormatDirective.propDecorators = {
43
+ configDateParse: [{ type: Input }],
44
+ configDateDisplay: [{ type: Input }],
45
+ datePickerFormat: [{ type: Input, args: ['drDatePickerFormat',] }]
46
+ };
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXItZm9ybWF0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWlucHV0cy9kYXRlLXBpY2tlcnMvZGlyZWN0aXZlcy9kci1kYXRlLXBpY2tlci1mb3JtYXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQTBCLE1BQU0sNEJBQTRCLENBQUM7QUFldEYsTUFBTSxPQUFPLDJCQUEyQjtJQWtCdEMsWUFDbUMsYUFBK0IsRUFDNUMsU0FBb0I7UUFEUCxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDNUMsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUUxQyxDQUFDO0lBbEJELElBQ0ksZ0JBQWdCLENBQUMsTUFBYzs7UUFDakMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQ2pDLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztTQUNIO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7U0FDMUQ7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUNuQyxNQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSwwQ0FBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7O1lBN0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLFdBQVc7d0JBQ3BCLFFBQVEsRUFBRSxpQkFBaUI7cUJBQzVCO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7d0JBQ3pCLFFBQVEsRUFBRSxnQkFBZ0I7cUJBQzNCO2lCQUNGO2FBQ0Y7OztZQWRRLGdCQUFnQix1QkFrQ3BCLE1BQU0sU0FBQyxnQkFBZ0I7WUFyQ25CLFNBQVMsdUJBc0NiLFFBQVE7Ozs4QkFuQlYsS0FBSztnQ0FDTCxLQUFLOytCQUVMLEtBQUssU0FBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHsgQ3VzdG9tRGF0ZUZvcm1hdCwgRGF0ZURpc3BsYXksIERhdGVQYXJzZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RyRGF0ZVBpY2tlckZvcm1hdF0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBNb21lbnREYXRlQWRhcHRlclxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUyxcbiAgICAgIHVzZUNsYXNzOiBDdXN0b21EYXRlRm9ybWF0XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERyRGF0ZVBpY2tlckZvcm1hdERpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb25maWdEYXRlUGFyc2U6IERhdGVQYXJzZTtcbiAgQElucHV0KCkgcHVibGljIGNvbmZpZ0RhdGVEaXNwbGF5OiBEYXRlRGlzcGxheTtcblxuICBASW5wdXQoJ2RyRGF0ZVBpY2tlckZvcm1hdCcpXG4gIHNldCBkYXRlUGlja2VyRm9ybWF0KGZvcm1hdDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnRGF0ZVBhcnNlKSB7XG4gICAgICB0aGlzLm1hdERhdGVGb3JtYXQudXBkYXRlRGF0ZUZvcm1hdChcbiAgICAgICAgdGhpcy5jb25maWdEYXRlUGFyc2UsXG4gICAgICAgIHRoaXMuY29uZmlnRGF0ZURpc3BsYXlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWF0RGF0ZUZvcm1hdC51cGRhdGVEYXRlRm9ybWF0KHtkYXRlSW5wdXQ6IGZvcm1hdH0pO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubmdDb250cm9sLnZhbHVlO1xuICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3I/LndyaXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwdWJsaWMgbWF0RGF0ZUZvcm1hdDogQ3VzdG9tRGF0ZUZvcm1hdCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIG5nQ29udHJvbDogTmdDb250cm9sXG4gICkge1xuICB9XG59XG4iXX0=
@@ -0,0 +1,152 @@
1
+ import { Component, ChangeDetectionStrategy, Input, ChangeDetectorRef, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { DatePickerPeriodPosition } from '../../../models/datePicker';
4
+ import { DateAdapter } from '@angular/material/core';
5
+ import { DrDatePickerService } from '../services/dr-date-picker.service';
6
+ import { Subject } from 'rxjs';
7
+ import { takeUntil } from 'rxjs/operators';
8
+ import { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';
9
+ const moment = require('moment');
10
+ const noop = () => { };
11
+ const ɵ0 = noop;
12
+ export class DrDatePickerComponent {
13
+ constructor(cdr, dateAdapter, datePickerService) {
14
+ this.cdr = cdr;
15
+ this.dateAdapter = dateAdapter;
16
+ this.datePickerService = datePickerService;
17
+ // Whether to transform date, taking end, start, middle of preiod (i.e. set middle of month if timeframe='month')
18
+ this.periodPosition = DatePickerPeriodPosition.DEFAULT;
19
+ this.placeholder = 'Select';
20
+ this.calendarViewsTimeframeMapping = {
21
+ year: 'multi-year',
22
+ month: 'year',
23
+ quarter: 'none',
24
+ day: 'month',
25
+ };
26
+ this.customHeader = DrDatePickerCustomHeaderComponent;
27
+ this.readonly = true;
28
+ this.innerValue = null;
29
+ this.destroyed$ = new Subject();
30
+ this.onTouchedCallback = noop;
31
+ this.onChangeCallback = noop;
32
+ datePickerService.updatedQuarter$
33
+ .pipe(takeUntil(this.destroyed$))
34
+ .subscribe((value) => {
35
+ this.setValueFromMoment(value);
36
+ });
37
+ }
38
+ set format(value) {
39
+ this.datePickerService.updateTimeframeAndFormat(value);
40
+ }
41
+ set min(minDate) {
42
+ this._min = moment.unix(minDate);
43
+ }
44
+ set max(maxDate) {
45
+ this._max = moment.unix(maxDate);
46
+ }
47
+ get value() {
48
+ return this.innerValue;
49
+ }
50
+ set value(v) {
51
+ if (v !== this.innerValue) {
52
+ this.setValueFromMoment(v);
53
+ }
54
+ this.cdr.markForCheck();
55
+ }
56
+ ngAfterViewInit() {
57
+ this.datePickerService.calendarInstance = this.dp;
58
+ this.dp.startView = this.calendarViewsTimeframeMapping[this.datePickerService.timeframe];
59
+ }
60
+ ngOnDestroy() {
61
+ this.destroyed$.next();
62
+ this.destroyed$.complete();
63
+ }
64
+ /**
65
+ * Updating component inner value according to datepicker timeframe (day, month etc.)
66
+ * and date position in period (start, end, middle)
67
+ */
68
+ tryToNormalaizeTimeframe() {
69
+ const timeframe = this.datePickerService.timeframe;
70
+ switch (this.periodPosition) {
71
+ case DatePickerPeriodPosition.START_OF_PERIOD:
72
+ this.innerValue.startOf(timeframe);
73
+ break;
74
+ case DatePickerPeriodPosition.END_OF_PERIOD:
75
+ this.innerValue.endOf(timeframe);
76
+ break;
77
+ case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:
78
+ this.innerValue.startOf(timeframe);
79
+ const endOfPeriod = this.innerValue.clone().endOf(timeframe);
80
+ const diff = endOfPeriod.diff(this.innerValue, 'seconds');
81
+ this.innerValue.add(diff / 2 + 1, 'seconds');
82
+ break;
83
+ default:
84
+ this.innerValue.startOf(timeframe);
85
+ break;
86
+ }
87
+ }
88
+ chosenPeriodHandler(chosenDate, timeframe) {
89
+ if (this.datePickerService.timeframe === timeframe) {
90
+ this.setValueFromMoment(chosenDate);
91
+ this.dp.close();
92
+ }
93
+ }
94
+ /**
95
+ * Setting value from outside of component via ngModel or formControl updates
96
+ */
97
+ writeValue(value) {
98
+ this.innerValue = value ? moment.unix(value) : value;
99
+ if (this.innerValue) {
100
+ this.tryToNormalaizeTimeframe();
101
+ }
102
+ this.cdr.markForCheck();
103
+ }
104
+ registerOnChange(fn) {
105
+ this.onChangeCallback = fn;
106
+ }
107
+ registerOnTouched(fn) {
108
+ this.onTouchedCallback = fn;
109
+ }
110
+ /**
111
+ * Set inner value from Moment and propagate
112
+ * @param momentDate
113
+ */
114
+ setValueFromMoment(momentDate) {
115
+ this.setValue(momentDate.unix());
116
+ }
117
+ /**
118
+ * Set inner value from timestamp and propagate
119
+ * @param timestamp
120
+ */
121
+ setValue(timestamp) {
122
+ this.writeValue(timestamp);
123
+ this.onChangeCallback(this.innerValue.unix());
124
+ }
125
+ }
126
+ DrDatePickerComponent.decorators = [
127
+ { type: Component, args: [{
128
+ selector: 'dr-date-picker',
129
+ template: "<i class=\"dr-icon-schedule\"></i>\n<input [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [placeholder]=\"placeholder\"\n [drDatePickerFormat]=\"datePickerService.format$ | async\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"/>\n<mat-datepicker #datePicker\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, 'year')\"\n (monthSelected)=\"chosenPeriodHandler($event, 'month')\">\n</mat-datepicker>\n",
130
+ changeDetection: ChangeDetectionStrategy.OnPush,
131
+ providers: [
132
+ { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },
133
+ { provide: DrDatePickerService }
134
+ ],
135
+ styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:\"Poppins\",sans-serif;background-color:#fff;border:1px solid #C3C4CE;border-radius:6px;color:#85889c;overflow:hidden;outline:none;cursor:pointer}:host:hover{border-color:#85889c}:host:focus-within{border-color:#21b8f1!important;color:#151b3f}:host.disabled{pointer-events:none;border:none;color:#85889c;background:#E5E6EA}:host.ng-valid.ng-dirty{border-color:#03a678}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#de2833!important}:host.ng-untouched.ng-valid{border-color:#c3c4ce}:host:after,:host:before{position:absolute;display:flex;border-color:#999999 transparent transparent;color:#999}:host:after{content:\"\";height:0;width:0;border-style:solid;border-width:5px 5px 2.5px;right:11px;top:13px}:host i{position:absolute;color:#999;left:8px;top:3px}:host input{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important;outline:none}:host input.when-quarter{position:absolute;visibility:hidden}:host input:disabled{border:none;color:#85889c;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}::ng-deep .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}::ng-deep .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}::ng-deep .mat-datepicker-content button[disabled]:hover{border:inherit}::ng-deep .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#F2F2FB;color:#4646ce;font-weight:600}::ng-deep .mat-calendar-body-selected{background-color:#4646ce;color:#f2f2fb;font-weight:600}::ng-deep .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}::ng-deep .mat-button-focus-overlay{background:#F3F7FF}::ng-deep .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#F3F7FF;transition:opacity .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-calendar-controls .mat-calendar-period-button:hover{background:#F3F7FF;transition:background .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-calendar-table-header th{font-size:14px;font-weight:600;color:#19181a}::ng-deep .mat-calendar-table-header-divider{display:none}::ng-deep .mat-calendar-body-label{color:#fff;padding:0}\n"]
136
+ },] }
137
+ ];
138
+ DrDatePickerComponent.ctorParameters = () => [
139
+ { type: ChangeDetectorRef },
140
+ { type: DateAdapter },
141
+ { type: DrDatePickerService }
142
+ ];
143
+ DrDatePickerComponent.propDecorators = {
144
+ format: [{ type: Input }],
145
+ min: [{ type: Input }],
146
+ max: [{ type: Input }],
147
+ periodPosition: [{ type: Input }],
148
+ placeholder: [{ type: Input }],
149
+ dp: [{ type: ViewChild, args: ['datePicker',] }]
150
+ };
151
+ export { ɵ0 };
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlci9kci1kYXRlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLGlCQUFpQixFQUFFLFNBQVMsRUFDN0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUUzSCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakMsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDOztBQVl0QixNQUFNLE9BQU8scUJBQXFCO0lBNkNoQyxZQUNZLEdBQXNCLEVBQ3RCLFdBQTZCLEVBQ2hDLGlCQUFzQztRQUZuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFxQjtRQXBDL0MsaUhBQWlIO1FBQ3hHLG1CQUFjLEdBQTZCLHdCQUF3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R0c7SUFDTyxRQUFRLENBQUMsU0FBaUI7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7OztZQWhKRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsMGhCQUE4QztnQkFFOUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLFNBQVMsRUFBRTtvQkFDVCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtvQkFDL0UsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7aUJBQ2pDOzthQUNGOzs7WUF2QkMsaUJBQWlCO1lBS1YsV0FBVztZQUNYLG1CQUFtQjs7O3FCQW9CekIsS0FBSztrQkFHTCxLQUFLO2tCQUdMLEtBQUs7NkJBS0wsS0FBSzswQkFFTCxLQUFLO2lCQUVMLFNBQVMsU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RyLWRhdGUtcGlja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyQ3VzdG9tSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci9kci1kYXRlLXBpY2tlcl9jdXN0b20taGVhZGVyLmNvbXBvbmVudCc7XG5cbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoJ21vbWVudCcpO1xuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkci1kYXRlLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kci1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RyLWRhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogRHJEYXRlUGlja2VyQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogRHJEYXRlUGlja2VyU2VydmljZSB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERyRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHNldCBmb3JtYXQodmFsdWUpIHtcbiAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgc2V0IG1pbihtaW5EYXRlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW4gPSBtb21lbnQudW5peChtaW5EYXRlKTtcbiAgfVxuICBASW5wdXQoKSBzZXQgbWF4KG1heERhdGU6IG51bWJlcikge1xuICAgIHRoaXMuX21heCA9IG1vbWVudC51bml4KG1heERhdGUpO1xuICB9XG5cbiAgLy8gV2hldGhlciB0byB0cmFuc2Zvcm0gZGF0ZSwgdGFraW5nIGVuZCwgc3RhcnQsIG1pZGRsZSBvZiBwcmVpb2QgKGkuZS4gc2V0IG1pZGRsZSBvZiBtb250aCBpZiB0aW1lZnJhbWU9J21vbnRoJylcbiAgQElucHV0KCkgcGVyaW9kUG9zaXRpb246IERhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbiA9IERhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbi5ERUZBVUxUO1xuXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VsZWN0JztcblxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgcHVibGljIGRwOiBhbnk7XG5cbiAgcHVibGljIGNhbGVuZGFyVmlld3NUaW1lZnJhbWVNYXBwaW5nOiBhbnkgPSB7XG4gICAgeWVhcjogJ211bHRpLXllYXInLFxuICAgIG1vbnRoOiAneWVhcicsXG4gICAgcXVhcnRlcjogJ25vbmUnLFxuICAgIGRheTogJ21vbnRoJyxcbiAgfVxuXG4gIHB1YmxpYyBjdXN0b21IZWFkZXIgPSBEckRhdGVQaWNrZXJDdXN0b21IZWFkZXJDb21wb25lbnQ7XG4gIHB1YmxpYyByZWFkb25seSA9IHRydWU7XG4gIHB1YmxpYyBfbWluOiBNb21lbnQ7XG4gIHB1YmxpYyBfbWF4OiBNb21lbnQ7XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBNb21lbnQge1xuICAgIHJldHVybiB0aGlzLmlubmVyVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IE1vbWVudCkge1xuICAgIGlmICh2ICE9PSB0aGlzLmlubmVyVmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KHYpO1xuICAgIH1cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbm5lclZhbHVlOiBNb21lbnQgPSBudWxsO1xuICBwcm90ZWN0ZWQgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+ICgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCBkYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8YW55PixcbiAgICBwdWJsaWMgZGF0ZVBpY2tlclNlcnZpY2U6IERyRGF0ZVBpY2tlclNlcnZpY2VcbiAgKSB7XG4gICAgZGF0ZVBpY2tlclNlcnZpY2UudXBkYXRlZFF1YXJ0ZXIkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KHZhbHVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuY2FsZW5kYXJJbnN0YW5jZSA9IHRoaXMuZHA7XG4gICAgdGhpcy5kcC5zdGFydFZpZXcgPSB0aGlzLmNhbGVuZGFyVmlld3NUaW1lZnJhbWVNYXBwaW5nW3RoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lXTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRpbmcgY29tcG9uZW50IGlubmVyIHZhbHVlIGFjY29yZGluZyB0byBkYXRlcGlja2VyIHRpbWVmcmFtZSAoZGF5LCBtb250aCBldGMuKVxuICAgKiBhbmQgZGF0ZSBwb3NpdGlvbiBpbiBwZXJpb2QgKHN0YXJ0LCBlbmQsIG1pZGRsZSlcbiAgICovXG4gIHRyeVRvTm9ybWFsYWl6ZVRpbWVmcmFtZSgpOiB2b2lkIHtcbiAgICBjb25zdCB0aW1lZnJhbWUgPSB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnRpbWVmcmFtZVxuICAgIHN3aXRjaCh0aGlzLnBlcmlvZFBvc2l0aW9uKSB7XG4gICAgICBjYXNlIERhdGVQaWNrZXJQZXJpb2RQb3NpdGlvbi5TVEFSVF9PRl9QRVJJT0Q6XG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5zdGFydE9mKHRpbWVmcmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24uRU5EX09GX1BFUklPRDpcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlLmVuZE9mKHRpbWVmcmFtZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBEYXRlUGlja2VyUGVyaW9kUG9zaXRpb24uTUlERExFX09GX1BFUklPRDpcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlLnN0YXJ0T2YodGltZWZyYW1lKTtcbiAgICAgICAgY29uc3QgZW5kT2ZQZXJpb2QgPSB0aGlzLmlubmVyVmFsdWUuY2xvbmUoKS5lbmRPZih0aW1lZnJhbWUpO1xuICAgICAgICBjb25zdCBkaWZmID0gZW5kT2ZQZXJpb2QuZGlmZih0aGlzLmlubmVyVmFsdWUsICdzZWNvbmRzJyk7XG4gICAgICAgIHRoaXMuaW5uZXJWYWx1ZS5hZGQoZGlmZi8yICsgMSwgJ3NlY29uZHMnKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmlubmVyVmFsdWUuc3RhcnRPZih0aW1lZnJhbWUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hvc2VuUGVyaW9kSGFuZGxlcihjaG9zZW5EYXRlOiBNb21lbnQsIHRpbWVmcmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UudGltZWZyYW1lID09PSB0aW1lZnJhbWUpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KGNob3NlbkRhdGUpO1xuICAgICAgdGhpcy5kcC5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR0aW5nIHZhbHVlIGZyb20gb3V0c2lkZSBvZiBjb21wb25lbnQgdmlhIG5nTW9kZWwgb3IgZm9ybUNvbnRyb2wgdXBkYXRlc1xuICAgKi9cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IHZhbHVlID8gbW9tZW50LnVuaXgodmFsdWUpIDogdmFsdWU7XG4gICAgaWYgKHRoaXMuaW5uZXJWYWx1ZSkge1xuICAgICAgdGhpcy50cnlUb05vcm1hbGFpemVUaW1lZnJhbWUoKTtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuICBwdWJsaWMgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgaW5uZXIgdmFsdWUgZnJvbSBNb21lbnQgYW5kIHByb3BhZ2F0ZVxuICAgKiBAcGFyYW0gbW9tZW50RGF0ZVxuICAgKi9cbiAgIHByb3RlY3RlZCBzZXRWYWx1ZUZyb21Nb21lbnQobW9tZW50RGF0ZTogTW9tZW50KSB7XG4gICAgdGhpcy5zZXRWYWx1ZShtb21lbnREYXRlLnVuaXgoKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGlubmVyIHZhbHVlIGZyb20gdGltZXN0YW1wIGFuZCBwcm9wYWdhdGVcbiAgICogQHBhcmFtIHRpbWVzdGFtcFxuICAgKi9cbiAgcHJvdGVjdGVkIHNldFZhbHVlKHRpbWVzdGFtcDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHRpbWVzdGFtcCk7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuaW5uZXJWYWx1ZS51bml4KCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,72 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, Input, Output, EventEmitter } from '@angular/core';
2
+ import { DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';
3
+ import { DateAdapter } from '@angular/material/core';
4
+ import { DrDatePickerService } from '../services/dr-date-picker.service';
5
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
6
+ import { takeUntil } from 'rxjs/operators';
7
+ export class DrDatePickerWithTimeframeComponent extends DrDatePickerComponent {
8
+ constructor(cdr, dateAdapter, datePickerService) {
9
+ super(cdr, dateAdapter, datePickerService);
10
+ this.cdr = cdr;
11
+ this.dateAdapter = dateAdapter;
12
+ this.datePickerService = datePickerService;
13
+ this.isDashboardDatepicker = false;
14
+ this.onChangeFormat = new EventEmitter();
15
+ this.pagingSetup = {
16
+ 'year': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),
17
+ 'quarter': (forward) => this.pagingDateChange('addCalendarMonths', 3, forward),
18
+ 'month': (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),
19
+ 'day': (forward) => this.pagingDateChange('addCalendarDays', 1, forward)
20
+ };
21
+ datePickerService.isTimeframeSelectionEnabled = true;
22
+ datePickerService.format$
23
+ .pipe(takeUntil(this.destroyed$))
24
+ .subscribe((value) => {
25
+ this.onChangeFormat.emit(datePickerService.normalizeValue(value));
26
+ });
27
+ }
28
+ get isDashboardClassDisplayed() {
29
+ return this.isDashboardDatepicker;
30
+ }
31
+ ;
32
+ get quarterDisplay() {
33
+ return this.datePickerService.getQuarterDisplay(this.value);
34
+ }
35
+ ngOnInit() {
36
+ if (this.dateFormatConfig) {
37
+ this.datePickerService.formatConfig = Object.assign(Object.assign({}, this.datePickerService.formatConfig), this.dateFormatConfig);
38
+ }
39
+ }
40
+ pagingClicked(forward) {
41
+ this.pagingSetup[this.datePickerService.timeframe] && this.pagingSetup[this.datePickerService.timeframe](forward);
42
+ this.dp.close();
43
+ }
44
+ pagingDateChange(actionCall, amount, forward) {
45
+ const newValue = this.dateAdapter[actionCall](this.innerValue, forward ? amount : -amount);
46
+ this.setValueFromMoment(newValue);
47
+ }
48
+ }
49
+ DrDatePickerWithTimeframeComponent.decorators = [
50
+ { type: Component, args: [{
51
+ selector: 'dr-date-picker-with-timeframe',
52
+ template: "<div class=\"dr-input-date-paging__flip-page-button\"\n (click)=\"pagingClicked(false)\"\n>\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n</div>\n<div class=\"dr-datepicker__input-container\">\n <i *ngIf=\"isDashboardDatepicker\" class=\"dr-icon-date\"></i>\n <div\n class=\"dr-input-date-paging__formatted-value-display\"\n (click)=\"datepickerInput.click()\"\n >\n {{\n !value\n ? placeholder\n : (datePickerService.format$.getValue()?.includes('Q') ? quarterDisplay : value.format(datePickerService.format$.getValue()))\n }}\n </div>\n <input\n #datepickerInput\n [(ngModel)]=\"value\"\n (click)=\"datePicker.open()\"\n [matDatepicker]=\"datePicker\"\n [readonly]=\"readonly\"\n [min]=\"_min\"\n [max]=\"_max\"\n />\n</div>\n<div class=\"dr-input-date-paging__flip-page-button\"\n (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n</div>\n<mat-datepicker #datePicker\n class=\"dr-timeframe-datepicker\"\n [calendarHeaderComponent]=\"customHeader\"\n (yearSelected)=\"chosenPeriodHandler($event, 'year')\"\n (monthSelected)=\"chosenPeriodHandler($event, 'month')\">\n</mat-datepicker>\n",
53
+ changeDetection: ChangeDetectionStrategy.OnPush,
54
+ providers: [
55
+ { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },
56
+ { provide: DrDatePickerService }
57
+ ],
58
+ styles: [":host{position:relative;width:100%;display:flex;flex-direction:row;min-height:32px;height:32px;font-size:14px;font-family:\"Poppins\",sans-serif;background-color:#fff;border:1px solid #C3C4CE;border-radius:6px;color:#85889c;overflow:hidden;outline:none;cursor:pointer}:host:hover{border-color:#85889c}:host:focus-within{border-color:#21b8f1!important;color:#151b3f}:host.disabled{pointer-events:none;border:none;color:#85889c;background:#E5E6EA}:host.ng-valid.ng-dirty{border-color:#03a678}:host.ng-invalid.ng-dirty:not(:focus-within){border-color:#de2833!important}:host.ng-untouched.ng-valid{border-color:#c3c4ce}:host:after,:host:before{position:absolute;display:flex;border-color:#999999 transparent transparent;color:#999}:host:after{content:\"\";height:0;width:0;border-style:solid;border-width:5px 5px 2.5px;right:11px;top:13px}:host i{position:absolute;color:#999;left:8px;top:3px}:host input{display:flex;flex-grow:1;height:100%;border:none;text-align:left;padding-left:35px;padding-right:25px;cursor:pointer!important;outline:none}:host input.when-quarter{position:absolute;visibility:hidden}:host input:disabled{border:none;color:#85889c;background:transparent}:host input::-webkit-search-decoration,:host input::-webkit-search-cancel-button,:host input::-webkit-search-results-button,:host input::-webkit-search-results-decoration{-webkit-appearance:none}::ng-deep .mat-datepicker-content{margin:7px 0;box-shadow:0 4px 8px 1px #00000040;border-radius:12px!important}::ng-deep .mat-datepicker-content button[disabled]{border:inherit;color:inherit;background-color:inherit}::ng-deep .mat-datepicker-content button[disabled]:hover{border:inherit}::ng-deep .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical){background:#F2F2FB;color:#4646ce;font-weight:600}::ng-deep .mat-calendar-body-selected{background-color:#4646ce;color:#f2f2fb;font-weight:600}::ng-deep .mat-calendar-body-today.mat-calendar-body-selected{box-shadow:none}::ng-deep .mat-button-focus-overlay{background:#F3F7FF}::ng-deep .mat-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:1!important;background:#F3F7FF;transition:opacity .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-calendar-controls .mat-calendar-period-button:hover{background:#F3F7FF;transition:background .2s cubic-bezier(.35,0,.25,1)}::ng-deep .mat-calendar-table-header th{font-size:14px;font-weight:600;color:#19181a}::ng-deep .mat-calendar-table-header-divider{display:none}::ng-deep .mat-calendar-body-label{color:#fff;padding:0}:host{border:none;display:flex;align-items:center}:host.dr-date-picker-on-dashboard{width:180px;justify-content:space-between}:host.dr-date-picker-on-dashboard mat-datepicker{position:absolute}:host.dr-date-picker-on-dashboard .dr-datepicker__input-container{display:flex;flex-direction:row;justify-content:center;align-items:center;margin-left:-10px}:host.dr-date-picker-on-dashboard .dr-datepicker__input-container .dr-input-date-paging__formatted-value-display{font-weight:600;width:auto;margin-left:5px}:host.dr-date-picker-on-dashboard .dr-datepicker__input-container .dr-icon-date{display:block;position:relative;top:0;margin-right:8px;color:#4e566c}:host .dr-input-date-paging__flip-page-button{width:25px;height:25px;border-radius:16px;padding:0;background-color:#fff}:host .dr-input-date-paging__flip-page-button i{position:relative;color:#0c142b;top:unset;left:unset}:host .dr-input-date-paging__flip-page-button:hover{background-color:#f2f2fb;color:#4646ce}:host input{visibility:hidden;position:absolute;width:100%}:host .dr-input-date-paging__formatted-value-display{width:90px;height:22px;padding-left:0;text-align:center;line-height:22px;color:#0c142b;-webkit-text-decoration-line:underline;text-decoration-line:underline}:host .dr-input-date-paging__formatted-value-display:hover{background-color:#f2f2fb;border-radius:5px;cursor:pointer;-webkit-text-decoration-line:underline;text-decoration-line:underline;color:#4646ce}\n"]
59
+ },] }
60
+ ];
61
+ DrDatePickerWithTimeframeComponent.ctorParameters = () => [
62
+ { type: ChangeDetectorRef },
63
+ { type: DateAdapter },
64
+ { type: DrDatePickerService }
65
+ ];
66
+ DrDatePickerWithTimeframeComponent.propDecorators = {
67
+ isDashboardClassDisplayed: [{ type: HostBinding, args: ['class.dr-date-picker-on-dashboard',] }],
68
+ isDashboardDatepicker: [{ type: Input }],
69
+ dateFormatConfig: [{ type: Input }],
70
+ onChangeFormat: [{ type: Output }]
71
+ };
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXItd2l0aC10aW1lZnJhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItaW5wdXRzL2RhdGUtcGlja2Vycy9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVkzQyxNQUFNLE9BQU8sa0NBQW1DLFNBQVEscUJBQXFCO0lBc0IzRSxZQUNZLEdBQXNCLEVBQ3RCLFdBQTZCLEVBQ2hDLGlCQUFzQztRQUU3QyxLQUFLLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBSmpDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBbkJ0QywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFHN0IsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRS9DLGdCQUFXLEdBQUc7WUFD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blN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT25EZXN0cm95LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZHItZGF0ZS1waWNrZXIvZHItZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJRGF0ZVBpY2tlckZvcm1hdENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHItZGF0ZS1waWNrZXItd2l0aC10aW1lZnJhbWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHItZGF0ZS1waWNrZXItd2l0aC10aW1lZnJhbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kci1kYXRlLXBpY2tlci13aXRoLXRpbWVmcmFtZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IERyRGF0ZVBpY2tlcldpdGhUaW1lZnJhbWVDb21wb25lbnQsIG11bHRpOiB0cnVlIH0sXG4gICAgeyBwcm92aWRlOiBEckRhdGVQaWNrZXJTZXJ2aWNlIH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJEYXRlUGlja2VyV2l0aFRpbWVmcmFtZUNvbXBvbmVudCBleHRlbmRzIERyRGF0ZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kci1kYXRlLXBpY2tlci1vbi1kYXNoYm9hcmQnKSBnZXQgaXNEYXNoYm9hcmRDbGFzc0Rpc3BsYXllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0Rhc2hib2FyZERhdGVwaWNrZXI7XG4gIH07XG5cbiAgQElucHV0KCkgaXNEYXNoYm9hcmREYXRlcGlja2VyID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRhdGVGb3JtYXRDb25maWc6IElEYXRlUGlja2VyRm9ybWF0Q29uZmlnO1xuXG4gIEBPdXRwdXQoKSBvbkNoYW5nZUZvcm1hdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBwYWdpbmdTZXR1cCA9IHtcbiAgICAneWVhcic6IChmb3J3YXJkKSA9PiAgdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhclllYXJzJywgMSwgZm9yd2FyZCksXG4gICAgJ3F1YXJ0ZXInOiAoZm9yd2FyZCkgPT4gIHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJNb250aHMnLCAzLCBmb3J3YXJkKSxcbiAgICAnbW9udGgnOiAoZm9yd2FyZCkgPT4gIHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJNb250aHMnLCAxLCBmb3J3YXJkKSxcbiAgICAnZGF5JzogKGZvcndhcmQpID0+ICB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyRGF5cycsIDEsIGZvcndhcmQpXG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1YXJ0ZXJEaXNwbGF5KCkge1xuICAgIHJldHVybiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmdldFF1YXJ0ZXJEaXNwbGF5KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxhbnk+LFxuICAgIHB1YmxpYyBkYXRlUGlja2VyU2VydmljZTogRHJEYXRlUGlja2VyU2VydmljZVxuICApIHtcbiAgICBzdXBlcihjZHIsIGRhdGVBZGFwdGVyLCBkYXRlUGlja2VyU2VydmljZSk7XG4gICAgZGF0ZVBpY2tlclNlcnZpY2UuaXNUaW1lZnJhbWVTZWxlY3Rpb25FbmFibGVkID0gdHJ1ZTtcblxuICAgIGRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdCRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUZvcm1hdC5lbWl0KGRhdGVQaWNrZXJTZXJ2aWNlLm5vcm1hbGl6ZVZhbHVlKHZhbHVlKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmRhdGVGb3JtYXRDb25maWcpIHtcbiAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnID0gey4uLnRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0Q29uZmlnLCAuLi50aGlzLmRhdGVGb3JtYXRDb25maWd9O1xuICAgIH1cbiAgfVxuXG4gIHBhZ2luZ0NsaWNrZWQoZm9yd2FyZCkge1xuICAgIHRoaXMucGFnaW5nU2V0dXBbdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWVdICYmIHRoaXMucGFnaW5nU2V0dXBbdGhpcy5kYXRlUGlja2VyU2VydmljZS50aW1lZnJhbWVdKGZvcndhcmQpO1xuICAgIHRoaXMuZHAuY2xvc2UoKTtcbiAgfVxuXG4gIHBhZ2luZ0RhdGVDaGFuZ2UoYWN0aW9uQ2FsbDogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgZm9yd2FyZDogYm9vbGVhbikge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5kYXRlQWRhcHRlclthY3Rpb25DYWxsXSh0aGlzLmlubmVyVmFsdWUsIGZvcndhcmQ/IGFtb3VudDogLSBhbW91bnQpO1xuICAgIHRoaXMuc2V0VmFsdWVGcm9tTW9tZW50KG5ld1ZhbHVlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,128 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject } from "@angular/core";
2
+ import { Subject } from "rxjs";
3
+ import { take, takeUntil } from 'rxjs/operators';
4
+ import { MatCalendar } from '@angular/material/datepicker';
5
+ import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
6
+ import { CustomDateFormat } from "../../../models/datePicker";
7
+ import { DrDatePickerService } from "../services/dr-date-picker.service";
8
+ const moment = require('moment');
9
+ export class DrDatePickerCustomHeaderComponent {
10
+ constructor(_calendar, _dateAdapter, _dateFormats, cdr, datePickerService) {
11
+ this._calendar = _calendar;
12
+ this._dateAdapter = _dateAdapter;
13
+ this._dateFormats = _dateFormats;
14
+ this.cdr = cdr;
15
+ this.datePickerService = datePickerService;
16
+ this._destroyed = new Subject();
17
+ this.quarters = [1, 2, 3, 4];
18
+ this.selectedQuarter = 1;
19
+ this.timeframeOptions = [{
20
+ title: 'Day',
21
+ value: 'month',
22
+ format: this.datePickerService.formatConfig.day,
23
+ periodLabel: () => this._dateAdapter
24
+ .format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel)
25
+ .toLocaleUpperCase()
26
+ }, {
27
+ title: 'Month',
28
+ value: 'year',
29
+ format: this.datePickerService.formatConfig.month,
30
+ periodLabel: () => String(moment(this._calendar.activeDate).year())
31
+ }, {
32
+ title: 'Quarter',
33
+ value: 'none',
34
+ format: this.datePickerService.formatConfig.quarter,
35
+ periodLabel: () => String(moment(this._calendar.activeDate).year())
36
+ }, {
37
+ title: 'Year',
38
+ value: 'multi-year',
39
+ format: this.datePickerService.formatConfig.year,
40
+ periodLabel: () => {
41
+ const currentYear = moment(this._calendar.activeDate).year();
42
+ const startPeriod = Math.floor(currentYear / 24) * 24;
43
+ return startPeriod + '-' + (startPeriod + 23);
44
+ }
45
+ }];
46
+ this.pagingSetup = {
47
+ 'year': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),
48
+ 'none': (forward) => this.pagingDateChange('addCalendarYears', 1, forward),
49
+ 'month': (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),
50
+ 'multi-year': (forward) => this.pagingDateChange('addCalendarYears', 24, forward)
51
+ };
52
+ this.selectedTimeframe = 'month';
53
+ this.timeframeSelection = false;
54
+ this.periodMonthLabel = '';
55
+ this.periodYearLabel = '';
56
+ _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());
57
+ this.datePickerService.format$
58
+ .pipe(take(1))
59
+ .subscribe(value => {
60
+ this.selectedTimeframe = this.timeframeOptions.filter(option => option.format == value)[0].value;
61
+ this.setPeriodLabels();
62
+ });
63
+ _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());
64
+ }
65
+ ngOnDestroy() {
66
+ this._destroyed.next();
67
+ this._destroyed.complete();
68
+ }
69
+ setPeriodLabels() {
70
+ const currentTimeframeOption = this.timeframeOptions.filter(option => option.value === this._calendar.currentView)[0];
71
+ const fullPeriodLabel = currentTimeframeOption.periodLabel();
72
+ if (this._calendar.currentView === 'month') {
73
+ this.periodMonthLabel = fullPeriodLabel.slice(0, 3);
74
+ this.periodYearLabel = fullPeriodLabel.slice(4);
75
+ }
76
+ else {
77
+ this.periodMonthLabel = '';
78
+ this.periodYearLabel = fullPeriodLabel;
79
+ }
80
+ this.cdr.markForCheck();
81
+ }
82
+ setTimeframe() {
83
+ this.timeframeSelection = false;
84
+ this._calendar.currentView = this.selectedTimeframe;
85
+ const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];
86
+ this.datePickerService.updateTimeframeAndFormat(chosenTimeframeOption.format);
87
+ if (this.selectedTimeframe == 'none') {
88
+ this.selectedQuarter = moment(this._calendar.activeDate).quarter();
89
+ }
90
+ }
91
+ get currentViewIsQuarter() {
92
+ return !['month', 'year', 'multi-year'].includes(this._calendar.currentView);
93
+ }
94
+ switchViewOnClickOnPeriodLabel(view) {
95
+ this._calendar.currentView = view;
96
+ }
97
+ onSelectQuarter(quarterNumber) {
98
+ const monthsInQuarter = 3;
99
+ this.selectedQuarter = moment(this._calendar.activeDate).quarter();
100
+ const unadaptedDate = this._dateAdapter.addCalendarMonths(this._calendar.activeDate, monthsInQuarter * (quarterNumber - this.selectedQuarter));
101
+ this._calendar.activeDate = unadaptedDate;
102
+ this.datePickerService.updatedQuarter$.next(moment(unadaptedDate));
103
+ this.datePickerService.calendarInstance.close();
104
+ }
105
+ pagingClicked(forward) {
106
+ this.pagingSetup[this._calendar.currentView] && this.pagingSetup[this._calendar.currentView](forward);
107
+ }
108
+ pagingDateChange(actionCall, amount, forward) {
109
+ this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);
110
+ this.setPeriodLabels();
111
+ }
112
+ }
113
+ DrDatePickerCustomHeaderComponent.decorators = [
114
+ { type: Component, args: [{
115
+ selector: 'dr-date-picker_custom-header.component',
116
+ template: "<div *ngIf=\"datePickerService.isTimeframeSelectionEnabled\" class=\"dr-datepicker__timeframe-select__wrapper\">\n <dr-select\n class=\"dr-datepicker__timeframe-select\"\n [(ngModel)]=\"selectedTimeframe\"\n [items]=\"timeframeOptions\"\n bindLabel=\"title\"\n bindValue=\"value\"\n (ngModelChange)=\"setTimeframe()\">\n </dr-select>\n</div>\n\n<div class=\"dr-date-paging\">\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(false)\">\n <i class=\"dr-icon-arrow-left presentation_buttons-navigate_input\"></i>\n </div>\n <span class=\"example-header-label\">\n <span (click)=\"switchViewOnClickOnPeriodLabel('year')\">{{periodMonthLabel + ' '}}</span>\n <span (click)=\"switchViewOnClickOnPeriodLabel('multi-year')\">{{periodYearLabel}}</span>\n </span>\n <div class=\"dr-date-paging flip-page-button\"\n (click)=\"pagingClicked(true)\">\n <i class=\"dr-icon-arrow-right presentation_buttons-navigate_input\"></i>\n </div>\n</div>\n<div #quarterlyDatePicker class=\"dr-quarterly-datepicker\" *ngIf=\"currentViewIsQuarter\">\n <div *ngFor=\"let quarter of quarters\"\n class=\"quarter-selector\" (click)=\"onSelectQuarter(quarter)\"\n [class]=\"quarter == selectedQuarter ? 'selected' : ''\"\n >Q{{quarter}}</div>\n</div>\n\n",
117
+ changeDetection: ChangeDetectionStrategy.OnPush,
118
+ styles: [":host{height:54px;align-items:center;font-family:\"Poppins\";font-style:normal;font-weight:600;font-size:14px;line-height:22px}.dr-datepicker__timeframe-select__wrapper{background-color:#f9faff;padding:16px 32px;border-radius:18px 18px 0 0}.dr-date-paging{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:16px 8px;grid-gap:4px;gap:4px}.dr-date-paging.flip-page-button{width:20px;height:20px;padding:0;color:#4e566c}.dr-date-paging.flip-page-button:hover{border-radius:50%;background:#F2F2FB;color:#4646ce}.example-header-label{cursor:pointer}.dr-quarterly-datepicker{display:flex;justify-content:space-between;padding:10px}.dr-quarterly-datepicker .quarter-selector{display:block;width:74px;height:40px;text-align:center;border-radius:40px;font-weight:400;padding-top:9px}.dr-quarterly-datepicker .quarter-selector:hover{background:#F2F2FB;color:#4646ce;font-weight:600;cursor:pointer}.dr-quarterly-datepicker .quarter-selector.selected{background-color:#4646ce;color:#f3f7ff;font-weight:600}\n"]
119
+ },] }
120
+ ];
121
+ DrDatePickerCustomHeaderComponent.ctorParameters = () => [
122
+ { type: MatCalendar },
123
+ { type: DateAdapter },
124
+ { type: CustomDateFormat, decorators: [{ type: Inject, args: [MAT_DATE_FORMATS,] }] },
125
+ { type: ChangeDetectorRef },
126
+ { type: DrDatePickerService }
127
+ ];
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1pbnB1dHMvZGF0ZS1waWNrZXJzL2RyLWRhdGUtcGlja2VyX2N1c3RvbS1oZWFkZXIvZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFhLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sOEJBQThCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBbUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUUxRixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFnQmpDLE1BQU0sT0FBTyxpQ0FBaUM7SUEyQzFDLFlBQ1ksU0FBOEIsRUFDOUIsWUFBaUMsRUFDUCxZQUE4QixFQUN4RCxHQUFzQixFQUN2QixpQkFBc0M7UUFKckMsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ1AsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQ3hELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3ZCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBcUI7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QkFDbEQsMDNDQUEwRDtnQkFFMUQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUFuQk0sV0FBVztZQUNYLFdBQVc7WUFDWCxnQkFBZ0IsdUJBaUVoQixNQUFNLFNBQUMsZ0JBQWdCO1lBdEVhLGlCQUFpQjtZQU1yRCxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXRDYWxlbmRhciwgTWF0Q2FsZW5kYXJWaWV3IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciwgTUFUX0RBVEVfRk9STUFUU30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBDdXN0b21EYXRlRm9ybWF0IH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9kYXRlUGlja2VyXCI7XG5pbXBvcnQgeyBEckRhdGVQaWNrZXJTZXJ2aWNlLCBUaW1lZnJhbWVPcHRpb24gfSBmcm9tIFwiLi4vc2VydmljZXMvZHItZGF0ZS1waWNrZXIuc2VydmljZVwiO1xuXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcblxuZXhwb3J0IGludGVyZmFjZSBJVGltZWZyYW1lT3B0aW9uIHtcbiAgICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgICB2YWx1ZTogTWF0Q2FsZW5kYXJWaWV3LFxuICAgICAgZm9ybWF0OiBzdHJpbmcsXG4gICAgICBwZXJpb2RMYWJlbDogKCkgPT4gc3RyaW5nXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZGF0ZS1waWNrZXJfY3VzdG9tLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG4gIH0pXG5cbmV4cG9ydCBjbGFzcyBEckRhdGVQaWNrZXJDdXN0b21IZWFkZXJDb21wb25lbnQ8TW9tZW50PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBxdWFydGVycyA9IFsxLCAyLCAzLCA0XTtcbiAgICBzZWxlY3RlZFF1YXJ0ZXIgPSAxO1xuICAgIHRpbWVmcmFtZU9wdGlvbnM6IElUaW1lZnJhbWVPcHRpb25bXSA9IFt7XG4gICAgICB0aXRsZTogJ0RheScsXG4gICAgICB2YWx1ZTogJ21vbnRoJyxcbiAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcuZGF5LFxuICAgICAgcGVyaW9kTGFiZWw6ICgpID0+IHRoaXMuX2RhdGVBZGFwdGVyXG4gICAgICAgIC5mb3JtYXQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSwgdGhpcy5fZGF0ZUZvcm1hdHMuZGlzcGxheS5tb250aFllYXJMYWJlbClcbiAgICAgICAgLnRvTG9jYWxlVXBwZXJDYXNlKClcbiAgICB9LHtcbiAgICAgIHRpdGxlOiAnTW9udGgnLFxuICAgICAgdmFsdWU6ICd5ZWFyJyxcbiAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcubW9udGgsXG4gICAgICBwZXJpb2RMYWJlbDogKCkgPT4gU3RyaW5nKG1vbWVudCh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKS55ZWFyKCkpXG4gICAgfSx7XG4gICAgICB0aXRsZTogJ1F1YXJ0ZXInLFxuICAgICAgdmFsdWU6IDxNYXRDYWxlbmRhclZpZXc+ICdub25lJyxcbiAgICAgIGZvcm1hdDogdGhpcy5kYXRlUGlja2VyU2VydmljZS5mb3JtYXRDb25maWcucXVhcnRlcixcbiAgICAgIHBlcmlvZExhYmVsOiAoKSA9PiBTdHJpbmcobW9tZW50KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpLnllYXIoKSlcbiAgICB9LHtcbiAgICAgIHRpdGxlOiAnWWVhcicsXG4gICAgICB2YWx1ZTogJ211bHRpLXllYXInLFxuICAgICAgZm9ybWF0OiB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmZvcm1hdENvbmZpZy55ZWFyLFxuICAgICAgcGVyaW9kTGFiZWw6ICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gbW9tZW50KHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUpLnllYXIoKTtcbiAgICAgICAgY29uc3Qgc3RhcnRQZXJpb2QgPSBNYXRoLmZsb29yKGN1cnJlbnRZZWFyLzI0KSoyNDtcbiAgICAgICAgcmV0dXJuIHN0YXJ0UGVyaW9kICsgJy0nICsgKHN0YXJ0UGVyaW9kICsgMjMpO1xuICAgICAgfVxuICAgIH1dXG5cbiAgICBwYWdpbmdTZXR1cCA9IHtcbiAgICAgICd5ZWFyJzogKGZvcndhcmQpID0+ICB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyWWVhcnMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICdub25lJzogKGZvcndhcmQpID0+ICB0aGlzLnBhZ2luZ0RhdGVDaGFuZ2UoJ2FkZENhbGVuZGFyWWVhcnMnLCAxLCBmb3J3YXJkKSxcbiAgICAgICdtb250aCc6IChmb3J3YXJkKSA9PiAgdGhpcy5wYWdpbmdEYXRlQ2hhbmdlKCdhZGRDYWxlbmRhck1vbnRocycsIDEsIGZvcndhcmQpLFxuICAgICAgJ211bHRpLXllYXInOiAoZm9yd2FyZCkgPT4gIHRoaXMucGFnaW5nRGF0ZUNoYW5nZSgnYWRkQ2FsZW5kYXJZZWFycycsIDI0LCBmb3J3YXJkKVxuICAgIH1cblxuICAgIHNlbGVjdGVkVGltZWZyYW1lOiBNYXRDYWxlbmRhclZpZXcgPSAnbW9udGgnO1xuICAgIHRpbWVmcmFtZVNlbGVjdGlvbiA9IGZhbHNlO1xuICAgIHBlcmlvZE1vbnRoTGFiZWwgPSAnJztcbiAgICBwZXJpb2RZZWFyTGFiZWwgPSAnJztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfY2FsZW5kYXI6IE1hdENhbGVuZGFyPE1vbWVudD4sXG4gICAgICAgIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxNb21lbnQ+LFxuICAgICAgICBASW5qZWN0KE1BVF9EQVRFX0ZPUk1BVFMpIHByaXZhdGUgX2RhdGVGb3JtYXRzOiBDdXN0b21EYXRlRm9ybWF0LFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHB1YmxpYyBkYXRlUGlja2VyU2VydmljZTogRHJEYXRlUGlja2VyU2VydmljZSkge1xuICAgICAgICAgIF9jYWxlbmRhci5zdGF0ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2V0UGVyaW9kTGFiZWxzKCkpO1xuICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuZm9ybWF0JFxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoIHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSA9IHRoaXMudGltZWZyYW1lT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi5mb3JtYXQgPT0gdmFsdWUpWzBdLnZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLnNldFBlcmlvZExhYmVscygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgX2NhbGVuZGFyLnZpZXdDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNldFBlcmlvZExhYmVscygpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBzZXRQZXJpb2RMYWJlbHMoKSB7XG4gICAgICBjb25zdCBjdXJyZW50VGltZWZyYW1lT3B0aW9uID0gdGhpcy50aW1lZnJhbWVPcHRpb25zLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uLnZhbHVlID09PSB0aGlzLl9jYWxlbmRhci5jdXJyZW50VmlldylbMF07XG4gICAgICBjb25zdCBmdWxsUGVyaW9kTGFiZWwgPSBjdXJyZW50VGltZWZyYW1lT3B0aW9uLnBlcmlvZExhYmVsKCk7XG4gICAgICBpZiAodGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXcgPT09ICdtb250aCcpIHtcbiAgICAgICAgdGhpcy5wZXJpb2RNb250aExhYmVsID0gZnVsbFBlcmlvZExhYmVsLnNsaWNlKDAsMyk7XG4gICAgICAgIHRoaXMucGVyaW9kWWVhckxhYmVsID0gZnVsbFBlcmlvZExhYmVsLnNsaWNlKDQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wZXJpb2RNb250aExhYmVsID0gJyc7XG4gICAgICAgIHRoaXMucGVyaW9kWWVhckxhYmVsID0gZnVsbFBlcmlvZExhYmVsO1xuICAgICAgfVxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgc2V0VGltZWZyYW1lKCkge1xuICAgICAgdGhpcy50aW1lZnJhbWVTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuX2NhbGVuZGFyLmN1cnJlbnRWaWV3ID0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZTtcbiAgICAgIGNvbnN0IGNob3NlblRpbWVmcmFtZU9wdGlvbiA9IHRoaXMudGltZWZyYW1lT3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5zZWxlY3RlZFRpbWVmcmFtZSlbMF07XG4gICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnVwZGF0ZVRpbWVmcmFtZUFuZEZvcm1hdChjaG9zZW5UaW1lZnJhbWVPcHRpb24uZm9ybWF0KTtcblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRUaW1lZnJhbWUgPT0gPE1hdENhbGVuZGFyVmlldz4nbm9uZScpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFF1YXJ0ZXIgPSBtb21lbnQodGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSkucXVhcnRlcigpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjdXJyZW50Vmlld0lzUXVhcnRlcigpIHtcbiAgICAgIHJldHVybiAhWydtb250aCcsICd5ZWFyJywgJ211bHRpLXllYXInXS5pbmNsdWRlcyh0aGlzLl9jYWxlbmRhci5jdXJyZW50Vmlldyk7XG4gICAgfVxuXG4gICAgc3dpdGNoVmlld09uQ2xpY2tPblBlcmlvZExhYmVsKHZpZXc6ICd5ZWFyJyB8ICdtdWx0aS15ZWFyJykge1xuICAgICAgdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXcgPSB2aWV3O1xuICAgIH1cblxuICAgIG9uU2VsZWN0UXVhcnRlcihxdWFydGVyTnVtYmVyOiBudW1iZXIpIHtcbiAgICAgIGNvbnN0IG1vbnRoc0luUXVhcnRlciA9IDM7XG4gICAgICB0aGlzLnNlbGVjdGVkUXVhcnRlciA9IG1vbWVudCh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlKS5xdWFydGVyKCk7XG5cbiAgICAgIGNvbnN0IHVuYWRhcHRlZERhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyh0aGlzLl9jYWxlbmRhci5hY3RpdmVEYXRlLFxuICAgICAgbW9udGhzSW5RdWFydGVyICogKHF1YXJ0ZXJOdW1iZXIgLSB0aGlzLnNlbGVjdGVkUXVhcnRlcikpO1xuICAgICAgdGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHVuYWRhcHRlZERhdGU7XG4gICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLnVwZGF0ZWRRdWFydGVyJC5uZXh0KG1vbWVudCh1bmFkYXB0ZWREYXRlKSk7XG4gICAgICB0aGlzLmRhdGVQaWNrZXJTZXJ2aWNlLmNhbGVuZGFySW5zdGFuY2UuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwYWdpbmdDbGlja2VkKGZvcndhcmQpIHtcbiAgICAgIHRoaXMucGFnaW5nU2V0dXBbdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXddICYmIHRoaXMucGFnaW5nU2V0dXBbdGhpcy5fY2FsZW5kYXIuY3VycmVudFZpZXddKGZvcndhcmQpO1xuICAgIH1cblxuICAgIHBhZ2luZ0RhdGVDaGFuZ2UoYWN0aW9uQ2FsbDogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgZm9yd2FyZDogYm9vbGVhbikge1xuICAgICAgdGhpcy5fY2FsZW5kYXIuYWN0aXZlRGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyW2FjdGlvbkNhbGxdKHRoaXMuX2NhbGVuZGFyLmFjdGl2ZURhdGUsIGZvcndhcmQ/IGFtb3VudDogLSBhbW91bnQpO1xuICAgICAgdGhpcy5zZXRQZXJpb2RMYWJlbHMoKTtcbiAgICB9XG4gIH1cbiJdfQ==