ngx-techlify-core 18.63.0-alpha.0 → 18.64.0

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 (24) hide show
  1. package/esm2022/lib/delete-button/techlify-delete-button.component.mjs +3 -3
  2. package/esm2022/lib/locked-date/index.mjs +6 -0
  3. package/esm2022/lib/locked-date/locked-date-form/locked-date-form.component.mjs +72 -0
  4. package/esm2022/lib/locked-date/locked-date-lock-unlock-button/locked-date-lock-unlock-button.component.mjs +35 -0
  5. package/esm2022/lib/locked-date/locked-date.model.mjs +3 -0
  6. package/esm2022/lib/locked-date/locked-date.module.mjs +61 -0
  7. package/esm2022/lib/locked-date/locked-date.service.mjs +25 -0
  8. package/esm2022/lib/locked-date/locked-dates-list/locked-date-list.component.mjs +68 -0
  9. package/esm2022/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.mjs +197 -0
  10. package/esm2022/public-api.mjs +6 -2
  11. package/fesm2022/ngx-techlify-core.mjs +443 -64
  12. package/fesm2022/ngx-techlify-core.mjs.map +1 -1
  13. package/lib/locked-date/index.d.ts +5 -0
  14. package/lib/locked-date/locked-date-form/locked-date-form.component.d.ts +24 -0
  15. package/lib/locked-date/locked-date-lock-unlock-button/locked-date-lock-unlock-button.component.d.ts +13 -0
  16. package/lib/locked-date/locked-date.model.d.ts +10 -0
  17. package/lib/locked-date/locked-date.module.d.ts +17 -0
  18. package/lib/locked-date/locked-date.service.d.ts +11 -0
  19. package/lib/locked-date/locked-dates-list/locked-date-list.component.d.ts +19 -0
  20. package/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.d.ts +50 -0
  21. package/package.json +1 -1
  22. package/public-api.d.ts +3 -1
  23. package/esm2022/lib/date-validator.mjs +0 -10
  24. package/lib/date-validator.d.ts +0 -1
@@ -44,9 +44,9 @@ export class TechlifyDeleteButtonComponent {
44
44
  return;
45
45
  }
46
46
  this.service().delete(this.model()).subscribe({
47
- next: () => {
47
+ next: (response) => {
48
48
  this.alertService.addAlert('Successfully Deleted', 'success');
49
- this.deleted.emit(true);
49
+ this.deleted.emit(response.item);
50
50
  },
51
51
  error: (error) => {
52
52
  this.errorHandler.handleError(error);
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
65
65
  TechlifyIconModule
66
66
  ], template: "<app-techlify-icon role='button' name='delete' (click)=\"open()\"></app-techlify-icon>" }]
67
67
  }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.AlertService }, { type: i2.ErrorHandlerService }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktZGVsZXRlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RlbGV0ZS1idXR0b24vdGVjaGxpZnktZGVsZXRlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RlbGV0ZS1idXR0b24vdGVjaGxpZnktZGVsZXRlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFvQnZELE1BQU0sT0FBTyw2QkFBNkI7SUFZdEMsWUFDWSxNQUFpQixFQUNmLFlBQTBCLEVBQzFCLFlBQWlDO1FBRm5DLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDZixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFiL0MsU0FBSSxHQUFHLEtBQUssQ0FBbUI7WUFDM0IsS0FBSyxFQUFFLGVBQWU7WUFDdEIsSUFBSSxFQUFFLEVBQUU7U0FDWCxDQUFDLENBQUM7UUFDSCxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO1FBQzlCLFlBQU8sR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMxQixZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUIsQ0FBQztRQUU1QyxZQUFPLEdBQUcsTUFBTSxFQUFXLENBQUM7SUFNeEIsQ0FBQztJQUVMLElBQUk7UUFDQSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQzFCLE9BQU8sR0FBRyxpQkFBaUIsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLFlBQVksSUFBSSxDQUFDLEtBQUsscUVBQXFFLENBQUM7UUFDL0ksQ0FBQzthQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixPQUFPLEdBQUcsNkNBQTZDLENBQUM7UUFDNUQsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQ25DLElBQUksRUFBRTtnQkFDRixLQUFLLEVBQUUsUUFBUTtnQkFDZixPQUFPLEVBQUUsT0FBTzthQUNuQjtTQUNKLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1YsT0FBTztZQUNYLENBQUM7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztnQkFDdEMsT0FBTztZQUNYLENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDMUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtvQkFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDOUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7YUFDSixDQUFDLENBQUE7UUFFTixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7K0dBdERRLDZCQUE2QjttR0FBN0IsNkJBQTZCLDBtQkN6QjFDLHdGQUFvRiwyQ0RtQjVFLFlBQVksOEJBQ1osY0FBYyw4QkFDZCxrQkFBa0I7OzRGQUliLDZCQUE2QjtrQkFYekMsU0FBUzsrQkFDSSw0QkFBNEIsY0FFMUIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxrQkFBa0I7cUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgVGVjaGxpZnlJY29uTW9kdWxlIH0gZnJvbSAnLi4vdGVjaGxpZnktaWNvbi90ZWNobGlmeS1pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBBY3Rpb25Qb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL2FjdGlvbi1wb3B1cCc7XG5pbXBvcnQgeyBUZWNobGlmeVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLW1vZGVsJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgRXJyb3JIYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuXG5pbnRlcmZhY2UgRGVsZXRlQnV0dG9uRGF0YSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZWNobGlmeS1kZWxldGUtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICAgICAgVGVjaGxpZnlJY29uTW9kdWxlXG4gICAgXVxufSlcblxuZXhwb3J0IGNsYXNzIFRlY2hsaWZ5RGVsZXRlQnV0dG9uQ29tcG9uZW50IHtcblxuICAgIGRhdGEgPSBpbnB1dDxEZWxldGVCdXR0b25EYXRhPih7XG4gICAgICAgIHRpdGxlOiAnRGVsZXRlIFJlY29yZCcsXG4gICAgICAgIHR5cGU6ICcnXG4gICAgfSk7XG4gICAgbW9kZWwgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XG4gICAgbWVzc2FnZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBzZXJ2aWNlID0gaW5wdXQucmVxdWlyZWQ8VGVjaGxpZnlTZXJ2aWNlPigpO1xuXG4gICAgZGVsZXRlZCA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByb3RlY3RlZCBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyU2VydmljZVxuICAgICkgeyB9XG5cbiAgICBvcGVuKCkge1xuICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMubWVzc2FnZSgpO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhKCk7XG5cbiAgICAgICAgaWYgKCFtZXNzYWdlICYmIGRhdGE/LnRpdGxlKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gYERlbGV0aW5nIHRoaXMgJHtkYXRhLnR5cGUgfHwgJ21vZGVsJ30gPHN0cm9uZz4ke2RhdGEudGl0bGV9PC9zdHJvbmc+IGNhbm5vdCBiZSB1bmRvbmUuIDxicj4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbnRpbnVlP2A7XG4gICAgICAgIH0gZWxzZSBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1vZGVsPyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpYWxvZy5vcGVuKEFjdGlvblBvcHVwQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdEZWxldGUnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2VydmljZSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignU2VydmljZSBub3QgcHJvdmlkZWQnKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VydmljZSgpLmRlbGV0ZSh0aGlzLm1vZGVsKCkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnU3VjY2Vzc2Z1bGx5IERlbGV0ZWQnLCAnc3VjY2VzcycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZWQuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgfSlcbiAgICB9XG5cbn1cbiIsIjxhcHAtdGVjaGxpZnktaWNvbiByb2xlPSdidXR0b24nIG5hbWU9J2RlbGV0ZScgKGNsaWNrKT1cIm9wZW4oKVwiPjwvYXBwLXRlY2hsaWZ5LWljb24+Il19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaGxpZnktZGVsZXRlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RlbGV0ZS1idXR0b24vdGVjaGxpZnktZGVsZXRlLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2RlbGV0ZS1idXR0b24vdGVjaGxpZnktZGVsZXRlLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFvQnZELE1BQU0sT0FBTyw2QkFBNkI7SUFZdEMsWUFDWSxNQUFpQixFQUNmLFlBQTBCLEVBQzFCLFlBQWlDO1FBRm5DLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDZixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFiL0MsU0FBSSxHQUFHLEtBQUssQ0FBbUI7WUFDM0IsS0FBSyxFQUFFLGVBQWU7WUFDdEIsSUFBSSxFQUFFLEVBQUU7U0FDWCxDQUFDLENBQUM7UUFDSCxVQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO1FBQzlCLFlBQU8sR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMxQixZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUIsQ0FBQztRQUU1QyxZQUFPLEdBQUcsTUFBTSxFQUFXLENBQUM7SUFNeEIsQ0FBQztJQUVMLElBQUk7UUFDQSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQzFCLE9BQU8sR0FBRyxpQkFBaUIsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPLFlBQVksSUFBSSxDQUFDLEtBQUsscUVBQXFFLENBQUM7UUFDL0ksQ0FBQzthQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixPQUFPLEdBQUcsNkNBQTZDLENBQUM7UUFDNUQsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQ25DLElBQUksRUFBRTtnQkFDRixLQUFLLEVBQUUsUUFBUTtnQkFDZixPQUFPLEVBQUUsT0FBTzthQUNuQjtTQUNKLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1YsT0FBTztZQUNYLENBQUM7WUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztnQkFDdEMsT0FBTztZQUNYLENBQUM7WUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDMUMsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUM5RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7YUFDSixDQUFDLENBQUE7UUFFTixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7K0dBdERRLDZCQUE2QjttR0FBN0IsNkJBQTZCLDBtQkN6QjFDLHdGQUFvRiwyQ0RtQjVFLFlBQVksOEJBQ1osY0FBYyw4QkFDZCxrQkFBa0I7OzRGQUliLDZCQUE2QjtrQkFYekMsU0FBUzsrQkFDSSw0QkFBNEIsY0FFMUIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxrQkFBa0I7cUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgVGVjaGxpZnlJY29uTW9kdWxlIH0gZnJvbSAnLi4vdGVjaGxpZnktaWNvbi90ZWNobGlmeS1pY29uLm1vZHVsZSc7XG5pbXBvcnQgeyBBY3Rpb25Qb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL2FjdGlvbi1wb3B1cCc7XG5pbXBvcnQgeyBUZWNobGlmeVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLW1vZGVsJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgRXJyb3JIYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuXG5pbnRlcmZhY2UgRGVsZXRlQnV0dG9uRGF0YSB7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB0eXBlOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZWNobGlmeS1kZWxldGUtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICAgICAgVGVjaGxpZnlJY29uTW9kdWxlXG4gICAgXVxufSlcblxuZXhwb3J0IGNsYXNzIFRlY2hsaWZ5RGVsZXRlQnV0dG9uQ29tcG9uZW50IHtcblxuICAgIGRhdGEgPSBpbnB1dDxEZWxldGVCdXR0b25EYXRhPih7XG4gICAgICAgIHRpdGxlOiAnRGVsZXRlIFJlY29yZCcsXG4gICAgICAgIHR5cGU6ICcnXG4gICAgfSk7XG4gICAgbW9kZWwgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XG4gICAgbWVzc2FnZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBzZXJ2aWNlID0gaW5wdXQucmVxdWlyZWQ8VGVjaGxpZnlTZXJ2aWNlPigpO1xuXG4gICAgZGVsZXRlZCA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByb3RlY3RlZCBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyU2VydmljZVxuICAgICkgeyB9XG5cbiAgICBvcGVuKCkge1xuICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMubWVzc2FnZSgpO1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhKCk7XG5cbiAgICAgICAgaWYgKCFtZXNzYWdlICYmIGRhdGE/LnRpdGxlKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gYERlbGV0aW5nIHRoaXMgJHtkYXRhLnR5cGUgfHwgJ21vZGVsJ30gPHN0cm9uZz4ke2RhdGEudGl0bGV9PC9zdHJvbmc+IGNhbm5vdCBiZSB1bmRvbmUuIDxicj4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNvbnRpbnVlP2A7XG4gICAgICAgIH0gZWxzZSBpZiAoIW1lc3NhZ2UpIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIG1vZGVsPyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpYWxvZy5vcGVuKEFjdGlvblBvcHVwQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdEZWxldGUnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2VydmljZSgpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignU2VydmljZSBub3QgcHJvdmlkZWQnKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VydmljZSgpLmRlbGV0ZSh0aGlzLm1vZGVsKCkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1N1Y2Nlc3NmdWxseSBEZWxldGVkJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWxldGVkLmVtaXQocmVzcG9uc2UuaXRlbSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgIH0pXG4gICAgfVxuXG59XG4iLCI8YXBwLXRlY2hsaWZ5LWljb24gcm9sZT0nYnV0dG9uJyBuYW1lPSdkZWxldGUnIChjbGljayk9XCJvcGVuKClcIj48L2FwcC10ZWNobGlmeS1pY29uPiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from './locked-date.model';
2
+ export * from './locked-date.service';
3
+ export * from './locked-date-form/locked-date-form.component';
4
+ export * from './locked-date-lock-unlock-button/locked-date-lock-unlock-button.component';
5
+ export * from './locked-dates-list/locked-date-list.component';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2xvY2tlZC1kYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkVBQTJFLENBQUM7QUFDMUYsY0FBYyxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbG9ja2VkLWRhdGUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2NrZWQtZGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9ja2VkLWRhdGUtZm9ybS9sb2NrZWQtZGF0ZS1mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xvY2tlZC1kYXRlLWxvY2stdW5sb2NrLWJ1dHRvbi9sb2NrZWQtZGF0ZS1sb2NrLXVubG9jay1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbG9ja2VkLWRhdGVzLWxpc3QvbG9ja2VkLWRhdGUtbGlzdC5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,72 @@
1
+ import { Component, Inject, Optional } from '@angular/core';
2
+ import { TechlifyFormComponent } from '../../base-model';
3
+ import { Validators } from '@angular/forms';
4
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
5
+ import { DatePipe } from '@angular/common';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../locked-date.service";
8
+ import * as i2 from "../../core/error-handler.service";
9
+ import * as i3 from "@angular/forms";
10
+ import * as i4 from "@angular/material/dialog";
11
+ import * as i5 from "../../core/form-validator.service";
12
+ import * as i6 from "@angular/common";
13
+ import * as i7 from "@angular/material/button";
14
+ import * as i8 from "@angular/material/form-field";
15
+ import * as i9 from "@angular/material/input";
16
+ import * as i10 from "@angular/material/card";
17
+ import * as i11 from "@angular/material/datepicker";
18
+ export class LockedDateFormComponent extends TechlifyFormComponent {
19
+ constructor(service, errorHandler, fb, dialog, dialogRef, formValidatorService, datePipe, data) {
20
+ super(formValidatorService);
21
+ this.service = service;
22
+ this.errorHandler = errorHandler;
23
+ this.fb = fb;
24
+ this.dialog = dialog;
25
+ this.dialogRef = dialogRef;
26
+ this.formValidatorService = formValidatorService;
27
+ this.datePipe = datePipe;
28
+ this.data = data;
29
+ this.form = this.fb.group({
30
+ date: [new Date(), Validators.compose([Validators.required])],
31
+ details: ['']
32
+ });
33
+ }
34
+ ngOnInit() {
35
+ if (this.data?.model) {
36
+ this.form.patchValue(this.data?.model);
37
+ }
38
+ }
39
+ save() {
40
+ if (!this.form.valid) {
41
+ return;
42
+ }
43
+ this.isWorking = true;
44
+ let data = this.form.value;
45
+ data.date = data.date
46
+ ? this.datePipe.transform(data.date, 'yyyy-MM-dd')
47
+ : '';
48
+ this.service.store(data).subscribe({
49
+ next: (result) => {
50
+ this.dialogRef?.close(result?.item);
51
+ }, error: (error) => {
52
+ this.errorHandler.handleError(error);
53
+ }, complete: () => {
54
+ this.isWorking = false;
55
+ }
56
+ });
57
+ }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateFormComponent, deps: [{ token: i1.LockedDateService }, { token: i2.ErrorHandlerService }, { token: i3.UntypedFormBuilder }, { token: i4.MatDialog }, { token: i4.MatDialogRef, optional: true }, { token: i5.FormValidatorService }, { token: i6.DatePipe }, { token: MAT_DIALOG_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LockedDateFormComponent, selector: "app-locked-date-form", providers: [DatePipe], usesInheritance: true, ngImport: i0, template: "<mat-card-content #formTemplate>\n <h5 class=\"text-center\">Lock Date</h5>\n\n <form class=\"d-flex flex-column gap-3\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\n\n <mat-form-field class=\"w-100\">\n <mat-label>Date</mat-label>\n <input formControlName=\"date\" matInput [matDatepicker]=\"picker\" (focus)=\"picker.open()\" required>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date')\">Invalid Date</mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <textarea matInput placeholder=\"Details\" formControlName='details'></textarea>\n </mat-form-field>\n\n <div class=\"d-flex flex-row gap-2 justify-content-end w-100\">\n <button mat-raised-button type=\"button\" (click)=\"dialogRef.close()\">Cancel</button>\n <button mat-raised-button color=\"primary\" type=\"submit\">Save</button>\n </div>\n </form>\n</mat-card-content>\n", dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i10.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i11.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i11.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i11.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }] }); }
60
+ }
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateFormComponent, decorators: [{
62
+ type: Component,
63
+ args: [{ selector: 'app-locked-date-form', providers: [DatePipe], template: "<mat-card-content #formTemplate>\n <h5 class=\"text-center\">Lock Date</h5>\n\n <form class=\"d-flex flex-column gap-3\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\n\n <mat-form-field class=\"w-100\">\n <mat-label>Date</mat-label>\n <input formControlName=\"date\" matInput [matDatepicker]=\"picker\" (focus)=\"picker.open()\" required>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngIf=\"isFieldValid('date')\">Invalid Date</mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <textarea matInput placeholder=\"Details\" formControlName='details'></textarea>\n </mat-form-field>\n\n <div class=\"d-flex flex-row gap-2 justify-content-end w-100\">\n <button mat-raised-button type=\"button\" (click)=\"dialogRef.close()\">Cancel</button>\n <button mat-raised-button color=\"primary\" type=\"submit\">Save</button>\n </div>\n </form>\n</mat-card-content>\n" }]
64
+ }], ctorParameters: () => [{ type: i1.LockedDateService }, { type: i2.ErrorHandlerService }, { type: i3.UntypedFormBuilder }, { type: i4.MatDialog }, { type: i4.MatDialogRef, decorators: [{
65
+ type: Optional
66
+ }] }, { type: i5.FormValidatorService }, { type: i6.DatePipe }, { type: undefined, decorators: [{
67
+ type: Optional
68
+ }, {
69
+ type: Inject,
70
+ args: [MAT_DIALOG_DATA]
71
+ }] }] });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja2VkLWRhdGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2xvY2tlZC1kYXRlL2xvY2tlZC1kYXRlLWZvcm0vbG9ja2VkLWRhdGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2xvY2tlZC1kYXRlL2xvY2tlZC1kYXRlLWZvcm0vbG9ja2VkLWRhdGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFzQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU8zQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEscUJBQXFCO0lBRWhFLFlBQStCLE9BQTBCLEVBQy9DLFlBQWlDLEVBQ2pDLEVBQXNCLEVBQ3ZCLE1BQWlCLEVBQ0ksU0FBZ0QsRUFDekQsb0JBQTBDLEVBQ25ELFFBQWtCLEVBQ2dCLElBQVU7UUFDdEQsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFSQyxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMvQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNJLGNBQVMsR0FBVCxTQUFTLENBQXVDO1FBQ3pELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDbkQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNnQixTQUFJLEdBQUosSUFBSSxDQUFNO1FBR3RELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDN0QsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUk7WUFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDO1lBQ2xELENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFUCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDakMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytHQTVDVSx1QkFBdUIseVBBU1osZUFBZTttR0FUMUIsdUJBQXVCLCtDQUZ2QixDQUFDLFFBQVEsQ0FBQyxpRENidkIsay9CQXVCQTs7NEZEUmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQixhQUVyQixDQUFDLFFBQVEsQ0FBQzs7MEJBUWxCLFFBQVE7OzBCQUdSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm0tdmFsaWRhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVjaGxpZnlGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2NrZWREYXRlIH0gZnJvbSAnLi4vbG9ja2VkLWRhdGUubW9kZWwnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBMb2NrZWREYXRlU2VydmljZSB9IGZyb20gJy4uL2xvY2tlZC1kYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbG9ja2VkLWRhdGUtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2NrZWQtZGF0ZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIExvY2tlZERhdGVGb3JtQ29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3ZlcnJpZGUgc2VydmljZTogTG9ja2VkRGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgb3ZlcnJpZGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8TG9ja2VkRGF0ZUZvcm1Db21wb25lbnQ+LFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmb3JtVmFsaWRhdG9yU2VydmljZTogRm9ybVZhbGlkYXRvclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGRhdGVQaXBlOiBEYXRlUGlwZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE/OiBhbnkpIHtcbiAgICBzdXBlcihmb3JtVmFsaWRhdG9yU2VydmljZSk7XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGRhdGU6IFtuZXcgRGF0ZSgpLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXG4gICAgICBkZXRhaWxzOiBbJyddXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5kYXRhPy5tb2RlbCkge1xuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5kYXRhPy5tb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG5cbiAgICBsZXQgZGF0YSA9IHRoaXMuZm9ybS52YWx1ZTtcbiAgICBkYXRhLmRhdGUgPSBkYXRhLmRhdGVcbiAgICAgID8gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0YS5kYXRlLCAneXl5eS1NTS1kZCcpXG4gICAgICA6ICcnO1xuXG4gICAgdGhpcy5zZXJ2aWNlLnN0b3JlKGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZShyZXN1bHQ/Lml0ZW0pO1xuICAgICAgfSwgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVFcnJvcihlcnJvcik7XG4gICAgICB9LCBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8bWF0LWNhcmQtY29udGVudCAjZm9ybVRlbXBsYXRlPlxuICA8aDUgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPkxvY2sgRGF0ZTwvaDU+XG5cbiAgPGZvcm0gY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTNcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic2F2ZSgpXCI+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgPG1hdC1sYWJlbD5EYXRlPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiIG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiIChmb2N1cyk9XCJwaWNrZXIub3BlbigpXCIgcmVxdWlyZWQ+XG4gICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0ZpZWxkVmFsaWQoJ2RhdGUnKVwiPkludmFsaWQgRGF0ZTwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJEZXRhaWxzXCIgZm9ybUNvbnRyb2xOYW1lPSdkZXRhaWxzJz48L3RleHRhcmVhPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGdhcC0yIGp1c3RpZnktY29udGVudC1lbmQgdy0xMDBcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJkaWFsb2dSZWYuY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCI+U2F2ZTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L21hdC1jYXJkLWNvbnRlbnQ+XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../locked-date.service";
4
+ import * as i2 from "@angular/common";
5
+ export class LockedDateLockUnlockButtonComponent {
6
+ constructor(lockedDateService) {
7
+ this.lockedDateService = lockedDateService;
8
+ this.onSave = new EventEmitter();
9
+ }
10
+ lock() {
11
+ this.lockedDateService.lock(this.lockedDate).subscribe({
12
+ next: () => {
13
+ this.onSave.emit();
14
+ }
15
+ });
16
+ }
17
+ unlock() {
18
+ this.lockedDateService.unlock(this.lockedDate).subscribe({
19
+ next: () => {
20
+ this.onSave.emit();
21
+ }
22
+ });
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateLockUnlockButtonComponent, deps: [{ token: i1.LockedDateService }], target: i0.ɵɵFactoryTarget.Component }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LockedDateLockUnlockButtonComponent, selector: "app-locked-date-lock-unlock-button", inputs: { lockedDate: "lockedDate" }, outputs: { onSave: "onSave" }, ngImport: i0, template: "<span role=\"button\" class=\"text-secondary\" *ngIf=\"lockedDate?.status_id == 2\" (click)=\"lock()\">\n <i class=\"fa-solid fa-lock\"></i>\n</span>\n\n<span role=\"button\" class=\"text-secondary\" *ngIf=\"lockedDate?.status_id == 1\" (click)=\"unlock()\">\n <i class=\"fa-solid fa-lock-open\"></i>\n</span>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateLockUnlockButtonComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'app-locked-date-lock-unlock-button', template: "<span role=\"button\" class=\"text-secondary\" *ngIf=\"lockedDate?.status_id == 2\" (click)=\"lock()\">\n <i class=\"fa-solid fa-lock\"></i>\n</span>\n\n<span role=\"button\" class=\"text-secondary\" *ngIf=\"lockedDate?.status_id == 1\" (click)=\"unlock()\">\n <i class=\"fa-solid fa-lock-open\"></i>\n</span>\n" }]
30
+ }], ctorParameters: () => [{ type: i1.LockedDateService }], propDecorators: { lockedDate: [{
31
+ type: Input
32
+ }], onSave: [{
33
+ type: Output
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja2VkLWRhdGUtbG9jay11bmxvY2stYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbG9ja2VkLWRhdGUvbG9ja2VkLWRhdGUtbG9jay11bmxvY2stYnV0dG9uL2xvY2tlZC1kYXRlLWxvY2stdW5sb2NrLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2xvY2tlZC1kYXRlL2xvY2tlZC1kYXRlLWxvY2stdW5sb2NrLWJ1dHRvbi9sb2NrZWQtZGF0ZS1sb2NrLXVubG9jay1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU92RSxNQUFNLE9BQU8sbUNBQW1DO0lBSzlDLFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBRjlDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRWlCLENBQUM7SUFFN0QsSUFBSTtRQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNyRCxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3ZELElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FyQlUsbUNBQW1DO21HQUFuQyxtQ0FBbUMsK0lDUGhELDJUQU9BOzs0RkRBYSxtQ0FBbUM7a0JBSi9DLFNBQVM7K0JBQ0Usb0NBQW9DO3NGQUtyQyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NrZWREYXRlU2VydmljZSB9IGZyb20gJy4uL2xvY2tlZC1kYXRlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbG9ja2VkLWRhdGUtbG9jay11bmxvY2stYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvY2tlZC1kYXRlLWxvY2stdW5sb2NrLWJ1dHRvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTG9ja2VkRGF0ZUxvY2tVbmxvY2tCdXR0b25Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueTtcbiAgQE91dHB1dCgpIG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9ja2VkRGF0ZVNlcnZpY2U6IExvY2tlZERhdGVTZXJ2aWNlKSB7IH1cblxuICBsb2NrKCkge1xuICAgIHRoaXMubG9ja2VkRGF0ZVNlcnZpY2UubG9jayh0aGlzLmxvY2tlZERhdGUpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHVubG9jaygpIHtcbiAgICB0aGlzLmxvY2tlZERhdGVTZXJ2aWNlLnVubG9jayh0aGlzLmxvY2tlZERhdGUpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIHRoaXMub25TYXZlLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPHNwYW4gcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwidGV4dC1zZWNvbmRhcnlcIiAqbmdJZj1cImxvY2tlZERhdGU/LnN0YXR1c19pZCA9PSAyXCIgKGNsaWNrKT1cImxvY2soKVwiPlxuICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWxvY2tcIj48L2k+XG48L3NwYW4+XG5cbjxzcGFuIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCIgKm5nSWY9XCJsb2NrZWREYXRlPy5zdGF0dXNfaWQgPT0gMVwiIChjbGljayk9XCJ1bmxvY2soKVwiPlxuICA8aSBjbGFzcz1cImZhLXNvbGlkIGZhLWxvY2stb3BlblwiPjwvaT5cbjwvc3Bhbj5cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export class LockedDate {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja2VkLWRhdGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2xvY2tlZC1kYXRlL2xvY2tlZC1kYXRlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0NBU3RCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIExvY2tlZERhdGUge1xuICAgIGlkPzogbnVtYmVyO1xuICAgIGRhdGU/OiBEYXRlO1xuICAgIGRldGFpbHM/OiBzdHJpbmc7XG4gICAgc3RhdHVzX2lkPzogbnVtYmVyO1xuICAgIGNyZWF0b3JfaWQ/OiBudW1iZXI7XG4gICAgY2xpZW50X2lkPzogbnVtYmVyO1xuICAgIGNyZWF0ZWRfYXQ/OiBEYXRlO1xuICAgIHVwZGF0ZWRfYXQ/OiBEYXRlO1xufVxuIl19
@@ -0,0 +1,61 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ import { InfiniteScrollDirective } from 'ngx-infinite-scroll';
5
+ import { MaterialModule } from '../material.module';
6
+ import { ActionPopupModule } from '../action-popup/action-popup.module';
7
+ import { TimelineFilterModule } from '../timeline-filter/timeline-filter.module';
8
+ import { LockedDateListComponent } from './locked-dates-list/locked-date-list.component';
9
+ import { LockedDateFormComponent } from './locked-date-form/locked-date-form.component';
10
+ import { LockedDateLockUnlockButtonComponent } from './locked-date-lock-unlock-button/locked-date-lock-unlock-button.component';
11
+ import { TechlifyDeleteButtonComponent } from '../delete-button/techlify-delete-button.component';
12
+ import { TechlifyFormButtonComponent } from '../form-button/techlify-form-button.component';
13
+ import * as i0 from "@angular/core";
14
+ export class LockedDateModule {
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: LockedDateModule, declarations: [LockedDateListComponent,
17
+ LockedDateFormComponent,
18
+ LockedDateLockUnlockButtonComponent], imports: [CommonModule,
19
+ ReactiveFormsModule,
20
+ InfiniteScrollDirective,
21
+ MaterialModule,
22
+ ActionPopupModule,
23
+ TimelineFilterModule,
24
+ TechlifyDeleteButtonComponent,
25
+ TechlifyFormButtonComponent], exports: [LockedDateListComponent,
26
+ LockedDateFormComponent,
27
+ LockedDateLockUnlockButtonComponent] }); }
28
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateModule, imports: [CommonModule,
29
+ ReactiveFormsModule,
30
+ MaterialModule,
31
+ ActionPopupModule,
32
+ TimelineFilterModule,
33
+ TechlifyDeleteButtonComponent,
34
+ TechlifyFormButtonComponent] }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateModule, decorators: [{
37
+ type: NgModule,
38
+ args: [{
39
+ imports: [
40
+ CommonModule,
41
+ ReactiveFormsModule,
42
+ InfiniteScrollDirective,
43
+ MaterialModule,
44
+ ActionPopupModule,
45
+ TimelineFilterModule,
46
+ TechlifyDeleteButtonComponent,
47
+ TechlifyFormButtonComponent
48
+ ],
49
+ declarations: [
50
+ LockedDateListComponent,
51
+ LockedDateFormComponent,
52
+ LockedDateLockUnlockButtonComponent
53
+ ],
54
+ exports: [
55
+ LockedDateListComponent,
56
+ LockedDateFormComponent,
57
+ LockedDateLockUnlockButtonComponent
58
+ ]
59
+ }]
60
+ }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja2VkLWRhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9sb2NrZWQtZGF0ZS9sb2NrZWQtZGF0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOztBQXdCNUYsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBVnpCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFDdkIsbUNBQW1DLGFBWm5DLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsdUJBQXVCO1lBQ3ZCLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLDZCQUE2QjtZQUM3QiwyQkFBMkIsYUFRM0IsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2QixtQ0FBbUM7Z0hBRzFCLGdCQUFnQixZQXBCekIsWUFBWTtZQUNaLG1CQUFtQjtZQUVuQixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQiw2QkFBNkI7WUFDN0IsMkJBQTJCOzs0RkFhbEIsZ0JBQWdCO2tCQXRCNUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsNkJBQTZCO3dCQUM3QiwyQkFBMkI7cUJBQzVCO29CQUNELFlBQVksRUFBRTt3QkFDWix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsbUNBQW1DO3FCQUNwQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLG1DQUFtQztxQkFDcEM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgQWN0aW9uUG9wdXBNb2R1bGUgfSBmcm9tICcuLi9hY3Rpb24tcG9wdXAvYWN0aW9uLXBvcHVwLm1vZHVsZSc7XG5pbXBvcnQgeyBUaW1lbGluZUZpbHRlck1vZHVsZSB9IGZyb20gJy4uL3RpbWVsaW5lLWZpbHRlci90aW1lbGluZS1maWx0ZXIubW9kdWxlJztcbmltcG9ydCB7IExvY2tlZERhdGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9sb2NrZWQtZGF0ZXMtbGlzdC9sb2NrZWQtZGF0ZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2NrZWREYXRlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vbG9ja2VkLWRhdGUtZm9ybS9sb2NrZWQtZGF0ZS1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2NrZWREYXRlTG9ja1VubG9ja0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbG9ja2VkLWRhdGUtbG9jay11bmxvY2stYnV0dG9uL2xvY2tlZC1kYXRlLWxvY2stdW5sb2NrLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVjaGxpZnlEZWxldGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9kZWxldGUtYnV0dG9uL3RlY2hsaWZ5LWRlbGV0ZS1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFRlY2hsaWZ5Rm9ybUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tYnV0dG9uL3RlY2hsaWZ5LWZvcm0tYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSxcbiAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICBBY3Rpb25Qb3B1cE1vZHVsZSxcbiAgICBUaW1lbGluZUZpbHRlck1vZHVsZSxcbiAgICBUZWNobGlmeURlbGV0ZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBUZWNobGlmeUZvcm1CdXR0b25Db21wb25lbnRcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTG9ja2VkRGF0ZUxpc3RDb21wb25lbnQsXG4gICAgTG9ja2VkRGF0ZUZvcm1Db21wb25lbnQsXG4gICAgTG9ja2VkRGF0ZUxvY2tVbmxvY2tCdXR0b25Db21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIExvY2tlZERhdGVMaXN0Q29tcG9uZW50LFxuICAgIExvY2tlZERhdGVGb3JtQ29tcG9uZW50LFxuICAgIExvY2tlZERhdGVMb2NrVW5sb2NrQnV0dG9uQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9ja2VkRGF0ZU1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TechlifyService } from '../base-model';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../core/http.service";
5
+ export class LockedDateService extends TechlifyService {
6
+ constructor(http) {
7
+ super(http, 'locked-dates');
8
+ this.http = http;
9
+ }
10
+ lock(lockedDate) {
11
+ return this.http.put(`api/locked-dates/${lockedDate.id}/lock`, {});
12
+ }
13
+ unlock(lockedDate) {
14
+ return this.http.put(`api/locked-dates/${lockedDate.id}/unlock`, {});
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateService, deps: [{ token: i1.HttpService }], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateService, providedIn: 'root' }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateService, decorators: [{
20
+ type: Injectable,
21
+ args: [{
22
+ providedIn: 'root'
23
+ }]
24
+ }], ctorParameters: () => [{ type: i1.HttpService }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja2VkLWRhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbG9ja2VkLWRhdGUvbG9ja2VkLWRhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUtoRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQUVwRCxZQUFzQixJQUFpQjtRQUNyQyxLQUFLLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRFIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUV2QyxDQUFDO0lBRUQsSUFBSSxDQUFDLFVBQWU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixVQUFVLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkUsQ0FBQzsrR0FaVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h0dHAuc2VydmljZSc7XG5pbXBvcnQgeyBUZWNobGlmeVNlcnZpY2UgfSBmcm9tICcuLi9iYXNlLW1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTG9ja2VkRGF0ZVNlcnZpY2UgZXh0ZW5kcyBUZWNobGlmeVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBodHRwOiBIdHRwU2VydmljZSkge1xuICAgIHN1cGVyKGh0dHAsICdsb2NrZWQtZGF0ZXMnKTtcbiAgfVxuXG4gIGxvY2sobG9ja2VkRGF0ZTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYGFwaS9sb2NrZWQtZGF0ZXMvJHtsb2NrZWREYXRlLmlkfS9sb2NrYCwge30pO1xuICB9XG5cbiAgdW5sb2NrKGxvY2tlZERhdGU6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGBhcGkvbG9ja2VkLWRhdGVzLyR7bG9ja2VkRGF0ZS5pZH0vdW5sb2NrYCwge30pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,68 @@
1
+ import { Component, signal } from '@angular/core';
2
+ import { TechlifyListComponent } from '../../base-model';
3
+ import { DatePipe } from '@angular/common';
4
+ import { LockedDateFormComponent } from '../locked-date-form/locked-date-form.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../locked-date.service";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "ngx-infinite-scroll";
10
+ import * as i5 from "@angular/material/sort";
11
+ import * as i6 from "@angular/material/table";
12
+ import * as i7 from "@angular/material/card";
13
+ import * as i8 from "../../timeline-filter/timeline-filter.component";
14
+ import * as i9 from "../../delete-button/techlify-delete-button.component";
15
+ import * as i10 from "../../form-button/techlify-form-button.component";
16
+ import * as i11 from "../locked-date-lock-unlock-button/locked-date-lock-unlock-button.component";
17
+ export class LockedDateListComponent extends TechlifyListComponent {
18
+ constructor(service, fb, datePipe) {
19
+ super();
20
+ this.service = service;
21
+ this.fb = fb;
22
+ this.datePipe = datePipe;
23
+ this.formComponent = signal(LockedDateFormComponent);
24
+ this.displayedColumns = [
25
+ 'index',
26
+ 'date',
27
+ 'details',
28
+ 'locked_on',
29
+ 'locked_by',
30
+ 'actions'
31
+ ];
32
+ this.filterForm = this.fb.group({
33
+ date_from: [''],
34
+ date_to: [''],
35
+ sort_by: ['date|DESC'],
36
+ });
37
+ }
38
+ ngOnInit() {
39
+ this.listenFilterChanges();
40
+ this.loadData();
41
+ }
42
+ loadData() {
43
+ this.isWorking = true;
44
+ let filters = this.filterForm.value;
45
+ filters.page = this.page;
46
+ filters.per_page = this.perPage;
47
+ filters.date_from = filters.date_from
48
+ ? this.datePipe.transform(filters.date_from, 'yyyy-MM-dd')
49
+ : '';
50
+ filters.date_to = filters.date_to
51
+ ? this.datePipe.transform(filters.date_to, 'yyyy-MM-dd')
52
+ : '';
53
+ this.service.index(filters).subscribe({
54
+ next: (response) => {
55
+ this.models = this.models.concat(response.data);
56
+ this.lastPage = response.last_page;
57
+ this.isWorking = false;
58
+ }
59
+ });
60
+ }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateListComponent, deps: [{ token: i1.LockedDateService }, { token: i2.FormBuilder }, { token: i3.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: LockedDateListComponent, selector: "app-locked-date-list", providers: [DatePipe], usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-column gap-2\">\n <mat-card appearance=\"outlined\" class=\"d-print-none\">\n <mat-card-content class=\"d-flex flex-row align-items-center justify-content-between\">\n <div class=\"d-flex flex-row gap-2 align-items-center justify-content-between\">\n <h5 class=\"mb-0\">Locked Dates</h5>\n <app-techlify-form-button [component]=\"formComponent()\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n\n <form [formGroup]=\"filterForm\" class='d-flex flex-row gap-2'>\n <app-timeline-filter labelText=\"Period\" [form]='filterForm'></app-timeline-filter>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card>\n <mat-card-content>\n <table class='w-100' mat-table [dataSource]=\"models\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\"\n [infiniteScrollContainer]=\"'.mat-sidenav-content'\" [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Date </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.date | date: 'longDate'}}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_on\">\n <th mat-header-cell *matHeaderCellDef> Locked On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date:'medium' }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_by\">\n <th mat-header-cell *matHeaderCellDef> Locked By </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.creator?.name }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.details }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row gap-2 text-secondary\">\n <app-locked-date-lock-unlock-button [lockedDate]='element'\n (onSave)='reload()'></app-locked-date-lock-unlock-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]=\"{type: 'Locked Date', title: element?.date | date:'longDate'}\"\n (deleted)=\"modelsDeletedById($event)\"></app-techlify-delete-button>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n</div>", dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: i5.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i5.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i6.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i8.TimelineFilterComponent, selector: "app-timeline-filter", inputs: ["defaultValue", "required", "disabled", "value", "timelines", "dateFrom", "dateTo", "appearance", "showClearButton", "form", "labelText"], outputs: ["selectionChange"] }, { kind: "component", type: i9.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "component", type: i10.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: i11.LockedDateLockUnlockButtonComponent, selector: "app-locked-date-lock-unlock-button", inputs: ["lockedDate"], outputs: ["onSave"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LockedDateListComponent, decorators: [{
65
+ type: Component,
66
+ args: [{ selector: 'app-locked-date-list', providers: [DatePipe], template: "<div class=\"d-flex flex-column gap-2\">\n <mat-card appearance=\"outlined\" class=\"d-print-none\">\n <mat-card-content class=\"d-flex flex-row align-items-center justify-content-between\">\n <div class=\"d-flex flex-row gap-2 align-items-center justify-content-between\">\n <h5 class=\"mb-0\">Locked Dates</h5>\n <app-techlify-form-button [component]=\"formComponent()\"\n (saved)=\"modelCreated($event)\"></app-techlify-form-button>\n </div>\n\n <form [formGroup]=\"filterForm\" class='d-flex flex-row gap-2'>\n <app-timeline-filter labelText=\"Period\" [form]='filterForm'></app-timeline-filter>\n </form>\n </mat-card-content>\n </mat-card>\n\n <mat-card>\n <mat-card-content>\n <table class='w-100' mat-table [dataSource]=\"models\" matSort multiTemplateDataRows infiniteScroll\n [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\"\n [infiniteScrollContainer]=\"'.mat-sidenav-content'\" [fromRoot]=\"true\" (matSortChange)=\"sortColumn($event)\">\n\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = dataIndex\"> {{ i+1 }} </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"date\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Date </th>\n <td mat-cell *matCellDef=\"let element\">\n {{element?.date | date: 'longDate'}}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_on\">\n <th mat-header-cell *matHeaderCellDef> Locked On </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.created_at | date:'medium' }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"locked_by\">\n <th mat-header-cell *matHeaderCellDef> Locked By </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.creator?.name }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"details\">\n <th mat-header-cell *matHeaderCellDef> Details </th>\n <td mat-cell *matCellDef=\"let element\">\n {{ element?.details }}\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let element\">\n <div class=\"d-flex flex-row gap-2 text-secondary\">\n <app-locked-date-lock-unlock-button [lockedDate]='element'\n (onSave)='reload()'></app-locked-date-lock-unlock-button>\n <app-techlify-delete-button [service]=\"service\" [model]=\"element\"\n [data]=\"{type: 'Locked Date', title: element?.date | date:'longDate'}\"\n (deleted)=\"modelsDeletedById($event)\"></app-techlify-delete-button>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </mat-card-content>\n </mat-card>\n</div>" }]
67
+ }], ctorParameters: () => [{ type: i1.LockedDateService }, { type: i2.FormBuilder }, { type: i3.DatePipe }] });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ja2VkLWRhdGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL2xvY2tlZC1kYXRlL2xvY2tlZC1kYXRlcy1saXN0L2xvY2tlZC1kYXRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9sb2NrZWQtZGF0ZS9sb2NrZWQtZGF0ZXMtbGlzdC9sb2NrZWQtZGF0ZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU96RixNQUFNLE9BQU8sdUJBQXdCLFNBQVEscUJBQXFCO0lBYWhFLFlBQStCLE9BQTBCLEVBQy9DLEVBQWUsRUFDZixRQUFrQjtRQUUxQixLQUFLLEVBQUUsQ0FBQztRQUpxQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUMvQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWI1QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRWhELHFCQUFnQixHQUFhO1lBQzNCLE9BQU87WUFDUCxNQUFNO1lBQ04sU0FBUztZQUNULFdBQVc7WUFDWCxXQUFXO1lBQ1gsU0FBUztTQUNWLENBQUM7UUFRQSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzlCLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNmLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNiLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRVEsUUFBUTtRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN6QixPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUztZQUNuQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUM7WUFDMUQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU87WUFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDO1lBQ3hELENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFUCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDcEMsSUFBSSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytHQW5EVSx1QkFBdUI7bUdBQXZCLHVCQUF1QiwrQ0FGdkIsQ0FBQyxRQUFRLENBQUMsaURDVnZCLHlpSEE4RU07OzRGRGxFTyx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usc0JBQXNCLGFBRXJCLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVjaGxpZnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQgeyBMb2NrZWREYXRlU2VydmljZSB9IGZyb20gJy4uL2xvY2tlZC1kYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2NrZWREYXRlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2xvY2tlZC1kYXRlLWZvcm0vbG9ja2VkLWRhdGUtZm9ybS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbG9ja2VkLWRhdGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2NrZWQtZGF0ZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIExvY2tlZERhdGVMaXN0Q29tcG9uZW50IGV4dGVuZHMgVGVjaGxpZnlMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBmb3JtQ29tcG9uZW50ID0gc2lnbmFsKExvY2tlZERhdGVGb3JtQ29tcG9uZW50KTtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcbiAgICAnaW5kZXgnLFxuICAgICdkYXRlJyxcbiAgICAnZGV0YWlscycsXG4gICAgJ2xvY2tlZF9vbicsXG4gICAgJ2xvY2tlZF9ieScsXG4gICAgJ2FjdGlvbnMnXG4gIF07XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG92ZXJyaWRlIHNlcnZpY2U6IExvY2tlZERhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmZpbHRlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGRhdGVfZnJvbTogWycnXSxcbiAgICAgIGRhdGVfdG86IFsnJ10sXG4gICAgICBzb3J0X2J5OiBbJ2RhdGV8REVTQyddLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5saXN0ZW5GaWx0ZXJDaGFuZ2VzKCk7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbG9hZERhdGEoKSB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuXG4gICAgbGV0IGZpbHRlcnMgPSB0aGlzLmZpbHRlckZvcm0udmFsdWU7XG4gICAgZmlsdGVycy5wYWdlID0gdGhpcy5wYWdlO1xuICAgIGZpbHRlcnMucGVyX3BhZ2UgPSB0aGlzLnBlclBhZ2U7XG4gICAgZmlsdGVycy5kYXRlX2Zyb20gPSBmaWx0ZXJzLmRhdGVfZnJvbVxuICAgICAgPyB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShmaWx0ZXJzLmRhdGVfZnJvbSwgJ3l5eXktTU0tZGQnKVxuICAgICAgOiAnJztcbiAgICBmaWx0ZXJzLmRhdGVfdG8gPSBmaWx0ZXJzLmRhdGVfdG9cbiAgICAgID8gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZmlsdGVycy5kYXRlX3RvLCAneXl5eS1NTS1kZCcpXG4gICAgICA6ICcnO1xuXG4gICAgdGhpcy5zZXJ2aWNlLmluZGV4KGZpbHRlcnMpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmNvbmNhdChyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlc3BvbnNlLmxhc3RfcGFnZTtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxuICA8bWF0LWNhcmQgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgY2xhc3M9XCJkLXByaW50LW5vbmVcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgIDxoNSBjbGFzcz1cIm1iLTBcIj5Mb2NrZWQgRGF0ZXM8L2g1PlxuICAgICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uIFtjb21wb25lbnRdPVwiZm9ybUNvbXBvbmVudCgpXCJcbiAgICAgICAgICAoc2F2ZWQpPVwibW9kZWxDcmVhdGVkKCRldmVudClcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIiBjbGFzcz0nZC1mbGV4IGZsZXgtcm93IGdhcC0yJz5cbiAgICAgICAgPGFwcC10aW1lbGluZS1maWx0ZXIgbGFiZWxUZXh0PVwiUGVyaW9kXCIgW2Zvcm1dPSdmaWx0ZXJGb3JtJz48L2FwcC10aW1lbGluZS1maWx0ZXI+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICA8L21hdC1jYXJkPlxuXG4gIDxtYXQtY2FyZD5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDx0YWJsZSBjbGFzcz0ndy0xMDAnIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJtb2RlbHNcIiBtYXRTb3J0IG11bHRpVGVtcGxhdGVEYXRhUm93cyBpbmZpbml0ZVNjcm9sbFxuICAgICAgICBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIxXCIgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIiAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiIFtzY3JvbGxXaW5kb3ddPVwiZmFsc2VcIlxuICAgICAgICBbaW5maW5pdGVTY3JvbGxDb250YWluZXJdPVwiJy5tYXQtc2lkZW5hdi1jb250ZW50J1wiIFtmcm9tUm9vdF09XCJ0cnVlXCIgKG1hdFNvcnRDaGFuZ2UpPVwic29ydENvbHVtbigkZXZlbnQpXCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+ICMgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDsgbGV0IGkgPSBkYXRhSW5kZXhcIj4ge3sgaSsxIH19IDwvdGQ+XG4gICAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRhdGVcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj4gRGF0ZSA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICB7e2VsZW1lbnQ/LmRhdGUgfCBkYXRlOiAnbG9uZ0RhdGUnfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsb2NrZWRfb25cIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBMb2NrZWQgT24gPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAge3sgZWxlbWVudD8uY3JlYXRlZF9hdCB8IGRhdGU6J21lZGl1bScgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsb2NrZWRfYnlcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBMb2NrZWQgQnkgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAge3sgZWxlbWVudD8uY3JlYXRvcj8ubmFtZSB9fVxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRldGFpbHNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBEZXRhaWxzIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIHt7IGVsZW1lbnQ/LmRldGFpbHMgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9ucyA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGdhcC0yIHRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgIDxhcHAtbG9ja2VkLWRhdGUtbG9jay11bmxvY2stYnV0dG9uIFtsb2NrZWREYXRlXT0nZWxlbWVudCdcbiAgICAgICAgICAgICAgICAob25TYXZlKT0ncmVsb2FkKCknPjwvYXBwLWxvY2tlZC1kYXRlLWxvY2stdW5sb2NrLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uIFtzZXJ2aWNlXT1cInNlcnZpY2VcIiBbbW9kZWxdPVwiZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwie3R5cGU6ICdMb2NrZWQgRGF0ZScsIHRpdGxlOiBlbGVtZW50Py5kYXRlIHwgZGF0ZTonbG9uZ0RhdGUnfVwiXG4gICAgICAgICAgICAgICAgKGRlbGV0ZWQpPVwibW9kZWxzRGVsZXRlZEJ5SWQoJGV2ZW50KVwiPjwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zOyBzdGlja3k6IHRydWVcIj48L3RyPlxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgICAgPC90YWJsZT5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gIDwvbWF0LWNhcmQ+XG48L2Rpdj4iXX0=