@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.
- package/esm2022/lib/base/form.component.mjs +113 -0
- package/esm2022/lib/base/number-value-accessor.mjs +36 -0
- package/esm2022/lib/base/upload.component.mjs +57 -0
- package/esm2022/lib/base/value-accessor.mjs +43 -0
- package/esm2022/lib/directives/p-checkbox.directive.mjs +39 -0
- package/esm2022/lib/directives/p-cropper.directive.mjs +37 -0
- package/esm2022/lib/directives/p-datepicker.directive.mjs +38 -0
- package/esm2022/lib/directives/p-field-number.directive.mjs +34 -0
- package/esm2022/lib/directives/p-field.directive.mjs +38 -0
- package/esm2022/lib/directives/p-pagination-pages.directive.mjs +41 -0
- package/esm2022/lib/directives/p-pagination-size.directive.mjs +41 -0
- package/esm2022/lib/directives/p-radio.directive.mjs +63 -0
- package/esm2022/lib/directives/p-select.directive.mjs +37 -0
- package/esm2022/lib/directives/p-toggle.directive.mjs +38 -0
- package/{esm2020 → esm2022}/lib/modules/overlay/overlay.module.mjs +15 -15
- package/esm2022/lib/modules/overlay/overlay.ref.mjs +14 -0
- package/esm2022/lib/modules/overlay/services/overlay.service.mjs +77 -0
- package/esm2022/lib/modules/table/base/table.component.mjs +229 -0
- package/esm2022/lib/modules/table/components/table/table.component.mjs +1078 -0
- package/esm2022/lib/modules/table/components/table-cell/table-cell.component.mjs +170 -0
- package/esm2022/lib/modules/table/components/table-column/table-column.component.mjs +62 -0
- package/esm2022/lib/modules/table/components/table-extra-header/table-extra-header.component.mjs +40 -0
- package/esm2022/lib/modules/table/components/table-row-action/table-row-action.component.mjs +88 -0
- package/{esm2020 → esm2022}/lib/modules/table/directives/p-table-custom-actions.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/table/directives/p-table-custom-filter.directive.mjs +4 -4
- package/esm2022/lib/modules/table/directives/p-table-custom-row.directive.mjs +20 -0
- package/{esm2020 → esm2022}/lib/modules/table/directives/p-table-filter-modal.directive.mjs +4 -4
- package/esm2022/lib/modules/table/directives/p-table-footer.directive.mjs +52 -0
- package/esm2022/lib/modules/table/directives/p-table-header.directive.mjs +59 -0
- package/esm2022/lib/modules/table/directives/p-table-ngx.directive.mjs +129 -0
- package/esm2022/lib/modules/table/directives/p-table.directive.mjs +77 -0
- package/{esm2020 → esm2022}/lib/modules/table/table.module.mjs +5 -5
- package/esm2022/lib/modules/toast/components/toast-container/toast-container.component.mjs +39 -0
- package/esm2022/lib/modules/toast/directives/toast.directive.mjs +51 -0
- package/esm2022/lib/modules/toast/services/toast.service.mjs +51 -0
- package/{esm2020 → esm2022}/lib/modules/toast/toast.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/paperless.module.mjs +5 -5
- package/esm2022/lib/pipes/currency.pipe.mjs +21 -0
- package/esm2022/lib/pipes/date.pipe.mjs +21 -0
- package/esm2022/lib/pipes/safe.pipe.mjs +34 -0
- package/{esm2020 → esm2022}/lib/pipes/select-autocomplete.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/pipes/select-select-all.pipe.mjs +4 -4
- package/esm2022/lib/stencil/components.mjs +2013 -0
- package/esm2022/lib/stencil.module.mjs +17 -0
- package/{fesm2020 → fesm2022}/paperless-angular.mjs +1045 -766
- package/{fesm2020 → fesm2022}/paperless-angular.mjs.map +1 -1
- package/lib/base/upload.component.d.ts +1 -1
- package/lib/modules/table/base/table.component.d.ts +1 -1
- package/lib/modules/table/components/table/table.component.d.ts +1 -1
- package/lib/modules/table/components/table-cell/table-cell.component.d.ts +1 -1
- package/lib/modules/table/components/table-column/table-column.component.d.ts +1 -1
- package/lib/modules/table/components/table-extra-header/table-extra-header.component.d.ts +1 -1
- package/lib/modules/table/components/table-row-action/table-row-action.component.d.ts +4 -4
- package/lib/modules/table/directives/p-table-custom-row.directive.d.ts +1 -1
- package/lib/modules/toast/components/toast-container/toast-container.component.d.ts +1 -1
- package/lib/modules/toast/directives/toast.directive.d.ts +1 -1
- package/lib/modules/toast/types.d.ts +1 -1
- package/lib/stencil/components.d.ts +63 -63
- package/package.json +8 -14
- package/esm2020/lib/base/form.component.mjs +0 -115
- package/esm2020/lib/base/number-value-accessor.mjs +0 -33
- package/esm2020/lib/base/upload.component.mjs +0 -56
- package/esm2020/lib/base/value-accessor.mjs +0 -41
- package/esm2020/lib/directives/p-checkbox.directive.mjs +0 -39
- package/esm2020/lib/directives/p-cropper.directive.mjs +0 -37
- package/esm2020/lib/directives/p-datepicker.directive.mjs +0 -38
- package/esm2020/lib/directives/p-field-number.directive.mjs +0 -34
- package/esm2020/lib/directives/p-field.directive.mjs +0 -38
- package/esm2020/lib/directives/p-pagination-pages.directive.mjs +0 -41
- package/esm2020/lib/directives/p-pagination-size.directive.mjs +0 -41
- package/esm2020/lib/directives/p-radio.directive.mjs +0 -60
- package/esm2020/lib/directives/p-select.directive.mjs +0 -37
- package/esm2020/lib/directives/p-toggle.directive.mjs +0 -38
- package/esm2020/lib/modules/overlay/overlay.ref.mjs +0 -12
- package/esm2020/lib/modules/overlay/services/overlay.service.mjs +0 -74
- package/esm2020/lib/modules/table/base/table.component.mjs +0 -227
- package/esm2020/lib/modules/table/components/table/table.component.mjs +0 -1006
- package/esm2020/lib/modules/table/components/table-cell/table-cell.component.mjs +0 -152
- package/esm2020/lib/modules/table/components/table-column/table-column.component.mjs +0 -59
- package/esm2020/lib/modules/table/components/table-extra-header/table-extra-header.component.mjs +0 -37
- package/esm2020/lib/modules/table/components/table-row-action/table-row-action.component.mjs +0 -73
- package/esm2020/lib/modules/table/directives/p-table-custom-row.directive.mjs +0 -19
- package/esm2020/lib/modules/table/directives/p-table-footer.directive.mjs +0 -52
- package/esm2020/lib/modules/table/directives/p-table-header.directive.mjs +0 -59
- package/esm2020/lib/modules/table/directives/p-table-ngx.directive.mjs +0 -128
- package/esm2020/lib/modules/table/directives/p-table.directive.mjs +0 -77
- package/esm2020/lib/modules/toast/components/toast-container/toast-container.component.mjs +0 -36
- package/esm2020/lib/modules/toast/directives/toast.directive.mjs +0 -51
- package/esm2020/lib/modules/toast/services/toast.service.mjs +0 -53
- package/esm2020/lib/pipes/currency.pipe.mjs +0 -20
- package/esm2020/lib/pipes/date.pipe.mjs +0 -20
- package/esm2020/lib/pipes/safe.pipe.mjs +0 -33
- package/esm2020/lib/stencil/components.mjs +0 -1865
- package/esm2020/lib/stencil.module.mjs +0 -17
- package/fesm2015/paperless-angular.mjs +0 -4914
- package/fesm2015/paperless-angular.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/animations/fade.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/animations/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/animations/slide.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/base/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/table/base/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/table/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/table/components/table/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/table/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/table/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/table/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/toast/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/toast/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/toast/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/toast/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/toast/types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/stencil/angular-component-lib/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/stencil/index.mjs +0 -0
- /package/{esm2020 → esm2022}/paperless-angular.mjs +0 -0
- /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
|
-
|
|
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,
|
|
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==
|