@paperless/angular 2.21.0 → 2.22.0-alpha.3

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 (121) hide show
  1. package/esm2022/lib/base/form.component.mjs +113 -0
  2. package/esm2022/lib/base/number-value-accessor.mjs +36 -0
  3. package/esm2022/lib/base/upload.component.mjs +57 -0
  4. package/esm2022/lib/base/value-accessor.mjs +43 -0
  5. package/esm2022/lib/directives/p-checkbox.directive.mjs +39 -0
  6. package/esm2022/lib/directives/p-cropper.directive.mjs +37 -0
  7. package/esm2022/lib/directives/p-datepicker.directive.mjs +38 -0
  8. package/esm2022/lib/directives/p-field-number.directive.mjs +34 -0
  9. package/esm2022/lib/directives/p-field.directive.mjs +38 -0
  10. package/esm2022/lib/directives/p-pagination-pages.directive.mjs +41 -0
  11. package/esm2022/lib/directives/p-pagination-size.directive.mjs +41 -0
  12. package/esm2022/lib/directives/p-radio.directive.mjs +63 -0
  13. package/esm2022/lib/directives/p-select.directive.mjs +37 -0
  14. package/esm2022/lib/directives/p-toggle.directive.mjs +38 -0
  15. package/{esm2020 → esm2022}/lib/modules/overlay/overlay.module.mjs +15 -15
  16. package/esm2022/lib/modules/overlay/overlay.ref.mjs +14 -0
  17. package/esm2022/lib/modules/overlay/services/overlay.service.mjs +77 -0
  18. package/esm2022/lib/modules/table/base/table.component.mjs +229 -0
  19. package/esm2022/lib/modules/table/components/table/table.component.mjs +1078 -0
  20. package/esm2022/lib/modules/table/components/table-cell/table-cell.component.mjs +170 -0
  21. package/esm2022/lib/modules/table/components/table-column/table-column.component.mjs +62 -0
  22. package/esm2022/lib/modules/table/components/table-extra-header/table-extra-header.component.mjs +40 -0
  23. package/esm2022/lib/modules/table/components/table-row-action/table-row-action.component.mjs +88 -0
  24. package/{esm2020 → esm2022}/lib/modules/table/directives/p-table-custom-actions.directive.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/modules/table/directives/p-table-custom-filter.directive.mjs +4 -4
  26. package/esm2022/lib/modules/table/directives/p-table-custom-row.directive.mjs +20 -0
  27. package/{esm2020 → esm2022}/lib/modules/table/directives/p-table-filter-modal.directive.mjs +4 -4
  28. package/esm2022/lib/modules/table/directives/p-table-footer.directive.mjs +52 -0
  29. package/esm2022/lib/modules/table/directives/p-table-header.directive.mjs +59 -0
  30. package/esm2022/lib/modules/table/directives/p-table-ngx.directive.mjs +129 -0
  31. package/esm2022/lib/modules/table/directives/p-table.directive.mjs +77 -0
  32. package/{esm2020 → esm2022}/lib/modules/table/table.module.mjs +5 -5
  33. package/esm2022/lib/modules/toast/components/toast-container/toast-container.component.mjs +39 -0
  34. package/esm2022/lib/modules/toast/directives/toast.directive.mjs +51 -0
  35. package/esm2022/lib/modules/toast/services/toast.service.mjs +51 -0
  36. package/{esm2020 → esm2022}/lib/modules/toast/toast.module.mjs +5 -5
  37. package/{esm2020 → esm2022}/lib/paperless.module.mjs +5 -5
  38. package/esm2022/lib/pipes/currency.pipe.mjs +21 -0
  39. package/esm2022/lib/pipes/date.pipe.mjs +21 -0
  40. package/esm2022/lib/pipes/safe.pipe.mjs +34 -0
  41. package/{esm2020 → esm2022}/lib/pipes/select-autocomplete.pipe.mjs +4 -4
  42. package/{esm2020 → esm2022}/lib/pipes/select-select-all.pipe.mjs +4 -4
  43. package/esm2022/lib/stencil/components.mjs +2013 -0
  44. package/esm2022/lib/stencil.module.mjs +17 -0
  45. package/{fesm2020 → fesm2022}/paperless-angular.mjs +1045 -766
  46. package/{fesm2020 → fesm2022}/paperless-angular.mjs.map +1 -1
  47. package/lib/base/upload.component.d.ts +1 -1
  48. package/lib/modules/table/base/table.component.d.ts +1 -1
  49. package/lib/modules/table/components/table/table.component.d.ts +1 -1
  50. package/lib/modules/table/components/table-cell/table-cell.component.d.ts +1 -1
  51. package/lib/modules/table/components/table-column/table-column.component.d.ts +1 -1
  52. package/lib/modules/table/components/table-extra-header/table-extra-header.component.d.ts +1 -1
  53. package/lib/modules/table/components/table-row-action/table-row-action.component.d.ts +4 -4
  54. package/lib/modules/table/directives/p-table-custom-row.directive.d.ts +1 -1
  55. package/lib/modules/toast/components/toast-container/toast-container.component.d.ts +1 -1
  56. package/lib/modules/toast/directives/toast.directive.d.ts +1 -1
  57. package/lib/modules/toast/types.d.ts +1 -1
  58. package/lib/stencil/components.d.ts +63 -63
  59. package/package.json +8 -14
  60. package/paperless.css +321 -321
  61. package/esm2020/lib/base/form.component.mjs +0 -115
  62. package/esm2020/lib/base/number-value-accessor.mjs +0 -33
  63. package/esm2020/lib/base/upload.component.mjs +0 -56
  64. package/esm2020/lib/base/value-accessor.mjs +0 -41
  65. package/esm2020/lib/directives/p-checkbox.directive.mjs +0 -39
  66. package/esm2020/lib/directives/p-cropper.directive.mjs +0 -37
  67. package/esm2020/lib/directives/p-datepicker.directive.mjs +0 -38
  68. package/esm2020/lib/directives/p-field-number.directive.mjs +0 -34
  69. package/esm2020/lib/directives/p-field.directive.mjs +0 -38
  70. package/esm2020/lib/directives/p-pagination-pages.directive.mjs +0 -41
  71. package/esm2020/lib/directives/p-pagination-size.directive.mjs +0 -41
  72. package/esm2020/lib/directives/p-radio.directive.mjs +0 -60
  73. package/esm2020/lib/directives/p-select.directive.mjs +0 -37
  74. package/esm2020/lib/directives/p-toggle.directive.mjs +0 -38
  75. package/esm2020/lib/modules/overlay/overlay.ref.mjs +0 -12
  76. package/esm2020/lib/modules/overlay/services/overlay.service.mjs +0 -74
  77. package/esm2020/lib/modules/table/base/table.component.mjs +0 -227
  78. package/esm2020/lib/modules/table/components/table/table.component.mjs +0 -1006
  79. package/esm2020/lib/modules/table/components/table-cell/table-cell.component.mjs +0 -152
  80. package/esm2020/lib/modules/table/components/table-column/table-column.component.mjs +0 -59
  81. package/esm2020/lib/modules/table/components/table-extra-header/table-extra-header.component.mjs +0 -37
  82. package/esm2020/lib/modules/table/components/table-row-action/table-row-action.component.mjs +0 -73
  83. package/esm2020/lib/modules/table/directives/p-table-custom-row.directive.mjs +0 -19
  84. package/esm2020/lib/modules/table/directives/p-table-footer.directive.mjs +0 -52
  85. package/esm2020/lib/modules/table/directives/p-table-header.directive.mjs +0 -59
  86. package/esm2020/lib/modules/table/directives/p-table-ngx.directive.mjs +0 -128
  87. package/esm2020/lib/modules/table/directives/p-table.directive.mjs +0 -77
  88. package/esm2020/lib/modules/toast/components/toast-container/toast-container.component.mjs +0 -36
  89. package/esm2020/lib/modules/toast/directives/toast.directive.mjs +0 -51
  90. package/esm2020/lib/modules/toast/services/toast.service.mjs +0 -53
  91. package/esm2020/lib/pipes/currency.pipe.mjs +0 -20
  92. package/esm2020/lib/pipes/date.pipe.mjs +0 -20
  93. package/esm2020/lib/pipes/safe.pipe.mjs +0 -33
  94. package/esm2020/lib/stencil/components.mjs +0 -1865
  95. package/esm2020/lib/stencil.module.mjs +0 -17
  96. package/fesm2015/paperless-angular.mjs +0 -4914
  97. package/fesm2015/paperless-angular.mjs.map +0 -1
  98. /package/{esm2020 → esm2022}/lib/animations/fade.mjs +0 -0
  99. /package/{esm2020 → esm2022}/lib/animations/index.mjs +0 -0
  100. /package/{esm2020 → esm2022}/lib/animations/slide.mjs +0 -0
  101. /package/{esm2020 → esm2022}/lib/base/index.mjs +0 -0
  102. /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
  103. /package/{esm2020 → esm2022}/lib/modules/index.mjs +0 -0
  104. /package/{esm2020 → esm2022}/lib/modules/overlay/index.mjs +0 -0
  105. /package/{esm2020 → esm2022}/lib/modules/overlay/services/index.mjs +0 -0
  106. /package/{esm2020 → esm2022}/lib/modules/table/base/index.mjs +0 -0
  107. /package/{esm2020 → esm2022}/lib/modules/table/components/index.mjs +0 -0
  108. /package/{esm2020 → esm2022}/lib/modules/table/components/table/constants.mjs +0 -0
  109. /package/{esm2020 → esm2022}/lib/modules/table/directives/index.mjs +0 -0
  110. /package/{esm2020 → esm2022}/lib/modules/table/index.mjs +0 -0
  111. /package/{esm2020 → esm2022}/lib/modules/table/utils.mjs +0 -0
  112. /package/{esm2020 → esm2022}/lib/modules/toast/components/index.mjs +0 -0
  113. /package/{esm2020 → esm2022}/lib/modules/toast/directives/index.mjs +0 -0
  114. /package/{esm2020 → esm2022}/lib/modules/toast/index.mjs +0 -0
  115. /package/{esm2020 → esm2022}/lib/modules/toast/services/index.mjs +0 -0
  116. /package/{esm2020 → esm2022}/lib/modules/toast/types.mjs +0 -0
  117. /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
  118. /package/{esm2020 → esm2022}/lib/stencil/angular-component-lib/utils.mjs +0 -0
  119. /package/{esm2020 → esm2022}/lib/stencil/index.mjs +0 -0
  120. /package/{esm2020 → esm2022}/paperless-angular.mjs +0 -0
  121. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,63 @@
1
+ import { Directive, Self } from '@angular/core';
2
+ import { filter } from 'rxjs';
3
+ import { BaseValueAccessor } from '../base';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ export class RadioDirective extends BaseValueAccessor {
7
+ _control;
8
+ _modelValue;
9
+ _valueChanges;
10
+ constructor(_control, el) {
11
+ super(el);
12
+ this._control = _control;
13
+ _control.valueAccessor = this;
14
+ }
15
+ ngOnInit() {
16
+ this._valueChanges = this._control
17
+ .control.valueChanges.pipe(filter(value => this._modelValue !== value))
18
+ .subscribe((value) => this.writeValue(value));
19
+ }
20
+ writeValue(value) {
21
+ const elValue = this._getValue();
22
+ this._modelValue = value;
23
+ this.el.nativeElement.checked =
24
+ this._modelValue === elValue;
25
+ }
26
+ handleChangeEvent() {
27
+ const elValue = this._getValue();
28
+ this._modelValue =
29
+ this._modelValue === elValue
30
+ ? undefined
31
+ : elValue;
32
+ this.onChange(this._modelValue);
33
+ }
34
+ ngOnDestroy() {
35
+ if (this._valueChanges) {
36
+ this._valueChanges.unsubscribe();
37
+ }
38
+ }
39
+ _getValue() {
40
+ let value = this.el.nativeElement.value;
41
+ if (value === 'true') {
42
+ value = true;
43
+ }
44
+ if (value === 'false') {
45
+ value = false;
46
+ }
47
+ return value;
48
+ }
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioDirective, deps: [{ token: i1.NgControl, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
50
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: RadioDirective, selector: "p-radio", host: { listeners: { "checkedChange": "handleChangeEvent($event.detail)" } }, usesInheritance: true, ngImport: i0 });
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioDirective, decorators: [{
53
+ type: Directive,
54
+ args: [{
55
+ selector: 'p-radio',
56
+ host: {
57
+ '(checkedChange)': 'handleChangeEvent($event.detail)',
58
+ },
59
+ }]
60
+ }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
61
+ type: Self
62
+ }] }, { type: i0.ElementRef }]; } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicC1yYWRpby5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXBlcmxlc3Mvc3JjL2xpYi9kaXJlY3RpdmVzL3AtcmFkaW8uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQVE1QyxNQUFNLE9BQU8sY0FDWixTQUFRLGlCQUFpQjtJQU1HO0lBSHBCLFdBQVcsQ0FBK0I7SUFDMUMsYUFBYSxDQUEyQjtJQUVoRCxZQUE0QixRQUFtQixFQUFFLEVBQWM7UUFDOUQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRGlCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFFOUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELFFBQVE7UUFDUCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRO2FBQ2hDLE9BQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSyxDQUFDLENBQUM7YUFDdkUsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFhO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPO1lBQzVCLElBQUksQ0FBQyxXQUFXLEtBQUssT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFUSxpQkFBaUI7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxXQUFXO1lBQ2YsSUFBSSxDQUFDLFdBQVcsS0FBSyxPQUFPO2dCQUMzQixDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztJQUNGLENBQUM7SUFFTyxTQUFTO1FBQ2hCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUN4QyxJQUFHLEtBQUssS0FBSyxNQUFNLEVBQUU7WUFDcEIsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBRyxLQUFLLEtBQUssT0FBTyxFQUFFO1lBQ3JCLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQzt3R0FwRFcsY0FBYzs0RkFBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQU4xQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxTQUFTO29CQUNuQixJQUFJLEVBQUU7d0JBQ0wsaUJBQWlCLEVBQUUsa0NBQWtDO3FCQUNyRDtpQkFDRDs7MEJBUWEsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkluaXQsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCYXNlVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4uL2Jhc2UnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdwLXJhZGlvJyxcblx0aG9zdDoge1xuXHRcdCcoY2hlY2tlZENoYW5nZSknOiAnaGFuZGxlQ2hhbmdlRXZlbnQoJGV2ZW50LmRldGFpbCknLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0RpcmVjdGl2ZVxuXHRleHRlbmRzIEJhc2VWYWx1ZUFjY2Vzc29yXG5cdGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95XG57XG5cdHByaXZhdGUgX21vZGVsVmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cdHByaXZhdGUgX3ZhbHVlQ2hhbmdlczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG5cdGNvbnN0cnVjdG9yKEBTZWxmKCkgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLCBlbDogRWxlbWVudFJlZikge1xuXHRcdHN1cGVyKGVsKTtcblx0XHRfY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX3ZhbHVlQ2hhbmdlcyA9IHRoaXMuX2NvbnRyb2xcblx0XHRcdC5jb250cm9sIS52YWx1ZUNoYW5nZXMucGlwZShmaWx0ZXIodmFsdWUgPT4gdGhpcy5fbW9kZWxWYWx1ZSAhPT0gdmFsdWUpKVxuXHRcdFx0LnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4gdGhpcy53cml0ZVZhbHVlKHZhbHVlKSk7XG5cdH1cblxuXHRvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHRjb25zdCBlbFZhbHVlID0gdGhpcy5fZ2V0VmFsdWUoKTtcblx0XHR0aGlzLl9tb2RlbFZhbHVlID0gdmFsdWU7XG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPVxuXHRcdFx0dGhpcy5fbW9kZWxWYWx1ZSA9PT0gZWxWYWx1ZTtcblx0fVxuXG5cdG92ZXJyaWRlIGhhbmRsZUNoYW5nZUV2ZW50KCkge1xuXHRcdGNvbnN0IGVsVmFsdWUgPSB0aGlzLl9nZXRWYWx1ZSgpO1xuXG5cdFx0dGhpcy5fbW9kZWxWYWx1ZSA9XG5cdFx0XHR0aGlzLl9tb2RlbFZhbHVlID09PSBlbFZhbHVlXG5cdFx0XHRcdD8gdW5kZWZpbmVkXG5cdFx0XHRcdDogZWxWYWx1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlKHRoaXMuX21vZGVsVmFsdWUpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKHRoaXMuX3ZhbHVlQ2hhbmdlcykge1xuXHRcdFx0dGhpcy5fdmFsdWVDaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfZ2V0VmFsdWUoKSB7XG5cdFx0bGV0IHZhbHVlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXHRcdGlmKHZhbHVlID09PSAndHJ1ZScpIHtcblx0XHRcdHZhbHVlID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZih2YWx1ZSA9PT0gJ2ZhbHNlJykge1xuXHRcdFx0dmFsdWUgPSBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { Directive } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { BaseValueAccessor } from '../base';
4
+ import * as i0 from "@angular/core";
5
+ export class SelectDirective extends BaseValueAccessor {
6
+ constructor(el) {
7
+ super(el);
8
+ }
9
+ writeValue(value) {
10
+ this.el.nativeElement.value = this.lastValue = value;
11
+ }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
13
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: SelectDirective, selector: "p-select", host: { listeners: { "valueChange": "handleChangeEvent($event.detail)" } }, providers: [
14
+ {
15
+ provide: NG_VALUE_ACCESSOR,
16
+ useExisting: SelectDirective,
17
+ multi: true,
18
+ },
19
+ ], usesInheritance: true, ngImport: i0 });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SelectDirective, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: 'p-select',
25
+ host: {
26
+ '(valueChange)': 'handleChangeEvent($event.detail)',
27
+ },
28
+ providers: [
29
+ {
30
+ provide: NG_VALUE_ACCESSOR,
31
+ useExisting: SelectDirective,
32
+ multi: true,
33
+ },
34
+ ],
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicC1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGFwZXJsZXNzL3NyYy9saWIvZGlyZWN0aXZlcy9wLXNlbGVjdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBZTVDLE1BQU0sT0FBTyxlQUFnQixTQUFRLGlCQUFpQjtJQUNyRCxZQUFZLEVBQWM7UUFDekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN0RCxDQUFDO3dHQVBXLGVBQWU7NEZBQWYsZUFBZSwrR0FSaEI7WUFDVjtnQkFDQyxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsZUFBZTtnQkFDNUIsS0FBSyxFQUFFLElBQUk7YUFDWDtTQUNEOzs0RkFFVyxlQUFlO2tCQWIzQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxVQUFVO29CQUNwQixJQUFJLEVBQUU7d0JBQ0wsZUFBZSxFQUFFLGtDQUFrQztxQkFDbkQ7b0JBQ0QsU0FBUyxFQUFFO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsaUJBQWlCOzRCQUM1QixLQUFLLEVBQUUsSUFBSTt5QkFDWDtxQkFDRDtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJhc2VWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi4vYmFzZSc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ3Atc2VsZWN0Jyxcblx0aG9zdDoge1xuXHRcdCcodmFsdWVDaGFuZ2UpJzogJ2hhbmRsZUNoYW5nZUV2ZW50KCRldmVudC5kZXRhaWwpJyxcblx0fSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG5cdFx0XHR1c2VFeGlzdGluZzogU2VsZWN0RGlyZWN0aXZlLFxuXHRcdFx0bXVsdGk6IHRydWUsXG5cdFx0fSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0RGlyZWN0aXZlIGV4dGVuZHMgQmFzZVZhbHVlQWNjZXNzb3Ige1xuXHRjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuXHRcdHN1cGVyKGVsKTtcblx0fVxuXG5cdG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { Directive } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { BaseValueAccessor } from '../base';
4
+ import * as i0 from "@angular/core";
5
+ export class ToggleDirective extends BaseValueAccessor {
6
+ constructor(el) {
7
+ super(el);
8
+ }
9
+ writeValue(value) {
10
+ this.el.nativeElement.checked = this.lastValue =
11
+ value === null ? false : value;
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToggleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
14
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ToggleDirective, selector: "p-toggle", host: { listeners: { "checkedChange": "handleChangeEvent($event.detail)" } }, providers: [
15
+ {
16
+ provide: NG_VALUE_ACCESSOR,
17
+ useExisting: ToggleDirective,
18
+ multi: true,
19
+ },
20
+ ], usesInheritance: true, ngImport: i0 });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToggleDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ selector: 'p-toggle',
26
+ host: {
27
+ '(checkedChange)': 'handleChangeEvent($event.detail)',
28
+ },
29
+ providers: [
30
+ {
31
+ provide: NG_VALUE_ACCESSOR,
32
+ useExisting: ToggleDirective,
33
+ multi: true,
34
+ },
35
+ ],
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicC10b2dnbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGFwZXJsZXNzL3NyYy9saWIvZGlyZWN0aXZlcy9wLXRvZ2dsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBZTVDLE1BQU0sT0FBTyxlQUFnQixTQUFRLGlCQUFpQjtJQUNyRCxZQUFZLEVBQWM7UUFDekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFjO1FBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUztZQUM3QyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDO3dHQVJXLGVBQWU7NEZBQWYsZUFBZSxpSEFSaEI7WUFDVjtnQkFDQyxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsZUFBZTtnQkFDNUIsS0FBSyxFQUFFLElBQUk7YUFDWDtTQUNEOzs0RkFFVyxlQUFlO2tCQWIzQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxVQUFVO29CQUNwQixJQUFJLEVBQUU7d0JBQ0wsaUJBQWlCLEVBQUUsa0NBQWtDO3FCQUNyRDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxpQkFBaUI7NEJBQzVCLEtBQUssRUFBRSxJQUFJO3lCQUNYO3FCQUNEO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQmFzZVZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLi9iYXNlJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAncC10b2dnbGUnLFxuXHRob3N0OiB7XG5cdFx0JyhjaGVja2VkQ2hhbmdlKSc6ICdoYW5kbGVDaGFuZ2VFdmVudCgkZXZlbnQuZGV0YWlsKScsXG5cdH0sXG5cdHByb3ZpZGVyczogW1xuXHRcdHtcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuXHRcdFx0dXNlRXhpc3Rpbmc6IFRvZ2dsZURpcmVjdGl2ZSxcblx0XHRcdG11bHRpOiB0cnVlLFxuXHRcdH0sXG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZURpcmVjdGl2ZSBleHRlbmRzIEJhc2VWYWx1ZUFjY2Vzc29yIHtcblx0Y29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcblx0XHRzdXBlcihlbCk7XG5cdH1cblxuXHRvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB0aGlzLmxhc3RWYWx1ZSA9XG5cdFx0XHR2YWx1ZSA9PT0gbnVsbCA/IGZhbHNlIDogdmFsdWU7XG5cdH1cbn1cbiJdfQ==
@@ -7,21 +7,21 @@ import { PlatformModule } from '@angular/cdk/platform';
7
7
  import { PortalModule } from '@angular/cdk/portal';
8
8
  import * as i0 from "@angular/core";
9
9
  export class OverlayModule {
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: OverlayModule, imports: [CommonModule,
12
+ StencilModule,
13
+ CDKOverlayModule,
14
+ PlatformModule,
15
+ ObserversModule,
16
+ PortalModule], exports: [PortalModule] });
17
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayModule, imports: [CommonModule,
18
+ StencilModule,
19
+ CDKOverlayModule,
20
+ PlatformModule,
21
+ ObserversModule,
22
+ PortalModule, PortalModule] });
10
23
  }
11
- OverlayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- OverlayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: OverlayModule, imports: [CommonModule,
13
- StencilModule,
14
- CDKOverlayModule,
15
- PlatformModule,
16
- ObserversModule,
17
- PortalModule], exports: [PortalModule] });
18
- OverlayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverlayModule, imports: [CommonModule,
19
- StencilModule,
20
- CDKOverlayModule,
21
- PlatformModule,
22
- ObserversModule,
23
- PortalModule, PortalModule] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverlayModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  imports: [
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
35
35
  exports: [PortalModule],
36
36
  }]
37
37
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXBlcmxlc3Mvc3JjL2xpYi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxJQUFJLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFhbkQsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxZQVR4QixZQUFZO1FBQ1osYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsZUFBZTtRQUNmLFlBQVksYUFFSCxZQUFZOzJHQUVWLGFBQWEsWUFUeEIsWUFBWTtRQUNaLGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLGVBQWU7UUFDZixZQUFZLEVBRUgsWUFBWTsyRkFFVixhQUFhO2tCQVh6QixRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRTt3QkFDUixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTtxQkFDWjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGVuY2lsTW9kdWxlIH0gZnJvbSAnLi4vLi4vc3RlbmNpbC5tb2R1bGUnO1xuXG5pbXBvcnQgeyBPYnNlcnZlcnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgYXMgQ0RLT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFBsYXRmb3JtTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5ATmdNb2R1bGUoe1xuXHRpbXBvcnRzOiBbXG5cdFx0Q29tbW9uTW9kdWxlLFxuXHRcdFN0ZW5jaWxNb2R1bGUsXG5cdFx0Q0RLT3ZlcmxheU1vZHVsZSxcblx0XHRQbGF0Zm9ybU1vZHVsZSxcblx0XHRPYnNlcnZlcnNNb2R1bGUsXG5cdFx0UG9ydGFsTW9kdWxlLFxuXHRdLFxuXHRleHBvcnRzOiBbUG9ydGFsTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheU1vZHVsZSB7fVxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXBlcmxlc3Mvc3JjL2xpYi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxJQUFJLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFhbkQsTUFBTSxPQUFPLGFBQWE7d0dBQWIsYUFBYTt5R0FBYixhQUFhLFlBVHhCLFlBQVk7WUFDWixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxlQUFlO1lBQ2YsWUFBWSxhQUVILFlBQVk7eUdBRVYsYUFBYSxZQVR4QixZQUFZO1lBQ1osYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsZUFBZTtZQUNmLFlBQVksRUFFSCxZQUFZOzs0RkFFVixhQUFhO2tCQVh6QixRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRTt3QkFDUixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsWUFBWTtxQkFDWjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdGVuY2lsTW9kdWxlIH0gZnJvbSAnLi4vLi4vc3RlbmNpbC5tb2R1bGUnO1xuXG5pbXBvcnQgeyBPYnNlcnZlcnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgYXMgQ0RLT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFBsYXRmb3JtTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5ATmdNb2R1bGUoe1xuXHRpbXBvcnRzOiBbXG5cdFx0Q29tbW9uTW9kdWxlLFxuXHRcdFN0ZW5jaWxNb2R1bGUsXG5cdFx0Q0RLT3ZlcmxheU1vZHVsZSxcblx0XHRQbGF0Zm9ybU1vZHVsZSxcblx0XHRPYnNlcnZlcnNNb2R1bGUsXG5cdFx0UG9ydGFsTW9kdWxlLFxuXHRdLFxuXHRleHBvcnRzOiBbUG9ydGFsTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheU1vZHVsZSB7fVxuIl19
@@ -0,0 +1,14 @@
1
+ import { Subject } from 'rxjs';
2
+ export class OverlayRef {
3
+ _overlay;
4
+ instance;
5
+ closed$ = new Subject();
6
+ constructor(_overlay) {
7
+ this._overlay = _overlay;
8
+ }
9
+ close() {
10
+ this._overlay.dispose();
11
+ this.closed$.next(null);
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXBlcmxlc3Mvc3JjL2xpYi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS5yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixNQUFNLE9BQU8sVUFBVTtJQUlGO0lBSGIsUUFBUSxDQUFLO0lBQ2IsT0FBTyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFL0IsWUFBb0IsUUFBdUI7UUFBdkIsYUFBUSxHQUFSLFFBQVEsQ0FBZTtJQUFHLENBQUM7SUFFL0MsS0FBSztRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheVJlZiBhcyBDREtPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY2xhc3MgT3ZlcmxheVJlZjxUPiB7XG5cdHB1YmxpYyBpbnN0YW5jZSE6IFQ7XG5cdHB1YmxpYyBjbG9zZWQkID0gbmV3IFN1YmplY3QoKTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9vdmVybGF5OiBDREtPdmVybGF5UmVmKSB7fVxuXG5cdGNsb3NlKCk6IHZvaWQge1xuXHRcdHRoaXMuX292ZXJsYXkuZGlzcG9zZSgpO1xuXHRcdHRoaXMuY2xvc2VkJC5uZXh0KG51bGwpO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,77 @@
1
+ import { OverlayConfig, } from '@angular/cdk/overlay';
2
+ import { CdkPortal, ComponentPortal } from '@angular/cdk/portal';
3
+ import { Injectable, Injector, } from '@angular/core';
4
+ import { OverlayRef } from '../overlay.ref';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/cdk/overlay";
7
+ export class OverlayService {
8
+ injector;
9
+ overlay;
10
+ overlayRef;
11
+ constructor(injector, overlay) {
12
+ this.injector = injector;
13
+ this.overlay = overlay;
14
+ }
15
+ open(component, options = {}) {
16
+ const overlay = this._createOverlay();
17
+ const overlayRef = new OverlayRef(overlay);
18
+ this._attachModalContainer(overlay, overlayRef, component, options.providers ?? []);
19
+ this._attachData(overlayRef, options);
20
+ this.overlayRef = overlayRef;
21
+ return overlayRef;
22
+ }
23
+ // tslint:disable-next-line:max-line-length
24
+ _attachModalContainer(overlay, overlayRef, component, providers) {
25
+ const injector = this._createInjector(overlayRef, providers);
26
+ const containerPortal = component instanceof CdkPortal
27
+ ? component
28
+ : new ComponentPortal(component, null, injector);
29
+ const containerRef = overlay.attach(containerPortal);
30
+ overlayRef.instance = containerRef.instance;
31
+ return containerRef.instance;
32
+ }
33
+ _createInjector(overlayRef, providers) {
34
+ return Injector.create({
35
+ providers: [
36
+ {
37
+ provide: OverlayRef,
38
+ useValue: overlayRef,
39
+ },
40
+ ...providers,
41
+ ],
42
+ parent: this.injector,
43
+ });
44
+ }
45
+ _getOverlayConfig() {
46
+ const positionStrategy = this.overlay
47
+ .position()
48
+ .global()
49
+ .centerHorizontally()
50
+ .centerVertically();
51
+ const overlayConfig = new OverlayConfig({
52
+ hasBackdrop: false,
53
+ scrollStrategy: this.overlay.scrollStrategies.block(),
54
+ positionStrategy,
55
+ });
56
+ return overlayConfig;
57
+ }
58
+ _createOverlay() {
59
+ // Returns an OverlayConfig
60
+ const overlayConfig = this._getOverlayConfig();
61
+ // Returns an OverlayRef
62
+ return this.overlay.create(overlayConfig);
63
+ }
64
+ _attachData(overlayRef, options) {
65
+ if (options.data && typeof options.data === 'object') {
66
+ for (const key of Object.keys(options.data)) {
67
+ overlayRef.instance[key] = options.data[key];
68
+ }
69
+ }
70
+ }
71
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayService, deps: [{ token: i0.Injector }, { token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Injectable });
72
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayService });
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OverlayService, decorators: [{
75
+ type: Injectable
76
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Overlay }]; } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGFwZXJsZXNzL3NyYy9saWIvbW9kdWxlcy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRU4sYUFBYSxHQUViLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDaEYsT0FBTyxFQUVOLFVBQVUsRUFDVixRQUFRLEdBRVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFRNUMsTUFBTSxPQUFPLGNBQWM7SUFFTjtJQUE0QjtJQUR6QyxVQUFVLENBQW1CO0lBQ3BDLFlBQW9CLFFBQWtCLEVBQVUsT0FBZ0I7UUFBNUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVM7SUFBRyxDQUFDO0lBRXBFLElBQUksQ0FBSSxTQUF1QyxFQUFFLFVBQXdCLEVBQUU7UUFDMUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFJLE9BQU8sQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxxQkFBcUIsQ0FDekIsT0FBTyxFQUNQLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQ3ZCLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFJLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixPQUFPLFVBQVUsQ0FBQztJQUNuQixDQUFDO0lBRUQsMkNBQTJDO0lBQ25DLHFCQUFxQixDQUM1QixPQUFzQixFQUN0QixVQUF5QixFQUN6QixTQUF1QyxFQUN2QyxTQUEyQjtRQUUzQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFJLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVoRSxNQUFNLGVBQWUsR0FDcEIsU0FBUyxZQUFZLFNBQVM7WUFDN0IsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsSUFBSSxlQUFlLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRCxNQUFNLFlBQVksR0FBb0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV0RSxVQUFVLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFFNUMsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFFTyxlQUFlLENBQ3RCLFVBQXlCLEVBQ3pCLFNBQTJCO1FBRTNCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN0QixTQUFTLEVBQUU7Z0JBQ1Y7b0JBQ0MsT0FBTyxFQUFFLFVBQVU7b0JBQ25CLFFBQVEsRUFBRSxVQUFVO2lCQUNwQjtnQkFDRCxHQUFHLFNBQVM7YUFDWjtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtTQUNyQixDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8saUJBQWlCO1FBQ3hCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDbkMsUUFBUSxFQUFFO2FBQ1YsTUFBTSxFQUFFO2FBQ1Isa0JBQWtCLEVBQUU7YUFDcEIsZ0JBQWdCLEVBQUUsQ0FBQztRQUVyQixNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUN2QyxXQUFXLEVBQUUsS0FBSztZQUNsQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7WUFDckQsZ0JBQWdCO1NBQ2hCLENBQUMsQ0FBQztRQUVILE9BQU8sYUFBYSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxjQUFjO1FBQ3JCLDJCQUEyQjtRQUMzQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUUvQyx3QkFBd0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sV0FBVyxDQUFJLFVBQXlCLEVBQUUsT0FBcUI7UUFDdEUsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDckQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDM0MsVUFBVSxDQUFDLFFBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN0RDtTQUNEO0lBQ0YsQ0FBQzt3R0F2RlcsY0FBYzs0R0FBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0T3ZlcmxheSxcblx0T3ZlcmxheUNvbmZpZyxcblx0T3ZlcmxheVJlZiBhcyBDREtPdmVybGF5UmVmLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtQb3J0YWwsIENvbXBvbmVudFBvcnRhbCwgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcblx0Q29tcG9uZW50UmVmLFxuXHRJbmplY3RhYmxlLFxuXHRJbmplY3Rvcixcblx0U3RhdGljUHJvdmlkZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJy4uL292ZXJsYXkucmVmJztcblxuaW50ZXJmYWNlIE1vZGFsT3B0aW9ucyB7XG5cdGRhdGE/OiBhbnk7XG5cdHByb3ZpZGVycz86IFN0YXRpY1Byb3ZpZGVyW107XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVybGF5U2VydmljZSB7XG5cdHB1YmxpYyBvdmVybGF5UmVmITogT3ZlcmxheVJlZjxhbnk+O1xuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5KSB7fVxuXG5cdG9wZW48VD4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+IHwgQ2RrUG9ydGFsLCBvcHRpb25zOiBNb2RhbE9wdGlvbnMgPSB7fSkge1xuXHRcdGNvbnN0IG92ZXJsYXkgPSB0aGlzLl9jcmVhdGVPdmVybGF5KCk7XG5cdFx0Y29uc3Qgb3ZlcmxheVJlZiA9IG5ldyBPdmVybGF5UmVmPFQ+KG92ZXJsYXkpO1xuXG5cdFx0dGhpcy5fYXR0YWNoTW9kYWxDb250YWluZXI8VD4oXG5cdFx0XHRvdmVybGF5LFxuXHRcdFx0b3ZlcmxheVJlZixcblx0XHRcdGNvbXBvbmVudCxcblx0XHRcdG9wdGlvbnMucHJvdmlkZXJzID8/IFtdXG5cdFx0KTtcblxuXHRcdHRoaXMuX2F0dGFjaERhdGE8VD4ob3ZlcmxheVJlZiwgb3B0aW9ucyk7XG5cblx0XHR0aGlzLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmO1xuXHRcdHJldHVybiBvdmVybGF5UmVmO1xuXHR9XG5cblx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuXHRwcml2YXRlIF9hdHRhY2hNb2RhbENvbnRhaW5lcjxUPihcblx0XHRvdmVybGF5OiBDREtPdmVybGF5UmVmLFxuXHRcdG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY8VD4sXG5cdFx0Y29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+IHwgQ2RrUG9ydGFsLFxuXHRcdHByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXVxuXHQpIHtcblx0XHRjb25zdCBpbmplY3RvciA9IHRoaXMuX2NyZWF0ZUluamVjdG9yPFQ+KG92ZXJsYXlSZWYsIHByb3ZpZGVycyk7XG5cblx0XHRjb25zdCBjb250YWluZXJQb3J0YWwgPVxuXHRcdFx0Y29tcG9uZW50IGluc3RhbmNlb2YgQ2RrUG9ydGFsXG5cdFx0XHRcdD8gY29tcG9uZW50XG5cdFx0XHRcdDogbmV3IENvbXBvbmVudFBvcnRhbChjb21wb25lbnQsIG51bGwsIGluamVjdG9yKTtcblx0XHRjb25zdCBjb250YWluZXJSZWY6IENvbXBvbmVudFJlZjxUPiA9IG92ZXJsYXkuYXR0YWNoKGNvbnRhaW5lclBvcnRhbCk7XG5cblx0XHRvdmVybGF5UmVmLmluc3RhbmNlID0gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuXG5cdFx0cmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcblx0fVxuXG5cdHByaXZhdGUgX2NyZWF0ZUluamVjdG9yPFQ+KFxuXHRcdG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY8VD4sXG5cdFx0cHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdXG5cdCk6IEluamVjdG9yIHtcblx0XHRyZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcblx0XHRcdHByb3ZpZGVyczogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0cHJvdmlkZTogT3ZlcmxheVJlZixcblx0XHRcdFx0XHR1c2VWYWx1ZTogb3ZlcmxheVJlZixcblx0XHRcdFx0fSxcblx0XHRcdFx0Li4ucHJvdmlkZXJzLFxuXHRcdFx0XSxcblx0XHRcdHBhcmVudDogdGhpcy5pbmplY3Rvcixcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX2dldE92ZXJsYXlDb25maWcoKTogT3ZlcmxheUNvbmZpZyB7XG5cdFx0Y29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuXHRcdFx0LnBvc2l0aW9uKClcblx0XHRcdC5nbG9iYWwoKVxuXHRcdFx0LmNlbnRlckhvcml6b250YWxseSgpXG5cdFx0XHQuY2VudGVyVmVydGljYWxseSgpO1xuXG5cdFx0Y29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcblx0XHRcdGhhc0JhY2tkcm9wOiBmYWxzZSxcblx0XHRcdHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuXHRcdFx0cG9zaXRpb25TdHJhdGVneSxcblx0XHR9KTtcblxuXHRcdHJldHVybiBvdmVybGF5Q29uZmlnO1xuXHR9XG5cblx0cHJpdmF0ZSBfY3JlYXRlT3ZlcmxheSgpIHtcblx0XHQvLyBSZXR1cm5zIGFuIE92ZXJsYXlDb25maWdcblx0XHRjb25zdCBvdmVybGF5Q29uZmlnID0gdGhpcy5fZ2V0T3ZlcmxheUNvbmZpZygpO1xuXG5cdFx0Ly8gUmV0dXJucyBhbiBPdmVybGF5UmVmXG5cdFx0cmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG5cdH1cblxuXHRwcml2YXRlIF9hdHRhY2hEYXRhPFQ+KG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY8VD4sIG9wdGlvbnM6IE1vZGFsT3B0aW9ucykge1xuXHRcdGlmIChvcHRpb25zLmRhdGEgJiYgdHlwZW9mIG9wdGlvbnMuZGF0YSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9wdGlvbnMuZGF0YSkpIHtcblx0XHRcdFx0KG92ZXJsYXlSZWYuaW5zdGFuY2UgYXMgYW55KVtrZXldID0gb3B0aW9ucy5kYXRhW2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXX0=
@@ -0,0 +1,229 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Output } from '@angular/core';
3
+ import { FormControl, FormGroup } from '@angular/forms';
4
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
5
+ import { PAGINATION_DEFAULT_PAGE_SIZE } from '@paperless/core';
6
+ import { timer } from 'rxjs';
7
+ import { debounce, filter, map, pairwise, startWith, tap, } from 'rxjs/operators';
8
+ import { BaseFormComponent } from '../../../base/form.component';
9
+ import { createFormFilters } from '../utils';
10
+ import * as i0 from "@angular/core";
11
+ let BaseTableComponent = class BaseTableComponent extends BaseFormComponent {
12
+ tableOptionsChange = new EventEmitter();
13
+ quickFilters = [];
14
+ filterForm = new FormGroup({});
15
+ filterFormQuickFilterKey;
16
+ defaultFilterFormValues = {};
17
+ pageSizeDefault = PAGINATION_DEFAULT_PAGE_SIZE;
18
+ tableOptions;
19
+ _defaultTableValues = {
20
+ pageSize: this.pageSizeDefault,
21
+ page: 1,
22
+ quickFilter: null,
23
+ query: '',
24
+ filters: [],
25
+ selectedRows: [],
26
+ };
27
+ defaultTableValues = {};
28
+ get pageSize() {
29
+ if (!this.tableOptions) {
30
+ return this._defaultTableValues.pageSize;
31
+ }
32
+ return this.tableOptions.value.pageSize;
33
+ }
34
+ set pageSize(pageSize) {
35
+ this.tableValues = {
36
+ pageSize,
37
+ };
38
+ }
39
+ get page() {
40
+ if (!this.tableOptions) {
41
+ return this._defaultTableValues.page;
42
+ }
43
+ return this.tableOptions.value.page;
44
+ }
45
+ set page(page) {
46
+ this.tableValues = {
47
+ page,
48
+ };
49
+ }
50
+ get quickFilter() {
51
+ if (!this.tableOptions) {
52
+ return this._defaultTableValues.quickFilter;
53
+ }
54
+ return this.tableOptions.value.quickFilter;
55
+ }
56
+ set quickFilter(quickFilter) {
57
+ this.tableValues = {
58
+ quickFilter,
59
+ };
60
+ }
61
+ get query() {
62
+ if (!this.tableOptions) {
63
+ return this._defaultTableValues.query;
64
+ }
65
+ return this.tableOptions.value.query;
66
+ }
67
+ set query(query) {
68
+ this.tableValues = {
69
+ query,
70
+ };
71
+ }
72
+ get filters() {
73
+ if (!this.tableOptions) {
74
+ return this._defaultTableValues.filters;
75
+ }
76
+ return this.tableOptions.value.filters;
77
+ }
78
+ set filters(filters) {
79
+ this.tableValues = {
80
+ filters,
81
+ };
82
+ }
83
+ get selectedRows() {
84
+ if (!this.tableOptions) {
85
+ return this._defaultTableValues.selectedRows;
86
+ }
87
+ return this.tableOptions.value.selectedRows;
88
+ }
89
+ set selectedRows(selectedRows) {
90
+ this.tableValues = {
91
+ selectedRows,
92
+ };
93
+ }
94
+ // setter
95
+ get parsedDefaultTableValues() {
96
+ return {
97
+ ...this._defaultTableValues,
98
+ ...this.defaultTableValues,
99
+ pageSize: this.defaultTableValues?.pageSize || this.pageSizeDefault,
100
+ };
101
+ }
102
+ get tableValues() {
103
+ return this.tableOptions?.value ?? {};
104
+ }
105
+ set tableValues(values) {
106
+ this._setTableValues({
107
+ ...this.tableValues,
108
+ ...values,
109
+ });
110
+ }
111
+ constructor() {
112
+ super();
113
+ }
114
+ ngOnInit() {
115
+ this.tableOptions = new FormControl({
116
+ pageSize: this.parsedDefaultTableValues.pageSize,
117
+ page: this.parsedDefaultTableValues.page,
118
+ quickFilter: this.parsedDefaultTableValues.quickFilter,
119
+ query: this.parsedDefaultTableValues.query,
120
+ filters: this.parsedDefaultTableValues.filters,
121
+ selectedRows: this.parsedDefaultTableValues.selectedRows,
122
+ });
123
+ this.tableOptions.valueChanges
124
+ .pipe(untilDestroyed(this), startWith(this.tableOptions.value), tap((value) => this.tableOptionsChange.next(value)), pairwise(), map(([previous, next]) => this._getChanges(previous, next)), filter(changes => !!changes), debounce(changes => {
125
+ if (changes?.query && Object.keys(changes)?.length === 1) {
126
+ return timer(300);
127
+ }
128
+ return timer(0);
129
+ }))
130
+ .subscribe(changes => {
131
+ if (changes?.page) {
132
+ this._refresh();
133
+ return;
134
+ }
135
+ this._resetPageOrRefresh();
136
+ });
137
+ this._refresh();
138
+ }
139
+ resetTable(emitEvent = true, forceRefresh = false) {
140
+ this._setTableValues(this.parsedDefaultTableValues, emitEvent);
141
+ if (forceRefresh) {
142
+ this._refresh();
143
+ }
144
+ }
145
+ applyFormFilters(values = null) {
146
+ values = values ?? this.filterForm.value;
147
+ const { filters, quickFilter } = createFormFilters(values, this.quickFilters, this.filterFormQuickFilterKey);
148
+ if (quickFilter) {
149
+ this.quickFilter = quickFilter;
150
+ }
151
+ this.filters = filters;
152
+ }
153
+ checkFilterForm() {
154
+ for (const key of Object.keys(this.filterForm.controls)) {
155
+ const filter = this.filters.find(f => f.key === key) ||
156
+ (key === this.filterFormQuickFilterKey ? this.quickFilter : null);
157
+ this.filterForm.get(key)?.setValue(filter?.value ?? null);
158
+ }
159
+ }
160
+ resetFormFilters(resetQuickFilter = false) {
161
+ const values = this.filterForm.value;
162
+ const defaultQuickFilter = this.quickFilters.find(f => f.default);
163
+ for (const key of Object.keys(values)) {
164
+ if (key === this.filterFormQuickFilterKey) {
165
+ if (resetQuickFilter) {
166
+ values[key] = defaultQuickFilter.value;
167
+ }
168
+ continue;
169
+ }
170
+ values[key] = this.defaultFilterFormValues[key] ?? null;
171
+ }
172
+ this.filterForm.setValue(values);
173
+ this.applyFormFilters(values);
174
+ }
175
+ _refresh() {
176
+ console.warn('Not implemented');
177
+ }
178
+ _resetPageOrRefresh() {
179
+ if (!this.tableOptions) {
180
+ return;
181
+ }
182
+ if (this.page !== 1) {
183
+ this.page = 1;
184
+ }
185
+ this._refresh();
186
+ }
187
+ _setTableValues(data, emitEvent = true) {
188
+ this.tableOptions?.setValue({
189
+ ...this.tableOptions.value,
190
+ ...data,
191
+ }, { emitEvent });
192
+ }
193
+ _getChanges(previous, next) {
194
+ const changes = {};
195
+ let key;
196
+ for (key in next) {
197
+ if (key === 'selectedRows') {
198
+ continue;
199
+ }
200
+ if (JSON.stringify(previous[key]) !== JSON.stringify(next[key])) {
201
+ // @ts-ignore
202
+ changes[key] = next[key];
203
+ }
204
+ }
205
+ return Object.keys(changes).length ? changes : null;
206
+ }
207
+ _watchProperty(observable, identifier = 'id') {
208
+ return observable.pipe(untilDestroyed(this), startWith(null), pairwise(), filter(([prev, cur]) => prev !== cur && !!cur), tap(([previous, current]) => {
209
+ if (previous && previous[identifier] !== current?.[identifier]) {
210
+ this.resetTable(false, true);
211
+ }
212
+ }), map(([_, current]) => current));
213
+ }
214
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
215
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseTableComponent, selector: "ng-component", outputs: { tableOptionsChange: "tableOptionsChange" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true });
216
+ };
217
+ BaseTableComponent = __decorate([
218
+ UntilDestroy({ checkProperties: true })
219
+ ], BaseTableComponent);
220
+ export { BaseTableComponent };
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseTableComponent, decorators: [{
222
+ type: Component,
223
+ args: [{
224
+ template: ``,
225
+ }]
226
+ }], ctorParameters: function () { return []; }, propDecorators: { tableOptionsChange: [{
227
+ type: Output
228
+ }] } });
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGFwZXJsZXNzL3NyYy9saWIvbW9kdWxlcy90YWJsZS9iYXNlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsNEJBQTRCLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLEdBQUcsRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULEdBQUcsR0FDSCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFvQnRDLElBQWUsa0JBQWtCLEdBQWpDLE1BQWUsa0JBQ3JCLFNBQVEsaUJBQWlCO0lBR2Ysa0JBQWtCLEdBQzNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFVixZQUFZLEdBQVUsRUFBRSxDQUFDO0lBRTVCLFVBQVUsR0FBbUIsSUFBSSxTQUFTLENBQU0sRUFBRSxDQUFDLENBQUM7SUFDcEQsd0JBQXdCLENBQVU7SUFDbEMsdUJBQXVCLEdBQVEsRUFBRSxDQUFDO0lBRWxDLGVBQWUsR0FBRyw0QkFBNEIsQ0FBQztJQUMvQyxZQUFZLENBQTZCO0lBRXhDLG1CQUFtQixHQUFpQjtRQUMzQyxRQUFRLEVBQUUsSUFB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b20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgUEFHSU5BVElPTl9ERUZBVUxUX1BBR0VfU0laRSwgUXVpY2tGaWx0ZXIgfSBmcm9tICdAcGFwZXJsZXNzL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG5cdGRlYm91bmNlLFxuXHRmaWx0ZXIsXG5cdG1hcCxcblx0cGFpcndpc2UsXG5cdHN0YXJ0V2l0aCxcblx0dGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXNlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UvZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgY3JlYXRlRm9ybUZpbHRlcnMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCB0eXBlIFRhYmxlUXVpY2tGaWx0ZXIgPSBRdWlja0ZpbHRlciAmIHtcblx0dmFsdWU6IHN0cmluZztcblx0bWV0cmljTmFtZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVPcHRpb25zIHtcblx0cGFnZVNpemU6IG51bWJlcjtcblx0cGFnZTogbnVtYmVyO1xuXHRxdWlja0ZpbHRlcjogVGFibGVRdWlja0ZpbHRlciB8IHN0cmluZyB8IG51bGw7XG5cdHF1ZXJ5OiBzdHJpbmc7XG5cdGZpbHRlcnM6IGFueVtdO1xuXHRzZWxlY3RlZFJvd3M6IGFueVtdO1xufVxuXG5AVW50aWxEZXN0cm95KHsgY2hlY2tQcm9wZXJ0aWVzOiB0cnVlIH0pXG5AQ29tcG9uZW50KHtcblx0dGVtcGxhdGU6IGBgLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlVGFibGVDb21wb25lbnRcblx0ZXh0ZW5kcyBCYXNlRm9ybUNvbXBvbmVudFxuXHRpbXBsZW1lbnRzIE9uSW5pdFxue1xuXHRAT3V0cHV0KCkgdGFibGVPcHRpb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UGFydGlhbDxUYWJsZU9wdGlvbnM+IHwgbnVsbD4gPVxuXHRcdG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRwcm90ZWN0ZWQgcXVpY2tGaWx0ZXJzOiBhbnlbXSA9IFtdO1xuXG5cdHB1YmxpYyBmaWx0ZXJGb3JtOiBGb3JtR3JvdXA8YW55PiA9IG5ldyBGb3JtR3JvdXA8YW55Pih7fSk7XG5cdHB1YmxpYyBmaWx0ZXJGb3JtUXVpY2tGaWx0ZXJLZXk/OiBzdHJpbmc7XG5cdHB1YmxpYyBkZWZhdWx0RmlsdGVyRm9ybVZhbHVlczogYW55ID0ge307XG5cblx0cHVibGljIHBhZ2VTaXplRGVmYXVsdCA9IFBBR0lOQVRJT05fREVGQVVMVF9QQUdFX1NJWkU7XG5cdHB1YmxpYyB0YWJsZU9wdGlvbnM/OiBGb3JtQ29udHJvbDxUYWJsZU9wdGlvbnM+O1xuXG5cdHByaXZhdGUgX2RlZmF1bHRUYWJsZVZhbHVlczogVGFibGVPcHRpb25zID0ge1xuXHRcdHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplRGVmYXVsdCxcblx0XHRwYWdlOiAxLFxuXHRcdHF1aWNrRmlsdGVyOiBudWxsLFxuXHRcdHF1ZXJ5OiAnJyxcblx0XHRmaWx0ZXJzOiBbXSxcblx0XHRzZWxlY3RlZFJvd3M6IFtdLFxuXHR9O1xuXHRwdWJsaWMgZGVmYXVsdFRhYmxlVmFsdWVzOiBQYXJ0aWFsPFRhYmxlT3B0aW9ucz4gPSB7fTtcblxuXHRnZXQgcGFnZVNpemUoKSB7XG5cdFx0aWYgKCF0aGlzLnRhYmxlT3B0aW9ucykge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2RlZmF1bHRUYWJsZVZhbHVlcy5wYWdlU2l6ZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy50YWJsZU9wdGlvbnMudmFsdWUucGFnZVNpemU7XG5cdH1cblxuXHRzZXQgcGFnZVNpemUocGFnZVNpemU6IG51bWJlcikge1xuXHRcdHRoaXMudGFibGVWYWx1ZXMgPSB7XG5cdFx0XHRwYWdlU2l6ZSxcblx0XHR9O1xuXHR9XG5cblx0Z2V0IHBhZ2UoKSB7XG5cdFx0aWYgKCF0aGlzLnRhYmxlT3B0aW9ucykge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2RlZmF1bHRUYWJsZVZhbHVlcy5wYWdlO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnRhYmxlT3B0aW9ucy52YWx1ZS5wYWdlO1xuXHR9XG5cblx0c2V0IHBhZ2UocGFnZTogbnVtYmVyKSB7XG5cdFx0dGhpcy50YWJsZVZhbHVlcyA9IHtcblx0XHRcdHBhZ2UsXG5cdFx0fTtcblx0fVxuXG5cdGdldCBxdWlja0ZpbHRlcigpIHtcblx0XHRpZiAoIXRoaXMudGFibGVPcHRpb25zKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fZGVmYXVsdFRhYmxlVmFsdWVzLnF1aWNrRmlsdGVyO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnRhYmxlT3B0aW9ucy52YWx1ZS5xdWlja0ZpbHRlcjtcblx0fVxuXHRzZXQgcXVpY2tGaWx0ZXIocXVpY2tGaWx0ZXI6IFRhYmxlUXVpY2tGaWx0ZXIgfCBzdHJpbmcgfCBudWxsKSB7XG5cdFx0dGhpcy50YWJsZVZhbHVlcyA9IHtcblx0XHRcdHF1aWNrRmlsdGVyLFxuXHRcdH07XG5cdH1cblxuXHRnZXQgcXVlcnkoKSB7XG5cdFx0aWYgKCF0aGlzLnRhYmxlT3B0aW9ucykge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2RlZmF1bHRUYWJsZVZhbHVlcy5xdWVyeTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy50YWJsZU9wdGlvbnMudmFsdWUucXVlcnk7XG5cdH1cblx0c2V0IHF1ZXJ5KHF1ZXJ5OiBzdHJpbmcpIHtcblx0XHR0aGlzLnRhYmxlVmFsdWVzID0ge1xuXHRcdFx0cXVlcnksXG5cdFx0fTtcblx0fVxuXG5cdGdldCBmaWx0ZXJzKCkge1xuXHRcdGlmICghdGhpcy50YWJsZU9wdGlvbnMpIHtcblx0XHRcdHJldHVybiB0aGlzLl9kZWZhdWx0VGFibGVWYWx1ZXMuZmlsdGVycztcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy50YWJsZU9wdGlvbnMudmFsdWUuZmlsdGVycztcblx0fVxuXHRzZXQgZmlsdGVycyhmaWx0ZXJzOiBhbnlbXSkge1xuXHRcdHRoaXMudGFibGVWYWx1ZXMgPSB7XG5cdFx0XHRmaWx0ZXJzLFxuXHRcdH07XG5cdH1cblxuXHRnZXQgc2VsZWN0ZWRSb3dzKCkge1xuXHRcdGlmICghdGhpcy50YWJsZU9wdGlvbnMpIHtcblx0XHRcdHJldHVybiB0aGlzLl9kZWZhdWx0VGFibGVWYWx1ZXMuc2VsZWN0ZWRSb3dzO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnRhYmxlT3B0aW9ucy52YWx1ZS5zZWxlY3RlZFJvd3M7XG5cdH1cblx0c2V0IHNlbGVjdGVkUm93cyhzZWxlY3RlZFJvd3M6IGFueVtdKSB7XG5cdFx0dGhpcy50YWJsZVZhbHVlcyA9IHtcblx0XHRcdHNlbGVjdGVkUm93cyxcblx0XHR9O1xuXHR9XG5cblx0Ly8gc2V0dGVyXG5cdGdldCBwYXJzZWREZWZhdWx0VGFibGVWYWx1ZXMoKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdC4uLnRoaXMuX2RlZmF1bHRUYWJsZVZhbHVlcyxcblx0XHRcdC4uLnRoaXMuZGVmYXVsdFRhYmxlVmFsdWVzLFxuXHRcdFx0cGFnZVNpemU6IHRoaXMuZGVmYXVsdFRhYmxlVmFsdWVzPy5wYWdlU2l6ZSB8fCB0aGlzLnBhZ2VTaXplRGVmYXVsdCxcblx0XHR9O1xuXHR9XG5cblx0Z2V0IHRhYmxlVmFsdWVzKCkge1xuXHRcdHJldHVybiB0aGlzLnRhYmxlT3B0aW9ucz8udmFsdWUgPz8ge307XG5cdH1cblxuXHRzZXQgdGFibGVWYWx1ZXModmFsdWVzOiBQYXJ0aWFsPFRhYmxlT3B0aW9ucz4pIHtcblx0XHR0aGlzLl9zZXRUYWJsZVZhbHVlcyh7XG5cdFx0XHQuLi50aGlzLnRhYmxlVmFsdWVzLFxuXHRcdFx0Li4udmFsdWVzLFxuXHRcdH0pO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMudGFibGVPcHRpb25zID0gbmV3IEZvcm1Db250cm9sPFRhYmxlT3B0aW9ucz4oe1xuXHRcdFx0cGFnZVNpemU6IHRoaXMucGFyc2VkRGVmYXVsdFRhYmxlVmFsdWVzLnBhZ2VTaXplLFxuXHRcdFx0cGFnZTogdGhpcy5wYXJzZWREZWZhdWx0VGFibGVWYWx1ZXMucGFnZSxcblx0XHRcdHF1aWNrRmlsdGVyOiB0aGlzLnBhcnNlZERlZmF1bHRUYWJsZVZhbHVlcy5xdWlja0ZpbHRlcixcblx0XHRcdHF1ZXJ5OiB0aGlzLnBhcnNlZERlZmF1bHRUYWJsZVZhbHVlcy5xdWVyeSxcblx0XHRcdGZpbHRlcnM6IHRoaXMucGFyc2VkRGVmYXVsdFRhYmxlVmFsdWVzLmZpbHRlcnMsXG5cdFx0XHRzZWxlY3RlZFJvd3M6IHRoaXMucGFyc2VkRGVmYXVsdFRhYmxlVmFsdWVzLnNlbGVjdGVkUm93cyxcblx0XHR9KSBhcyBGb3JtQ29udHJvbDxUYWJsZU9wdGlvbnM+O1xuXG5cdFx0dGhpcy50YWJsZU9wdGlvbnMudmFsdWVDaGFuZ2VzXG5cdFx0XHQucGlwZShcblx0XHRcdFx0dW50aWxEZXN0cm95ZWQodGhpcyksXG5cdFx0XHRcdHN0YXJ0V2l0aCh0aGlzLnRhYmxlT3B0aW9ucy52YWx1ZSksXG5cdFx0XHRcdHRhcCgodmFsdWU6IFRhYmxlT3B0aW9ucykgPT4gdGhpcy50YWJsZU9wdGlvbnNDaGFuZ2UubmV4dCh2YWx1ZSkpLFxuXHRcdFx0XHRwYWlyd2lzZSgpLFxuXHRcdFx0XHRtYXAoKFtwcmV2aW91cywgbmV4dF0pID0+IHRoaXMuX2dldENoYW5nZXMocHJldmlvdXMsIG5leHQpKSxcblx0XHRcdFx0ZmlsdGVyKGNoYW5nZXMgPT4gISFjaGFuZ2VzKSxcblx0XHRcdFx0ZGVib3VuY2UoY2hhbmdlcyA9PiB7XG5cdFx0XHRcdFx0aWYgKGNoYW5nZXM/LnF1ZXJ5ICYmIE9iamVjdC5rZXlzKGNoYW5nZXMpPy5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0aW1lcigzMDApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiB0aW1lcigwKTtcblx0XHRcdFx0fSlcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoY2hhbmdlcyA9PiB7XG5cdFx0XHRcdGlmIChjaGFuZ2VzPy5wYWdlKSB7XG5cdFx0XHRcdFx0dGhpcy5fcmVmcmVzaCgpO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRoaXMuX3Jlc2V0UGFnZU9yUmVmcmVzaCgpO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9yZWZyZXNoKCk7XG5cdH1cblxuXHRyZXNldFRhYmxlKGVtaXRFdmVudCA9IHRydWUsIGZvcmNlUmVmcmVzaCA9IGZhbHNlKSB7XG5cdFx0dGhpcy5fc2V0VGFibGVWYWx1ZXModGhpcy5wYXJzZWREZWZhdWx0VGFibGVWYWx1ZXMsIGVtaXRFdmVudCk7XG5cblx0XHRpZiAoZm9yY2VSZWZyZXNoKSB7XG5cdFx0XHR0aGlzLl9yZWZyZXNoKCk7XG5cdFx0fVxuXHR9XG5cblx0YXBwbHlGb3JtRmlsdGVycyh2YWx1ZXM6IGFueSA9IG51bGwpIHtcblx0XHR2YWx1ZXMgPSB2YWx1ZXMgPz8gdGhpcy5maWx0ZXJGb3JtLnZhbHVlO1xuXG5cdFx0Y29uc3QgeyBmaWx0ZXJzLCBxdWlja0ZpbHRlciB9ID0gY3JlYXRlRm9ybUZpbHRlcnMoXG5cdFx0XHR2YWx1ZXMsXG5cdFx0XHR0aGlzLnF1aWNrRmlsdGVycyxcblx0XHRcdHRoaXMuZmlsdGVyRm9ybVF1aWNrRmlsdGVyS2V5XG5cdFx0KTtcblxuXHRcdGlmIChxdWlja0ZpbHRlcikge1xuXHRcdFx0dGhpcy5xdWlja0ZpbHRlciA9IHF1aWNrRmlsdGVyO1xuXHRcdH1cblxuXHRcdHRoaXMuZmlsdGVycyA9IGZpbHRlcnM7XG5cdH1cblxuXHRjaGVja0ZpbHRlckZvcm0oKSB7XG5cdFx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5maWx0ZXJGb3JtLmNvbnRyb2xzKSkge1xuXHRcdFx0Y29uc3QgZmlsdGVyID1cblx0XHRcdFx0dGhpcy5maWx0ZXJzLmZpbmQoZiA9PiBmLmtleSA9PT0ga2V5KSB8fFxuXHRcdFx0XHQoa2V5ID09PSB0aGlzLmZpbHRlckZvcm1RdWlja0ZpbHRlcktleSA/IHRoaXMucXVpY2tGaWx0ZXIgOiBudWxsKTtcblx0XHRcdHRoaXMuZmlsdGVyRm9ybS5nZXQoa2V5KT8uc2V0VmFsdWUoZmlsdGVyPy52YWx1ZSA/PyBudWxsKTtcblx0XHR9XG5cdH1cblxuXHRyZXNldEZvcm1GaWx0ZXJzKHJlc2V0UXVpY2tGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZSkge1xuXHRcdGNvbnN0IHZhbHVlczogYW55ID0gdGhpcy5maWx0ZXJGb3JtLnZhbHVlO1xuXHRcdGNvbnN0IGRlZmF1bHRRdWlja0ZpbHRlciA9IHRoaXMucXVpY2tGaWx0ZXJzLmZpbmQoZiA9PiBmLmRlZmF1bHQpO1xuXG5cdFx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWVzKSkge1xuXHRcdFx0aWYgKGtleSA9PT0gdGhpcy5maWx0ZXJGb3JtUXVpY2tGaWx0ZXJLZXkpIHtcblx0XHRcdFx0aWYgKHJlc2V0UXVpY2tGaWx0ZXIpIHtcblx0XHRcdFx0XHR2YWx1ZXNba2V5XSA9IGRlZmF1bHRRdWlja0ZpbHRlci52YWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0dmFsdWVzW2tleV0gPSB0aGlzLmRlZmF1bHRGaWx0ZXJGb3JtVmFsdWVzW2tleV0gPz8gbnVsbDtcblx0XHR9XG5cblx0XHR0aGlzLmZpbHRlckZvcm0uc2V0VmFsdWUodmFsdWVzKTtcblx0XHR0aGlzLmFwcGx5Rm9ybUZpbHRlcnModmFsdWVzKTtcblx0fVxuXG5cdHByb3RlY3RlZCBfcmVmcmVzaCgpIHtcblx0XHRjb25zb2xlLndhcm4oJ05vdCBpbXBsZW1lbnRlZCcpO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVzZXRQYWdlT3JSZWZyZXNoKCkge1xuXHRcdGlmICghdGhpcy50YWJsZU9wdGlvbnMpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5wYWdlICE9PSAxKSB7XG5cdFx0XHR0aGlzLnBhZ2UgPSAxO1xuXHRcdH1cblxuXHRcdHRoaXMuX3JlZnJlc2goKTtcblx0fVxuXG5cdHByaXZhdGUgX3NldFRhYmxlVmFsdWVzKGRhdGE6IFBhcnRpYWw8VGFibGVPcHRpb25zPiwgZW1pdEV2ZW50ID0gdHJ1ZSkge1xuXHRcdHRoaXMudGFibGVPcHRpb25zPy5zZXRWYWx1ZShcblx0XHRcdHtcblx0XHRcdFx0Li4udGhpcy50YWJsZU9wdGlvbnMudmFsdWUsXG5cdFx0XHRcdC4uLmRhdGEsXG5cdFx0XHR9LFxuXHRcdFx0eyBlbWl0RXZlbnQgfVxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIF9nZXRDaGFuZ2VzKHByZXZpb3VzOiBUYWJsZU9wdGlvbnMsIG5leHQ6IFRhYmxlT3B0aW9ucykge1xuXHRcdGNvbnN0IGNoYW5nZXM6IFBhcnRpYWw8VGFibGVPcHRpb25zPiA9IHt9O1xuXG5cdFx0bGV0IGtleToga2V5b2YgVGFibGVPcHRpb25zO1xuXHRcdGZvciAoa2V5IGluIG5leHQpIHtcblx0XHRcdGlmIChrZXkgPT09ICdzZWxlY3RlZFJvd3MnKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoSlNPTi5zdHJpbmdpZnkocHJldmlvdXNba2V5XSkgIT09IEpTT04uc3RyaW5naWZ5KG5leHRba2V5XSkpIHtcblx0XHRcdFx0Ly8gQHRzLWlnbm9yZVxuXHRcdFx0XHRjaGFuZ2VzW2tleV0gPSBuZXh0W2tleV07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIE9iamVjdC5rZXlzKGNoYW5nZXMpLmxlbmd0aCA/IGNoYW5nZXMgOiBudWxsO1xuXHR9XG5cblx0cHJvdGVjdGVkIF93YXRjaFByb3BlcnR5PFQ+KFxuXHRcdG9ic2VydmFibGU6IE9ic2VydmFibGU8VCAmIHsgaWQ6IHN0cmluZyB9Pixcblx0XHRpZGVudGlmaWVyOiBrZXlvZiAoVCAmIHsgaWQ6IHN0cmluZyB9KSA9ICdpZCdcblx0KSB7XG5cdFx0cmV0dXJuIG9ic2VydmFibGUucGlwZShcblx0XHRcdHVudGlsRGVzdHJveWVkKHRoaXMpLFxuXHRcdFx0c3RhcnRXaXRoKG51bGwpLFxuXHRcdFx0cGFpcndpc2UoKSxcblx0XHRcdGZpbHRlcigoW3ByZXYsIGN1cl0pID0+IHByZXYgIT09IGN1ciAmJiAhIWN1ciksXG5cdFx0XHR0YXAoKFtwcmV2aW91cywgY3VycmVudF0pID0+IHtcblx0XHRcdFx0aWYgKHByZXZpb3VzICYmIHByZXZpb3VzW2lkZW50aWZpZXJdICE9PSBjdXJyZW50Py5baWRlbnRpZmllcl0pIHtcblx0XHRcdFx0XHR0aGlzLnJlc2V0VGFibGUoZmFsc2UsIHRydWUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRcdG1hcCgoW18sIGN1cnJlbnRdKSA9PiBjdXJyZW50KVxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==