@solidev/data 0.0.3 → 0.0.5
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/esm2020/lib/auth/auth-interceptor.service.mjs +3 -3
- package/esm2020/lib/auth/auth.service.mjs +4 -1
- package/esm2020/lib/data/data-backend.mjs +3 -3
- package/esm2020/lib/dispedit/choice.pipe.mjs +6 -6
- package/esm2020/lib/dispedit/dispedit/dispedit.component.mjs +6 -6
- package/esm2020/lib/dispedit/factor.pipe.mjs +6 -6
- package/esm2020/lib/dispedit/factorc.pipe.mjs +6 -6
- package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +3 -3
- package/esm2020/lib/dispedit/flags/flags.component.mjs +3 -3
- package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +3 -3
- package/esm2020/lib/dispedit/richedit/richedit.component.mjs +3 -3
- package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +3 -3
- package/esm2020/lib/messages/message-zone/message-zone.component.mjs +3 -3
- package/esm2020/lib/messages/message.service.mjs +3 -3
- package/esm2020/lib/modellist/model-list-fields/model-list-field-header/messages.mjs +2 -0
- package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +37 -6
- package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list.service.mjs +6 -5
- package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/lib/updates/update/update.component.mjs +3 -3
- package/esm2020/lib/updates/update.service.mjs +3 -3
- package/esm2020/lib/uploader/ng-file-drop.directive.mjs +3 -3
- package/esm2020/lib/uploader/ng-file-select.directive.mjs +3 -3
- package/esm2020/lib/uploader/ngx-uploader.module.mjs +4 -4
- package/esm2020/lib/utils/tab-memory.service.mjs +3 -3
- package/fesm2015/solidev-data.mjs +163 -130
- package/fesm2015/solidev-data.mjs.map +1 -1
- package/fesm2020/solidev-data.mjs +163 -130
- package/fesm2020/solidev-data.mjs.map +1 -1
- package/lib/modellist/model-list-fields/model-list-field-header/messages.d.ts +6 -0
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +13 -2
- package/lib/modellist/model-list.service.d.ts +4 -1
- package/package.json +1 -1
- package/src/lib/data/README.md +0 -35
|
@@ -41,9 +41,9 @@ export class ModelListSelectFilterComponent {
|
|
|
41
41
|
this.list.filters.update();
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
ModelListSelectFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
45
|
-
ModelListSelectFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
44
|
+
ModelListSelectFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListSelectFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
+
ModelListSelectFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ModelListSelectFilterComponent, isStandalone: true, selector: "data-model-list-select-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListSelectFilterComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
48
48
|
args: [{ selector: 'data-model-list-select-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n</div>" }]
|
|
49
49
|
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
|
@@ -34,9 +34,9 @@ export class ModelListSelectMultiFilterComponent {
|
|
|
34
34
|
this.list.filters.update();
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
ModelListSelectMultiFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
38
|
-
ModelListSelectMultiFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
37
|
+
ModelListSelectMultiFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListSelectMultiFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
+
ModelListSelectMultiFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ModelListSelectMultiFilterComponent, isStandalone: true, selector: "data-model-list-select-multi-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n <div class=\"enabled mt-1\">\n <div *ngFor=\"let e of filter.mcurrent$|async\"><i class=\"bi bi-trash me-2\" (click)=\"unset(e.value, e.desc)\" role=\"button\"></i>{{e.desc}}</div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListSelectMultiFilterComponent, decorators: [{
|
|
40
40
|
type: Component,
|
|
41
41
|
args: [{ selector: 'data-model-list-select-multi-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <select class=\"form-select\" [formControl]=\"fc\">\n <option [ngValue]=\"null\">-- {{filter.help}} --</option>\n <option *ngFor=\"let c of filter.choices|async\" [ngValue]=\"c.value\">{{c.desc}}</option>\n </select>\n <div class=\"enabled mt-1\">\n <div *ngFor=\"let e of filter.mcurrent$|async\"><i class=\"bi bi-trash me-2\" (click)=\"unset(e.value, e.desc)\" role=\"button\"></i>{{e.desc}}</div>\n </div>\n</div>" }]
|
|
42
42
|
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
|
@@ -25,9 +25,9 @@ export class ModelListTextFilterComponent {
|
|
|
25
25
|
this.list.filters.update();
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
ModelListTextFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
29
|
-
ModelListTextFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
28
|
+
ModelListTextFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListTextFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
ModelListTextFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ModelListTextFilterComponent, isStandalone: true, selector: "data-model-list-text-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"text\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListTextFilterComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
32
|
args: [{ selector: 'data-model-list-text-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <input class=\"form-control\" type=\"text\" [formControl]=\"fc\" [placeholder]=\"filter.help\">\n</div>" }]
|
|
33
33
|
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
|
@@ -159,9 +159,9 @@ export class ModelListTreeFilterComponent {
|
|
|
159
159
|
this.list.filters.update();
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
|
-
ModelListTreeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
163
|
-
ModelListTreeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
162
|
+
ModelListTreeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListTreeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
163
|
+
ModelListTreeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ModelListTreeFilterComponent, isStandalone: true, selector: "data-model-list-tree-filter", inputs: { list: "list", filter: "filter", classes: "classes" }, ngImport: i0, template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <div class=\"levelselect\" *ngFor=\"let l of tree.levels\">\n <select class=\"form-select form-select-sm\" [formControl]=\"l.fc\">\n <option value=\"\">{{filter.help}}</option>\n <option *ngFor=\"let ch of l.choices\" [value]=\"ch.value\">{{ch.desc}}</option>\n </select>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListTreeFilterComponent, decorators: [{
|
|
165
165
|
type: Component,
|
|
166
166
|
args: [{ selector: 'data-model-list-tree-filter', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<div class=\"filteritem\" [ngClass]=\"filter.displayClasses || classes\">\n <div class=\"trash float-end\" (click)=\"disable()\"><i class=\"bi bi-trash\"></i></div>\n <label>{{filter.label}}</label>\n <div class=\"levelselect\" *ngFor=\"let l of tree.levels\">\n <select class=\"form-select form-select-sm\" [formControl]=\"l.fc\">\n <option value=\"\">{{filter.help}}</option>\n <option *ngFor=\"let ch of l.choices\" [value]=\"ch.value\">{{ch.desc}}</option>\n </select>\n </div>\n</div>" }]
|
|
167
167
|
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs
CHANGED
|
@@ -21,9 +21,9 @@ export class ModelListFiltersComponent {
|
|
|
21
21
|
this.itemClasses = '';
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
ModelListFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
25
|
-
ModelListFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
24
|
+
ModelListFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
ModelListFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ModelListFiltersComponent, isStandalone: true, selector: "data-model-list-filters", inputs: { list: "list", containerClasses: "containerClasses", itemClasses: "itemClasses" }, ngImport: i0, template: "\n<div [ngClass]=\"containerClasses\">\n <ng-container *ngFor=\"let f of list.filters.enabled|async\">\n <ng-container [ngSwitch]=\"f.type\">\n <data-model-list-autocomplete-filter *ngSwitchCase=\"'autocomplete'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-autocomplete-filter>\n <data-model-list-autocomplete-multi-filter *ngSwitchCase=\"'autocompletemulti'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-autocomplete-multi-filter>\n <data-model-list-datetime-filter *ngSwitchCase=\"'datetime'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-datetime-filter>\n <data-model-list-date-filter *ngSwitchCase=\"'date'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-date-filter>\n <data-model-list-datetime-range-filter *ngSwitchCase=\"'datetimerange'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-datetime-range-filter>\n <data-model-list-flags-filter *ngSwitchCase=\"'flags'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-flags-filter>\n <data-model-list-geodistance-filter *ngSwitchCase=\"'geodistance'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-geodistance-filter>\n <data-model-list-number-filter *ngSwitchCase=\"'number'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-number-filter>\n <data-model-list-select-filter *ngSwitchCase=\"'select'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-select-filter>\n <data-model-list-select-multi-filter *ngSwitchCase=\"'selectmulti'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-select-multi-filter>\n <data-model-list-text-filter *ngSwitchCase=\"'text'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-text-filter>\n <data-model-list-tree-filter *ngSwitchCase=\"'tree'\" [filter]=\"$any(f)\" [list]=\"list\" [ngClass]=\"itemClasses\"></data-model-list-tree-filter>\n </ng-container>\n </ng-container>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: ModelListTextFilterComponent, selector: "data-model-list-text-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListNumberFilterComponent, selector: "data-model-list-number-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListAutocompleteFilterComponent, selector: "data-model-list-autocomplete-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListAutocompleteMultiFilterComponent, selector: "data-model-list-autocomplete-multi-filter", inputs: ["filter"] }, { kind: "component", type: ModelListDatetimeFilterComponent, selector: "data-model-list-datetime-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListDateFilterComponent, selector: "data-model-list-date-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListDatetimeRangeFilterComponent, selector: "data-model-list-datetime-range-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListFlagsFilterComponent, selector: "data-model-list-flags-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListGeodistanceFilterComponent, selector: "data-model-list-geodistance-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListSelectFilterComponent, selector: "data-model-list-select-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListSelectMultiFilterComponent, selector: "data-model-list-select-multi-filter", inputs: ["list", "filter", "classes"] }, { kind: "component", type: ModelListTreeFilterComponent, selector: "data-model-list-tree-filter", inputs: ["list", "filter", "classes"] }] });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListFiltersComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{ selector: 'data-model-list-filters', standalone: true, imports: [
|
|
29
29
|
CommonModule,
|
|
@@ -13,9 +13,9 @@ export class ModelListFiltersSelectComponent {
|
|
|
13
13
|
this.list.filters.update();
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
ModelListFiltersSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
17
|
-
ModelListFiltersSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
16
|
+
ModelListFiltersSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListFiltersSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
ModelListFiltersSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ModelListFiltersSelectComponent, isStandalone: true, selector: "data-model-list-filters-select", inputs: { list: "list", containerClasses: "containerClasses", itemActiveClasses: "itemActiveClasses", itemInactiveClasses: "itemInactiveClasses" }, ngImport: i0, template: "<span *ngFor=\"let f of list.filters.available|async\" (click)=\"toggle(f)\" [ngClass]=\"containerClasses\"><span *ngIf=\"f.enabled\" role=\"button\" [ngClass]=\"itemActiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-check2-square me-2\"></i><span>{{f.label}}</span></span><span *ngIf=\"!f.enabled\" role=\"button\" [ngClass]=\"itemInactiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-square me-2\"></i><span>{{f.label}}</span></span></span>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListFiltersSelectComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
20
20
|
args: [{ selector: 'data-model-list-filters-select', standalone: true, imports: [CommonModule], template: "<span *ngFor=\"let f of list.filters.available|async\" (click)=\"toggle(f)\" [ngClass]=\"containerClasses\"><span *ngIf=\"f.enabled\" role=\"button\" [ngClass]=\"itemActiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-check2-square me-2\"></i><span>{{f.label}}</span></span><span *ngIf=\"!f.enabled\" role=\"button\" [ngClass]=\"itemInactiveClasses\" [title]=\"f.desc\"><i class=\"bi bi-square me-2\"></i><span>{{f.label}}</span></span></span>" }]
|
|
21
21
|
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
|
@@ -55,9 +55,9 @@ export class ModelListPaginatorComponent {
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
ModelListPaginatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
59
|
-
ModelListPaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
58
|
+
ModelListPaginatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListPaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
59
|
+
ModelListPaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ModelListPaginatorComponent, isStandalone: true, selector: "data-model-list-paginator", inputs: { list: "list", maxPages: "maxPages", hide: "hide" }, usesOnChanges: true, ngImport: i0, template: "\n<div class=\"row\" *ngIf=\"!hide\">\n <div class=\"col-sm-4\">\n <select class=\"form-select perpage\" [formControl]=\"perPageControl\">\n <option value=\"10\" *ngIf=\"maxPages>=10\">10 / page</option>\n <option value=\"20\" *ngIf=\"maxPages>=20\">20 / page</option>\n <option value=\"50\" *ngIf=\"maxPages>=50\">50 / page</option>\n <option value=\"100\" *ngIf=\"maxPages>=100\">100 / page</option>\n <option value=\"200\" *ngIf=\"maxPages>=200\">200 / page</option>\n <option value=\"500\" *ngIf=\"maxPages>=500\">500 / page</option>\n <option value=\"1000\" *ngIf=\"maxPages>=1000\">1000 / page</option>\n <option value=\"2000\" *ngIf=\"maxPages>=2000\">2000 / page</option>\n <option value=\"5000\" *ngIf=\"maxPages>=5000\">5000 / page</option>\n <option value=\"10000\" *ngIf=\"maxPages>=10000\">10000 / page</option>\n </select>\n </div>\n <div class=\"col-sm-5 pagination\" *ngIf=\"list\">\n <div class=\"text-xs-center\">\n <ngb-pagination [pageSize]=\"pageSize\" [collectionSize]=\"curCount\" [page]=\"curPage\" (pageChange)=\"onPageChange($event)\" [maxSize]=\"5\" [rotate]=\"true\"></ngb-pagination>\n </div>\n </div>\n <div class=\"col-sm-3 results\">\n <div>{{curCount}} r\u00E9sultats -<span (click)=\"showDirectAccess=!showDirectAccess\" role=\"button\">acces direct</span></div>\n <div *ngIf=\"showDirectAccess\">\n <input class=\"form-control\" [formControl]=\"directAccess\" type=\"number\" placeholder=\"Aller \u00E0 la page\">\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgbPaginationModule }, { kind: "component", type: i3.NgbPagination, selector: "ngb-pagination", inputs: ["disabled", "boundaryLinks", "directionLinks", "ellipses", "rotate", "collectionSize", "maxSize", "page", "pageSize", "size"], outputs: ["pageChange"] }] });
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListPaginatorComponent, decorators: [{
|
|
61
61
|
type: Component,
|
|
62
62
|
args: [{ selector: 'data-model-list-paginator', standalone: true, imports: [CommonModule, ReactiveFormsModule, NgbPaginationModule], template: "\n<div class=\"row\" *ngIf=\"!hide\">\n <div class=\"col-sm-4\">\n <select class=\"form-select perpage\" [formControl]=\"perPageControl\">\n <option value=\"10\" *ngIf=\"maxPages>=10\">10 / page</option>\n <option value=\"20\" *ngIf=\"maxPages>=20\">20 / page</option>\n <option value=\"50\" *ngIf=\"maxPages>=50\">50 / page</option>\n <option value=\"100\" *ngIf=\"maxPages>=100\">100 / page</option>\n <option value=\"200\" *ngIf=\"maxPages>=200\">200 / page</option>\n <option value=\"500\" *ngIf=\"maxPages>=500\">500 / page</option>\n <option value=\"1000\" *ngIf=\"maxPages>=1000\">1000 / page</option>\n <option value=\"2000\" *ngIf=\"maxPages>=2000\">2000 / page</option>\n <option value=\"5000\" *ngIf=\"maxPages>=5000\">5000 / page</option>\n <option value=\"10000\" *ngIf=\"maxPages>=10000\">10000 / page</option>\n </select>\n </div>\n <div class=\"col-sm-5 pagination\" *ngIf=\"list\">\n <div class=\"text-xs-center\">\n <ngb-pagination [pageSize]=\"pageSize\" [collectionSize]=\"curCount\" [page]=\"curPage\" (pageChange)=\"onPageChange($event)\" [maxSize]=\"5\" [rotate]=\"true\"></ngb-pagination>\n </div>\n </div>\n <div class=\"col-sm-3 results\">\n <div>{{curCount}} r\u00E9sultats -<span (click)=\"showDirectAccess=!showDirectAccess\" role=\"button\">acces direct</span></div>\n <div *ngIf=\"showDirectAccess\">\n <input class=\"form-control\" [formControl]=\"directAccess\" type=\"number\" placeholder=\"Aller \u00E0 la page\">\n </div>\n </div>\n</div>" }]
|
|
63
63
|
}], propDecorators: { list: [{
|
package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs
CHANGED
|
@@ -36,9 +36,9 @@ export class ModelListSorterComponent {
|
|
|
36
36
|
this.list.sorter.unset(this.field);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
ModelListSorterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
40
|
-
ModelListSorterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
39
|
+
ModelListSorterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListSorterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
ModelListSorterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ModelListSorterComponent, isStandalone: true, selector: "data-model-list-sorter", inputs: { list: "list", field: "field" }, ngImport: i0, template: "<span class=\"dirs\"><span *ngIf=\"getOrder()>=0 || getCount()>1\" (click)=\"cancel()\" role=\"button\"><span class=\"count\" *ngIf=\"getCount()>1\"> {{getOrder()}}</span><span class=\"bi bi-x\"></span></span><span class=\"bi bi-sort-down-alt\" (click)=\"setUp()\" [class.active]=\"isUp()\" role=\"button\"></span><span class=\"bi bi-sort-down\" (click)=\"setDown()\" [class.active]=\"isDown()\" role=\"button\"></span> </span>\n<ng-content></ng-content>", styles: [".dirs{color:#d3d3d3}.dirs .count{font-size:.7rem;margin-right:-.1rem;vertical-align:super}.active{color:#000}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListSorterComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
43
|
args: [{ selector: 'data-model-list-sorter', standalone: true, imports: [CommonModule], template: "<span class=\"dirs\"><span *ngIf=\"getOrder()>=0 || getCount()>1\" (click)=\"cancel()\" role=\"button\"><span class=\"count\" *ngIf=\"getCount()>1\"> {{getOrder()}}</span><span class=\"bi bi-x\"></span></span><span class=\"bi bi-sort-down-alt\" (click)=\"setUp()\" [class.active]=\"isUp()\" role=\"button\"></span><span class=\"bi bi-sort-down\" (click)=\"setDown()\" [class.active]=\"isDown()\" role=\"button\"></span> </span>\n<ng-content></ng-content>", styles: [".dirs{color:#d3d3d3}.dirs .count{font-size:.7rem;margin-right:-.1rem;vertical-align:super}.active{color:#000}\n"] }]
|
|
44
44
|
}], ctorParameters: function () { return []; }, propDecorators: { list: [{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import { combineLatest, NEVER, of, share, Subject, takeUntil, } from 'rxjs';
|
|
2
|
+
import { combineLatest, NEVER, of, ReplaySubject, share, Subject, takeUntil, } from 'rxjs';
|
|
3
3
|
import { switchMap, tap, throttleTime } from 'rxjs/operators';
|
|
4
4
|
import { ModelListFields } from './model-list-fields/model-list-fields';
|
|
5
5
|
import { ModelListPaginator } from './model-list-paginator/model-list-paginator';
|
|
@@ -8,6 +8,7 @@ import { ModelListFilters } from './model-list-filters/model-list-filters';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export class ModelList {
|
|
10
10
|
constructor(name) {
|
|
11
|
+
this.messages$ = new ReplaySubject(1);
|
|
11
12
|
this.started = false;
|
|
12
13
|
this.name = name;
|
|
13
14
|
}
|
|
@@ -129,12 +130,12 @@ export class ModelListService {
|
|
|
129
130
|
return ml;
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
|
-
ModelListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
133
|
-
ModelListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
133
|
+
ModelListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
134
|
+
ModelListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListService, providedIn: 'root' });
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ModelListService, decorators: [{
|
|
135
136
|
type: Injectable,
|
|
136
137
|
args: [{
|
|
137
138
|
providedIn: 'root',
|
|
138
139
|
}]
|
|
139
140
|
}], ctorParameters: function () { return []; } });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLEtBQUssRUFFTCxFQUFFLEVBQ0YsS0FBSyxFQUNMLE9BQU8sRUFDUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFRZCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQXlEM0UsTUFBTSxPQUFPLFNBQVM7SUFXcEIsWUFBWSxJQUFZO1FBRmpCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUlELElBQVcsT0FBTztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDeEMsNkRBQTZEO1lBQzdELEtBQUssRUFBRSxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxDQUNyQyxDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUlELElBQVcs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J0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCxcbiAgTkVWRVIsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzaGFyZSxcbiAgU3ViamVjdCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4uL2RhdGEvZGF0YS1tb2RlbCc7XG5pbXBvcnQge1xuICBJUXVlcnlNZXRhLFxuICBJUXVlcnlNZXRhTmF2UGFyYW1zLFxuICBJUXVlcnlOYXYsXG4gIFF1ZXJ5c2V0LFxufSBmcm9tICcuLi9kYXRhL2RhdGEtcXVlcnknO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpZWxkcyB9IGZyb20gJy4vbW9kZWwtbGlzdC1maWVsZHMvbW9kZWwtbGlzdC1maWVsZHMnO1xuaW1wb3J0IHsgTW9kZWxMaXN0UGFnaW5hdG9yIH0gZnJvbSAnLi9tb2RlbC1saXN0LXBhZ2luYXRvci9tb2RlbC1saXN0LXBhZ2luYXRvcic7XG5pbXBvcnQgeyBNb2RlbExpc3RTb3J0ZXIgfSBmcm9tICcuL21vZGVsLWxpc3Qtc29ydGVyL21vZGVsLWxpc3Qtc29ydGVyJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpbHRlcnMgfSBmcm9tICcuL21vZGVsLWxpc3QtZmlsdGVycy9tb2RlbC1saXN0LWZpbHRlcnMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RhdGEvZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpbHRlciB9IGZyb20gJy4vbW9kZWwtbGlzdC1maWx0ZXJzL21vZGVsLWxpc3QtZmlsdGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21GaWVsZCB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgcHJpb3JpdHk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRGVmYXVsdHMge1xuICBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHR5cGUgU29ydGVyRGVmYXVsdHMgPSBzdHJpbmdbXTtcblxuLyoqXG4gKiBGaWVsZHMgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZHNQYXJhbXMge1xuICAvKiogQWxsb3dlZCBmaWVsZHMsIGFsbCBtb2RlbCBmaWVsZHMgYXJlIGFsbG93ZWQgaWYgZW1wdHkgKi9cbiAgYWxsb3dlZD86IHN0cmluZ1tdO1xuICAvKiogRGVmYXVsdCBlbmFibGVkIGZpZWxkcyAqL1xuICBkZWZhdWx0cz86IHN0cmluZ1tdO1xuICAvKiogRXhjbHVkZWQgZmllbGRzICovXG4gIGV4Y2x1ZGVkPzogc3RyaW5nW107XG4gIC8qKiBDdXN0b20gZmllbGRzICovXG4gIGN1c3RvbT86IEN1c3RvbUZpZWxkW107XG59XG5cbi8qKlxuICogRmlsdGVycyBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlcnNQYXJhbXMge1xuICAvKiogQWxsb3dlZCBmaWx0ZXIgbmFtZXMgKi9cbiAgYWxsb3dlZD86IHN0cmluZ1tdO1xuICAvKiogRGVmYXVsdCBhY3RpdmUgZmlsdGVyIG5hbWVzICovXG4gIGRlZmF1bHRzPzogc3RyaW5nW107XG4gIC8qKiBFeGNsdWRlZCBmaWx0ZXIgbmFtZXMgKi9cbiAgZXhjbHVkZWQ/OiBzdHJpbmdbXTtcbiAgLyoqIEZpbHRlcnMgZGVmaW5pdGlvbnMgKi9cbiAgZmlsdGVycz86IE1vZGVsTGlzdEZpbHRlcltdO1xufVxuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uUGFyYW1zID0gSVF1ZXJ5TWV0YU5hdlBhcmFtcztcblxuZXhwb3J0IGludGVyZmFjZSBNb2RlbExpc3RQYXJhbXMge1xuICBmaWVsZHM/OiBGaWVsZHNQYXJhbXM7XG4gIGZpbHRlcnM/OiBGaWx0ZXJzUGFyYW1zO1xuICBmaWx0ZXI/OiBGaWx0ZXJEZWZhdWx0cyB8IE9ic2VydmFibGU8RmlsdGVyRGVmYXVsdHM+O1xuICBzb3J0ZXI/OiBTb3J0ZXJEZWZhdWx0cztcbiAgcGFnaW5hdG9yPzogSVF1ZXJ5TmF2O1xuICBrZWVwPzogYm9vbGVhbjtcbiAgcmVsb2FkPzogU3ViamVjdDx2b2lkIHwgYm9vbGVhbj47XG4gIHVuc3Vic2NyaWJlPzogU3ViamVjdDx2b2lkPjtcbn1cblxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdDxUIGV4dGVuZHMgRGF0YU1vZGVsPiB7XG4gIHB1YmxpYyBuYW1lITogc3RyaW5nO1xuICBwdWJsaWMgZmlsdGVycyE6IE1vZGVsTGlzdEZpbHRlcnM7XG4gIHB1YmxpYyBzb3J0ZXIhOiBNb2RlbExpc3RTb3J0ZXI7XG4gIHB1YmxpYyBwYWdpbmF0b3IhOiBNb2RlbExpc3RQYWdpbmF0b3I7XG4gIHB1YmxpYyBxdWVyeXNldCE6IFF1ZXJ5c2V0PFQ+O1xuICBwdWJsaWMgZmllbGRzITogTW9kZWxMaXN0RmllbGRzPFQ+O1xuICBwdWJsaWMgcmVsb2FkITogU3ViamVjdDx2b2lkIHwgYm9vbGVhbj47XG4gIHB1YmxpYyB1bnN1YnNjcmliZSE6IFN1YmplY3Q8dm9pZD47XG4gIHB1YmxpYyBzdGFydGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc3VsdHM/OiBPYnNlcnZhYmxlPFRbXT47XG5cbiAgcHVibGljIGdldCByZXN1bHRzKCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKCF0aGlzLl9yZXN1bHRzKSB7XG4gICAgICB0aGlzLl9yZXN1bHRzID0gdGhpcy5xdWVyeXNldC5yZXN1bHRzLnBpcGUoXG4gICAgICAgIC8vIHRhcCgoKSA9PiBjb25zb2xlLmxvZygnQHNvbGlkZXYvZGF0YTogbW9kZWxsaXN0IHJlc3VsdCcpKSxcbiAgICAgICAgc2hhcmUoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUgfHwgTkVWRVIpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0cztcbiAgfVxuXG4gIHByaXZhdGUgX21ldGE/OiBPYnNlcnZhYmxlPElRdWVyeU1ldGE+O1xuXG4gIHB1YmxpYyBnZXQgbWV0YSgpOiBPYnNlcnZhYmxlPElRdWVyeU1ldGE+IHtcbiAgICBpZiAoIXRoaXMuX21ldGEpIHtcbiAgICAgIHRoaXMuX21ldGEgPSB0aGlzLnF1ZXJ5c2V0Lm1ldGEucGlwZShcbiAgICAgICAgLy8gdGFwKCgpID0+IGNvbnNvbGUubG9nKCdAc29saWRldi9kYXRhOiBtb2RlbGxpc3QgbWV0YScpKSxcbiAgICAgICAgc2hhcmUoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUgfHwgTkVWRVIpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbWV0YTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRpbmc/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHB1YmxpYyBnZXQgbG9hZGluZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAoIXRoaXMuX2xvYWRpbmcpIHtcbiAgICAgIHRoaXMuX2xvYWRpbmcgPSB0aGlzLnF1ZXJ5c2V0LmxvYWRpbmcucGlwZShcbiAgICAgICAgLy8gdGFwKCgpID0+IGNvbnNvbGUubG9nKCdAc29saWRldi9kYXRhOiBtb2RlbGxpc3QgbG9hZGluZycpKSxcbiAgICAgICAgc2hhcmUoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUgfHwgTkVWRVIpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgfVxuXG4gIHByaXZhdGUgX2Z1bGw/OiBPYnNlcnZhYmxlPFtUW10sIGJvb2xlYW4sIElRdWVyeU1ldGFdPjtcblxuICBwdWJsaWMgZ2V0IGZ1bGwoKTogT2JzZXJ2YWJsZTxbVFtdLCBib29sZWFuLCBJUXVlcnlNZXRhXT4ge1xuICAgIGlmICghdGhpcy5fZnVsbCkge1xuICAgICAgdGhpcy5fZnVsbCA9IHRoaXMucXVlcnlzZXQuZnVsbC5waXBlKFxuICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdCBmdWxsJykpLFxuICAgICAgICBzaGFyZSgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSB8fCBORVZFUilcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9mdWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0KHBhcmFtczogTW9kZWxMaXN0UGFyYW1zKSB7XG4gICAgbGV0IGZpbHRlciQ6IE9ic2VydmFibGU8RmlsdGVyRGVmYXVsdHM+O1xuICAgIGxldCByZWxvYWRGaXJlZCA9IGZhbHNlO1xuICAgIGlmIChwYXJhbXMuZmlsdGVyICYmICFwYXJhbXMuZmlsdGVyLnN1YnNjcmliZSkge1xuICAgICAgZmlsdGVyJCA9IG9mKHBhcmFtcy5maWx0ZXIgYXMgRmlsdGVyRGVmYXVsdHMpO1xuICAgIH0gZWxzZSBpZiAocGFyYW1zLmZpbHRlciAmJiBwYXJhbXMuZmlsdGVyLnN1YnNjcmliZSkge1xuICAgICAgZmlsdGVyJCA9IHBhcmFtcy5maWx0ZXIgYXMgT2JzZXJ2YWJsZTxGaWx0ZXJEZWZhdWx0cz47XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlciQgPSBvZih7fSk7XG4gICAgfVxuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5yZWxvYWQucGlwZSh0YXAoKHYpID0+IChyZWxvYWRGaXJlZCA9ICEhdikpKSxcbiAgICAgIHRoaXMuZmlsdGVycy5vdXRwdXQsXG4gICAgICBmaWx0ZXIkLFxuICAgICAgdGhpcy5wYWdpbmF0b3Iub3V0cHV0LFxuICAgICAgdGhpcy5zb3J0ZXIub3V0cHV0LFxuICAgICAgdGhpcy5maWVsZHMub3V0cHV0LFxuICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGhyb3R0bGVUaW1lKDIwMCksXG4gICAgICAgIHN3aXRjaE1hcChcbiAgICAgICAgICAoW3JlbG9hZCwgZmlsdGVyLCBtYW51YWxGaWx0ZXIsIHBhZ2luYXRvciwgc29ydGVyLCBmaWVsZHNdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5c2V0XG4gICAgICAgICAgICAgIC5maWx0ZXIoZmlsdGVyKVxuICAgICAgICAgICAgICAuZmlsdGVyKG1hbnVhbEZpbHRlciB8fCB7fSwgdHJ1ZSlcbiAgICAgICAgICAgICAgLnBhZ2luYXRlQnkocGFnaW5hdG9yLnBhZ2Vfc2l6ZSlcbiAgICAgICAgICAgICAgLnNldFBhZ2UocGFnaW5hdG9yLnBhZ2UpXG4gICAgICAgICAgICAgIC5zb3J0KC4uLnNvcnRlcilcbiAgICAgICAgICAgICAgLnNldEZpZWxkcyhmaWVsZHMpO1xuICAgICAgICAgICAgY29uc3QgZGJTeW5jID0gcmVsb2FkRmlyZWQ7XG4gICAgICAgICAgICByZWxvYWRGaXJlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlzZXQuZ2V0KHRydWUsIGRiU3luYyk7XG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSB8fCBORVZFUilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzdWx0czogYW55KTogdm9pZCA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdDpnZXQgcmVzdWx0cycpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICdAc29saWRldi9kYXRhOiBlcnJvciB3aGlsZSBnZXR0aW5nIG1vZGVsIGxpc3QgcmVzdWx0cyA6ICcsXG4gICAgICAgICAgICBlcnJvclxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdDpjb21wbGV0ZWQnLCB0aGlzLm5hbWUpO1xuICAgICAgICAgIHRoaXMuc3RhcnRlZCA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgdGhpcy5yZWxvYWQubmV4dCgpO1xuICAgIHRoaXMuc3RhcnRlZCA9IHRydWU7XG4gIH1cbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsTGlzdFNlcnZpY2Uge1xuICBwcml2YXRlIF9pbnN0YW5jZXM6IE1hcDxzdHJpbmcsIE1vZGVsTGlzdDxhbnk+PiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIGdldDxUIGV4dGVuZHMgRGF0YU1vZGVsPihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICBkZWZhdWx0czogTW9kZWxMaXN0UGFyYW1zXG4gICkge1xuICAgIGxldCBtbDogTW9kZWxMaXN0PFQ+O1xuXG4gICAgaWYgKCFuYW1lIHx8ICF0aGlzLl9pbnN0YW5jZXMuaGFzKG5hbWUpIHx8ICFkZWZhdWx0cy5rZWVwKSB7XG4gICAgICBtbCA9IG5ldyBNb2RlbExpc3Q8VD4obmFtZSk7XG4gICAgICBtbC5xdWVyeXNldCA9IGNvbGxlY3Rpb24ucXVlcnlzZXQoKTtcbiAgICAgIG1sLmZpZWxkcyA9IG5ldyBNb2RlbExpc3RGaWVsZHMoY29sbGVjdGlvbiwgZGVmYXVsdHMuZmllbGRzKTtcbiAgICAgIG1sLnNvcnRlciA9IG5ldyBNb2RlbExpc3RTb3J0ZXIoZGVmYXVsdHMuc29ydGVyIHx8IFtdKTtcbiAgICAgIG1sLnBhZ2luYXRvciA9IG5ldyBNb2RlbExpc3RQYWdpbmF0b3IoZGVmYXVsdHMucGFnaW5hdG9yKTtcbiAgICAgIG1sLmZpbHRlcnMgPSBuZXcgTW9kZWxMaXN0RmlsdGVycyhkZWZhdWx0cy5maWx0ZXJzKTtcbiAgICAgIGlmIChkZWZhdWx0cy5rZWVwKSB7XG4gICAgICAgIHRoaXMuX2luc3RhbmNlcy5zZXQobmFtZSwgbWwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtbCA9IHRoaXMuX2luc3RhbmNlcy5nZXQobmFtZSkhO1xuICAgIH1cbiAgICBpZiAoIW1sLnN0YXJ0ZWQpIHtcbiAgICAgIGlmIChkZWZhdWx0cy5yZWxvYWQpIHtcbiAgICAgICAgbWwucmVsb2FkID0gZGVmYXVsdHMucmVsb2FkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWwucmVsb2FkID0gbmV3IFN1YmplY3Q8dm9pZCB8IGJvb2xlYW4+KCk7XG4gICAgICB9XG4gICAgICBpZiAoZGVmYXVsdHMudW5zdWJzY3JpYmUpIHtcbiAgICAgICAgbWwudW5zdWJzY3JpYmUgPSBkZWZhdWx0cy51bnN1YnNjcmliZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1sLnVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgIH1cbiAgICAgIG1sLnN0YXJ0KGRlZmF1bHRzKTtcbiAgICB9XG4gICAgcmV0dXJuIG1sO1xuICB9XG59XG4iXX0=
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsYUFBYSxFQUNiLEtBQUssRUFFTCxFQUFFLEVBQ0YsYUFBYSxFQUNiLEtBQUssRUFDTCxPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBUWQsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUE0RDNFLE1BQU0sT0FBTyxTQUFTO0lBWXBCLFlBQVksSUFBWTtRQUhqQixjQUFTLEdBQUcsSUFBSSxhQUFhLENBQW9CLENBQUMsQ0FBQyxDQUFDO1FBQ3BELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUlELElBQVcsT0FBTztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDeEMsNkRBQTZEO1lBQzdELEtBQUssRUFBRSxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxDQUNyQyxDQUFD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QU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCxcbiAgTkVWRVIsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBSZXBsYXlTdWJqZWN0LFxuICBzaGFyZSxcbiAgU3ViamVjdCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4uL2RhdGEvZGF0YS1tb2RlbCc7XG5pbXBvcnQge1xuICBJUXVlcnlNZXRhLFxuICBJUXVlcnlNZXRhTmF2UGFyYW1zLFxuICBJUXVlcnlOYXYsXG4gIFF1ZXJ5c2V0LFxufSBmcm9tICcuLi9kYXRhL2RhdGEtcXVlcnknO1xuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpZWxkcyB9IGZyb20gJy4vbW9kZWwtbGlzdC1maWVsZHMvbW9kZWwtbGlzdC1maWVsZHMnO1xuaW1wb3J0IHsgTW9kZWxMaXN0UGFnaW5hdG9yIH0gZnJvbSAnLi9tb2RlbC1saXN0LXBhZ2luYXRvci9tb2RlbC1saXN0LXBhZ2luYXRvcic7XG5pbXBvcnQgeyBNb2RlbExpc3RTb3J0ZXIgfSBmcm9tICcuL21vZGVsLWxpc3Qtc29ydGVyL21vZGVsLWxpc3Qtc29ydGVyJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpbHRlcnMgfSBmcm9tICcuL21vZGVsLWxpc3QtZmlsdGVycy9tb2RlbC1saXN0LWZpbHRlcnMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RhdGEvZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpbHRlciB9IGZyb20gJy4vbW9kZWwtbGlzdC1maWx0ZXJzL21vZGVsLWxpc3QtZmlsdGVyJztcbmltcG9ydCB7IElGaWVsZEhlYWRlck1lc3NhZ2UgfSBmcm9tICcuL21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyL21lc3NhZ2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21GaWVsZCB7XG4gIG5hbWU6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgcHJpb3JpdHk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRGVmYXVsdHMge1xuICBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHR5cGUgU29ydGVyRGVmYXVsdHMgPSBzdHJpbmdbXTtcblxuLyoqXG4gKiBGaWVsZHMgcGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZHNQYXJhbXMge1xuICAvKiogQWxsb3dlZCBmaWVsZHMsIGFsbCBtb2RlbCBmaWVsZHMgYXJlIGFsbG93ZWQgaWYgZW1wdHkgKi9cbiAgYWxsb3dlZD86IHN0cmluZ1tdO1xuICAvKiogRGVmYXVsdCBlbmFibGVkIGZpZWxkcyAqL1xuICBkZWZhdWx0cz86IHN0cmluZ1tdO1xuICAvKiogRXhjbHVkZWQgZmllbGRzICovXG4gIGV4Y2x1ZGVkPzogc3RyaW5nW107XG4gIC8qKiBDdXN0b20gZmllbGRzICovXG4gIGN1c3RvbT86IEN1c3RvbUZpZWxkW107XG59XG5cbi8qKlxuICogRmlsdGVycyBwYXJhbWV0ZXJzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlcnNQYXJhbXMge1xuICAvKiogQWxsb3dlZCBmaWx0ZXIgbmFtZXMgKi9cbiAgYWxsb3dlZD86IHN0cmluZ1tdO1xuICAvKiogRGVmYXVsdCBhY3RpdmUgZmlsdGVyIG5hbWVzICovXG4gIGRlZmF1bHRzPzogc3RyaW5nW107XG4gIC8qKiBFeGNsdWRlZCBmaWx0ZXIgbmFtZXMgKi9cbiAgZXhjbHVkZWQ/OiBzdHJpbmdbXTtcbiAgLyoqIEZpbHRlcnMgZGVmaW5pdGlvbnMgKi9cbiAgZmlsdGVycz86IE1vZGVsTGlzdEZpbHRlcltdO1xufVxuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uUGFyYW1zID0gSVF1ZXJ5TWV0YU5hdlBhcmFtcztcblxuZXhwb3J0IHR5cGUgSU1vZGVsTGlzdE1lc3NhZ2UgPSBJRmllbGRIZWFkZXJNZXNzYWdlO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsTGlzdFBhcmFtcyB7XG4gIGZpZWxkcz86IEZpZWxkc1BhcmFtcztcbiAgZmlsdGVycz86IEZpbHRlcnNQYXJhbXM7XG4gIGZpbHRlcj86IEZpbHRlckRlZmF1bHRzIHwgT2JzZXJ2YWJsZTxGaWx0ZXJEZWZhdWx0cz47XG4gIHNvcnRlcj86IFNvcnRlckRlZmF1bHRzO1xuICBwYWdpbmF0b3I/OiBJUXVlcnlOYXY7XG4gIGtlZXA/OiBib29sZWFuO1xuICByZWxvYWQ/OiBTdWJqZWN0PHZvaWQgfCBib29sZWFuPjtcbiAgdW5zdWJzY3JpYmU/OiBTdWJqZWN0PHZvaWQ+O1xufVxuXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0PFQgZXh0ZW5kcyBEYXRhTW9kZWw+IHtcbiAgcHVibGljIG5hbWUhOiBzdHJpbmc7XG4gIHB1YmxpYyBmaWx0ZXJzITogTW9kZWxMaXN0RmlsdGVycztcbiAgcHVibGljIHNvcnRlciE6IE1vZGVsTGlzdFNvcnRlcjtcbiAgcHVibGljIHBhZ2luYXRvciE6IE1vZGVsTGlzdFBhZ2luYXRvcjtcbiAgcHVibGljIHF1ZXJ5c2V0ITogUXVlcnlzZXQ8VD47XG4gIHB1YmxpYyBmaWVsZHMhOiBNb2RlbExpc3RGaWVsZHM8VD47XG4gIHB1YmxpYyByZWxvYWQhOiBTdWJqZWN0PHZvaWQgfCBib29sZWFuPjtcbiAgcHVibGljIHVuc3Vic2NyaWJlITogU3ViamVjdDx2b2lkPjtcbiAgcHVibGljIG1lc3NhZ2VzJCA9IG5ldyBSZXBsYXlTdWJqZWN0PElNb2RlbExpc3RNZXNzYWdlPigxKTtcbiAgcHVibGljIHN0YXJ0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzdWx0cz86IE9ic2VydmFibGU8VFtdPjtcblxuICBwdWJsaWMgZ2V0IHJlc3VsdHMoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoIXRoaXMuX3Jlc3VsdHMpIHtcbiAgICAgIHRoaXMuX3Jlc3VsdHMgPSB0aGlzLnF1ZXJ5c2V0LnJlc3VsdHMucGlwZShcbiAgICAgICAgLy8gdGFwKCgpID0+IGNvbnNvbGUubG9nKCdAc29saWRldi9kYXRhOiBtb2RlbGxpc3QgcmVzdWx0JykpLFxuICAgICAgICBzaGFyZSgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSB8fCBORVZFUilcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yZXN1bHRzO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWV0YT86IE9ic2VydmFibGU8SVF1ZXJ5TWV0YT47XG5cbiAgcHVibGljIGdldCBtZXRhKCk6IE9ic2VydmFibGU8SVF1ZXJ5TWV0YT4ge1xuICAgIGlmICghdGhpcy5fbWV0YSkge1xuICAgICAgdGhpcy5fbWV0YSA9IHRoaXMucXVlcnlzZXQubWV0YS5waXBlKFxuICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdCBtZXRhJykpLFxuICAgICAgICBzaGFyZSgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSB8fCBORVZFUilcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9tZXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZGluZz86IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHVibGljIGdldCBsb2FkaW5nKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICghdGhpcy5fbG9hZGluZykge1xuICAgICAgdGhpcy5fbG9hZGluZyA9IHRoaXMucXVlcnlzZXQubG9hZGluZy5waXBlKFxuICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IG1vZGVsbGlzdCBsb2FkaW5nJykpLFxuICAgICAgICBzaGFyZSgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSB8fCBORVZFUilcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBfZnVsbD86IE9ic2VydmFibGU8W1RbXSwgYm9vbGVhbiwgSVF1ZXJ5TWV0YV0+O1xuXG4gIHB1YmxpYyBnZXQgZnVsbCgpOiBPYnNlcnZhYmxlPFtUW10sIGJvb2xlYW4sIElRdWVyeU1ldGFdPiB7XG4gICAgaWYgKCF0aGlzLl9mdWxsKSB7XG4gICAgICB0aGlzLl9mdWxsID0gdGhpcy5xdWVyeXNldC5mdWxsLnBpcGUoXG4gICAgICAgIC8vIHRhcCgoKSA9PiBjb25zb2xlLmxvZygnQHNvbGlkZXYvZGF0YTogbW9kZWxsaXN0IGZ1bGwnKSksXG4gICAgICAgIHNoYXJlKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlIHx8IE5FVkVSKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Z1bGw7XG4gIH1cblxuICBwdWJsaWMgc3RhcnQocGFyYW1zOiBNb2RlbExpc3RQYXJhbXMpIHtcbiAgICBsZXQgZmlsdGVyJDogT2JzZXJ2YWJsZTxGaWx0ZXJEZWZhdWx0cz47XG4gICAgbGV0IHJlbG9hZEZpcmVkID0gZmFsc2U7XG4gICAgaWYgKHBhcmFtcy5maWx0ZXIgJiYgIXBhcmFtcy5maWx0ZXIuc3Vic2NyaWJlKSB7XG4gICAgICBmaWx0ZXIkID0gb2YocGFyYW1zLmZpbHRlciBhcyBGaWx0ZXJEZWZhdWx0cyk7XG4gICAgfSBlbHNlIGlmIChwYXJhbXMuZmlsdGVyICYmIHBhcmFtcy5maWx0ZXIuc3Vic2NyaWJlKSB7XG4gICAgICBmaWx0ZXIkID0gcGFyYW1zLmZpbHRlciBhcyBPYnNlcnZhYmxlPEZpbHRlckRlZmF1bHRzPjtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsdGVyJCA9IG9mKHt9KTtcbiAgICB9XG4gICAgY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnJlbG9hZC5waXBlKHRhcCgodikgPT4gKHJlbG9hZEZpcmVkID0gISF2KSkpLFxuICAgICAgdGhpcy5maWx0ZXJzLm91dHB1dCxcbiAgICAgIGZpbHRlciQsXG4gICAgICB0aGlzLnBhZ2luYXRvci5vdXRwdXQsXG4gICAgICB0aGlzLnNvcnRlci5vdXRwdXQsXG4gICAgICB0aGlzLmZpZWxkcy5vdXRwdXQsXG4gICAgXSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0aHJvdHRsZVRpbWUoMjAwKSxcbiAgICAgICAgc3dpdGNoTWFwKFxuICAgICAgICAgIChbcmVsb2FkLCBmaWx0ZXIsIG1hbnVhbEZpbHRlciwgcGFnaW5hdG9yLCBzb3J0ZXIsIGZpZWxkc10pID0+IHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlzZXRcbiAgICAgICAgICAgICAgLmZpbHRlcihmaWx0ZXIpXG4gICAgICAgICAgICAgIC5maWx0ZXIobWFudWFsRmlsdGVyIHx8IHt9LCB0cnVlKVxuICAgICAgICAgICAgICAucGFnaW5hdGVCeShwYWdpbmF0b3IucGFnZV9zaXplKVxuICAgICAgICAgICAgICAuc2V0UGFnZShwYWdpbmF0b3IucGFnZSlcbiAgICAgICAgICAgICAgLnNvcnQoLi4uc29ydGVyKVxuICAgICAgICAgICAgICAuc2V0RmllbGRzKGZpZWxkcyk7XG4gICAgICAgICAgICBjb25zdCBkYlN5bmMgPSByZWxvYWRGaXJlZDtcbiAgICAgICAgICAgIHJlbG9hZEZpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5xdWVyeXNldC5nZXQodHJ1ZSwgZGJTeW5jKTtcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlIHx8IE5FVkVSKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXN1bHRzOiBhbnkpOiB2b2lkID0+IHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQHNvbGlkZXYvZGF0YTogbW9kZWxsaXN0OmdldCByZXN1bHRzJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ0Bzb2xpZGV2L2RhdGE6IGVycm9yIHdoaWxlIGdldHRpbmcgbW9kZWwgbGlzdCByZXN1bHRzIDogJyxcbiAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnQHNvbGlkZXYvZGF0YTogbW9kZWxsaXN0OmNvbXBsZXRlZCcsIHRoaXMubmFtZSk7XG4gICAgICAgICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB0aGlzLnJlbG9hZC5uZXh0KCk7XG4gICAgdGhpcy5zdGFydGVkID0gdHJ1ZTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0U2VydmljZSB7XG4gIHByaXZhdGUgX2luc3RhbmNlczogTWFwPHN0cmluZywgTW9kZWxMaXN0PGFueT4+ID0gbmV3IE1hcCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgZ2V0PFQgZXh0ZW5kcyBEYXRhTW9kZWw+KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LFxuICAgIGRlZmF1bHRzOiBNb2RlbExpc3RQYXJhbXNcbiAgKSB7XG4gICAgbGV0IG1sOiBNb2RlbExpc3Q8VD47XG5cbiAgICBpZiAoIW5hbWUgfHwgIXRoaXMuX2luc3RhbmNlcy5oYXMobmFtZSkgfHwgIWRlZmF1bHRzLmtlZXApIHtcbiAgICAgIG1sID0gbmV3IE1vZGVsTGlzdDxUPihuYW1lKTtcbiAgICAgIG1sLnF1ZXJ5c2V0ID0gY29sbGVjdGlvbi5xdWVyeXNldCgpO1xuICAgICAgbWwuZmllbGRzID0gbmV3IE1vZGVsTGlzdEZpZWxkcyhjb2xsZWN0aW9uLCBkZWZhdWx0cy5maWVsZHMpO1xuICAgICAgbWwuc29ydGVyID0gbmV3IE1vZGVsTGlzdFNvcnRlcihkZWZhdWx0cy5zb3J0ZXIgfHwgW10pO1xuICAgICAgbWwucGFnaW5hdG9yID0gbmV3IE1vZGVsTGlzdFBhZ2luYXRvcihkZWZhdWx0cy5wYWdpbmF0b3IpO1xuICAgICAgbWwuZmlsdGVycyA9IG5ldyBNb2RlbExpc3RGaWx0ZXJzKGRlZmF1bHRzLmZpbHRlcnMpO1xuICAgICAgaWYgKGRlZmF1bHRzLmtlZXApIHtcbiAgICAgICAgdGhpcy5faW5zdGFuY2VzLnNldChuYW1lLCBtbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG1sID0gdGhpcy5faW5zdGFuY2VzLmdldChuYW1lKSE7XG4gICAgfVxuICAgIGlmICghbWwuc3RhcnRlZCkge1xuICAgICAgaWYgKGRlZmF1bHRzLnJlbG9hZCkge1xuICAgICAgICBtbC5yZWxvYWQgPSBkZWZhdWx0cy5yZWxvYWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtbC5yZWxvYWQgPSBuZXcgU3ViamVjdDx2b2lkIHwgYm9vbGVhbj4oKTtcbiAgICAgIH1cbiAgICAgIGlmIChkZWZhdWx0cy51bnN1YnNjcmliZSkge1xuICAgICAgICBtbC51bnN1YnNjcmliZSA9IGRlZmF1bHRzLnVuc3Vic2NyaWJlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWwudW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgICAgfVxuICAgICAgbWwuc3RhcnQoZGVmYXVsdHMpO1xuICAgIH1cbiAgICByZXR1cm4gbWw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -129,9 +129,9 @@ export class BreadcrumbComponent {
|
|
|
129
129
|
return '';
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
133
|
-
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
132
|
+
BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
+
BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: BreadcrumbComponent, isStandalone: true, selector: "data-breadcrumb", inputs: { data: "data", icons: "icons" }, usesOnChanges: true, ngImport: i0, template: "\n<nav aria-label=\"breadcrumb\">\n <ol class=\"breadcrumb\">\n <ng-container *ngFor=\"let p of tree\">\n <li class=\"breadcrumb-item\" *ngIf=\"!p.current\"><a class=\"breadcrumb-item\" [routerLink]=\"p.path\">\n <ng-container *ngIf=\"icons && p.icon\"><i class=\"me-2\" [ngClass]=\"p.icon\"></i>{{p.title}}</ng-container>\n <ng-container *ngIf=\"!(icons && p.icon)\">{{p.title}}</ng-container></a></li>\n <li class=\"breadcrumb-item active\" aria-current=\"page\" *ngIf=\"p.current\">\n <ng-container *ngIf=\"icons && p.icon\"><i class=\"me-1\" [ngClass]=\"p.icon\"></i>{{p.title}}</ng-container>\n <ng-container *ngIf=\"!(icons && p.icon)\">{{p.title}}</ng-container>\n </li>\n </ng-container>\n </ol>\n</nav>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
136
|
args: [{ selector: 'data-breadcrumb', standalone: true, imports: [CommonModule, RouterModule], template: "\n<nav aria-label=\"breadcrumb\">\n <ol class=\"breadcrumb\">\n <ng-container *ngFor=\"let p of tree\">\n <li class=\"breadcrumb-item\" *ngIf=\"!p.current\"><a class=\"breadcrumb-item\" [routerLink]=\"p.path\">\n <ng-container *ngIf=\"icons && p.icon\"><i class=\"me-2\" [ngClass]=\"p.icon\"></i>{{p.title}}</ng-container>\n <ng-container *ngIf=\"!(icons && p.icon)\">{{p.title}}</ng-container></a></li>\n <li class=\"breadcrumb-item active\" aria-current=\"page\" *ngIf=\"p.current\">\n <ng-container *ngIf=\"icons && p.icon\"><i class=\"me-1\" [ngClass]=\"p.icon\"></i>{{p.title}}</ng-container>\n <ng-container *ngIf=\"!(icons && p.icon)\">{{p.title}}</ng-container>\n </li>\n </ng-container>\n </ol>\n</nav>" }]
|
|
137
137
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; }, propDecorators: { data: [{
|
|
@@ -8,9 +8,9 @@ export class UpdateComponent {
|
|
|
8
8
|
this.update = update;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
UpdateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
12
|
-
UpdateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
11
|
+
UpdateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: UpdateComponent, deps: [{ token: i1.UpdateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
UpdateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: UpdateComponent, isStandalone: true, selector: "data-update", ngImport: i0, template: "\n<div class=\"snack\" *ngIf=\"update.available$|async\">\n <p>Une nouvelle version de l'application est disponible.</p>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <button class=\"btn btn-primary btn-block w-100\" (click)=\"update.activate()\">L'ACTIVER MAINTENANT</button>\n </div>\n <div class=\"col-sm-6\">\n <button class=\"btn btn-warning btn-block w-100\" (click)=\"update.dismiss()\">Plus tard</button>\n </div>\n </div>\n</div>", styles: [".snack{position:fixed;bottom:0;margin-left:auto;margin-right:auto;left:auto;right:auto;background-color:#ff7a00cc;padding:20px;z-index:2000;border-top:1px solid rgb(255,122,0);font-size:1.5rem;font-weight:700;color:#8b0000;width:100%;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: UpdateComponent, decorators: [{
|
|
14
14
|
type: Component,
|
|
15
15
|
args: [{ selector: 'data-update', standalone: true, imports: [CommonModule], template: "\n<div class=\"snack\" *ngIf=\"update.available$|async\">\n <p>Une nouvelle version de l'application est disponible.</p>\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <button class=\"btn btn-primary btn-block w-100\" (click)=\"update.activate()\">L'ACTIVER MAINTENANT</button>\n </div>\n <div class=\"col-sm-6\">\n <button class=\"btn btn-warning btn-block w-100\" (click)=\"update.dismiss()\">Plus tard</button>\n </div>\n </div>\n</div>", styles: [".snack{position:fixed;bottom:0;margin-left:auto;margin-right:auto;left:auto;right:auto;background-color:#ff7a00cc;padding:20px;z-index:2000;border-top:1px solid rgb(255,122,0);font-size:1.5rem;font-weight:700;color:#8b0000;width:100%;text-align:center}\n"] }]
|
|
16
16
|
}], ctorParameters: function () { return [{ type: i1.UpdateService }]; } });
|
|
@@ -47,9 +47,9 @@ export class UpdateService {
|
|
|
47
47
|
this._available$.next(false);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
UpdateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
51
|
-
UpdateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
50
|
+
UpdateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: UpdateService, deps: [{ token: i0.ApplicationRef }, { token: i1.SwUpdate }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
51
|
+
UpdateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: UpdateService, providedIn: 'root' });
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: UpdateService, decorators: [{
|
|
53
53
|
type: Injectable,
|
|
54
54
|
args: [{
|
|
55
55
|
providedIn: 'root',
|
|
@@ -55,9 +55,9 @@ export class NgFileDropDirective {
|
|
|
55
55
|
this.uploadOutput.emit(event);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
NgFileDropDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
59
|
-
NgFileDropDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
58
|
+
NgFileDropDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgFileDropDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
59
|
+
NgFileDropDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgFileDropDirective, selector: "[dataFileDrop]", inputs: { options: "options", uploadInput: "uploadInput" }, outputs: { uploadOutput: "uploadOutput" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" } }, ngImport: i0 });
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgFileDropDirective, decorators: [{
|
|
61
61
|
type: Directive,
|
|
62
62
|
args: [{
|
|
63
63
|
selector: "[dataFileDrop]"
|
|
@@ -34,9 +34,9 @@ export class NgFileSelectDirective {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
NgFileSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
38
|
-
NgFileSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
37
|
+
NgFileSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgFileSelectDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
38
|
+
NgFileSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: NgFileSelectDirective, selector: "[dataFileSelect]", inputs: { options: "options", uploadInput: "uploadInput" }, outputs: { uploadOutput: "uploadOutput" }, ngImport: i0 });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgFileSelectDirective, decorators: [{
|
|
40
40
|
type: Directive,
|
|
41
41
|
args: [{
|
|
42
42
|
selector: "[dataFileSelect]"
|
|
@@ -4,10 +4,10 @@ import { NgFileSelectDirective } from "./ng-file-select.directive";
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class NgxUploaderModule {
|
|
6
6
|
}
|
|
7
|
-
NgxUploaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
8
|
-
NgxUploaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
|
|
9
|
-
NgxUploaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
7
|
+
NgxUploaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgxUploaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
NgxUploaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: NgxUploaderModule, declarations: [NgFileDropDirective, NgFileSelectDirective], exports: [NgFileDropDirective, NgFileSelectDirective] });
|
|
9
|
+
NgxUploaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgxUploaderModule });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgxUploaderModule, decorators: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
declarations: [NgFileDropDirective, NgFileSelectDirective],
|
|
@@ -69,9 +69,9 @@ export class TabMemoryService {
|
|
|
69
69
|
return null;
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
TabMemoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.
|
|
73
|
-
TabMemoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.
|
|
72
|
+
TabMemoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: TabMemoryService, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
73
|
+
TabMemoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: TabMemoryService, providedIn: 'root' });
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: TabMemoryService, decorators: [{
|
|
75
75
|
type: Injectable,
|
|
76
76
|
args: [{
|
|
77
77
|
providedIn: 'root',
|