@solidev/data 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/auth/auth-interceptor.service.mjs +3 -3
- package/esm2022/lib/data/data-backend.mjs +3 -3
- package/esm2022/lib/dispedit/choice.pipe.mjs +6 -6
- package/esm2022/lib/dispedit/dispedit/dispedit.component.mjs +3 -3
- package/esm2022/lib/dispedit/factor.pipe.mjs +6 -6
- package/esm2022/lib/dispedit/factorc.pipe.mjs +6 -6
- package/esm2022/lib/dispedit/fkselect/fkselect.component.mjs +10 -13
- package/esm2022/lib/dispedit/flags/flags.component.mjs +9 -12
- package/esm2022/lib/dispedit/m2mselect/m2mselect.component.mjs +10 -16
- package/esm2022/lib/dispedit/richedit/richedit.component.mjs +3 -3
- package/esm2022/lib/dispedit/sdelete/sdelete.component.mjs +3 -3
- package/esm2022/lib/messages/message-zone/message-zone.component.mjs +8 -12
- package/esm2022/lib/messages/message.service.mjs +3 -3
- package/esm2022/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +8 -12
- package/esm2022/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +9 -12
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list-filters/model-list-filter-group.mjs +19 -0
- package/esm2022/lib/modellist/model-list-filters/model-list-filter.mjs +9 -1
- package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +5 -5
- package/esm2022/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +27 -6
- package/esm2022/lib/modellist/model-list-filters/model-list-filters.mjs +70 -16
- package/esm2022/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +13 -14
- package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +3 -3
- package/esm2022/lib/modellist/model-list.service.mjs +4 -4
- package/esm2022/lib/routing/breadcrumb/breadcrumb.component.mjs +8 -12
- package/esm2022/lib/updates/update/update.component.mjs +3 -3
- package/esm2022/lib/updates/update.service.mjs +3 -3
- package/esm2022/lib/uploader/ng-file-drop.directive.mjs +3 -3
- package/esm2022/lib/uploader/ng-file-select.directive.mjs +3 -3
- package/esm2022/lib/uploader/ngx-uploader.module.mjs +4 -4
- package/esm2022/lib/utils/tab-memory.service.mjs +3 -3
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/solidev-data.mjs +410 -344
- package/fesm2022/solidev-data.mjs.map +1 -1
- package/lib/dispedit/fkselect/fkselect.component.d.ts +3 -4
- package/lib/dispedit/flags/flags.component.d.ts +3 -4
- package/lib/dispedit/m2mselect/m2mselect.component.d.ts +3 -7
- package/lib/messages/message-zone/message-zone.component.d.ts +3 -4
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +3 -4
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +3 -4
- package/lib/modellist/model-list-filters/model-list-filter-group.d.ts +11 -0
- package/lib/modellist/model-list-filters/model-list-filter.d.ts +4 -0
- package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +8 -2
- package/lib/modellist/model-list-filters/model-list-filters.d.ts +11 -5
- package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +3 -5
- package/lib/modellist/model-list.service.d.ts +2 -1
- package/lib/routing/breadcrumb/breadcrumb.component.d.ts +3 -4
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
1
|
+
import { Component, DestroyRef, EventEmitter, inject, Input, Output, } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR, ReactiveFormsModule, UntypedFormControl, } from '@angular/forms';
|
|
3
|
-
import { debounceTime, distinctUntilChanged, firstValueFrom,
|
|
3
|
+
import { debounceTime, distinctUntilChanged, firstValueFrom, } from 'rxjs';
|
|
4
4
|
import { switchMap } from 'rxjs/operators';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
import { NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';
|
|
7
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@angular/common";
|
|
9
10
|
import * as i2 from "@angular/forms";
|
|
@@ -31,7 +32,7 @@ export class M2mselectComponent {
|
|
|
31
32
|
this.searchFn = this._search.bind(this);
|
|
32
33
|
this.displayFn = this._display.bind(this);
|
|
33
34
|
this.touched = false;
|
|
34
|
-
this.
|
|
35
|
+
this.destroy$ = inject(DestroyRef);
|
|
35
36
|
/**
|
|
36
37
|
* Control value accessor onChange dummy callback;
|
|
37
38
|
* @param fks
|
|
@@ -42,13 +43,6 @@ export class M2mselectComponent {
|
|
|
42
43
|
*/
|
|
43
44
|
this.onTouched = () => { };
|
|
44
45
|
}
|
|
45
|
-
/**
|
|
46
|
-
* On Destroy clears subscriptions.
|
|
47
|
-
*/
|
|
48
|
-
ngOnDestroy() {
|
|
49
|
-
this._subscription.next();
|
|
50
|
-
this._subscription.complete();
|
|
51
|
-
}
|
|
52
46
|
/**
|
|
53
47
|
* OnChange register from controlValueAccessor
|
|
54
48
|
* @param onChange callback
|
|
@@ -86,7 +80,7 @@ export class M2mselectComponent {
|
|
|
86
80
|
// Create form control for typeahead and subscribe for changes
|
|
87
81
|
this.fc = new UntypedFormControl('');
|
|
88
82
|
this.fc.valueChanges
|
|
89
|
-
.pipe(
|
|
83
|
+
.pipe(takeUntilDestroyed(this.destroy$), distinctUntilChanged())
|
|
90
84
|
.subscribe((value) => {
|
|
91
85
|
if (value) {
|
|
92
86
|
this.onAdd(value);
|
|
@@ -243,7 +237,7 @@ export class M2mselectComponent {
|
|
|
243
237
|
* @private
|
|
244
238
|
*/
|
|
245
239
|
_search(text$) {
|
|
246
|
-
return text$.pipe(
|
|
240
|
+
return text$.pipe(takeUntilDestroyed(this.destroy$), debounceTime(750), distinctUntilChanged(), switchMap((term) => {
|
|
247
241
|
const f = {};
|
|
248
242
|
for (const k of Object.keys(this.filter)) {
|
|
249
243
|
if (this.filter[k] !== null || this.filter[k] !== undefined) {
|
|
@@ -256,8 +250,8 @@ export class M2mselectComponent {
|
|
|
256
250
|
return qs.get();
|
|
257
251
|
}));
|
|
258
252
|
}
|
|
259
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
260
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
253
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: M2mselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
254
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: M2mselectComponent, isStandalone: true, selector: "data-m2mselect", inputs: { model: "model", field: "field", edit: "edit", values: "values", queryset: "queryset", collection: "collection", filter: "filter", mode: "mode", display: "display", search: "search", label: "label", placeholder: "placeholder", emptyLabel: "emptyLabel", inputClasses: "inputClasses" }, outputs: { added: "added", removed: "removed", cancelled: "cancelled", cleared: "cleared", detailsChanged: "detailsChanged", changed: "changed" }, providers: [
|
|
261
255
|
{
|
|
262
256
|
provide: NG_VALUE_ACCESSOR,
|
|
263
257
|
multi: true,
|
|
@@ -265,7 +259,7 @@ export class M2mselectComponent {
|
|
|
265
259
|
},
|
|
266
260
|
], ngImport: i0, template: "\n<div class=\"form-group\">\n <label *ngIf=\"label\">{{label}}</label>\n <div class=\"input-group\">\n <input class=\"form-control\" [formControl]=\"fc\" [placeholder]=\"placeholder\" [ngbTypeahead]=\"searchFn\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"displayFn\" [resultFormatter]=\"displayFn\" (keyup.escape)=\"cancelled.emit()\">\n <div class=\"input-group-text\"><i class=\"bi bi-trash float-end pointer\" (click)=\"cleared.emit()\"></i></div>\n </div>\n <div *ngFor=\"let i of values\"><i class=\"bi bi-trash ms-2 float-end\" (click)=\"onRemove(i)\"></i>{{displayFn(i)}}</div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }, { kind: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i3.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "selectOnExact", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }] }); }
|
|
267
261
|
}
|
|
268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
262
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: M2mselectComponent, decorators: [{
|
|
269
263
|
type: Component,
|
|
270
264
|
args: [{ selector: 'data-m2mselect', providers: [
|
|
271
265
|
{
|
|
@@ -315,4 +309,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
315
309
|
}], changed: [{
|
|
316
310
|
type: Output
|
|
317
311
|
}] } });
|
|
318
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibTJtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kaXNwZWRpdC9tMm1zZWxlY3QvbTJtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kaXNwZWRpdC9tMm1zZWxlY3QvbTJtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsa0JBQWtCLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsY0FBYyxFQUVkLE9BQU8sRUFDUCxTQUFTLEdBQ1YsTUFBTSxNQUFNLENBQUM7QUFHZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQWdCaEUsTUFBTSxPQUFPLGtCQUFrQjtJQWQvQjtRQW9Ca0IsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUd0QixRQUFHLEdBQWEsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJUixXQUFNLEdBQWUsRUFBRSxDQUFDO1FBQ3hCLFNBQUksR0FBdUMsTUFBTSxDQUFDO1FBRWxELFdBQU0sR0FBRyxRQUFRLENBQUM7UUFDbEMsVUFBVTtRQUNNLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixlQUFVLEdBQUcsRUFBRSxDQUFD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c0JBQXBCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFFVSxNQUFNO3NCQUFyQixLQUFLO2dCQUlVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUVVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBRVcsS0FBSztzQkFBckIsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLFNBQVM7c0JBQXpCLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxjQUFjO3NCQUE5QixNQUFNO2dCQUNVLE9BQU87c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmlsdGVyRGF0YSwgUXVlcnlzZXQgfSBmcm9tICcuLi8uLi9kYXRhL2RhdGEtcXVlcnknO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2RhdGEvZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7XG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaXJzdFZhbHVlRnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRwbEZ1biB9IGZyb20gJy4uL2Zrc2VsZWN0L2Zrc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nYlR5cGVhaGVhZE1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YS1tMm1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbTJtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbTJtc2VsZWN0LmNvbXBvbmVudC5zYXNzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogTTJtc2VsZWN0Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5nYlR5cGVhaGVhZE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE0ybXNlbGVjdENvbXBvbmVudDxUIGV4dGVuZHMgRGF0YU1vZGVsLCBSIGV4dGVuZHMgRGF0YU1vZGVsPlxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3Nvclxue1xuICAvLyBNb2RlbCBmaWVsZCB2YWx1ZSAmIHVwZGF0ZSBkYXRhXG4gIEBJbnB1dCgpIHB1YmxpYyBtb2RlbD86IFQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZD86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGVkaXQgPSBmYWxzZTtcbiAgLy8gUmF3IHZhbHVlXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWx1ZXMhOiBSW107XG4gIHB1YmxpYyBwa3M6IG51bWJlcltdID0gW107XG4gIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICAvLyBGayBmaWVsZHMsIGVpdGhlciBtb2RlbCAvIHF1ZXJ5c2V0IC8gY29sbGVjdGlvbiBtdXN0IGJlIGdpdmVuXG4gIEBJbnB1dCgpIHB1YmxpYyBxdWVyeXNldD86IFF1ZXJ5c2V0PFI+O1xuICBASW5wdXQoKSBwdWJsaWMgY29sbGVjdGlvbj86IENvbGxlY3Rpb248Uj47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXI6IEZpbHRlckRhdGEgPSB7fTtcbiAgQElucHV0KCkgcHVibGljIG1vZGU6ICdhdXRvY29tcGxldGUnIHwgJ3NlbGVjdCcgfCAnYXV0bycgPSAnYXV0byc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5Pzogc3RyaW5nIHwgVHBsRnVuPFI+O1xuICBASW5wdXQoKSBwdWJsaWMgc2VhcmNoID0gJ3NlYXJjaCc7XG4gIC8vIERpc3BsYXlcbiAgQElucHV0KCkgcHVibGljIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgZW1wdHlMYWJlbCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRDbGFzc2VzOiBzdHJpbmdbXSB8IHN0cmluZyA9IFtdO1xuICAvLyBPdXRwdXRzXG4gIEBPdXRwdXQoKSBwdWJsaWMgYWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFI+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Uj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBjYW5jZWxsZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xlYXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBkZXRhaWxzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UltdPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcltdPigpO1xuXG4gIHB1YmxpYyBmYyE6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHVibGljIHNlYXJjaEZuID0gdGhpcy5fc2VhcmNoLmJpbmQodGhpcyk7XG4gIHB1YmxpYyBkaXNwbGF5Rm4gPSB0aGlzLl9kaXNwbGF5LmJpbmQodGhpcyk7XG4gIHByaXZhdGUgdG91Y2hlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb24gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF90cGwhOiBUcGxGdW48Uj47XG5cbiAgLyoqXG4gICAqIENvbnRyb2wgdmFsdWUgYWNjZXNzb3Igb25DaGFuZ2UgZHVtbXkgY2FsbGJhY2s7XG4gICAqIEBwYXJhbSBma3NcbiAgICovXG4gIHB1YmxpYyBvbkNoYW5nZSA9IChma3M6IG51bWJlcltdKSA9PiB7fTtcblxuICAvKipcbiAgICogQ29udHJvbCB2YWx1ZSBhY2Nlc3NvciBvblRvdWNoZWQgZHVtbXkgY2FsbGJhY2s7XG4gICAqL1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgLyoqXG4gICAqIE9uIERlc3Ryb3kgY2xlYXJzIHN1YnNjcmlwdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLm5leHQoKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbkNoYW5nZSByZWdpc3RlciBmcm9tIGNvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gICAqIEBwYXJhbSBvbkNoYW5nZSBjYWxsYmFja1xuICAgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uVG91Y2hlZCByZWdpc3RlciBmcm9tIGNvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gICAqIEBwYXJhbSBvblRvdWNoZWQgY2FsbGJhY2tcbiAgICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICAvKipcbiAgICogT25Jbml0IDpcbiAgICogLSBlbnN1cmVzIHF1ZXJ5c2V0IGlzIGF2YWlsYWJsZVxuICAgKiAtIGNyZWF0ZXMgZm9ybSBjb250cm9sIGZvciBpbnB1dFxuICAgKiAtIGNyZWF0ZXMgZGlzcGxheSBmdW5jdGlvblxuICAgKiAtIGVuc3VyZSB2YWx1ZXMgYXJlIHNldCBmcm9tIGFueSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgcXVlcnlzZXQgaWYgbm90IGdpdmVuXG4gICAgLy8gcXVlcnlzZXQgaXMgY3JlYXRlIHRocm91Z2ggbW9kZWxcbiAgICBpZiAoIXRoaXMucXVlcnlzZXQgJiYgdGhpcy5jb2xsZWN0aW9uKSB7XG4gICAgICB0aGlzLnF1ZXJ5c2V0ID0gdGhpcy5jb2xsZWN0aW9uLnF1ZXJ5c2V0KCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5xdWVyeXNldCAmJiB0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwuX2NvbGxlY3Rpb24pIHtcbiAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHRoaXMubW9kZWwuX2NvbGxlY3Rpb247XG4gICAgICB0aGlzLnF1ZXJ5c2V0ID0gdGhpcy5jb2xsZWN0aW9uLnF1ZXJ5c2V0KCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5xdWVyeXNldCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ3F1ZXJ5c2V0IGlzIG1hbmRhdG9yeSBmb3IgbTJtIHNlbGVjdCcpO1xuICAgIH1cbiAgICAvLyBDcmVhdGUgZm9ybSBjb250cm9sIGZvciB0eXBlYWhlYWQgYW5kIHN1YnNjcmliZSBmb3IgY2hhbmdlc1xuICAgIHRoaXMuZmMgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKTtcbiAgICB0aGlzLmZjLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3N1YnNjcmlwdGlvbiksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICB0aGlzLm9uQWRkKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgLy8gU2V0IGRpc3BsYXkgZnVuY3Rpb25cbiAgICBpZiAodGhpcy5kaXNwbGF5KSB7XG4gICAgICBpZiAodGhpcy5kaXNwbGF5ICYmIHR5cGVvZiB0aGlzLmRpc3BsYXkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuX3RwbCA9IChtb2RlbDogUikgPT4gYCR7KG1vZGVsIGFzIGFueSlbdGhpcy5kaXNwbGF5IGFzIHN0cmluZ119YDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kaXNwbGF5ICYmIHR5cGVvZiB0aGlzLmRpc3BsYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhpcy5fdHBsID0gdGhpcy5kaXNwbGF5LmJpbmQodGhpcyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RwbCA9IChtb2RlbDogUikgPT5cbiAgICAgICAgYCR7XG4gICAgICAgICAgKG1vZGVsIGFzIGFueSlbJ25hbWUnXSB8fFxuICAgICAgICAgIChtb2RlbCBhcyBhbnkpWyd0aXRsZSddIHx8XG4gICAgICAgICAgKG1vZGVsIGFzIGFueSlbJ2lkJ11cbiAgICAgICAgfWA7XG4gICAgfVxuICAgIC8vIEdldCB2YWx1ZXMgZnJvbSBtb2RlbCBpZiBub3QgYWxyZWFkeSBnaXZlblxuICAgIC8vIFRPRE86IGNoZWNrIGlmIHRoaXMgaXMgbmVjZXNzYXJ5XG4gICAgaWYgKCF0aGlzLnZhbHVlcyAmJiB0aGlzLm1vZGVsICYmIHRoaXMuZmllbGQpIHtcbiAgICAgIHRoaXMudmFsdWVzID0gKHRoaXMubW9kZWwgYXMgYW55KVt0aGlzLmZpZWxkICsgJ19kZXRhaWxzJ107XG4gICAgfVxuICAgIGlmICh0aGlzLnZhbHVlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdubyB2YWx1ZXMgYXZhaWxhYmxlIGZvciAnLCB0aGlzLm1vZGVsLCB0aGlzLmZpZWxkKTtcbiAgICAgIHRocm93IEVycm9yKCdubyB2YWx1ZXMgYXZhaWxhYmxlJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHZhbHVlLlxuICAgKiBFbWl0cyBkZXRhaWxzQ2hhbmdlZCwgY2hhbmdlZCBhbmQgcmVtb3ZlZCBzaWduYWxzLlxuICAgKiBAcGFyYW0gaSBpbnN0YW5jZSB0byBiZSByZW1vdmVkXG4gICAqL1xuICBwdWJsaWMgb25SZW1vdmUoaTogUikge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICBjb25zdCBwcyA9IHRoaXMucGtzLmluZGV4T2YoaS5pZCk7XG4gICAgICB0aGlzLnBrcy5zcGxpY2UocHMsIDEpO1xuICAgICAgdGhpcy52YWx1ZXMuc3BsaWNlKHBzLCAxKTtcbiAgICAgIHRoaXMuZGV0YWlsc0NoYW5nZWQuZW1pdCh0aGlzLnZhbHVlcyk7XG4gICAgICB0aGlzLmNoYW5nZWQuZW1pdCh0aGlzLnBrcyk7XG4gICAgICB0aGlzLnJlbW92ZWQuZW1pdChpKTtcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5wa3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB2YWx1ZS5cbiAgICogRW1pdHMgZGV0YWlsc0NoYW5nZWQsIGNoYW5nZWQgYW5kIGFkZGVkIHNpZ25hbHMuXG4gICAqIEBwYXJhbSBpIGluc3RhbmNlIHRvIGJlIGFkZGVkLlxuICAgKi9cbiAgcHVibGljIG9uQWRkKGk6IFIpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5wa3MucHVzaChpLmlkKTtcbiAgICAgIHRoaXMudmFsdWVzLnB1c2goaSk7XG4gICAgICB0aGlzLmRldGFpbHNDaGFuZ2VkLmVtaXQodGhpcy52YWx1ZXMpO1xuICAgICAgdGhpcy5jaGFuZ2VkLmVtaXQodGhpcy5wa3MpO1xuICAgICAgdGhpcy5hZGRlZC5lbWl0KGkpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnBrcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCB2YWx1ZXMuXG4gICAqIEVtaXRzIGRldGFpbHNDaGFuZ2VkLCBjaGFuZ2VkIGFuZCBjbGVhcmVkIHNpZ25hbHMuXG4gICAqL1xuICBwdWJsaWMgb25DbGVhcigpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5wa3MgPSBbXTtcbiAgICAgIHRoaXMudmFsdWVzID0gW107XG4gICAgICB0aGlzLmRldGFpbHNDaGFuZ2VkLmVtaXQodGhpcy52YWx1ZXMpO1xuICAgICAgdGhpcy5jaGFuZ2VkLmVtaXQodGhpcy5wa3MpO1xuICAgICAgdGhpcy5jbGVhcmVkLmVtaXQoKTtcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5wa3MpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZSB2YWx1ZSBmcm9tIGNvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAcGFyYW0gcGtzXG4gICAqL1xuICBhc3luYyB3cml0ZVZhbHVlKHBrczogbnVtYmVyW10pIHtcbiAgICB0aGlzLnBrcyA9IHBrcztcbiAgICBhd2FpdCB0aGlzLl9nZXREaXNwbGF5VmFsdWVzKHBrcyk7XG4gIH1cblxuICAvKipcbiAgICogTWFyayBhcyB0b3VjaGVkLlxuICAgKi9cbiAgcHVibGljIG1hcmtBc1RvdWNoZWQoKSB7XG4gICAgaWYgKCF0aGlzLnRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICB0aGlzLnRvdWNoZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrIGFzIGRpc2FibGVkLlxuICAgKiBAcGFyYW0gZGlzYWJsZWRcbiAgICovXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgZGlzcGxheSB2YWx1ZXMgZm9yIGN1cnJlbnQgc2V0IG9mIHBrcy5cbiAgICogRXZlbnR1YWxseSBmZXRjaGVzIGl0ZW1zIGZyb20gY29sbGVjdGlvbi5cbiAgICogRW1pdHMgZGV0YWlsc0NoYW5nZWQgc2lnbmFsLlxuICAgKiBAcGFyYW0gcGtzIGxpc3Qgb2YgY3VycmVudCBwa3MuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIF9nZXREaXNwbGF5VmFsdWVzKHBrczogbnVtYmVyW10gPSBbXSkge1xuICAgIGNvbnN0IHZhbHVlczogUltdID0gW107XG4gICAgZm9yIChjb25zdCBrIG9mIHBrcykge1xuICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgICBmb3IgKGxldCB2IG9mIHRoaXMudmFsdWVzKSB7XG4gICAgICAgIGlmICh2LmlkID09IGspIHtcbiAgICAgICAgICB2YWx1ZXMucHVzaCh2KTtcbiAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICghZm91bmQpIHtcbiAgICAgICAgaWYgKHRoaXMuY29sbGVjdGlvbikge1xuICAgICAgICAgIHZhbHVlcy5wdXNoKGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuY29sbGVjdGlvbi5mZXRjaChrKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlcy5wdXNoKHsgaWQ6IGssIF9kaXNwbGF5OiAnVW5rbm93bicgfSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xuICAgIHRoaXMuZGV0YWlsc0NoYW5nZWQubmV4dCh0aGlzLnZhbHVlcyk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheSBmdW5jdGlvbi4gVXNlcyBkZXNjZmllbGQgb3IgZGVzYyB0cGwgKGxvZGFzaCB0ZW1wbGF0ZSB1c2luZyBtb2RlbCBmaWVsZHMpLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlzcGxheSh4OiBhbnkpOiBhbnkge1xuICAgIGlmICh4KSB7XG4gICAgICBpZiAoeC5fZGlzcGxheSkge1xuICAgICAgICBpZiAoeC5fZGlzcGxheSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHguX2Rpc3BsYXkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4geC5fZGlzcGxheTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX3RwbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHBsKHgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoIGZ1bmN0aW9uLlxuICAgKiBAcGFyYW0gdGV4dCRcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX3NlYXJjaCh0ZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGV4dCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9zdWJzY3JpcHRpb24pLFxuICAgICAgZGVib3VuY2VUaW1lKDc1MCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKCh0ZXJtKSA9PiB7XG4gICAgICAgIGNvbnN0IGY6IGFueSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXModGhpcy5maWx0ZXIpKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZmlsdGVyW2tdICE9PSBudWxsIHx8IHRoaXMuZmlsdGVyW2tdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZba10gPSB0aGlzLmZpbHRlcltrXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZlt0aGlzLnNlYXJjaF0gPSB0ZXJtO1xuICAgICAgICBjb25zdCBxcyA9IHRoaXMucXVlcnlzZXQgYXMgUXVlcnlzZXQ8YW55PjtcbiAgICAgICAgcXMuZmlsdGVyKGYsIHRydWUpO1xuICAgICAgICByZXR1cm4gcXMuZ2V0KCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsIlxuPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsfX08L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cbiAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbZm9ybUNvbnRyb2xdPVwiZmNcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbbmdiVHlwZWFoZWFkXT1cInNlYXJjaEZuXCIgW2VkaXRhYmxlXT1cImZhbHNlXCIgW2ZvY3VzRmlyc3RdPVwidHJ1ZVwiIFtpbnB1dEZvcm1hdHRlcl09XCJkaXNwbGF5Rm5cIiBbcmVzdWx0Rm9ybWF0dGVyXT1cImRpc3BsYXlGblwiIChrZXl1cC5lc2NhcGUpPVwiY2FuY2VsbGVkLmVtaXQoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaCBmbG9hdC1lbmQgcG9pbnRlclwiIChjbGljayk9XCJjbGVhcmVkLmVtaXQoKVwiPjwvaT48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nRm9yPVwibGV0IGkgb2YgdmFsdWVzXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaCBtcy0yIGZsb2F0LWVuZFwiIChjbGljayk9XCJvblJlbW92ZShpKVwiPjwvaT57e2Rpc3BsYXlGbihpKX19PC9kaXY+XG48L2Rpdj4iXX0=
|
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibTJtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kaXNwZWRpdC9tMm1zZWxlY3QvbTJtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kaXNwZWRpdC9tMm1zZWxlY3QvbTJtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixrQkFBa0IsR0FDbkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixjQUFjLEdBRWYsTUFBTSxNQUFNLENBQUM7QUFHZCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQWdCaEUsTUFBTSxPQUFPLGtCQUFrQjtJQWQvQjtRQW9Ca0IsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUd0QixRQUFHLEdBQWEsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJUixXQUFNLEdBQWUsRUFBRSxDQUFDO1FBQ3hCLFNBQUksR0FBdUMsTUFBTSxDQUFDO1FBRWxELFdBQU0sR0FBRyxRQUFRLENBQUM7UUFDbEMsVUFBVTtRQUNNLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxn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SVUsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBRVUsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFFVyxLQUFLO3NCQUFyQixNQUFNO2dCQUNVLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsU0FBUztzQkFBekIsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLGNBQWM7c0JBQTlCLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJEYXRhLCBRdWVyeXNldCB9IGZyb20gJy4uLy4uL2RhdGEvZGF0YS1xdWVyeSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vZGF0YS9kYXRhLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpcnN0VmFsdWVGcm9tLFxuICBPYnNlcnZhYmxlLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRwbEZ1biB9IGZyb20gJy4uL2Zrc2VsZWN0L2Zrc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nYlR5cGVhaGVhZE1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YS1tMm1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbTJtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbTJtc2VsZWN0LmNvbXBvbmVudC5zYXNzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogTTJtc2VsZWN0Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5nYlR5cGVhaGVhZE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIE0ybXNlbGVjdENvbXBvbmVudDxUIGV4dGVuZHMgRGF0YU1vZGVsLCBSIGV4dGVuZHMgRGF0YU1vZGVsPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgLy8gTW9kZWwgZmllbGQgdmFsdWUgJiB1cGRhdGUgZGF0YVxuICBASW5wdXQoKSBwdWJsaWMgbW9kZWw/OiBUO1xuICBASW5wdXQoKSBwdWJsaWMgZmllbGQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBlZGl0ID0gZmFsc2U7XG4gIC8vIFJhdyB2YWx1ZVxuICBASW5wdXQoKSBwdWJsaWMgdmFsdWVzITogUltdO1xuICBwdWJsaWMgcGtzOiBudW1iZXJbXSA9IFtdO1xuICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcbiAgLy8gRmsgZmllbGRzLCBlaXRoZXIgbW9kZWwgLyBxdWVyeXNldCAvIGNvbGxlY3Rpb24gbXVzdCBiZSBnaXZlblxuICBASW5wdXQoKSBwdWJsaWMgcXVlcnlzZXQ/OiBRdWVyeXNldDxSPjtcbiAgQElucHV0KCkgcHVibGljIGNvbGxlY3Rpb24/OiBDb2xsZWN0aW9uPFI+O1xuICBASW5wdXQoKSBwdWJsaWMgZmlsdGVyOiBGaWx0ZXJEYXRhID0ge307XG4gIEBJbnB1dCgpIHB1YmxpYyBtb2RlOiAnYXV0b2NvbXBsZXRlJyB8ICdzZWxlY3QnIHwgJ2F1dG8nID0gJ2F1dG8nO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzcGxheT86IHN0cmluZyB8IFRwbEZ1bjxSPjtcbiAgQElucHV0KCkgcHVibGljIHNlYXJjaCA9ICdzZWFyY2gnO1xuICAvLyBEaXNwbGF5XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGVtcHR5TGFiZWwgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGlucHV0Q2xhc3Nlczogc3RyaW5nW10gfCBzdHJpbmcgPSBbXTtcbiAgLy8gT3V0cHV0c1xuICBAT3V0cHV0KCkgcHVibGljIGFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxSPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFI+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2FuY2VsbGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGNsZWFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgZGV0YWlsc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJbXT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4oKTtcblxuICBwdWJsaWMgZmMhOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBzZWFyY2hGbiA9IHRoaXMuX3NlYXJjaC5iaW5kKHRoaXMpO1xuICBwdWJsaWMgZGlzcGxheUZuID0gdGhpcy5fZGlzcGxheS5iaW5kKHRoaXMpO1xuICBwcml2YXRlIHRvdWNoZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdHBsITogVHBsRnVuPFI+O1xuICBwcml2YXRlIGRlc3Ryb3kkID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAvKipcbiAgICogQ29udHJvbCB2YWx1ZSBhY2Nlc3NvciBvbkNoYW5nZSBkdW1teSBjYWxsYmFjaztcbiAgICogQHBhcmFtIGZrc1xuICAgKi9cbiAgcHVibGljIG9uQ2hhbmdlID0gKGZrczogbnVtYmVyW10pID0+IHt9O1xuXG4gIC8qKlxuICAgKiBDb250cm9sIHZhbHVlIGFjY2Vzc29yIG9uVG91Y2hlZCBkdW1teSBjYWxsYmFjaztcbiAgICovXG4gIHB1YmxpYyBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogT25DaGFuZ2UgcmVnaXN0ZXIgZnJvbSBjb250cm9sVmFsdWVBY2Nlc3NvclxuICAgKiBAcGFyYW0gb25DaGFuZ2UgY2FsbGJhY2tcbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPblRvdWNoZWQgcmVnaXN0ZXIgZnJvbSBjb250cm9sVmFsdWVBY2Nlc3NvclxuICAgKiBAcGFyYW0gb25Ub3VjaGVkIGNhbGxiYWNrXG4gICAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIE9uSW5pdCA6XG4gICAqIC0gZW5zdXJlcyBxdWVyeXNldCBpcyBhdmFpbGFibGVcbiAgICogLSBjcmVhdGVzIGZvcm0gY29udHJvbCBmb3IgaW5wdXRcbiAgICogLSBjcmVhdGVzIGRpc3BsYXkgZnVuY3Rpb25cbiAgICogLSBlbnN1cmUgdmFsdWVzIGFyZSBzZXQgZnJvbSBhbnkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQ3JlYXRlIHF1ZXJ5c2V0IGlmIG5vdCBnaXZlblxuICAgIC8vIHF1ZXJ5c2V0IGlzIGNyZWF0ZSB0aHJvdWdoIG1vZGVsXG4gICAgaWYgKCF0aGlzLnF1ZXJ5c2V0ICYmIHRoaXMuY29sbGVjdGlvbikge1xuICAgICAgdGhpcy5xdWVyeXNldCA9IHRoaXMuY29sbGVjdGlvbi5xdWVyeXNldCgpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMucXVlcnlzZXQgJiYgdGhpcy5tb2RlbCAmJiB0aGlzLm1vZGVsLl9jb2xsZWN0aW9uKSB7XG4gICAgICB0aGlzLmNvbGxlY3Rpb24gPSB0aGlzLm1vZGVsLl9jb2xsZWN0aW9uO1xuICAgICAgdGhpcy5xdWVyeXNldCA9IHRoaXMuY29sbGVjdGlvbi5xdWVyeXNldCgpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucXVlcnlzZXQpIHtcbiAgICAgIHRocm93IEVycm9yKCdxdWVyeXNldCBpcyBtYW5kYXRvcnkgZm9yIG0ybSBzZWxlY3QnKTtcbiAgICB9XG4gICAgLy8gQ3JlYXRlIGZvcm0gY29udHJvbCBmb3IgdHlwZWFoZWFkIGFuZCBzdWJzY3JpYmUgZm9yIGNoYW5nZXNcbiAgICB0aGlzLmZjID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJyk7XG4gICAgdGhpcy5mYy52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMub25BZGQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAvLyBTZXQgZGlzcGxheSBmdW5jdGlvblxuICAgIGlmICh0aGlzLmRpc3BsYXkpIHtcbiAgICAgIGlmICh0aGlzLmRpc3BsYXkgJiYgdHlwZW9mIHRoaXMuZGlzcGxheSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5fdHBsID0gKG1vZGVsOiBSKSA9PiBgJHsobW9kZWwgYXMgYW55KVt0aGlzLmRpc3BsYXkgYXMgc3RyaW5nXX1gO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXkgJiYgdHlwZW9mIHRoaXMuZGlzcGxheSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLl90cGwgPSB0aGlzLmRpc3BsYXkuYmluZCh0aGlzKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdHBsID0gKG1vZGVsOiBSKSA9PlxuICAgICAgICBgJHtcbiAgICAgICAgICAobW9kZWwgYXMgYW55KVsnbmFtZSddIHx8XG4gICAgICAgICAgKG1vZGVsIGFzIGFueSlbJ3RpdGxlJ10gfHxcbiAgICAgICAgICAobW9kZWwgYXMgYW55KVsnaWQnXVxuICAgICAgICB9YDtcbiAgICB9XG4gICAgLy8gR2V0IHZhbHVlcyBmcm9tIG1vZGVsIGlmIG5vdCBhbHJlYWR5IGdpdmVuXG4gICAgLy8gVE9ETzogY2hlY2sgaWYgdGhpcyBpcyBuZWNlc3NhcnlcbiAgICBpZiAoIXRoaXMudmFsdWVzICYmIHRoaXMubW9kZWwgJiYgdGhpcy5maWVsZCkge1xuICAgICAgdGhpcy52YWx1ZXMgPSAodGhpcy5tb2RlbCBhcyBhbnkpW3RoaXMuZmllbGQgKyAnX2RldGFpbHMnXTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFsdWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ25vIHZhbHVlcyBhdmFpbGFibGUgZm9yICcsIHRoaXMubW9kZWwsIHRoaXMuZmllbGQpO1xuICAgICAgdGhyb3cgRXJyb3IoJ25vIHZhbHVlcyBhdmFpbGFibGUnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgdmFsdWUuXG4gICAqIEVtaXRzIGRldGFpbHNDaGFuZ2VkLCBjaGFuZ2VkIGFuZCByZW1vdmVkIHNpZ25hbHMuXG4gICAqIEBwYXJhbSBpIGluc3RhbmNlIHRvIGJlIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyBvblJlbW92ZShpOiBSKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIGNvbnN0IHBzID0gdGhpcy5wa3MuaW5kZXhPZihpLmlkKTtcbiAgICAgIHRoaXMucGtzLnNwbGljZShwcywgMSk7XG4gICAgICB0aGlzLnZhbHVlcy5zcGxpY2UocHMsIDEpO1xuICAgICAgdGhpcy5kZXRhaWxzQ2hhbmdlZC5lbWl0KHRoaXMudmFsdWVzKTtcbiAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KHRoaXMucGtzKTtcbiAgICAgIHRoaXMucmVtb3ZlZC5lbWl0KGkpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnBrcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHZhbHVlLlxuICAgKiBFbWl0cyBkZXRhaWxzQ2hhbmdlZCwgY2hhbmdlZCBhbmQgYWRkZWQgc2lnbmFscy5cbiAgICogQHBhcmFtIGkgaW5zdGFuY2UgdG8gYmUgYWRkZWQuXG4gICAqL1xuICBwdWJsaWMgb25BZGQoaTogUikge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLnBrcy5wdXNoKGkuaWQpO1xuICAgICAgdGhpcy52YWx1ZXMucHVzaChpKTtcbiAgICAgIHRoaXMuZGV0YWlsc0NoYW5nZWQuZW1pdCh0aGlzLnZhbHVlcyk7XG4gICAgICB0aGlzLmNoYW5nZWQuZW1pdCh0aGlzLnBrcyk7XG4gICAgICB0aGlzLmFkZGVkLmVtaXQoaSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMucGtzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgYWxsIHZhbHVlcy5cbiAgICogRW1pdHMgZGV0YWlsc0NoYW5nZWQsIGNoYW5nZWQgYW5kIGNsZWFyZWQgc2lnbmFscy5cbiAgICovXG4gIHB1YmxpYyBvbkNsZWFyKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLnBrcyA9IFtdO1xuICAgICAgdGhpcy52YWx1ZXMgPSBbXTtcbiAgICAgIHRoaXMuZGV0YWlsc0NoYW5nZWQuZW1pdCh0aGlzLnZhbHVlcyk7XG4gICAgICB0aGlzLmNoYW5nZWQuZW1pdCh0aGlzLnBrcyk7XG4gICAgICB0aGlzLmNsZWFyZWQuZW1pdCgpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnBrcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlIHZhbHVlIGZyb20gY29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqIEBwYXJhbSBwa3NcbiAgICovXG4gIGFzeW5jIHdyaXRlVmFsdWUocGtzOiBudW1iZXJbXSkge1xuICAgIHRoaXMucGtzID0gcGtzO1xuICAgIGF3YWl0IHRoaXMuX2dldERpc3BsYXlWYWx1ZXMocGtzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJrIGFzIHRvdWNoZWQuXG4gICAqL1xuICBwdWJsaWMgbWFya0FzVG91Y2hlZCgpIHtcbiAgICBpZiAoIXRoaXMudG91Y2hlZCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1hcmsgYXMgZGlzYWJsZWQuXG4gICAqIEBwYXJhbSBkaXNhYmxlZFxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZSBkaXNwbGF5IHZhbHVlcyBmb3IgY3VycmVudCBzZXQgb2YgcGtzLlxuICAgKiBFdmVudHVhbGx5IGZldGNoZXMgaXRlbXMgZnJvbSBjb2xsZWN0aW9uLlxuICAgKiBFbWl0cyBkZXRhaWxzQ2hhbmdlZCBzaWduYWwuXG4gICAqIEBwYXJhbSBwa3MgbGlzdCBvZiBjdXJyZW50IHBrcy5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgX2dldERpc3BsYXlWYWx1ZXMocGtzOiBudW1iZXJbXSA9IFtdKSB7XG4gICAgY29uc3QgdmFsdWVzOiBSW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGsgb2YgcGtzKSB7XG4gICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgIGZvciAobGV0IHYgb2YgdGhpcy52YWx1ZXMpIHtcbiAgICAgICAgaWYgKHYuaWQgPT0gaykge1xuICAgICAgICAgIHZhbHVlcy5wdXNoKHYpO1xuICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICBpZiAodGhpcy5jb2xsZWN0aW9uKSB7XG4gICAgICAgICAgdmFsdWVzLnB1c2goYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5jb2xsZWN0aW9uLmZldGNoKGspKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWVzLnB1c2goeyBpZDogaywgX2Rpc3BsYXk6ICdVbmtub3duJyB9IGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgdGhpcy5kZXRhaWxzQ2hhbmdlZC5uZXh0KHRoaXMudmFsdWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGZ1bmN0aW9uLiBVc2VzIGRlc2NmaWVsZCBvciBkZXNjIHRwbCAobG9kYXNoIHRlbXBsYXRlIHVzaW5nIG1vZGVsIGZpZWxkcykuXG4gICAqL1xuICBwcml2YXRlIF9kaXNwbGF5KHg6IGFueSk6IGFueSB7XG4gICAgaWYgKHgpIHtcbiAgICAgIGlmICh4Ll9kaXNwbGF5KSB7XG4gICAgICAgIGlmICh4Ll9kaXNwbGF5IGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgICAgICByZXR1cm4geC5fZGlzcGxheSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB4Ll9kaXNwbGF5O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fdHBsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90cGwoeCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWFyY2ggZnVuY3Rpb24uXG4gICAqIEBwYXJhbSB0ZXh0JFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBfc2VhcmNoKHRleHQkOiBPYnNlcnZhYmxlPHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0ZXh0JC5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveSQpLFxuICAgICAgZGVib3VuY2VUaW1lKDc1MCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKCh0ZXJtKSA9PiB7XG4gICAgICAgIGNvbnN0IGY6IGFueSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXModGhpcy5maWx0ZXIpKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZmlsdGVyW2tdICE9PSBudWxsIHx8IHRoaXMuZmlsdGVyW2tdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZba10gPSB0aGlzLmZpbHRlcltrXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZlt0aGlzLnNlYXJjaF0gPSB0ZXJtO1xuICAgICAgICBjb25zdCBxcyA9IHRoaXMucXVlcnlzZXQgYXMgUXVlcnlzZXQ8YW55PjtcbiAgICAgICAgcXMuZmlsdGVyKGYsIHRydWUpO1xuICAgICAgICByZXR1cm4gcXMuZ2V0KCk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iLCJcbjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9sYWJlbD5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW2Zvcm1Db250cm9sXT1cImZjXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW25nYlR5cGVhaGVhZF09XCJzZWFyY2hGblwiIFtlZGl0YWJsZV09XCJmYWxzZVwiIFtmb2N1c0ZpcnN0XT1cInRydWVcIiBbaW5wdXRGb3JtYXR0ZXJdPVwiZGlzcGxheUZuXCIgW3Jlc3VsdEZvcm1hdHRlcl09XCJkaXNwbGF5Rm5cIiAoa2V5dXAuZXNjYXBlKT1cImNhbmNlbGxlZC5lbWl0KClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2ggZmxvYXQtZW5kIHBvaW50ZXJcIiAoY2xpY2spPVwiY2xlYXJlZC5lbWl0KClcIj48L2k+PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBpIG9mIHZhbHVlc1wiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2ggbXMtMiBmbG9hdC1lbmRcIiAoY2xpY2spPVwib25SZW1vdmUoaSlcIj48L2k+e3tkaXNwbGF5Rm4oaSl9fTwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -96,10 +96,10 @@ export class RicheditComponent {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
100
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RicheditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: RicheditComponent, isStandalone: true, selector: "data-richedit", inputs: { model: "model", field: "field", editable: "editable", edit: "edit", mode: "mode", hideLabel: "hideLabel", hideButton: "hideButton", fc: "fc", toolbar: "toolbar" }, outputs: { changed: "changed" }, ngImport: i0, template: "\n<ng-template #editorTemplate>\n <div class=\"NgxEditor__Wrapper\">\n <ngx-editor-menu [editor]=\"editor\" [toolbar]=\"realToolbar\" *ngIf=\"edit && toolbar!=='none'\"></ngx-editor-menu>\n <ngx-editor [editor]=\"editor\" [formControl]=\"fc\" [placeholder]=\"''\"></ngx-editor>\n </div>\n <button class=\"btn btn-primary btn-sm w-100 mt-1\" *ngIf=\"edit && !hideButton\" (click)=\"save()\"><i class=\"bi bi-save me-2\"></i>Enregistrer</button>\n</ng-template>\n<ng-template #titleTpl>\n <ng-content></ng-content>\n</ng-template>\n<!-- Dd display-->\n<ng-container *ngIf=\"mode==='dd'\">\n <dt [class.required]=\"required\" *ngIf=\"!hideLabel\"><span class=\"editable\" (click)=\"toggleEdit()\" role=\"button\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container></span></dt>\n <dd [class.mb-0]=\"hideLabel\">\n <ng-container *ngTemplateOutlet=\"editorTemplate\"></ng-container>\n </dd>\n</ng-container>\n<!-- Inline display-->\n<ng-container *ngIf=\"mode==='inline'\">\n <ng-container *ngIf=\"!hideLabel\">\n <label [class.required]=\"required\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </label>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"editorTemplate\"></ng-container>\n</ng-container>\n<!-- Form display-->\n<ng-container *ngIf=\"mode==='form'\">\n <ng-container *ngIf=\"!hideLabel\">\n <label [class.required]=\"required\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </label>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"editorTemplate\"></ng-container>\n</ng-container>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NgxEditorModule }, { kind: "component", type: i2.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i2.MenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
|
|
101
101
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: RicheditComponent, decorators: [{
|
|
103
103
|
type: Component,
|
|
104
104
|
args: [{ selector: 'data-richedit', standalone: true, imports: [CommonModule, NgxEditorModule, ReactiveFormsModule], template: "\n<ng-template #editorTemplate>\n <div class=\"NgxEditor__Wrapper\">\n <ngx-editor-menu [editor]=\"editor\" [toolbar]=\"realToolbar\" *ngIf=\"edit && toolbar!=='none'\"></ngx-editor-menu>\n <ngx-editor [editor]=\"editor\" [formControl]=\"fc\" [placeholder]=\"''\"></ngx-editor>\n </div>\n <button class=\"btn btn-primary btn-sm w-100 mt-1\" *ngIf=\"edit && !hideButton\" (click)=\"save()\"><i class=\"bi bi-save me-2\"></i>Enregistrer</button>\n</ng-template>\n<ng-template #titleTpl>\n <ng-content></ng-content>\n</ng-template>\n<!-- Dd display-->\n<ng-container *ngIf=\"mode==='dd'\">\n <dt [class.required]=\"required\" *ngIf=\"!hideLabel\"><span class=\"editable\" (click)=\"toggleEdit()\" role=\"button\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container></span></dt>\n <dd [class.mb-0]=\"hideLabel\">\n <ng-container *ngTemplateOutlet=\"editorTemplate\"></ng-container>\n </dd>\n</ng-container>\n<!-- Inline display-->\n<ng-container *ngIf=\"mode==='inline'\">\n <ng-container *ngIf=\"!hideLabel\">\n <label [class.required]=\"required\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </label>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"editorTemplate\"></ng-container>\n</ng-container>\n<!-- Form display-->\n<ng-container *ngIf=\"mode==='form'\">\n <ng-container *ngIf=\"!hideLabel\">\n <label [class.required]=\"required\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </label>\n </ng-container>\n <ng-container *ngTemplateOutlet=\"editorTemplate\"></ng-container>\n</ng-container>" }]
|
|
105
105
|
}], propDecorators: { model: [{
|
|
@@ -76,10 +76,10 @@ export class SafeDeleteComponent {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
80
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SafeDeleteComponent, deps: [{ token: i1.NgbOffcanvas }, { token: i2.DataMessageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
80
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: SafeDeleteComponent, isStandalone: true, selector: "data-safe-delete", inputs: { model: "model", service: "service", actionFn: "actionFn", checks: "checks", messages: "messages", display: "display" }, outputs: { deleted: "deleted" }, viewQueries: [{ propertyName: "_dialogRef", first: true, predicate: ["dialog"], descendants: true, static: true }], ngImport: i0, template: "\n<ng-template #dialog let-offcanvas>\n <div class=\"offcanvas-header\">\n <h2 class=\"offcanvas-title text-danger text-center\"><i class=\"bi bi-trash me-2\"></i>Supprimer r\u00E9ellement ??</h2>\n </div>\n <div class=\"offcanvas-body text-danger\" *ngIf=\"result\">\n <div class=\"text-center my-4 fs-1\"><i class=\"bi bi-exclamation-diamond my-5\"></i></div>\n <div class=\"fs-4\">\n <p>La suppression de cet \u00E9l\u00E9ment supprimera {{result.count}} \u00E9l\u00E9ments dans la base de donn\u00E9es..</p>\n </div>\n <table class=\"table table-sm table-striped table-danger\">\n <thead>\n <tr>\n <th>Type d'\u00E9l\u00E9ment</th>\n <th>Nombre</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let rl of result.details\">\n <tr>\n <td>{{checks[rl[0]] ? checks[rl[0]] : rl[0]}}</td>\n <td>{{rl[1]}}</td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <button class=\"w-100 btn btn-lg btn-danger\" (click)=\"reallyDelete()\"><i class=\"bi bi-trash me-2\"></i>Je confirme la suppression</button>\n <button class=\"w-100 btn btn-outline-secondary my-3\" (click)=\"offcanvas.close()\"><i class=\"bi bi-door-open me-2\"></i>Je renonce \u00E0 la suppression</button>\n </div>\n</ng-template>\n<ng-template #contentTpl>\n <ng-content></ng-content>\n</ng-template>\n<button class=\"btn btn-sm btn-danger\" (click)=\"checkDelete(model)\" *ngIf=\"display==='button'\"><i class=\"bi bi-trash\"></i>\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n</button>\n<button class=\"btn btn-sm btn-outline-danger float-end\" (click)=\"checkDelete(model)\" *ngIf=\"display==='fbutton'\"><i class=\"bi bi-trash mx-2\"></i></button><i class=\"bi bi-trash mx-2\" (click)=\"checkDelete(model)\" *ngIf=\"display==='icon'\" role=\"button\"></i>\n<div (click)=\"checkDelete(model)\" *ngIf=\"display==='custom'\" role=\"button\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: NgbOffcanvasModule }] }); }
|
|
81
81
|
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: SafeDeleteComponent, decorators: [{
|
|
83
83
|
type: Component,
|
|
84
84
|
args: [{ selector: 'data-safe-delete', standalone: true, imports: [CommonModule, NgbOffcanvasModule], template: "\n<ng-template #dialog let-offcanvas>\n <div class=\"offcanvas-header\">\n <h2 class=\"offcanvas-title text-danger text-center\"><i class=\"bi bi-trash me-2\"></i>Supprimer r\u00E9ellement ??</h2>\n </div>\n <div class=\"offcanvas-body text-danger\" *ngIf=\"result\">\n <div class=\"text-center my-4 fs-1\"><i class=\"bi bi-exclamation-diamond my-5\"></i></div>\n <div class=\"fs-4\">\n <p>La suppression de cet \u00E9l\u00E9ment supprimera {{result.count}} \u00E9l\u00E9ments dans la base de donn\u00E9es..</p>\n </div>\n <table class=\"table table-sm table-striped table-danger\">\n <thead>\n <tr>\n <th>Type d'\u00E9l\u00E9ment</th>\n <th>Nombre</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngFor=\"let rl of result.details\">\n <tr>\n <td>{{checks[rl[0]] ? checks[rl[0]] : rl[0]}}</td>\n <td>{{rl[1]}}</td>\n </tr>\n </ng-container>\n </tbody>\n </table>\n <button class=\"w-100 btn btn-lg btn-danger\" (click)=\"reallyDelete()\"><i class=\"bi bi-trash me-2\"></i>Je confirme la suppression</button>\n <button class=\"w-100 btn btn-outline-secondary my-3\" (click)=\"offcanvas.close()\"><i class=\"bi bi-door-open me-2\"></i>Je renonce \u00E0 la suppression</button>\n </div>\n</ng-template>\n<ng-template #contentTpl>\n <ng-content></ng-content>\n</ng-template>\n<button class=\"btn btn-sm btn-danger\" (click)=\"checkDelete(model)\" *ngIf=\"display==='button'\"><i class=\"bi bi-trash\"></i>\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n</button>\n<button class=\"btn btn-sm btn-outline-danger float-end\" (click)=\"checkDelete(model)\" *ngIf=\"display==='fbutton'\"><i class=\"bi bi-trash mx-2\"></i></button><i class=\"bi bi-trash mx-2\" (click)=\"checkDelete(model)\" *ngIf=\"display==='icon'\" role=\"button\"></i>\n<div (click)=\"checkDelete(model)\" *ngIf=\"display==='custom'\" role=\"button\">\n <ng-container *ngTemplateOutlet=\"contentTpl\"></ng-container>\n</div>" }]
|
|
85
85
|
}], ctorParameters: () => [{ type: i1.NgbOffcanvas }, { type: i2.DataMessageService }], propDecorators: { model: [{
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, DestroyRef, inject, Input } from '@angular/core';
|
|
2
2
|
import { animate, style, transition, trigger } from '@angular/animations';
|
|
3
|
-
import { ReplaySubject, takeUntil } from 'rxjs';
|
|
4
3
|
import { CommonModule } from '@angular/common';
|
|
5
4
|
import { provideAnimations } from '@angular/platform-browser/animations';
|
|
5
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "../message.service";
|
|
8
8
|
import * as i2 from "@angular/common";
|
|
@@ -10,21 +10,17 @@ export class MessageZoneComponent {
|
|
|
10
10
|
constructor(messages) {
|
|
11
11
|
this.messages = messages;
|
|
12
12
|
this.current = [];
|
|
13
|
-
this.
|
|
13
|
+
this.destroy$ = inject(DestroyRef);
|
|
14
14
|
}
|
|
15
15
|
ngOnInit() {
|
|
16
16
|
this.messages.current
|
|
17
|
-
.pipe(
|
|
17
|
+
.pipe(takeUntilDestroyed(this.destroy$))
|
|
18
18
|
.subscribe((messages) => {
|
|
19
19
|
this.current = messages;
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this._subscriptions$.complete();
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MessageZoneComponent, deps: [{ token: i1.DataMessageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: MessageZoneComponent, isStandalone: true, selector: "data-message-zone", inputs: { filter: "filter" }, providers: [provideAnimations()], ngImport: i0, template: "\n<div class=\"messagezone\">\n <div class=\"alert\" *ngFor=\"let message of current\" [@dispStatus]=\"message.status\" [class]=\"message.style\" (click)=\"message.showTrace=!message.showTrace\">\n <button class=\"btn-close\" type=\"button\" (click)=\"messages.ack(message)\" aria-label=\"Close\"></button><strong>{{message.title}}</strong> {{message.message}}\n <div class=\"pretrace\" *ngIf=\"message.showTrace\">{{message.trace}}</div>\n </div>\n</div>", styles: [".messagezone{position:fixed;top:30px;right:40px;width:35vw;height:auto;z-index:1050}.messagezone .pretrace{white-space:pre-wrap;font-family:monospace;font-size:.7rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MessageZoneComponent, deps: [{ token: i1.DataMessageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: MessageZoneComponent, isStandalone: true, selector: "data-message-zone", inputs: { filter: "filter" }, providers: [provideAnimations()], ngImport: i0, template: "\n<div class=\"messagezone\">\n <div class=\"alert\" *ngFor=\"let message of current\" [@dispStatus]=\"message.status\" [class]=\"message.style\" (click)=\"message.showTrace=!message.showTrace\">\n <button class=\"btn-close\" type=\"button\" (click)=\"messages.ack(message)\" aria-label=\"Close\"></button><strong>{{message.title}}</strong> {{message.message}}\n <div class=\"pretrace\" *ngIf=\"message.showTrace\">{{message.trace}}</div>\n </div>\n</div>", styles: [".messagezone{position:fixed;top:30px;right:40px;width:35vw;height:auto;z-index:1050}.messagezone .pretrace{white-space:pre-wrap;font-family:monospace;font-size:.7rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
|
|
28
24
|
trigger('dispStatus', [
|
|
29
25
|
transition('void => *', [
|
|
30
26
|
style({ opacity: 0 }),
|
|
@@ -37,7 +33,7 @@ export class MessageZoneComponent {
|
|
|
37
33
|
]),
|
|
38
34
|
] }); }
|
|
39
35
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: MessageZoneComponent, decorators: [{
|
|
41
37
|
type: Component,
|
|
42
38
|
args: [{ selector: 'data-message-zone', standalone: true, imports: [CommonModule], providers: [provideAnimations()], animations: [
|
|
43
39
|
trigger('dispStatus', [
|
|
@@ -54,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
54
50
|
}], ctorParameters: () => [{ type: i1.DataMessageService }], propDecorators: { filter: [{
|
|
55
51
|
type: Input
|
|
56
52
|
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS16b25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tZXNzYWdlcy9tZXNzYWdlLXpvbmUvbWVzc2FnZS16b25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tZXNzYWdlcy9tZXNzYWdlLXpvbmUvbWVzc2FnZS16b25lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQXNCaEUsTUFBTSxPQUFPLG9CQUFvQjtJQUsvQixZQUFtQixRQUE0QjtRQUE1QixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUh4QyxZQUFPLEdBQWMsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFWSxDQUFDO0lBRTVDLFFBQVE7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87YUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN2QyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBYlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsOEZBZHBCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQywwQkNibEMsdWRBTU0saU9ETU0sWUFBWSxrUEFFVjtZQUNWLE9BQU8sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BCLFVBQVUsQ0FBQyxXQUFXLEVBQUU7b0JBQ3RCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDckIsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDcEMsQ0FBQztnQkFDRixVQUFVLENBQUMsV0FBVyxFQUFFO29CQUN0QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7b0JBQ3ZCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3BDLENBQUM7YUFDSCxDQUFDO1NBQ0g7OzJGQUVVLG9CQUFvQjtrQkFwQmhDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBR2pCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxhQUNaLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxjQUNwQjt3QkFDVixPQUFPLENBQUMsWUFBWSxFQUFFOzRCQUNwQixVQUFVLENBQUMsV0FBVyxFQUFFO2dDQUN0QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0NBQ3JCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ3BDLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFdBQVcsRUFBRTtnQ0FDdEIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO2dDQUN2QixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzZCQUNwQyxDQUFDO3lCQUNILENBQUM7cUJBQ0g7dUZBR2UsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRGF0YU1lc3NhZ2VTZXJ2aWNlLCBNZXNzYWdlIH0gZnJvbSAnLi4vbWVzc2FnZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBwcm92aWRlQW5pbWF0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbWVzc2FnZS16b25lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2Utem9uZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lc3NhZ2Utem9uZS5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUFuaW1hdGlvbnMoKV0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdkaXNwU3RhdHVzJywgW1xuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG4gICAgICAgIGFuaW1hdGUoNTUwLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogJyonIH0pLFxuICAgICAgICBhbmltYXRlKDU1MCwgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlWm9uZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXI/OiBzdHJpbmc7XG4gIHB1YmxpYyBjdXJyZW50OiBNZXNzYWdlW10gPSBbXTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWVzc2FnZXM6IERhdGFNZXNzYWdlU2VydmljZSkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlcy5jdXJyZW50XG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlcykgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBtZXNzYWdlcztcbiAgICAgIH0pO1xuICB9XG59XG4iLCJcbjxkaXYgY2xhc3M9XCJtZXNzYWdlem9uZVwiPlxuICA8ZGl2IGNsYXNzPVwiYWxlcnRcIiAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBjdXJyZW50XCIgW0BkaXNwU3RhdHVzXT1cIm1lc3NhZ2Uuc3RhdHVzXCIgW2NsYXNzXT1cIm1lc3NhZ2Uuc3R5bGVcIiAoY2xpY2spPVwibWVzc2FnZS5zaG93VHJhY2U9IW1lc3NhZ2Uuc2hvd1RyYWNlXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1jbG9zZVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwibWVzc2FnZXMuYWNrKG1lc3NhZ2UpXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+PC9idXR0b24+PHN0cm9uZz57e21lc3NhZ2UudGl0bGV9fTwvc3Ryb25nPiZuYnNwOyB7e21lc3NhZ2UubWVzc2FnZX19XG4gICAgPGRpdiBjbGFzcz1cInByZXRyYWNlXCIgKm5nSWY9XCJtZXNzYWdlLnNob3dUcmFjZVwiPnt7bWVzc2FnZS50cmFjZX19PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -134,10 +134,10 @@ export class DataMessageService {
|
|
|
134
134
|
}
|
|
135
135
|
this._messages$.next(out);
|
|
136
136
|
}
|
|
137
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
138
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.
|
|
137
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DataMessageService, deps: [{ token: i0.NgZone }, { token: DATA_MESSAGE_SOUNDS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
138
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DataMessageService, providedIn: "root" }); }
|
|
139
139
|
}
|
|
140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: DataMessageService, decorators: [{
|
|
141
141
|
type: Injectable,
|
|
142
142
|
args: [{
|
|
143
143
|
providedIn: "root"
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, DestroyRef, inject, Input, ViewChild, } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
|
4
4
|
import { ModelListSorterComponent } from '../../model-list-sorter/model-list-sorter/model-list-sorter.component';
|
|
5
5
|
import { filter } from 'rxjs/operators';
|
|
6
|
-
import {
|
|
6
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common";
|
|
9
9
|
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
@@ -14,11 +14,11 @@ export class ModelListFieldHeaderComponent {
|
|
|
14
14
|
this.sortMode = 'side';
|
|
15
15
|
this.dispMenuMode = this.menuMode;
|
|
16
16
|
this.dispSortMode = this.sortMode;
|
|
17
|
-
this.
|
|
17
|
+
this.destroy$ = inject(DestroyRef);
|
|
18
18
|
}
|
|
19
19
|
ngOnInit() {
|
|
20
20
|
this.list.messages$
|
|
21
|
-
.pipe(
|
|
21
|
+
.pipe(takeUntilDestroyed(this.destroy$), filter((m) => m.dest === 'header'))
|
|
22
22
|
.subscribe((m) => {
|
|
23
23
|
this.dispMenuMode =
|
|
24
24
|
m.menu && m.menu !== 'default' ? m.menu : this.menuMode;
|
|
@@ -27,10 +27,6 @@ export class ModelListFieldHeaderComponent {
|
|
|
27
27
|
this.display = m.show !== undefined ? m.show : this.display;
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
ngOnDestroy() {
|
|
31
|
-
this._subscriptions$.next();
|
|
32
|
-
this._subscriptions$.complete();
|
|
33
|
-
}
|
|
34
30
|
disable() {
|
|
35
31
|
this.list.fields.disable(this.field);
|
|
36
32
|
}
|
|
@@ -38,10 +34,10 @@ export class ModelListFieldHeaderComponent {
|
|
|
38
34
|
this.list.fields.move(f.name, 'after', this.field);
|
|
39
35
|
this.list.fields.enable(f.name);
|
|
40
36
|
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListFieldHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ModelListFieldHeaderComponent, isStandalone: true, selector: "data-model-list-field-header", inputs: { list: "list", field: "field", sort: "sort", sortField: "sortField", menuMode: "menuMode", sortMode: "sortMode", display: "display" }, viewQueries: [{ propertyName: "mnu", first: true, predicate: ["mnu"], descendants: true }], ngImport: i0, template: "\n<ng-template #label><span #ref>\n <ng-content></ng-content></span><span *ngIf=\"!ref.children.length\">{{list.fields.get(field)?.label||field}}</span></ng-template>\n<div class=\"d-flex flex-row justify-content-between align-items-end slabel\">\n <div class=\"flex-grow-1\">\n <data-model-list-sorter [list]=\"list\" [field]=\"sortField||field\" *ngIf=\"sort && dispSortMode==='side'\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </data-model-list-sorter>\n <ng-container *ngIf=\"!sort || dispSortMode==='hide'\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </ng-container>\n </div>\n <div class=\"navicons d-flex flex-row\" [attr.aria-label]=\"'Gestion champs'\" *ngIf=\"dispMenuMode==='side'\"><i class=\"bi bi-caret-left-fill\" role=\"button\" (click)=\"list.fields.move(field, 'before')\" aria-label=\"D\u00E9placer vers la gauche\"></i>\n <div ngbDropdown #mnu=\"ngbDropdown\" [container]=\"'body'\"><i class=\"bi bi-record\" ngbDropdownToggle aria-label=\"Ouvrir la boite de dialogue des champs\" role=\"button\"></i>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"disable()\"><i class=\"bi bi-trash me-2\"></i>Supprimer</button>\n <h6 class=\"dropdown-header\">Ajouter une colonne apr\u00E8s</h6>\n <ng-container *ngFor=\"let f of list.fields.fields|async\">\n <ng-container *ngIf=\"f.allowed && !f.enabled\">\n <button ngbDropdownItem (click)=\"enable(f)\" [attr.aria-label]=\"f.label||f.name\"><i class=\"bi bi-plus-circle me-2\"></i>{{f.label||f.name}}</button>\n </ng-container>\n </ng-container>\n </div>\n </div><i class=\"bi bi-caret-right-fill\" role=\"button\" (click)=\"list.fields.move(field, 'after')\" aria-label=\"D\u00E9placer vers la droite\"></i>\n </div>\n</div>", styles: [".slabel .navicons{opacity:0}.slabel:hover .navicons,.slabel.active .navicons{opacity:1!important}.dropdown-toggle:after{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: NgbDropdownModule }, { kind: "directive", type: i2.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i2.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i2.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i2.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "directive", type: i2.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { kind: "component", type: ModelListSorterComponent, selector: "data-model-list-sorter", inputs: ["list", "field"] }] }); }
|
|
43
39
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListFieldHeaderComponent, decorators: [{
|
|
45
41
|
type: Component,
|
|
46
42
|
args: [{ selector: 'data-model-list-field-header', standalone: true, imports: [CommonModule, NgbDropdownModule, ModelListSorterComponent], template: "\n<ng-template #label><span #ref>\n <ng-content></ng-content></span><span *ngIf=\"!ref.children.length\">{{list.fields.get(field)?.label||field}}</span></ng-template>\n<div class=\"d-flex flex-row justify-content-between align-items-end slabel\">\n <div class=\"flex-grow-1\">\n <data-model-list-sorter [list]=\"list\" [field]=\"sortField||field\" *ngIf=\"sort && dispSortMode==='side'\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </data-model-list-sorter>\n <ng-container *ngIf=\"!sort || dispSortMode==='hide'\">\n <ng-container *ngTemplateOutlet=\"label\"></ng-container>\n </ng-container>\n </div>\n <div class=\"navicons d-flex flex-row\" [attr.aria-label]=\"'Gestion champs'\" *ngIf=\"dispMenuMode==='side'\"><i class=\"bi bi-caret-left-fill\" role=\"button\" (click)=\"list.fields.move(field, 'before')\" aria-label=\"D\u00E9placer vers la gauche\"></i>\n <div ngbDropdown #mnu=\"ngbDropdown\" [container]=\"'body'\"><i class=\"bi bi-record\" ngbDropdownToggle aria-label=\"Ouvrir la boite de dialogue des champs\" role=\"button\"></i>\n <div ngbDropdownMenu>\n <button ngbDropdownItem (click)=\"disable()\"><i class=\"bi bi-trash me-2\"></i>Supprimer</button>\n <h6 class=\"dropdown-header\">Ajouter une colonne apr\u00E8s</h6>\n <ng-container *ngFor=\"let f of list.fields.fields|async\">\n <ng-container *ngIf=\"f.allowed && !f.enabled\">\n <button ngbDropdownItem (click)=\"enable(f)\" [attr.aria-label]=\"f.label||f.name\"><i class=\"bi bi-plus-circle me-2\"></i>{{f.label||f.name}}</button>\n </ng-container>\n </ng-container>\n </div>\n </div><i class=\"bi bi-caret-right-fill\" role=\"button\" (click)=\"list.fields.move(field, 'after')\" aria-label=\"D\u00E9placer vers la droite\"></i>\n </div>\n</div>", styles: [".slabel .navicons{opacity:0}.slabel:hover .navicons,.slabel.active .navicons{opacity:1!important}.dropdown-toggle:after{display:none!important}\n"] }]
|
|
47
43
|
}], ctorParameters: () => [], propDecorators: { list: [{
|
|
@@ -62,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
|
|
|
62
58
|
type: ViewChild,
|
|
63
59
|
args: ['mnu', { static: false }]
|
|
64
60
|
}] } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWVsZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpZWxkcy9tb2RlbC1saXN0LWZpZWxkLWhlYWRlci9tb2RlbC1saXN0LWZpZWxkLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFTaEUsTUFBTSxPQUFPLDZCQUE2QjtJQWdCeEM7UUFYZ0IsU0FBSSxHQUFhLEtBQUssQ0FBQztRQUV2QixhQUFRLEdBQThCLE1BQU0sQ0FBQztRQUM3QyxhQUFRLEdBQThCLE1BQU0sQ0FBQztRQUl0RCxpQkFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDN0IsaUJBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzVCLGFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdkIsQ0FBQztJQUVULFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7YUFDaEIsSUFBSSxDQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDakMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUNuQzthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVk7Z0JBQ2YsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUMxRCxJQUFJLENBQUMsWUFBWTtnQkFDZixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzFELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxDQUFpQjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0F4Q1UsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsb1VDeEIxQyxtMERBeUJNLDBNREhNLFlBQVksMmRBQUUsaUJBQWlCLG1uQkFBRSx3QkFBd0I7OzJGQUV4RCw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQzt3REFLcEQsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFFc0MsR0FBRztzQkFBOUMsU0FBUzt1QkFBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RlbExpc3QgfSBmcm9tICcuLi8uLi9tb2RlbC1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpZWxkIH0gZnJvbSAnLi4vbW9kZWwtbGlzdC1maWVsZHMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duLCBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE1vZGVsTGlzdFNvcnRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vZGVsLWxpc3Qtc29ydGVyL21vZGVsLWxpc3Qtc29ydGVyL21vZGVsLWxpc3Qtc29ydGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbW9kZWwtbGlzdC1maWVsZC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC1maWVsZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LWZpZWxkLWhlYWRlci5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ2JEcm9wZG93bk1vZHVsZSwgTW9kZWxMaXN0U29ydGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0RmllbGRIZWFkZXJDb21wb25lbnQ8VCBleHRlbmRzIERhdGFNb2RlbD5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgQElucHV0KCkgcHVibGljIGxpc3QhOiBNb2RlbExpc3Q8VD47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZCE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNvcnQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzb3J0RmllbGQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51TW9kZTogJ2hpZGUnIHwgJ3NpZGUnIHwgJ2NsaWNrJyA9ICdzaWRlJztcbiAgQElucHV0KCkgcHVibGljIHNvcnRNb2RlOiAnaGlkZScgfCAnc2lkZScgfCAnY2xpY2snID0gJ3NpZGUnO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzcGxheT86IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnbW51JywgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyBtbnU/OiBOZ2JEcm9wZG93bjtcbiAgcHVibGljIGRpc3BNZW51TW9kZSA9IHRoaXMubWVudU1vZGU7XG4gIHB1YmxpYyBkaXNwU29ydE1vZGUgPSB0aGlzLnNvcnRNb2RlO1xuICBwcml2YXRlIGRlc3Ryb3kkID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5saXN0Lm1lc3NhZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZmlsdGVyKChtKSA9PiBtLmRlc3QgPT09ICdoZWFkZXInKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKG0pID0+IHtcbiAgICAgICAgdGhpcy5kaXNwTWVudU1vZGUgPVxuICAgICAgICAgIG0ubWVudSAmJiBtLm1lbnUgIT09ICdkZWZhdWx0JyA/IG0ubWVudSA6IHRoaXMubWVudU1vZGU7XG4gICAgICAgIHRoaXMuZGlzcFNvcnRNb2RlID1cbiAgICAgICAgICBtLnNvcnQgJiYgbS5zb3J0ICE9PSAnZGVmYXVsdCcgPyBtLnNvcnQgOiB0aGlzLnNvcnRNb2RlO1xuICAgICAgICB0aGlzLmRpc3BsYXkgPSBtLnNob3cgIT09IHVuZGVmaW5lZCA/IG0uc2hvdyA6IHRoaXMuZGlzcGxheTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGUoKSB7XG4gICAgdGhpcy5saXN0LmZpZWxkcy5kaXNhYmxlKHRoaXMuZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZShmOiBNb2RlbExpc3RGaWVsZCkge1xuICAgIHRoaXMubGlzdC5maWVsZHMubW92ZShmLm5hbWUsICdhZnRlcicsIHRoaXMuZmllbGQpO1xuICAgIHRoaXMubGlzdC5maWVsZHMuZW5hYmxlKGYubmFtZSk7XG4gIH1cbn1cbiIsIlxuPG5nLXRlbXBsYXRlICNsYWJlbD48c3BhbiAjcmVmPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+PHNwYW4gKm5nSWY9XCIhcmVmLmNoaWxkcmVuLmxlbmd0aFwiPnt7bGlzdC5maWVsZHMuZ2V0KGZpZWxkKT8ubGFiZWx8fGZpZWxkfX08L3NwYW4+PC9uZy10ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kIHNsYWJlbFwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cbiAgICA8ZGF0YS1tb2RlbC1saXN0LXNvcnRlciBbbGlzdF09XCJsaXN0XCIgW2ZpZWxkXT1cInNvcnRGaWVsZHx8ZmllbGRcIiAqbmdJZj1cInNvcnQgJmFtcDsmYW1wOyBkaXNwU29ydE1vZGU9PT0nc2lkZSdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGF0YS1tb2RlbC1saXN0LXNvcnRlcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNvcnQgfHwgZGlzcFNvcnRNb2RlPT09J2hpZGUnXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJuYXZpY29ucyBkLWZsZXggZmxleC1yb3dcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidHZXN0aW9uIGNoYW1wcydcIiAqbmdJZj1cImRpc3BNZW51TW9kZT09PSdzaWRlJ1wiPjxpIGNsYXNzPVwiYmkgYmktY2FyZXQtbGVmdC1maWxsXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJsaXN0LmZpZWxkcy5tb3ZlKGZpZWxkLCAnYmVmb3JlJylcIiBhcmlhLWxhYmVsPVwiRMOpcGxhY2VyIHZlcnMgbGEgZ2F1Y2hlXCI+PC9pPlxuICAgIDxkaXYgbmdiRHJvcGRvd24gI21udT1cIm5nYkRyb3Bkb3duXCIgW2NvbnRhaW5lcl09XCInYm9keSdcIj48aSBjbGFzcz1cImJpIGJpLXJlY29yZFwiIG5nYkRyb3Bkb3duVG9nZ2xlIGFyaWEtbGFiZWw9XCJPdXZyaXIgbGEgYm9pdGUgZGUgZGlhbG9ndWUgZGVzIGNoYW1wc1wiIHJvbGU9XCJidXR0b25cIj48L2k+XG4gICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cbiAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRpc2FibGUoKVwiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2ggbWUtMlwiPjwvaT5TdXBwcmltZXI8L2J1dHRvbj5cbiAgICAgICAgPGg2IGNsYXNzPVwiZHJvcGRvd24taGVhZGVyXCI+QWpvdXRlciB1bmUgY29sb25uZSBhcHLDqHM8L2g2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmIG9mIGxpc3QuZmllbGRzLmZpZWxkc3xhc3luY1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLmFsbG93ZWQgJmFtcDsmYW1wOyAhZi5lbmFibGVkXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwiZW5hYmxlKGYpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJmLmxhYmVsfHxmLm5hbWVcIj48aSBjbGFzcz1cImJpIGJpLXBsdXMtY2lyY2xlIG1lLTJcIj48L2k+e3tmLmxhYmVsfHxmLm5hbWV9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PjxpIGNsYXNzPVwiYmkgYmktY2FyZXQtcmlnaHQtZmlsbFwiIHJvbGU9XCJidXR0b25cIiAoY2xpY2spPVwibGlzdC5maWVsZHMubW92ZShmaWVsZCwgJ2FmdGVyJylcIiBhcmlhLWxhYmVsPVwiRMOpcGxhY2VyIHZlcnMgbGEgZHJvaXRlXCI+PC9pPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -44,10 +44,10 @@ export class ModelListFieldsSelectorComponent {
|
|
|
44
44
|
this.list.fields.enable(f.name);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListFieldsSelectorComponent, deps: [{ token: i1.NgbOffcanvas }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ModelListFieldsSelectorComponent, isStandalone: true, selector: "data-model-list-fields-selector", inputs: { list: "list" }, providers: [{ provide: CDK_DRAG_CONFIG, useValue: DragConfig }], viewQueries: [{ propertyName: "ofctpl", first: true, predicate: ["selector"], descendants: true, static: true }], ngImport: i0, template: "<i class=\"bi bi-list-ul\" (click)=\"open()\" role=\"button\" aria-label=\"Choix des champs\"></i>\n<ng-template #selector let-offcanvas>\n <div class=\"offcanvas-header\">\n <h4 class=\"offcanvas-title\">Choix des champs</h4>\n <button class=\"btn-close\" type=\"button\" aria-label=\"Close\" (click)=\"offcanvas.dismiss('x')\"></button>\n </div>\n <div class=\"offcanvas-body\" cdkScrollable>\n <div class=\"fields-list\" cdkDropList cdkDropListLockAxis=\"y\" (cdkDropListDropped)=\"drop($event)\" *ngIf=\"list.fields.fields|async as fields\">\n <ng-container *ngFor=\"let f of fields\">\n <ng-container *ngIf=\"seeMore || f.priority >= 0\">\n <div class=\"field-box\" cdkDrag (click)=\"toggle(f)\" [cdkDragData]=\"f.name\" [class.enabled]=\"f.enabled\" [class.compact]=\"fields.length>30\" [attr.arial-label]=\"f.label\" role=\"button\">{{f.label}}<span class=\"badge bg-info\"> {{f.priority}}</span></div>\n </ng-container>\n </ng-container>\n </div>\n <button class=\"btn btn-sm btn-link\" (click)=\"seeMore=!seeMore\">plus de champs</button>\n </div>\n</ng-template>", styles: [".fields-list{width:100%;max-width:100%;border:var(--bs-border-style) var(--bs-border-width) var(--bs-border-color);min-height:50px;display:block;background:var(--bs-body-bg-rgb);border-radius:var(--bs-border-radius-sm);overflow:hidden}.field-box{padding:.5rem 1rem;border-bottom:solid 1px #ccc;color:var(--bs-black);display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:var(--bs-body-font-size)}.field-box.compact{padding:.2rem 1rem;font-size:.9rem}.field-box.enabled{background-color:var(--bs-success);color:var(--bs-white)}.cdk-drag-preview{box-sizing:border-box;border-radius:var(--bs-border-radius-sm);box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.field-box:last-child{border:none}.fields-list.cdk-drop-list-dragging .field-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: CdkScrollableModule }, { kind: "ngmodule", type: NgbOffcanvasModule }] }); }
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ModelListFieldsSelectorComponent, decorators: [{
|
|
51
51
|
type: Component,
|
|
52
52
|
args: [{ selector: 'data-model-list-fields-selector', standalone: true, imports: [
|
|
53
53
|
CommonModule,
|