@paperless/angular 2.20.1 → 2.22.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) 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/esm2020/lib/base/form.component.mjs +0 -115
  61. package/esm2020/lib/base/number-value-accessor.mjs +0 -33
  62. package/esm2020/lib/base/upload.component.mjs +0 -56
  63. package/esm2020/lib/base/value-accessor.mjs +0 -41
  64. package/esm2020/lib/directives/p-checkbox.directive.mjs +0 -39
  65. package/esm2020/lib/directives/p-cropper.directive.mjs +0 -37
  66. package/esm2020/lib/directives/p-datepicker.directive.mjs +0 -38
  67. package/esm2020/lib/directives/p-field-number.directive.mjs +0 -34
  68. package/esm2020/lib/directives/p-field.directive.mjs +0 -38
  69. package/esm2020/lib/directives/p-pagination-pages.directive.mjs +0 -41
  70. package/esm2020/lib/directives/p-pagination-size.directive.mjs +0 -41
  71. package/esm2020/lib/directives/p-radio.directive.mjs +0 -60
  72. package/esm2020/lib/directives/p-select.directive.mjs +0 -37
  73. package/esm2020/lib/directives/p-toggle.directive.mjs +0 -38
  74. package/esm2020/lib/modules/overlay/overlay.ref.mjs +0 -12
  75. package/esm2020/lib/modules/overlay/services/overlay.service.mjs +0 -74
  76. package/esm2020/lib/modules/table/base/table.component.mjs +0 -227
  77. package/esm2020/lib/modules/table/components/table/table.component.mjs +0 -1006
  78. package/esm2020/lib/modules/table/components/table-cell/table-cell.component.mjs +0 -152
  79. package/esm2020/lib/modules/table/components/table-column/table-column.component.mjs +0 -59
  80. package/esm2020/lib/modules/table/components/table-extra-header/table-extra-header.component.mjs +0 -37
  81. package/esm2020/lib/modules/table/components/table-row-action/table-row-action.component.mjs +0 -73
  82. package/esm2020/lib/modules/table/directives/p-table-custom-row.directive.mjs +0 -19
  83. package/esm2020/lib/modules/table/directives/p-table-footer.directive.mjs +0 -52
  84. package/esm2020/lib/modules/table/directives/p-table-header.directive.mjs +0 -59
  85. package/esm2020/lib/modules/table/directives/p-table-ngx.directive.mjs +0 -128
  86. package/esm2020/lib/modules/table/directives/p-table.directive.mjs +0 -77
  87. package/esm2020/lib/modules/toast/components/toast-container/toast-container.component.mjs +0 -36
  88. package/esm2020/lib/modules/toast/directives/toast.directive.mjs +0 -51
  89. package/esm2020/lib/modules/toast/services/toast.service.mjs +0 -53
  90. package/esm2020/lib/pipes/currency.pipe.mjs +0 -20
  91. package/esm2020/lib/pipes/date.pipe.mjs +0 -20
  92. package/esm2020/lib/pipes/safe.pipe.mjs +0 -33
  93. package/esm2020/lib/stencil/components.mjs +0 -1865
  94. package/esm2020/lib/stencil.module.mjs +0 -17
  95. package/fesm2015/paperless-angular.mjs +0 -4914
  96. package/fesm2015/paperless-angular.mjs.map +0 -1
  97. /package/{esm2020 → esm2022}/lib/animations/fade.mjs +0 -0
  98. /package/{esm2020 → esm2022}/lib/animations/index.mjs +0 -0
  99. /package/{esm2020 → esm2022}/lib/animations/slide.mjs +0 -0
  100. /package/{esm2020 → esm2022}/lib/base/index.mjs +0 -0
  101. /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
  102. /package/{esm2020 → esm2022}/lib/modules/index.mjs +0 -0
  103. /package/{esm2020 → esm2022}/lib/modules/overlay/index.mjs +0 -0
  104. /package/{esm2020 → esm2022}/lib/modules/overlay/services/index.mjs +0 -0
  105. /package/{esm2020 → esm2022}/lib/modules/table/base/index.mjs +0 -0
  106. /package/{esm2020 → esm2022}/lib/modules/table/components/index.mjs +0 -0
  107. /package/{esm2020 → esm2022}/lib/modules/table/components/table/constants.mjs +0 -0
  108. /package/{esm2020 → esm2022}/lib/modules/table/directives/index.mjs +0 -0
  109. /package/{esm2020 → esm2022}/lib/modules/table/index.mjs +0 -0
  110. /package/{esm2020 → esm2022}/lib/modules/table/utils.mjs +0 -0
  111. /package/{esm2020 → esm2022}/lib/modules/toast/components/index.mjs +0 -0
  112. /package/{esm2020 → esm2022}/lib/modules/toast/directives/index.mjs +0 -0
  113. /package/{esm2020 → esm2022}/lib/modules/toast/index.mjs +0 -0
  114. /package/{esm2020 → esm2022}/lib/modules/toast/services/index.mjs +0 -0
  115. /package/{esm2020 → esm2022}/lib/modules/toast/types.mjs +0 -0
  116. /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
  117. /package/{esm2020 → esm2022}/lib/stencil/angular-component-lib/utils.mjs +0 -0
  118. /package/{esm2020 → esm2022}/lib/stencil/index.mjs +0 -0
  119. /package/{esm2020 → esm2022}/paperless-angular.mjs +0 -0
  120. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -1,60 +0,0 @@
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
- constructor(_control, el) {
8
- super(el);
9
- this._control = _control;
10
- _control.valueAccessor = this;
11
- }
12
- ngOnInit() {
13
- this._valueChanges = this._control
14
- .control.valueChanges.pipe(filter(value => this._modelValue !== value))
15
- .subscribe((value) => this.writeValue(value));
16
- }
17
- writeValue(value) {
18
- const elValue = this._getValue();
19
- this._modelValue = value;
20
- this.el.nativeElement.checked =
21
- this._modelValue === elValue;
22
- }
23
- handleChangeEvent() {
24
- const elValue = this._getValue();
25
- this._modelValue =
26
- this._modelValue === elValue
27
- ? undefined
28
- : elValue;
29
- this.onChange(this._modelValue);
30
- }
31
- ngOnDestroy() {
32
- if (this._valueChanges) {
33
- this._valueChanges.unsubscribe();
34
- }
35
- }
36
- _getValue() {
37
- let value = this.el.nativeElement.value;
38
- if (value === 'true') {
39
- value = true;
40
- }
41
- if (value === 'false') {
42
- value = false;
43
- }
44
- return value;
45
- }
46
- }
47
- RadioDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadioDirective, deps: [{ token: i1.NgControl, self: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
48
- RadioDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: RadioDirective, selector: "p-radio", host: { listeners: { "checkedChange": "handleChangeEvent($event.detail)" } }, usesInheritance: true, ngImport: i0 });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RadioDirective, decorators: [{
50
- type: Directive,
51
- args: [{
52
- selector: 'p-radio',
53
- host: {
54
- '(checkedChange)': 'handleChangeEvent($event.detail)',
55
- },
56
- }]
57
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
58
- type: Self
59
- }] }, { type: i0.ElementRef }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicC1yYWRpby5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXBlcmxlc3Mvc3JjL2xpYi9kaXJlY3RpdmVzL3AtcmFkaW8uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQVE1QyxNQUFNLE9BQU8sY0FDWixTQUFRLGlCQUFpQjtJQU16QixZQUE0QixRQUFtQixFQUFFLEVBQWM7UUFDOUQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRGlCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFFOUMsUUFBUSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELFFBQVE7UUFDUCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRO2FBQ2hDLE9BQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssS0FBSyxDQUFDLENBQUM7YUFDdkUsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFhO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPO1lBQzVCLElBQUksQ0FBQyxXQUFXLEtBQUssT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFFUSxpQkFBaUI7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLElBQUksQ0FBQyxXQUFXO1lBQ2YsSUFBSSxDQUFDLFdBQVcsS0FBSyxPQUFPO2dCQUMzQixDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztJQUNGLENBQUM7SUFFTyxTQUFTO1FBQ2hCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUN4QyxJQUFHLEtBQUssS0FBSyxNQUFNLEVBQUU7WUFDcEIsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBRyxLQUFLLEtBQUssT0FBTyxFQUFFO1lBQ3JCLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQzs7MkdBcERXLGNBQWM7K0ZBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQU4xQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxTQUFTO29CQUNuQixJQUFJLEVBQUU7d0JBQ0wsaUJBQWlCLEVBQUUsa0NBQWtDO3FCQUNyRDtpQkFDRDs7MEJBUWEsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkluaXQsIFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCYXNlVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4uL2Jhc2UnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdwLXJhZGlvJyxcblx0aG9zdDoge1xuXHRcdCcoY2hlY2tlZENoYW5nZSknOiAnaGFuZGxlQ2hhbmdlRXZlbnQoJGV2ZW50LmRldGFpbCknLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBSYWRpb0RpcmVjdGl2ZVxuXHRleHRlbmRzIEJhc2VWYWx1ZUFjY2Vzc29yXG5cdGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25EZXN0cm95XG57XG5cdHByaXZhdGUgX21vZGVsVmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cdHByaXZhdGUgX3ZhbHVlQ2hhbmdlczogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG5cdGNvbnN0cnVjdG9yKEBTZWxmKCkgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLCBlbDogRWxlbWVudFJlZikge1xuXHRcdHN1cGVyKGVsKTtcblx0XHRfY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX3ZhbHVlQ2hhbmdlcyA9IHRoaXMuX2NvbnRyb2xcblx0XHRcdC5jb250cm9sIS52YWx1ZUNoYW5nZXMucGlwZShmaWx0ZXIodmFsdWUgPT4gdGhpcy5fbW9kZWxWYWx1ZSAhPT0gdmFsdWUpKVxuXHRcdFx0LnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4gdGhpcy53cml0ZVZhbHVlKHZhbHVlKSk7XG5cdH1cblxuXHRvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHRjb25zdCBlbFZhbHVlID0gdGhpcy5fZ2V0VmFsdWUoKTtcblx0XHR0aGlzLl9tb2RlbFZhbHVlID0gdmFsdWU7XG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPVxuXHRcdFx0dGhpcy5fbW9kZWxWYWx1ZSA9PT0gZWxWYWx1ZTtcblx0fVxuXG5cdG92ZXJyaWRlIGhhbmRsZUNoYW5nZUV2ZW50KCkge1xuXHRcdGNvbnN0IGVsVmFsdWUgPSB0aGlzLl9nZXRWYWx1ZSgpO1xuXG5cdFx0dGhpcy5fbW9kZWxWYWx1ZSA9XG5cdFx0XHR0aGlzLl9tb2RlbFZhbHVlID09PSBlbFZhbHVlXG5cdFx0XHRcdD8gdW5kZWZpbmVkXG5cdFx0XHRcdDogZWxWYWx1ZTtcblx0XHR0aGlzLm9uQ2hhbmdlKHRoaXMuX21vZGVsVmFsdWUpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKHRoaXMuX3ZhbHVlQ2hhbmdlcykge1xuXHRcdFx0dGhpcy5fdmFsdWVDaGFuZ2VzLnVuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfZ2V0VmFsdWUoKSB7XG5cdFx0bGV0IHZhbHVlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXHRcdGlmKHZhbHVlID09PSAndHJ1ZScpIHtcblx0XHRcdHZhbHVlID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZih2YWx1ZSA9PT0gJ2ZhbHNlJykge1xuXHRcdFx0dmFsdWUgPSBmYWxzZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cbn1cbiJdfQ==
@@ -1,37 +0,0 @@
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
- }
13
- SelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SelectDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
14
- SelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SelectDirective, selector: "p-select", host: { listeners: { "valueChange": "handleChangeEvent($event.detail)" } }, providers: [
15
- {
16
- provide: NG_VALUE_ACCESSOR,
17
- useExisting: SelectDirective,
18
- multi: true,
19
- },
20
- ], usesInheritance: true, ngImport: i0 });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicC1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGFwZXJsZXNzL3NyYy9saWIvZGlyZWN0aXZlcy9wLXNlbGVjdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBZTVDLE1BQU0sT0FBTyxlQUFnQixTQUFRLGlCQUFpQjtJQUNyRCxZQUFZLEVBQWM7UUFDekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFVO1FBQzdCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN0RCxDQUFDOzs0R0FQVyxlQUFlO2dHQUFmLGVBQWUsK0dBUmhCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxlQUFlO1lBQzVCLEtBQUssRUFBRSxJQUFJO1NBQ1g7S0FDRDsyRkFFVyxlQUFlO2tCQWIzQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxVQUFVO29CQUNwQixJQUFJLEVBQUU7d0JBQ0wsZUFBZSxFQUFFLGtDQUFrQztxQkFDbkQ7b0JBQ0QsU0FBUyxFQUFFO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsaUJBQWlCOzRCQUM1QixLQUFLLEVBQUUsSUFBSTt5QkFDWDtxQkFDRDtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEJhc2VWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi4vYmFzZSc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ3Atc2VsZWN0Jyxcblx0aG9zdDoge1xuXHRcdCcodmFsdWVDaGFuZ2UpJzogJ2hhbmRsZUNoYW5nZUV2ZW50KCRldmVudC5kZXRhaWwpJyxcblx0fSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG5cdFx0XHR1c2VFeGlzdGluZzogU2VsZWN0RGlyZWN0aXZlLFxuXHRcdFx0bXVsdGk6IHRydWUsXG5cdFx0fSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0RGlyZWN0aXZlIGV4dGVuZHMgQmFzZVZhbHVlQWNjZXNzb3Ige1xuXHRjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuXHRcdHN1cGVyKGVsKTtcblx0fVxuXG5cdG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuXHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG5cdH1cbn1cbiJdfQ==
@@ -1,38 +0,0 @@
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
- }
14
- ToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ToggleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
15
- ToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ToggleDirective, selector: "p-toggle", host: { listeners: { "checkedChange": "handleChangeEvent($event.detail)" } }, providers: [
16
- {
17
- provide: NG_VALUE_ACCESSOR,
18
- useExisting: ToggleDirective,
19
- multi: true,
20
- },
21
- ], usesInheritance: true, ngImport: i0 });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicC10b2dnbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGFwZXJsZXNzL3NyYy9saWIvZGlyZWN0aXZlcy9wLXRvZ2dsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBZTVDLE1BQU0sT0FBTyxlQUFnQixTQUFRLGlCQUFpQjtJQUNyRCxZQUFZLEVBQWM7UUFDekIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFjO1FBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUztZQUM3QyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqQyxDQUFDOzs0R0FSVyxlQUFlO2dHQUFmLGVBQWUsaUhBUmhCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxlQUFlO1lBQzVCLEtBQUssRUFBRSxJQUFJO1NBQ1g7S0FDRDsyRkFFVyxlQUFlO2tCQWIzQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxVQUFVO29CQUNwQixJQUFJLEVBQUU7d0JBQ0wsaUJBQWlCLEVBQUUsa0NBQWtDO3FCQUNyRDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxpQkFBaUI7NEJBQzVCLEtBQUssRUFBRSxJQUFJO3lCQUNYO3FCQUNEO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQmFzZVZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLi9iYXNlJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAncC10b2dnbGUnLFxuXHRob3N0OiB7XG5cdFx0JyhjaGVja2VkQ2hhbmdlKSc6ICdoYW5kbGVDaGFuZ2VFdmVudCgkZXZlbnQuZGV0YWlsKScsXG5cdH0sXG5cdHByb3ZpZGVyczogW1xuXHRcdHtcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuXHRcdFx0dXNlRXhpc3Rpbmc6IFRvZ2dsZURpcmVjdGl2ZSxcblx0XHRcdG11bHRpOiB0cnVlLFxuXHRcdH0sXG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIFRvZ2dsZURpcmVjdGl2ZSBleHRlbmRzIEJhc2VWYWx1ZUFjY2Vzc29yIHtcblx0Y29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcblx0XHRzdXBlcihlbCk7XG5cdH1cblxuXHRvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB0aGlzLmxhc3RWYWx1ZSA9XG5cdFx0XHR2YWx1ZSA9PT0gbnVsbCA/IGZhbHNlIDogdmFsdWU7XG5cdH1cbn1cbiJdfQ==
@@ -1,12 +0,0 @@
1
- import { Subject } from 'rxjs';
2
- export class OverlayRef {
3
- constructor(_overlay) {
4
- this._overlay = _overlay;
5
- this.closed$ = new Subject();
6
- }
7
- close() {
8
- this._overlay.dispose();
9
- this.closed$.next(null);
10
- }
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXBlcmxlc3Mvc3JjL2xpYi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS5yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixNQUFNLE9BQU8sVUFBVTtJQUl0QixZQUFvQixRQUF1QjtRQUF2QixhQUFRLEdBQVIsUUFBUSxDQUFlO1FBRnBDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRWUsQ0FBQztJQUUvQyxLQUFLO1FBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5UmVmIGFzIENES092ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBPdmVybGF5UmVmPFQ+IHtcblx0cHVibGljIGluc3RhbmNlITogVDtcblx0cHVibGljIGNsb3NlZCQgPSBuZXcgU3ViamVjdCgpO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX292ZXJsYXk6IENES092ZXJsYXlSZWYpIHt9XG5cblx0Y2xvc2UoKTogdm9pZCB7XG5cdFx0dGhpcy5fb3ZlcmxheS5kaXNwb3NlKCk7XG5cdFx0dGhpcy5jbG9zZWQkLm5leHQobnVsbCk7XG5cdH1cbn1cbiJdfQ==
@@ -1,74 +0,0 @@
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
- constructor(injector, overlay) {
9
- this.injector = injector;
10
- this.overlay = overlay;
11
- }
12
- open(component, options = {}) {
13
- const overlay = this._createOverlay();
14
- const overlayRef = new OverlayRef(overlay);
15
- this._attachModalContainer(overlay, overlayRef, component, options.providers ?? []);
16
- this._attachData(overlayRef, options);
17
- this.overlayRef = overlayRef;
18
- return overlayRef;
19
- }
20
- // tslint:disable-next-line:max-line-length
21
- _attachModalContainer(overlay, overlayRef, component, providers) {
22
- const injector = this._createInjector(overlayRef, providers);
23
- const containerPortal = component instanceof CdkPortal
24
- ? component
25
- : new ComponentPortal(component, null, injector);
26
- const containerRef = overlay.attach(containerPortal);
27
- overlayRef.instance = containerRef.instance;
28
- return containerRef.instance;
29
- }
30
- _createInjector(overlayRef, providers) {
31
- return Injector.create({
32
- providers: [
33
- {
34
- provide: OverlayRef,
35
- useValue: overlayRef,
36
- },
37
- ...providers,
38
- ],
39
- parent: this.injector,
40
- });
41
- }
42
- _getOverlayConfig() {
43
- const positionStrategy = this.overlay
44
- .position()
45
- .global()
46
- .centerHorizontally()
47
- .centerVertically();
48
- const overlayConfig = new OverlayConfig({
49
- hasBackdrop: false,
50
- scrollStrategy: this.overlay.scrollStrategies.block(),
51
- positionStrategy,
52
- });
53
- return overlayConfig;
54
- }
55
- _createOverlay() {
56
- // Returns an OverlayConfig
57
- const overlayConfig = this._getOverlayConfig();
58
- // Returns an OverlayRef
59
- return this.overlay.create(overlayConfig);
60
- }
61
- _attachData(overlayRef, options) {
62
- if (options.data && typeof options.data === 'object') {
63
- for (const key of Object.keys(options.data)) {
64
- overlayRef.instance[key] = options.data[key];
65
- }
66
- }
67
- }
68
- }
69
- OverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverlayService, deps: [{ token: i0.Injector }, { token: i1.Overlay }], target: i0.ɵɵFactoryTarget.Injectable });
70
- OverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverlayService });
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OverlayService, decorators: [{
72
- type: Injectable
73
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.Overlay }]; } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGFwZXJsZXNzL3NyYy9saWIvbW9kdWxlcy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRU4sYUFBYSxHQUViLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFDaEYsT0FBTyxFQUVOLFVBQVUsRUFDVixRQUFRLEdBRVIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFRNUMsTUFBTSxPQUFPLGNBQWM7SUFFMUIsWUFBb0IsUUFBa0IsRUFBVSxPQUFnQjtRQUE1QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUFHLENBQUM7SUFFcEUsSUFBSSxDQUFJLFNBQXVDLEVBQUUsVUFBd0IsRUFBRTtRQUMxRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUksT0FBTyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLHFCQUFxQixDQUN6QixPQUFPLEVBQ1AsVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUksVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUM7SUFFRCwyQ0FBMkM7SUFDbkMscUJBQXFCLENBQzVCLE9BQXNCLEVBQ3RCLFVBQXlCLEVBQ3pCLFNBQXVDLEVBQ3ZDLFNBQTJCO1FBRTNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUksVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sZUFBZSxHQUNwQixTQUFTLFlBQVksU0FBUztZQUM3QixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFvQixPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXRFLFVBQVUsQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUU1QyxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVPLGVBQWUsQ0FDdEIsVUFBeUIsRUFDekIsU0FBMkI7UUFFM0IsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3RCLFNBQVMsRUFBRTtnQkFDVjtvQkFDQyxPQUFPLEVBQUUsVUFBVTtvQkFDbkIsUUFBUSxFQUFFLFVBQVU7aUJBQ3BCO2dCQUNELEdBQUcsU0FBUzthQUNaO1lBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3JCLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxpQkFBaUI7UUFDeEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTzthQUNuQyxRQUFRLEVBQUU7YUFDVixNQUFNLEVBQUU7YUFDUixrQkFBa0IsRUFBRTthQUNwQixnQkFBZ0IsRUFBRSxDQUFDO1FBRXJCLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDO1lBQ3ZDLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRTtZQUNyRCxnQkFBZ0I7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxhQUFhLENBQUM7SUFDdEIsQ0FBQztJQUVPLGNBQWM7UUFDckIsMkJBQTJCO1FBQzNCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRS9DLHdCQUF3QjtRQUN4QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxXQUFXLENBQUksVUFBeUIsRUFBRSxPQUFxQjtRQUN0RSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNyRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQyxVQUFVLENBQUMsUUFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3REO1NBQ0Q7SUFDRixDQUFDOzsyR0F2RlcsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRPdmVybGF5LFxuXHRPdmVybGF5Q29uZmlnLFxuXHRPdmVybGF5UmVmIGFzIENES092ZXJsYXlSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENka1BvcnRhbCwgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuXHRDb21wb25lbnRSZWYsXG5cdEluamVjdGFibGUsXG5cdEluamVjdG9yLFxuXHRTdGF0aWNQcm92aWRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5UmVmIH0gZnJvbSAnLi4vb3ZlcmxheS5yZWYnO1xuXG5pbnRlcmZhY2UgTW9kYWxPcHRpb25zIHtcblx0ZGF0YT86IGFueTtcblx0cHJvdmlkZXJzPzogU3RhdGljUHJvdmlkZXJbXTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE92ZXJsYXlTZXJ2aWNlIHtcblx0cHVibGljIG92ZXJsYXlSZWYhOiBPdmVybGF5UmVmPGFueT47XG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXkpIHt9XG5cblx0b3BlbjxUPihjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4gfCBDZGtQb3J0YWwsIG9wdGlvbnM6IE1vZGFsT3B0aW9ucyA9IHt9KSB7XG5cdFx0Y29uc3Qgb3ZlcmxheSA9IHRoaXMuX2NyZWF0ZU92ZXJsYXkoKTtcblx0XHRjb25zdCBvdmVybGF5UmVmID0gbmV3IE92ZXJsYXlSZWY8VD4ob3ZlcmxheSk7XG5cblx0XHR0aGlzLl9hdHRhY2hNb2RhbENvbnRhaW5lcjxUPihcblx0XHRcdG92ZXJsYXksXG5cdFx0XHRvdmVybGF5UmVmLFxuXHRcdFx0Y29tcG9uZW50LFxuXHRcdFx0b3B0aW9ucy5wcm92aWRlcnMgPz8gW11cblx0XHQpO1xuXG5cdFx0dGhpcy5fYXR0YWNoRGF0YTxUPihvdmVybGF5UmVmLCBvcHRpb25zKTtcblxuXHRcdHRoaXMub3ZlcmxheVJlZiA9IG92ZXJsYXlSZWY7XG5cdFx0cmV0dXJuIG92ZXJsYXlSZWY7XG5cdH1cblxuXHQvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG5cdHByaXZhdGUgX2F0dGFjaE1vZGFsQ29udGFpbmVyPFQ+KFxuXHRcdG92ZXJsYXk6IENES092ZXJsYXlSZWYsXG5cdFx0b3ZlcmxheVJlZjogT3ZlcmxheVJlZjxUPixcblx0XHRjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4gfCBDZGtQb3J0YWwsXG5cdFx0cHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdXG5cdCkge1xuXHRcdGNvbnN0IGluamVjdG9yID0gdGhpcy5fY3JlYXRlSW5qZWN0b3I8VD4ob3ZlcmxheVJlZiwgcHJvdmlkZXJzKTtcblxuXHRcdGNvbnN0IGNvbnRhaW5lclBvcnRhbCA9XG5cdFx0XHRjb21wb25lbnQgaW5zdGFuY2VvZiBDZGtQb3J0YWxcblx0XHRcdFx0PyBjb21wb25lbnRcblx0XHRcdFx0OiBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudCwgbnVsbCwgaW5qZWN0b3IpO1xuXHRcdGNvbnN0IGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPFQ+ID0gb3ZlcmxheS5hdHRhY2goY29udGFpbmVyUG9ydGFsKTtcblxuXHRcdG92ZXJsYXlSZWYuaW5zdGFuY2UgPSBjb250YWluZXJSZWYuaW5zdGFuY2U7XG5cblx0XHRyZXR1cm4gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuXHR9XG5cblx0cHJpdmF0ZSBfY3JlYXRlSW5qZWN0b3I8VD4oXG5cdFx0b3ZlcmxheVJlZjogT3ZlcmxheVJlZjxUPixcblx0XHRwcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW11cblx0KTogSW5qZWN0b3Ige1xuXHRcdHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuXHRcdFx0cHJvdmlkZXJzOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRwcm92aWRlOiBPdmVybGF5UmVmLFxuXHRcdFx0XHRcdHVzZVZhbHVlOiBvdmVybGF5UmVmLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHQuLi5wcm92aWRlcnMsXG5cdFx0XHRdLFxuXHRcdFx0cGFyZW50OiB0aGlzLmluamVjdG9yLFxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfZ2V0T3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcblx0XHRjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG5cdFx0XHQucG9zaXRpb24oKVxuXHRcdFx0Lmdsb2JhbCgpXG5cdFx0XHQuY2VudGVySG9yaXpvbnRhbGx5KClcblx0XHRcdC5jZW50ZXJWZXJ0aWNhbGx5KCk7XG5cblx0XHRjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuXHRcdFx0aGFzQmFja2Ryb3A6IGZhbHNlLFxuXHRcdFx0c2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCksXG5cdFx0XHRwb3NpdGlvblN0cmF0ZWd5LFxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIG92ZXJsYXlDb25maWc7XG5cdH1cblxuXHRwcml2YXRlIF9jcmVhdGVPdmVybGF5KCkge1xuXHRcdC8vIFJldHVybnMgYW4gT3ZlcmxheUNvbmZpZ1xuXHRcdGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLl9nZXRPdmVybGF5Q29uZmlnKCk7XG5cblx0XHQvLyBSZXR1cm5zIGFuIE92ZXJsYXlSZWZcblx0XHRyZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcblx0fVxuXG5cdHByaXZhdGUgX2F0dGFjaERhdGE8VD4ob3ZlcmxheVJlZjogT3ZlcmxheVJlZjxUPiwgb3B0aW9uczogTW9kYWxPcHRpb25zKSB7XG5cdFx0aWYgKG9wdGlvbnMuZGF0YSAmJiB0eXBlb2Ygb3B0aW9ucy5kYXRhID09PSAnb2JqZWN0Jykge1xuXHRcdFx0Zm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob3B0aW9ucy5kYXRhKSkge1xuXHRcdFx0XHQob3ZlcmxheVJlZi5pbnN0YW5jZSBhcyBhbnkpW2tleV0gPSBvcHRpb25zLmRhdGFba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdfQ==
@@ -1,227 +0,0 @@
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
- constructor() {
13
- super();
14
- this.tableOptionsChange = new EventEmitter();
15
- this.quickFilters = [];
16
- this.filterForm = new FormGroup({});
17
- this.defaultFilterFormValues = {};
18
- this.pageSizeDefault = PAGINATION_DEFAULT_PAGE_SIZE;
19
- this._defaultTableValues = {
20
- pageSize: this.pageSizeDefault,
21
- page: 1,
22
- quickFilter: null,
23
- query: '',
24
- filters: [],
25
- selectedRows: [],
26
- };
27
- this.defaultTableValues = {};
28
- }
29
- get pageSize() {
30
- if (!this.tableOptions) {
31
- return this._defaultTableValues.pageSize;
32
- }
33
- return this.tableOptions.value.pageSize;
34
- }
35
- set pageSize(pageSize) {
36
- this.tableValues = {
37
- pageSize,
38
- };
39
- }
40
- get page() {
41
- if (!this.tableOptions) {
42
- return this._defaultTableValues.page;
43
- }
44
- return this.tableOptions.value.page;
45
- }
46
- set page(page) {
47
- this.tableValues = {
48
- page,
49
- };
50
- }
51
- get quickFilter() {
52
- if (!this.tableOptions) {
53
- return this._defaultTableValues.quickFilter;
54
- }
55
- return this.tableOptions.value.quickFilter;
56
- }
57
- set quickFilter(quickFilter) {
58
- this.tableValues = {
59
- quickFilter,
60
- };
61
- }
62
- get query() {
63
- if (!this.tableOptions) {
64
- return this._defaultTableValues.query;
65
- }
66
- return this.tableOptions.value.query;
67
- }
68
- set query(query) {
69
- this.tableValues = {
70
- query,
71
- };
72
- }
73
- get filters() {
74
- if (!this.tableOptions) {
75
- return this._defaultTableValues.filters;
76
- }
77
- return this.tableOptions.value.filters;
78
- }
79
- set filters(filters) {
80
- this.tableValues = {
81
- filters,
82
- };
83
- }
84
- get selectedRows() {
85
- if (!this.tableOptions) {
86
- return this._defaultTableValues.selectedRows;
87
- }
88
- return this.tableOptions.value.selectedRows;
89
- }
90
- set selectedRows(selectedRows) {
91
- this.tableValues = {
92
- selectedRows,
93
- };
94
- }
95
- // setter
96
- get parsedDefaultTableValues() {
97
- return {
98
- ...this._defaultTableValues,
99
- ...this.defaultTableValues,
100
- pageSize: this.defaultTableValues?.pageSize || this.pageSizeDefault,
101
- };
102
- }
103
- get tableValues() {
104
- return this.tableOptions?.value ?? {};
105
- }
106
- set tableValues(values) {
107
- this._setTableValues({
108
- ...this.tableValues,
109
- ...values,
110
- });
111
- }
112
- ngOnInit() {
113
- this.tableOptions = new FormControl({
114
- pageSize: this.parsedDefaultTableValues.pageSize,
115
- page: this.parsedDefaultTableValues.page,
116
- quickFilter: this.parsedDefaultTableValues.quickFilter,
117
- query: this.parsedDefaultTableValues.query,
118
- filters: this.parsedDefaultTableValues.filters,
119
- selectedRows: this.parsedDefaultTableValues.selectedRows,
120
- });
121
- this.tableOptions.valueChanges
122
- .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 => {
123
- if (changes?.query && Object.keys(changes)?.length === 1) {
124
- return timer(300);
125
- }
126
- return timer(0);
127
- }))
128
- .subscribe(changes => {
129
- if (changes?.page) {
130
- this._refresh();
131
- return;
132
- }
133
- this._resetPageOrRefresh();
134
- });
135
- this._refresh();
136
- }
137
- resetTable(emitEvent = true, forceRefresh = false) {
138
- this._setTableValues(this.parsedDefaultTableValues, emitEvent);
139
- if (forceRefresh) {
140
- this._refresh();
141
- }
142
- }
143
- applyFormFilters(values = null) {
144
- values = values ?? this.filterForm.value;
145
- const { filters, quickFilter } = createFormFilters(values, this.quickFilters, this.filterFormQuickFilterKey);
146
- if (quickFilter) {
147
- this.quickFilter = quickFilter;
148
- }
149
- this.filters = filters;
150
- }
151
- checkFilterForm() {
152
- for (const key of Object.keys(this.filterForm.controls)) {
153
- const filter = this.filters.find(f => f.key === key) ||
154
- (key === this.filterFormQuickFilterKey ? this.quickFilter : null);
155
- this.filterForm.get(key)?.setValue(filter?.value ?? null);
156
- }
157
- }
158
- resetFormFilters(resetQuickFilter = false) {
159
- const values = this.filterForm.value;
160
- const defaultQuickFilter = this.quickFilters.find(f => f.default);
161
- for (const key of Object.keys(values)) {
162
- if (key === this.filterFormQuickFilterKey) {
163
- if (resetQuickFilter) {
164
- values[key] = defaultQuickFilter.value;
165
- }
166
- continue;
167
- }
168
- values[key] = this.defaultFilterFormValues[key] ?? null;
169
- }
170
- this.filterForm.setValue(values);
171
- this.applyFormFilters(values);
172
- }
173
- _refresh() {
174
- console.warn('Not implemented');
175
- }
176
- _resetPageOrRefresh() {
177
- if (!this.tableOptions) {
178
- return;
179
- }
180
- if (this.page !== 1) {
181
- this.page = 1;
182
- }
183
- this._refresh();
184
- }
185
- _setTableValues(data, emitEvent = true) {
186
- this.tableOptions?.setValue({
187
- ...this.tableOptions.value,
188
- ...data,
189
- }, { emitEvent });
190
- }
191
- _getChanges(previous, next) {
192
- const changes = {};
193
- let key;
194
- for (key in next) {
195
- if (key === 'selectedRows') {
196
- continue;
197
- }
198
- if (JSON.stringify(previous[key]) !== JSON.stringify(next[key])) {
199
- // @ts-ignore
200
- changes[key] = next[key];
201
- }
202
- }
203
- return Object.keys(changes).length ? changes : null;
204
- }
205
- _watchProperty(observable, identifier = 'id') {
206
- return observable.pipe(untilDestroyed(this), startWith(null), pairwise(), filter(([prev, cur]) => prev !== cur && !!cur), tap(([previous, current]) => {
207
- if (previous && previous[identifier] !== current?.[identifier]) {
208
- this.resetTable(false, true);
209
- }
210
- }), map(([_, current]) => current));
211
- }
212
- };
213
- BaseTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
214
- BaseTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: BaseTableComponent, selector: "ng-component", outputs: { tableOptionsChange: "tableOptionsChange" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true });
215
- BaseTableComponent = __decorate([
216
- UntilDestroy({ checkProperties: true })
217
- ], BaseTableComponent);
218
- export { BaseTableComponent };
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseTableComponent, decorators: [{
220
- type: Component,
221
- args: [{
222
- template: ``,
223
- }]
224
- }], ctorParameters: function () { return []; }, propDecorators: { tableOptionsChange: [{
225
- type: Output
226
- }] } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGFwZXJsZXNzL3NyYy9saWIvbW9kdWxlcy90YWJsZS9iYXNlL3RhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsNEJBQTRCLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLEdBQUcsRUFDSCxRQUFRLEVBQ1IsU0FBUyxFQUNULEdBQUcsR0FDSCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFvQnRDLElBQWUsa0JBQWtCLEdBQWpDLE1BQWUsa0JBQ3JCLFNBQVEsaUJBQWlCO0lBNkh6QjtRQUNDLEtBQUssRUFBRSxDQUFDO1FBM0hDLHVCQUFrQixHQUMzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRVYsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFFNUIsZUFBVSxHQUFtQixJQUFJLFNBQVMsQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUVwRCw0QkFBdUIsR0FBUSxFQUFFLENBQUM7UUFFbEMsb0JBQWUsR0FBRyw0QkFBNEIsQ0FBQztRQUc5Qyx3QkFBbUIsR0FBaUI7WUFDM0MsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQzlCLElBQUksRUFBRSxDQUFDO1lBQ1AsV0FBVyxFQUFFLElBQUk7WUFDakIsS0FBSyxFQUFFLEVBQUU7WUFDVCxPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxFQUFFO1NBQ2hCLENBQUM7UUFDSyx1QkFBa0IsR0FBMEIsRUFBRSxDQUFDO0lBd0d0RCxDQUFDO0lBdEdELElBQUksUUFBUTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQztTQUN6QztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFnQjtRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2xCLFFBQVE7U0FDUixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksSUFBSTtRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztTQUNyQztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFZO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDbEIsSUFBSTtTQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDO1NBQzVDO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDNUMsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLFdBQTZDO1FBQzVELElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDbEIsV0FBVztTQUNYLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1NBQ3RDO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNsQixLQUFLO1NBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUM7U0FDeEM7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN4QyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsT0FBYztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2xCLE9BQU87U0FDUCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksWUFBWTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQztTQUM3QztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO0lBQzdDLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxZQUFtQjtRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ2xCLFlBQVk7U0FDWixDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVM7SUFDVCxJQUFJLHdCQUF3QjtRQUMzQixPQUFPO1lBQ04sR0FBRyxJQUFJLENBQUMsbUJBQW1CO1lBQzNCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQjtZQUMxQixRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsZUFBZTtTQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxNQUE2QjtRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3BCLEdBQUcsSUFBSSxDQUFDLFdBQVc7WUFDbkIsR0FBRyxNQUFNO1NBQ1QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQU1ELFFBQVE7UUFDUCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksV0FBVyxDQUFlO1lBQ2pELFFBQVEsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUTtZQUNoRCxJQUFJLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUk7WUFDeEMsV0FBVyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXO1lBQ3RELEtBQUssRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSztZQUMxQyxPQUFPLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU87WUFDOUMsWUFBWSxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZO1NBQ3hELENBQThCLENBQUM7UUFFaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZO2FBQzVCLElBQUksQ0FDSixjQUFjLENBQUMsSUFBSSxDQUFDLEVBQ3BCLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUNsQyxHQUFHLENBQUMsQ0FBQyxLQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ2pFLFFBQVEsRUFBRSxFQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUMzRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQzVCLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNsQixJQUFJLE9BQU8sRUFBRSxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN6RCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNsQjtZQUVELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUNGO2FBQ0EsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3BCLElBQUksT0FBTyxFQUFFLElBQUksRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixPQUFPO2FBQ1A7WUFFRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLEVBQUUsWUFBWSxHQUFHLEtBQUs7UUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFL0QsSUFBSSxZQUFZLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2hCO0lBQ0YsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWMsSUFBSTtRQUNsQyxNQUFNLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRXpDLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsaUJBQWlCLENBQ2pELE1BQU0sRUFDTixJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsd0JBQXdCLENBQzdCLENBQUM7UUFFRixJQUFJLFdBQVcsRUFBRTtZQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztTQUMvQjtRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxlQUFlO1FBQ2QsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEQsTUFBTSxNQUFNLEdBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQztnQkFDckMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQztTQUMxRDtJQUNGLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxtQkFBNEIsS0FBSztRQUNqRCxNQUFNLE1BQU0sR0FBUSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUMxQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxFLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQzFDLElBQUksZ0JBQWdCLEVBQUU7b0JBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7aUJBQ3ZDO2dCQUNELFNBQVM7YUFDVDtZQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO1NBQ3hEO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFUyxRQUFRO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sbUJBQW1CO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLE9BQU87U0FDUDtRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7U0FDZDtRQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sZUFBZSxDQUFDLElBQTJCLEVBQUUsU0FBUyxHQUFHLElBQUk7UUFDcEUsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQzFCO1lBQ0MsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUs7WUFDMUIsR0FBRyxJQUFJO1NBQ1AsRUFDRCxFQUFFLFNBQVMsRUFBRSxDQUNiLENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQXNCLEVBQUUsSUFBa0I7UUFDN0QsTUFBTSxPQUFPLEdBQTBCLEVBQUUsQ0FBQztRQUUxQyxJQUFJLEdBQXVCLENBQUM7UUFDNUIsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQUksR0FBRyxLQUFLLGNBQWMsRUFBRTtnQkFDM0IsU0FBUzthQUNUO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hFLGFBQWE7Z0JBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN6QjtTQUNEO1FBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUVTLGNBQWMsQ0FDdkIsVUFBMEMsRUFDMUMsYUFBeUMsSUFBSTtRQUU3QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQ3JCLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFDcEIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLFFBQVEsRUFBRSxFQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDOUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUMzQixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQy9ELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQzdCO1FBQ0YsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUM5QixDQUFDO0lBQ0gsQ0FBQzs7K0dBeFJvQixrQkFBa0I7bUdBQWxCLGtCQUFrQixrSUFGN0IsRUFBRTtBQUVTLGtCQUFrQjtJQUp2QyxZQUFZLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUM7R0FJbEIsa0JBQWtCLENBeVJ2QztTQXpScUIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLEVBQUU7aUJBQ1o7MEVBS1Usa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBQQUdJTkFUSU9OX0RFRkFVTFRfUEFHRV9TSVpFLCBRdWlja0ZpbHRlciB9IGZyb20gJ0BwYXBlcmxlc3MvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcblx0ZGVib3VuY2UsXG5cdGZpbHRlcixcblx0bWFwLFxuXHRwYWlyd2lzZSxcblx0c3RhcnRXaXRoLFxuXHR0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhc2VGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYmFzZS9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjcmVhdGVGb3JtRmlsdGVycyB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgVGFibGVRdWlja0ZpbHRlciA9IFF1aWNrRmlsdGVyICYge1xuXHR2YWx1ZTogc3RyaW5nO1xuXHRtZXRyaWNOYW1lPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZU9wdGlvbnMge1xuXHRwYWdlU2l6ZTogbnVtYmVyO1xuXHRwYWdlOiBudW1iZXI7XG5cdHF1aWNrRmlsdGVyOiBUYWJsZVF1aWNrRmlsdGVyIHwgc3RyaW5nIHwgbnVsbDtcblx0cXVlcnk6IHN0cmluZztcblx0ZmlsdGVyczogYW55W107XG5cdHNlbGVjdGVkUm93czogYW55W107XG59XG5cbkBVbnRpbERlc3Ryb3koeyBjaGVja1Byb3BlcnRpZXM6IHRydWUgfSlcbkBDb21wb25lbnQoe1xuXHR0ZW1wbGF0ZTogYGAsXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VUYWJsZUNvbXBvbmVudFxuXHRleHRlbmRzIEJhc2VGb3JtQ29tcG9uZW50XG5cdGltcGxlbWVudHMgT25Jbml0XG57XG5cdEBPdXRwdXQoKSB0YWJsZU9wdGlvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxQYXJ0aWFsPFRhYmxlT3B0aW9ucz4gfCBudWxsPiA9XG5cdFx0bmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdHByb3RlY3RlZCBxdWlja0ZpbHRlcnM6IGFueVtdID0gW107XG5cblx0cHVibGljIGZpbHRlckZvcm06IEZvcm1Hcm91cDxhbnk+ID0gbmV3IEZvcm1Hcm91cDxhbnk+KHt9KTtcblx0cHVibGljIGZpbHRlckZvcm1RdWlja0ZpbHRlcktleT86IHN0cmluZztcblx0cHVibGljIGRlZmF1bHRGaWx0ZXJGb3JtVmFsdWVzOiBhbnkgPSB7fTtcblxuXHRwdWJsaWMgcGFnZVNpemVEZWZhdWx0ID0gUEFHSU5BVElPTl9ERUZBVUxUX1BBR0VfU0laRTtcblx0cHVibGljIHRhYmxlT3B0aW9ucz86IEZvcm1Db250cm9sPFRhYmxlT3B0aW9ucz47XG5cblx0cHJpdmF0ZSBfZGVmYXVsdFRhYmxlVmFsdWVzOiBUYWJsZU9wdGlvbnMgPSB7XG5cdFx0cGFnZVNpemU6IHRoaXMucGFnZVNpemVEZWZhdWx0LFxuXHRcdHBhZ2U6IDEsXG5cdFx0cXVpY2tGaWx0ZXI6IG51bGwsXG5cdFx0cXVlcnk6ICcnLFxuXHRcdGZpbHRlcnM6IFtdLFxuXHRcdHNlbGVjdGVkUm93czogW10sXG5cdH07XG5cdHB1YmxpYyBkZWZhdWx0VGFibGVWYWx1ZXM6IFBhcnRpYWw8VGFibGVPcHRpb25zPiA9IHt9O1xuXG5cdGdldCBwYWdlU2l6ZSgpIHtcblx0XHRpZiAoIXRoaXMudGFibGVPcHRpb25zKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fZGVmYXVsdFRhYmxlVmFsdWVzLnBhZ2VTaXplO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnRhYmxlT3B0aW9ucy52YWx1ZS5wYWdlU2l6ZTtcblx0fVxuXG5cdHNldCBwYWdlU2l6ZShwYWdlU2l6ZTogbnVtYmVyKSB7XG5cdFx0dGhpcy50YWJsZVZhbHVlcyA9IHtcblx0XHRcdHBhZ2VTaXplLFxuXHRcdH07XG5cdH1cblxuXHRnZXQgcGFnZSgpIHtcblx0XHRpZiAoIXRoaXMudGFibGVPcHRpb25zKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fZGVmYXVsdFRhYmxlVmFsdWVzLnBhZ2U7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMudGFibGVPcHRpb25zLnZhbHVlLnBhZ2U7XG5cdH1cblxuXHRzZXQgcGFnZShwYWdlOiBudW1iZXIpIHtcblx0XHR0aGlzLnRhYmxlVmFsdWVzID0ge1xuXHRcdFx0cGFnZSxcblx0XHR9O1xuXHR9XG5cblx0Z2V0IHF1aWNrRmlsdGVyKCkge1xuXHRcdGlmICghdGhpcy50YWJsZU9wdGlvbnMpIHtcblx0XHRcdHJldHVybiB0aGlzLl9kZWZhdWx0VGFibGVWYWx1ZXMucXVpY2tGaWx0ZXI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMudGFibGVPcHRpb25zLnZhbHVlLnF1aWNrRmlsdGVyO1xuXHR9XG5cdHNldCBxdWlja0ZpbHRlcihxdWlja0ZpbHRlcjogVGFibGVRdWlja0ZpbHRlciB8IHN0cmluZyB8IG51bGwpIHtcblx0XHR0aGlzLnRhYmxlVmFsdWVzID0ge1xuXHRcdFx0cXVpY2tGaWx0ZXIsXG5cdFx0fTtcblx0fVxuXG5cdGdldCBxdWVyeSgpIHtcblx0XHRpZiAoIXRoaXMudGFibGVPcHRpb25zKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5fZGVmYXVsdFRhYmxlVmFsdWVzLnF1ZXJ5O1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnRhYmxlT3B0aW9ucy52YWx1ZS5xdWVyeTtcblx0fVxuXHRzZXQgcXVlcnkocXVlcnk6IHN0cmluZykge1xuXHRcdHRoaXMudGFibGVWYWx1ZXMgPSB7XG5cdFx0XHRxdWVyeSxcblx0XHR9O1xuXHR9XG5cblx0Z2V0IGZpbHRlcnMoKSB7XG5cdFx0aWYgKCF0aGlzLnRhYmxlT3B0aW9ucykge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2RlZmF1bHRUYWJsZVZhbHVlcy5maWx0ZXJzO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnRhYmxlT3B0aW9ucy52YWx1ZS5maWx0ZXJzO1xuXHR9XG5cdHNldCBmaWx0ZXJzKGZpbHRlcnM6IGFueVtdKSB7XG5cdFx0dGhpcy50YWJsZVZhbHVlcyA9IHtcblx0XHRcdGZpbHRlcnMsXG5cdFx0fTtcblx0fVxuXG5cdGdldCBzZWxlY3RlZFJvd3MoKSB7XG5cdFx0aWYgKCF0aGlzLnRhYmxlT3B0aW9ucykge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2RlZmF1bHRUYWJsZVZhbHVlcy5zZWxlY3RlZFJvd3M7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMudGFibGVPcHRpb25zLnZhbHVlLnNlbGVjdGVkUm93cztcblx0fVxuXHRzZXQgc2VsZWN0ZWRSb3dzKHNlbGVjdGVkUm93czogYW55W10pIHtcblx0XHR0aGlzLnRhYmxlVmFsdWVzID0ge1xuXHRcdFx0c2VsZWN0ZWRSb3dzLFxuXHRcdH07XG5cdH1cblxuXHQvLyBzZXR0ZXJcblx0Z2V0IHBhcnNlZERlZmF1bHRUYWJsZVZhbHVlcygpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4udGhpcy5fZGVmYXVsdFRhYmxlVmFsdWVzLFxuXHRcdFx0Li4udGhpcy5kZWZhdWx0VGFibGVWYWx1ZXMsXG5cdFx0XHRwYWdlU2l6ZTogdGhpcy5kZWZhdWx0VGFibGVWYWx1ZXM/LnBhZ2VTaXplIHx8IHRoaXMucGFnZVNpemVEZWZhdWx0LFxuXHRcdH07XG5cdH1cblxuXHRnZXQgdGFibGVWYWx1ZXMoKSB7XG5cdFx0cmV0dXJuIHRoaXMudGFibGVPcHRpb25zPy52YWx1ZSA/PyB7fTtcblx0fVxuXG5cdHNldCB0YWJsZVZhbHVlcyh2YWx1ZXM6IFBhcnRpYWw8VGFibGVPcHRpb25zPikge1xuXHRcdHRoaXMuX3NldFRhYmxlVmFsdWVzKHtcblx0XHRcdC4uLnRoaXMudGFibGVWYWx1ZXMsXG5cdFx0XHQuLi52YWx1ZXMsXG5cdFx0fSk7XG5cdH1cblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy50YWJsZU9wdGlvbnMgPSBuZXcgRm9ybUNvbnRyb2w8VGFibGVPcHRpb25zPih7XG5cdFx0XHRwYWdlU2l6ZTogdGhpcy5wYXJzZWREZWZhdWx0VGFibGVWYWx1ZXMucGFnZVNpemUsXG5cdFx0XHRwYWdlOiB0aGlzLnBhcnNlZERlZmF1bHRUYWJsZVZhbHVlcy5wYWdlLFxuXHRcdFx0cXVpY2tGaWx0ZXI6IHRoaXMucGFyc2VkRGVmYXVsdFRhYmxlVmFsdWVzLnF1aWNrRmlsdGVyLFxuXHRcdFx0cXVlcnk6IHRoaXMucGFyc2VkRGVmYXVsdFRhYmxlVmFsdWVzLnF1ZXJ5LFxuXHRcdFx0ZmlsdGVyczogdGhpcy5wYXJzZWREZWZhdWx0VGFibGVWYWx1ZXMuZmlsdGVycyxcblx0XHRcdHNlbGVjdGVkUm93czogdGhpcy5wYXJzZWREZWZhdWx0VGFibGVWYWx1ZXMuc2VsZWN0ZWRSb3dzLFxuXHRcdH0pIGFzIEZvcm1Db250cm9sPFRhYmxlT3B0aW9ucz47XG5cblx0XHR0aGlzLnRhYmxlT3B0aW9ucy52YWx1ZUNoYW5nZXNcblx0XHRcdC5waXBlKFxuXHRcdFx0XHR1bnRpbERlc3Ryb3llZCh0aGlzKSxcblx0XHRcdFx0c3RhcnRXaXRoKHRoaXMudGFibGVPcHRpb25zLnZhbHVlKSxcblx0XHRcdFx0dGFwKCh2YWx1ZTogVGFibGVPcHRpb25zKSA9PiB0aGlzLnRhYmxlT3B0aW9uc0NoYW5nZS5uZXh0KHZhbHVlKSksXG5cdFx0XHRcdHBhaXJ3aXNlKCksXG5cdFx0XHRcdG1hcCgoW3ByZXZpb3VzLCBuZXh0XSkgPT4gdGhpcy5fZ2V0Q2hhbmdlcyhwcmV2aW91cywgbmV4dCkpLFxuXHRcdFx0XHRmaWx0ZXIoY2hhbmdlcyA9PiAhIWNoYW5nZXMpLFxuXHRcdFx0XHRkZWJvdW5jZShjaGFuZ2VzID0+IHtcblx0XHRcdFx0XHRpZiAoY2hhbmdlcz8ucXVlcnkgJiYgT2JqZWN0LmtleXMoY2hhbmdlcyk/Lmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRpbWVyKDMwMCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0cmV0dXJuIHRpbWVyKDApO1xuXHRcdFx0XHR9KVxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZShjaGFuZ2VzID0+IHtcblx0XHRcdFx0aWYgKGNoYW5nZXM/LnBhZ2UpIHtcblx0XHRcdFx0XHR0aGlzLl9yZWZyZXNoKCk7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5fcmVzZXRQYWdlT3JSZWZyZXNoKCk7XG5cdFx0XHR9KTtcblxuXHRcdHRoaXMuX3JlZnJlc2goKTtcblx0fVxuXG5cdHJlc2V0VGFibGUoZW1pdEV2ZW50ID0gdHJ1ZSwgZm9yY2VSZWZyZXNoID0gZmFsc2UpIHtcblx0XHR0aGlzLl9zZXRUYWJsZVZhbHVlcyh0aGlzLnBhcnNlZERlZmF1bHRUYWJsZVZhbHVlcywgZW1pdEV2ZW50KTtcblxuXHRcdGlmIChmb3JjZVJlZnJlc2gpIHtcblx0XHRcdHRoaXMuX3JlZnJlc2goKTtcblx0XHR9XG5cdH1cblxuXHRhcHBseUZvcm1GaWx0ZXJzKHZhbHVlczogYW55ID0gbnVsbCkge1xuXHRcdHZhbHVlcyA9IHZhbHVlcyA/PyB0aGlzLmZpbHRlckZvcm0udmFsdWU7XG5cblx0XHRjb25zdCB7IGZpbHRlcnMsIHF1aWNrRmlsdGVyIH0gPSBjcmVhdGVGb3JtRmlsdGVycyhcblx0XHRcdHZhbHVlcyxcblx0XHRcdHRoaXMucXVpY2tGaWx0ZXJzLFxuXHRcdFx0dGhpcy5maWx0ZXJGb3JtUXVpY2tGaWx0ZXJLZXlcblx0XHQpO1xuXG5cdFx0aWYgKHF1aWNrRmlsdGVyKSB7XG5cdFx0XHR0aGlzLnF1aWNrRmlsdGVyID0gcXVpY2tGaWx0ZXI7XG5cdFx0fVxuXG5cdFx0dGhpcy5maWx0ZXJzID0gZmlsdGVycztcblx0fVxuXG5cdGNoZWNrRmlsdGVyRm9ybSgpIHtcblx0XHRmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmZpbHRlckZvcm0uY29udHJvbHMpKSB7XG5cdFx0XHRjb25zdCBmaWx0ZXIgPVxuXHRcdFx0XHR0aGlzLmZpbHRlcnMuZmluZChmID0+IGYua2V5ID09PSBrZXkpIHx8XG5cdFx0XHRcdChrZXkgPT09IHRoaXMuZmlsdGVyRm9ybVF1aWNrRmlsdGVyS2V5ID8gdGhpcy5xdWlja0ZpbHRlciA6IG51bGwpO1xuXHRcdFx0dGhpcy5maWx0ZXJGb3JtLmdldChrZXkpPy5zZXRWYWx1ZShmaWx0ZXI/LnZhbHVlID8/IG51bGwpO1xuXHRcdH1cblx0fVxuXG5cdHJlc2V0Rm9ybUZpbHRlcnMocmVzZXRRdWlja0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlKSB7XG5cdFx0Y29uc3QgdmFsdWVzOiBhbnkgPSB0aGlzLmZpbHRlckZvcm0udmFsdWU7XG5cdFx0Y29uc3QgZGVmYXVsdFF1aWNrRmlsdGVyID0gdGhpcy5xdWlja0ZpbHRlcnMuZmluZChmID0+IGYuZGVmYXVsdCk7XG5cblx0XHRmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZXMpKSB7XG5cdFx0XHRpZiAoa2V5ID09PSB0aGlzLmZpbHRlckZvcm1RdWlja0ZpbHRlcktleSkge1xuXHRcdFx0XHRpZiAocmVzZXRRdWlja0ZpbHRlcikge1xuXHRcdFx0XHRcdHZhbHVlc1trZXldID0gZGVmYXVsdFF1aWNrRmlsdGVyLnZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHR2YWx1ZXNba2V5XSA9IHRoaXMuZGVmYXVsdEZpbHRlckZvcm1WYWx1ZXNba2V5XSA/PyBudWxsO1xuXHRcdH1cblxuXHRcdHRoaXMuZmlsdGVyRm9ybS5zZXRWYWx1ZSh2YWx1ZXMpO1xuXHRcdHRoaXMuYXBwbHlGb3JtRmlsdGVycyh2YWx1ZXMpO1xuXHR9XG5cblx0cHJvdGVjdGVkIF9yZWZyZXNoKCkge1xuXHRcdGNvbnNvbGUud2FybignTm90IGltcGxlbWVudGVkJyk7XG5cdH1cblxuXHRwcml2YXRlIF9yZXNldFBhZ2VPclJlZnJlc2goKSB7XG5cdFx0aWYgKCF0aGlzLnRhYmxlT3B0aW9ucykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLnBhZ2UgIT09IDEpIHtcblx0XHRcdHRoaXMucGFnZSA9IDE7XG5cdFx0fVxuXG5cdFx0dGhpcy5fcmVmcmVzaCgpO1xuXHR9XG5cblx0cHJpdmF0ZSBfc2V0VGFibGVWYWx1ZXMoZGF0YTogUGFydGlhbDxUYWJsZU9wdGlvbnM+LCBlbWl0RXZlbnQgPSB0cnVlKSB7XG5cdFx0dGhpcy50YWJsZU9wdGlvbnM/LnNldFZhbHVlKFxuXHRcdFx0e1xuXHRcdFx0XHQuLi50aGlzLnRhYmxlT3B0aW9ucy52YWx1ZSxcblx0XHRcdFx0Li4uZGF0YSxcblx0XHRcdH0sXG5cdFx0XHR7IGVtaXRFdmVudCB9XG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgX2dldENoYW5nZXMocHJldmlvdXM6IFRhYmxlT3B0aW9ucywgbmV4dDogVGFibGVPcHRpb25zKSB7XG5cdFx0Y29uc3QgY2hhbmdlczogUGFydGlhbDxUYWJsZU9wdGlvbnM+ID0ge307XG5cblx0XHRsZXQga2V5OiBrZXlvZiBUYWJsZU9wdGlvbnM7XG5cdFx0Zm9yIChrZXkgaW4gbmV4dCkge1xuXHRcdFx0aWYgKGtleSA9PT0gJ3NlbGVjdGVkUm93cycpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChKU09OLnN0cmluZ2lmeShwcmV2aW91c1trZXldKSAhPT0gSlNPTi5zdHJpbmdpZnkobmV4dFtrZXldKSkge1xuXHRcdFx0XHQvLyBAdHMtaWdub3JlXG5cdFx0XHRcdGNoYW5nZXNba2V5XSA9IG5leHRba2V5XTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gT2JqZWN0LmtleXMoY2hhbmdlcykubGVuZ3RoID8gY2hhbmdlcyA6IG51bGw7XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3dhdGNoUHJvcGVydHk8VD4oXG5cdFx0b2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxUICYgeyBpZDogc3RyaW5nIH0+LFxuXHRcdGlkZW50aWZpZXI6IGtleW9mIChUICYgeyBpZDogc3RyaW5nIH0pID0gJ2lkJ1xuXHQpIHtcblx0XHRyZXR1cm4gb2JzZXJ2YWJsZS5waXBlKFxuXHRcdFx0dW50aWxEZXN0cm95ZWQodGhpcyksXG5cdFx0XHRzdGFydFdpdGgobnVsbCksXG5cdFx0XHRwYWlyd2lzZSgpLFxuXHRcdFx0ZmlsdGVyKChbcHJldiwgY3VyXSkgPT4gcHJldiAhPT0gY3VyICYmICEhY3VyKSxcblx0XHRcdHRhcCgoW3ByZXZpb3VzLCBjdXJyZW50XSkgPT4ge1xuXHRcdFx0XHRpZiAocHJldmlvdXMgJiYgcHJldmlvdXNbaWRlbnRpZmllcl0gIT09IGN1cnJlbnQ/LltpZGVudGlmaWVyXSkge1xuXHRcdFx0XHRcdHRoaXMucmVzZXRUYWJsZShmYWxzZSwgdHJ1ZSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pLFxuXHRcdFx0bWFwKChbXywgY3VycmVudF0pID0+IGN1cnJlbnQpXG5cdFx0KTtcblx0fVxufVxuIl19