@solidev/data 0.4.8 → 0.5.1
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/fesm2022/solidev-data.mjs +181 -157
- package/fesm2022/solidev-data.mjs.map +1 -1
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +2 -2
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +7 -1
- package/package.json +5 -7
- package/esm2022/lib/auth/auth-interceptor.service.mjs +0 -113
- package/esm2022/lib/auth/auth.service.mjs +0 -216
- package/esm2022/lib/auth/jwt.mjs +0 -21
- package/esm2022/lib/data/data-backend.mjs +0 -162
- package/esm2022/lib/data/data-collection.mjs +0 -125
- package/esm2022/lib/data/data-collection.mock.mjs +0 -39
- package/esm2022/lib/data/data-model.mjs +0 -291
- package/esm2022/lib/data/data-parameters.mjs +0 -34
- package/esm2022/lib/data/data-query.mjs +0 -154
- package/esm2022/lib/data/data-query.mock.mjs +0 -46
- package/esm2022/lib/data/fields/base.mjs +0 -144
- package/esm2022/lib/data/fields/boolean.mjs +0 -38
- package/esm2022/lib/data/fields/computed.mjs +0 -10
- package/esm2022/lib/data/fields/datetime.mjs +0 -167
- package/esm2022/lib/data/fields/index.mjs +0 -8
- package/esm2022/lib/data/fields/numbers.mjs +0 -38
- package/esm2022/lib/data/fields/primaryfield.mjs +0 -9
- package/esm2022/lib/data/fields/relations.mjs +0 -53
- package/esm2022/lib/data/fields/stringfields.mjs +0 -71
- package/esm2022/lib/dispedit/choice.pipe.mjs +0 -79
- package/esm2022/lib/dispedit/dispedit/dispedit.component.mjs +0 -480
- package/esm2022/lib/dispedit/dispedit/dispedit.constants.mjs +0 -2
- package/esm2022/lib/dispedit/factor.pipe.mjs +0 -81
- package/esm2022/lib/dispedit/factorc.pipe.mjs +0 -99
- package/esm2022/lib/dispedit/fkselect/fkselect.component.mjs +0 -139
- package/esm2022/lib/dispedit/flags/flags.component.mjs +0 -137
- package/esm2022/lib/dispedit/m2mselect/m2mselect.component.mjs +0 -312
- package/esm2022/lib/dispedit/richedit/richedit.component.mjs +0 -126
- package/esm2022/lib/dispedit/sdelete/sdelete.component.mjs +0 -103
- package/esm2022/lib/messages/message-zone/message-zone.component.mjs +0 -53
- package/esm2022/lib/messages/message.service.mjs +0 -151
- package/esm2022/lib/modellist/model-list-fields/model-list-field-header/messages.mjs +0 -2
- package/esm2022/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +0 -61
- package/esm2022/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +0 -64
- package/esm2022/lib/modellist/model-list-fields/model-list-fields.mjs +0 -273
- package/esm2022/lib/modellist/model-list-filters/filters/filtertypes.mjs +0 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +0 -109
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +0 -28
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +0 -29
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +0 -9
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +0 -40
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.mjs +0 -14
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +0 -40
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +0 -14
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +0 -21
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +0 -14
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +0 -49
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +0 -23
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.mjs +0 -24
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +0 -63
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +0 -16
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +0 -46
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +0 -49
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +0 -56
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +0 -40
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +0 -51
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +0 -21
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +0 -40
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +0 -17
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +0 -174
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +0 -18
- package/esm2022/lib/modellist/model-list-filters/model-list-filter-group.mjs +0 -19
- package/esm2022/lib/modellist/model-list-filters/model-list-filter.mjs +0 -157
- package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +0 -50
- package/esm2022/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +0 -51
- package/esm2022/lib/modellist/model-list-filters/model-list-filters.mjs +0 -134
- package/esm2022/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +0 -69
- package/esm2022/lib/modellist/model-list-paginator/model-list-paginator.mjs +0 -47
- package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +0 -49
- package/esm2022/lib/modellist/model-list-sorter/model-list-sorter.mjs +0 -116
- package/esm2022/lib/modellist/model-list.service.mjs +0 -168
- package/esm2022/lib/routing/breadcrumb/breadcrumb.component.mjs +0 -138
- package/esm2022/lib/routing/routing.mjs +0 -57
- package/esm2022/lib/updates/update/update.component.mjs +0 -17
- package/esm2022/lib/updates/update.service.mjs +0 -58
- package/esm2022/lib/uploader/index.mjs +0 -6
- package/esm2022/lib/uploader/interfaces.mjs +0 -8
- package/esm2022/lib/uploader/ng-file-drop.directive.mjs +0 -81
- package/esm2022/lib/uploader/ng-file-select.directive.mjs +0 -51
- package/esm2022/lib/uploader/ngx-uploader.class.mjs +0 -308
- package/esm2022/lib/uploader/ngx-uploader.module.mjs +0 -17
- package/esm2022/lib/utils/slugify.mjs +0 -16
- package/esm2022/lib/utils/tab-memory.service.mjs +0 -80
- package/esm2022/lib/utils/template.mjs +0 -72
- package/esm2022/public-api.mjs +0 -56
- package/esm2022/solidev-data.mjs +0 -5
- package/solidev-data-0.4.8.tgz +0 -0
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
-
import { firstValueFrom } from 'rxjs';
|
|
3
|
-
import { NgbOffcanvasModule, } from '@ng-bootstrap/ng-bootstrap';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
7
|
-
import * as i2 from "../../messages/message.service";
|
|
8
|
-
import * as i3 from "@angular/common";
|
|
9
|
-
export class SafeDeleteComponent {
|
|
10
|
-
constructor(_ofc, _msgs) {
|
|
11
|
-
this._ofc = _ofc;
|
|
12
|
-
this._msgs = _msgs;
|
|
13
|
-
/** Translations of database objects names to human names */
|
|
14
|
-
this.checks = {};
|
|
15
|
-
/** Messages to be displayed on success or error, default messages are used if not provided */
|
|
16
|
-
this.messages = {};
|
|
17
|
-
/** Event emitted on successful deletion */
|
|
18
|
-
this.deleted = new EventEmitter();
|
|
19
|
-
/** Display mode, default is button.
|
|
20
|
-
*
|
|
21
|
-
* - `fbutton`: floating button (small)
|
|
22
|
-
* - `button`: button (small), with text taken from ng-content (no space around icon to allow empty buttons)
|
|
23
|
-
* - `icon`: icon
|
|
24
|
-
* - `custom`: custom : ng-content is surrounded by a clickable div
|
|
25
|
-
* */
|
|
26
|
-
this.display = 'button';
|
|
27
|
-
}
|
|
28
|
-
async checkDelete(model) {
|
|
29
|
-
const service = this.service || this.model._collection;
|
|
30
|
-
if (service) {
|
|
31
|
-
try {
|
|
32
|
-
this.result = await firstValueFrom(service.delete(this.model, { params: { doit: 'no' } }));
|
|
33
|
-
this.ofc = this._ofc.open(this._dialogRef, {
|
|
34
|
-
position: 'end',
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
catch (e) {
|
|
38
|
-
console.error(e);
|
|
39
|
-
if (this.messages.error) {
|
|
40
|
-
this._msgs.error(this.messages.error, e.error?.message || e.message || '');
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
async reallyDelete() {
|
|
46
|
-
if (this.actionFn) {
|
|
47
|
-
const res = await this.actionFn(this.model);
|
|
48
|
-
if (res.success && this.messages.success) {
|
|
49
|
-
this._msgs.success(this.messages.success);
|
|
50
|
-
}
|
|
51
|
-
else if (!res.success && this.messages.error) {
|
|
52
|
-
this._msgs.error(this.messages.error);
|
|
53
|
-
}
|
|
54
|
-
this.ofc?.close();
|
|
55
|
-
if (res.success) {
|
|
56
|
-
this.deleted.emit(this.result);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
const service = this.service || this.model._collection;
|
|
61
|
-
if (service) {
|
|
62
|
-
try {
|
|
63
|
-
this.result = await firstValueFrom(service.delete(this.model, { params: { doit: 'really' } }));
|
|
64
|
-
if (this.messages.success) {
|
|
65
|
-
this._msgs.success(this.messages.success);
|
|
66
|
-
}
|
|
67
|
-
this.ofc?.close();
|
|
68
|
-
this.deleted.emit(this.result);
|
|
69
|
-
}
|
|
70
|
-
catch (e) {
|
|
71
|
-
console.error(e);
|
|
72
|
-
if (this.messages.error) {
|
|
73
|
-
this._msgs.error(this.messages.error, e.error?.message || e.message || '');
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", 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: "18.2.5", 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
|
-
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SafeDeleteComponent, decorators: [{
|
|
83
|
-
type: Component,
|
|
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
|
-
}], ctorParameters: () => [{ type: i1.NgbOffcanvas }, { type: i2.DataMessageService }], propDecorators: { model: [{
|
|
86
|
-
type: Input
|
|
87
|
-
}], service: [{
|
|
88
|
-
type: Input
|
|
89
|
-
}], actionFn: [{
|
|
90
|
-
type: Input
|
|
91
|
-
}], checks: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], messages: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}], deleted: [{
|
|
96
|
-
type: Output
|
|
97
|
-
}], display: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}], _dialogRef: [{
|
|
100
|
-
type: ViewChild,
|
|
101
|
-
args: ['dialog', { static: true }]
|
|
102
|
-
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RlbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGlzcGVkaXQvc2RlbGV0ZS9zZGVsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kaXNwZWRpdC9zZGVsZXRlL3NkZWxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBRUwsa0JBQWtCLEdBRW5CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQWUvQyxNQUFNLE9BQU8sbUJBQW1CO0lBMkI5QixZQUNVLElBQWtCLEVBQ2xCLEtBQXlCO1FBRHpCLFNBQUksR0FBSixJQUFJLENBQWM7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUF0Qm5DLDREQUE0RDtRQUM1QyxXQUFNLEdBQWdDLEVBQUUsQ0FBQztRQUN6RCw4RkFBOEY7UUFDOUUsYUFBUSxHQUF5QyxFQUFFLENBQUM7UUFDcEUsMkNBQTJDO1FBQzFCLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUNoRTs7Ozs7O2FBTUs7UUFDVyxZQUFPLEdBQTZDLFFBQVEsQ0FBQztJQVUxRSxDQUFDO0lBRUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFnQjtRQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3ZELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENB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QUFLLENBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQ2xCLENBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFLLENBQVMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUN0RCxDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0ExRlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsbVdDL0JoQyxtZ0VBdUNNLHlERFZNLFlBQVksc2FBQUUsa0JBQWtCOzsyRkFFL0IsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUM7a0hBSTNCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRVUsT0FBTztzQkFBdEIsS0FBSztnQkFFVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVVLE1BQU07c0JBQXJCLEtBQUs7Z0JBRVUsUUFBUTtzQkFBdkIsS0FBSztnQkFFVyxPQUFPO3NCQUF2QixNQUFNO2dCQVFTLE9BQU87c0JBQXRCLEtBQUs7Z0JBSUUsVUFBVTtzQkFEakIsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2RhdGEvZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBOZ2JPZmZjYW52YXMsXG4gIE5nYk9mZmNhbnZhc01vZHVsZSxcbiAgTmdiT2ZmY2FudmFzUmVmLFxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGF0YU1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWVzc2FnZXMvbWVzc2FnZS5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBGYWtlRGVsZXRlUmVzdWx0IHtcbiAgY291bnQ6IG51bWJlcjtcbiAgZGV0YWlsczogW3N0cmluZywgbnVtYmVyXVtdO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLXNhZmUtZGVsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NkZWxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZGVsZXRlLmNvbXBvbmVudC5zYXNzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nYk9mZmNhbnZhc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNhZmVEZWxldGVDb21wb25lbnQ8VCBleHRlbmRzIERhdGFNb2RlbD4ge1xuICAvKiogTW9kZWwgaW5zdGFuY2UgdG8gYmUgZGVsZXRlZCAqL1xuICBASW5wdXQoKSBwdWJsaWMgbW9kZWwhOiBUO1xuICAvKiogU2VydmljZSB0byBiZSB1c2VkIGZvciBkZWxldGlvbiwgdGFrZW4gZnJvbSBtb2RlbCBpZiBub3QgcHJvdmlkZWQgKi9cbiAgQElucHV0KCkgcHVibGljIHNlcnZpY2U/OiBDb2xsZWN0aW9uPFQ+O1xuICAvKiogRnVuY3Rpb24gdG8gYmUgY2FsbGVkIGZvciBkZWxldGlvbiwgb3ZlcnJpZGVzIHNlcnZpY2UgZGVsZXRpb24gKi9cbiAgQElucHV0KCkgcHVibGljIGFjdGlvbkZuPzogKG1vZGVsOiBUKSA9PiBQcm9taXNlPHsgc3VjY2VzczogYm9vbGVhbiB9PjtcbiAgLyoqIFRyYW5zbGF0aW9ucyBvZiBkYXRhYmFzZSBvYmplY3RzIG5hbWVzIHRvIGh1bWFuIG5hbWVzICovXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja3M6IHsgW2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAvKiogTWVzc2FnZXMgdG8gYmUgZGlzcGxheWVkIG9uIHN1Y2Nlc3Mgb3IgZXJyb3IsIGRlZmF1bHQgbWVzc2FnZXMgYXJlIHVzZWQgaWYgbm90IHByb3ZpZGVkICovXG4gIEBJbnB1dCgpIHB1YmxpYyBtZXNzYWdlczogeyBzdWNjZXNzPzogc3RyaW5nOyBlcnJvcj86IHN0cmluZyB9ID0ge307XG4gIC8qKiBFdmVudCBlbWl0dGVkIG9uIHN1Y2Nlc3NmdWwgZGVsZXRpb24gKi9cbiAgQE91dHB1dCgpIHB1YmxpYyBkZWxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGYWtlRGVsZXRlUmVzdWx0PigpO1xuICAvKiogRGlzcGxheSBtb2RlLCBkZWZhdWx0IGlzIGJ1dHRvbi5cbiAgICpcbiAgICogLSBgZmJ1dHRvbmA6IGZsb2F0aW5nIGJ1dHRvbiAoc21hbGwpXG4gICAqIC0gYGJ1dHRvbmA6IGJ1dHRvbiAoc21hbGwpLCB3aXRoIHRleHQgdGFrZW4gZnJvbSBuZy1jb250ZW50IChubyBzcGFjZSBhcm91bmQgaWNvbiB0byBhbGxvdyBlbXB0eSBidXR0b25zKVxuICAgKiAtIGBpY29uYDogaWNvblxuICAgKiAtIGBjdXN0b21gOiBjdXN0b20gOiBuZy1jb250ZW50IGlzIHN1cnJvdW5kZWQgYnkgYSBjbGlja2FibGUgZGl2XG4gICAqICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5OiAnZmJ1dHRvbicgfCAnYnV0dG9uJyB8ICdpY29uJyB8ICdjdXN0b20nID0gJ2J1dHRvbic7XG5cbiAgcHVibGljIHJlc3VsdD86IEZha2VEZWxldGVSZXN1bHQ7XG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgX2RpYWxvZ1JlZj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBwcml2YXRlIG9mYz86IE5nYk9mZmNhbnZhc1JlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9vZmM6IE5nYk9mZmNhbnZhcyxcbiAgICBwcml2YXRlIF9tc2dzOiBEYXRhTWVzc2FnZVNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgYXN5bmMgY2hlY2tEZWxldGUobW9kZWw6IERhdGFNb2RlbCkge1xuICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLnNlcnZpY2UgfHwgdGhpcy5tb2RlbC5fY29sbGVjdGlvbjtcbiAgICBpZiAoc2VydmljZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5yZXN1bHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgICBzZXJ2aWNlLmRlbGV0ZSh0aGlzLm1vZGVsLCB7IHBhcmFtczogeyBkb2l0OiAnbm8nIH0gfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5vZmMgPSB0aGlzLl9vZmMub3Blbih0aGlzLl9kaWFsb2dSZWYsIHtcbiAgICAgICAgICBwb3NpdGlvbjogJ2VuZCcsXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICBpZiAodGhpcy5tZXNzYWdlcy5lcnJvcikge1xuICAgICAgICAgIHRoaXMuX21zZ3MuZXJyb3IoXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VzLmVycm9yLFxuICAgICAgICAgICAgKGUgYXMgYW55KS5lcnJvcj8ubWVzc2FnZSB8fCAoZSBhcyBhbnkpLm1lc3NhZ2UgfHwgJycsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZWFsbHlEZWxldGUoKSB7XG4gICAgaWYgKHRoaXMuYWN0aW9uRm4pIHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuYWN0aW9uRm4odGhpcy5tb2RlbCk7XG4gICAgICBpZiAocmVzLnN1Y2Nlc3MgJiYgdGhpcy5tZXNzYWdlcy5zdWNjZXNzKSB7XG4gICAgICAgIHRoaXMuX21zZ3Muc3VjY2Vzcyh0aGlzLm1lc3NhZ2VzLnN1Y2Nlc3MpO1xuICAgICAgfSBlbHNlIGlmICghcmVzLnN1Y2Nlc3MgJiYgdGhpcy5tZXNzYWdlcy5lcnJvcikge1xuICAgICAgICB0aGlzLl9tc2dzLmVycm9yKHRoaXMubWVzc2FnZXMuZXJyb3IpO1xuICAgICAgfVxuICAgICAgdGhpcy5vZmM/LmNsb3NlKCk7XG4gICAgICBpZiAocmVzLnN1Y2Nlc3MpIHtcbiAgICAgICAgdGhpcy5kZWxldGVkLmVtaXQodGhpcy5yZXN1bHQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy5zZXJ2aWNlIHx8IHRoaXMubW9kZWwuX2NvbGxlY3Rpb247XG4gICAgICBpZiAoc2VydmljZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoaXMucmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgICBzZXJ2aWNlLmRlbGV0ZSh0aGlzLm1vZGVsLCB7IHBhcmFtczogeyBkb2l0OiAncmVhbGx5JyB9IH0pLFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZXMuc3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5fbXNncy5zdWNjZXNzKHRoaXMubWVzc2FnZXMuc3VjY2Vzcyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMub2ZjPy5jbG9zZSgpO1xuICAgICAgICAgIHRoaXMuZGVsZXRlZC5lbWl0KHRoaXMucmVzdWx0KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZXMuZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuX21zZ3MuZXJyb3IoXG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZXMuZXJyb3IsXG4gICAgICAgICAgICAgIChlIGFzIGFueSkuZXJyb3I/Lm1lc3NhZ2UgfHwgKGUgYXMgYW55KS5tZXNzYWdlIHx8ICcnLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIlxuPG5nLXRlbXBsYXRlICNkaWFsb2cgbGV0LW9mZmNhbnZhcz5cbiAgPGRpdiBjbGFzcz1cIm9mZmNhbnZhcy1oZWFkZXJcIj5cbiAgICA8aDIgY2xhc3M9XCJvZmZjYW52YXMtdGl0bGUgdGV4dC1kYW5nZXIgdGV4dC1jZW50ZXJcIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoIG1lLTJcIj48L2k+U3VwcHJpbWVyIHLDqWVsbGVtZW50ID8/PC9oMj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvZmZjYW52YXMtYm9keSB0ZXh0LWRhbmdlclwiICpuZ0lmPVwicmVzdWx0XCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG15LTQgZnMtMVwiPjxpIGNsYXNzPVwiYmkgYmktZXhjbGFtYXRpb24tZGlhbW9uZCBteS01XCI+PC9pPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmcy00XCI+XG4gICAgICA8cD5MYSBzdXBwcmVzc2lvbiBkZSBjZXQgw6lsw6ltZW50IHN1cHByaW1lcmEge3tyZXN1bHQuY291bnR9fSDDqWzDqW1lbnRzIGRhbnMgbGEgYmFzZSBkZSBkb25uw6llcy4uPC9wPlxuICAgIDwvZGl2PlxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLXNtIHRhYmxlLXN0cmlwZWQgdGFibGUtZGFuZ2VyXCI+XG4gICAgICA8dGhlYWQ+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGg+VHlwZSBkJ8OpbMOpbWVudDwvdGg+XG4gICAgICAgICAgPHRoPk5vbWJyZTwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBybCBvZiByZXN1bHQuZGV0YWlsc1wiPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZD57e2NoZWNrc1tybFswXV0gPyBjaGVja3NbcmxbMF1dIDogcmxbMF19fTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3tybFsxXX19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgICA8YnV0dG9uIGNsYXNzPVwidy0xMDAgYnRuIGJ0bi1sZyBidG4tZGFuZ2VyXCIgKGNsaWNrKT1cInJlYWxseURlbGV0ZSgpXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaCBtZS0yXCI+PC9pPkplIGNvbmZpcm1lIGxhIHN1cHByZXNzaW9uPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInctMTAwIGJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnkgbXktM1wiIChjbGljayk9XCJvZmZjYW52YXMuY2xvc2UoKVwiPjxpIGNsYXNzPVwiYmkgYmktZG9vci1vcGVuIG1lLTJcIj48L2k+SmUgcmVub25jZSDDoCBsYSBzdXBwcmVzc2lvbjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2NvbnRlbnRUcGw+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG48YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tZGFuZ2VyXCIgKGNsaWNrKT1cImNoZWNrRGVsZXRlKG1vZGVsKVwiICpuZ0lmPVwiZGlzcGxheT09PSdidXR0b24nXCI+PGkgY2xhc3M9XCJiaSBiaS10cmFzaFwiPjwvaT5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbjwvYnV0dG9uPlxuPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLW91dGxpbmUtZGFuZ2VyIGZsb2F0LWVuZFwiIChjbGljayk9XCJjaGVja0RlbGV0ZShtb2RlbClcIiAqbmdJZj1cImRpc3BsYXk9PT0nZmJ1dHRvbidcIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoIG14LTJcIj48L2k+PC9idXR0b24+PGkgY2xhc3M9XCJiaSBiaS10cmFzaCBteC0yXCIgKGNsaWNrKT1cImNoZWNrRGVsZXRlKG1vZGVsKVwiICpuZ0lmPVwiZGlzcGxheT09PSdpY29uJ1wiIHJvbGU9XCJidXR0b25cIj48L2k+XG48ZGl2IChjbGljayk9XCJjaGVja0RlbGV0ZShtb2RlbClcIiAqbmdJZj1cImRpc3BsYXk9PT0nY3VzdG9tJ1wiIHJvbGU9XCJidXR0b25cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Component, DestroyRef, inject, Input } from '@angular/core';
|
|
2
|
-
import { animate, style, transition, trigger } from '@angular/animations';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { provideAnimations } from '@angular/platform-browser/animations';
|
|
5
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../message.service";
|
|
8
|
-
import * as i2 from "@angular/common";
|
|
9
|
-
export class MessageZoneComponent {
|
|
10
|
-
constructor(messages) {
|
|
11
|
-
this.messages = messages;
|
|
12
|
-
this.current = [];
|
|
13
|
-
this.destroy$ = inject(DestroyRef);
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
this.messages.current
|
|
17
|
-
.pipe(takeUntilDestroyed(this.destroy$))
|
|
18
|
-
.subscribe((messages) => {
|
|
19
|
-
this.current = messages;
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MessageZoneComponent, deps: [{ token: i1.DataMessageService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", 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: [
|
|
24
|
-
trigger('dispStatus', [
|
|
25
|
-
transition('void => *', [
|
|
26
|
-
style({ opacity: 0 }),
|
|
27
|
-
animate(550, style({ opacity: 1 })),
|
|
28
|
-
]),
|
|
29
|
-
transition('* => void', [
|
|
30
|
-
style({ opacity: '*' }),
|
|
31
|
-
animate(550, style({ opacity: 0 })),
|
|
32
|
-
]),
|
|
33
|
-
]),
|
|
34
|
-
] }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: MessageZoneComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{ selector: 'data-message-zone', standalone: true, imports: [CommonModule], providers: [provideAnimations()], animations: [
|
|
39
|
-
trigger('dispStatus', [
|
|
40
|
-
transition('void => *', [
|
|
41
|
-
style({ opacity: 0 }),
|
|
42
|
-
animate(550, style({ opacity: 1 })),
|
|
43
|
-
]),
|
|
44
|
-
transition('* => void', [
|
|
45
|
-
style({ opacity: '*' }),
|
|
46
|
-
animate(550, style({ opacity: 0 })),
|
|
47
|
-
]),
|
|
48
|
-
]),
|
|
49
|
-
], 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"] }]
|
|
50
|
-
}], ctorParameters: () => [{ type: i1.DataMessageService }], propDecorators: { filter: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS16b25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tZXNzYWdlcy9tZXNzYWdlLXpvbmUvbWVzc2FnZS16b25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9tZXNzYWdlcy9tZXNzYWdlLXpvbmUvbWVzc2FnZS16b25lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQXNCaEUsTUFBTSxPQUFPLG9CQUFvQjtJQUsvQixZQUFtQixRQUE0QjtRQUE1QixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUh4QyxZQUFPLEdBQWMsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFWSxDQUFDO0lBRTVDLFFBQVE7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87YUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN2QyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBYlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsOEZBZHBCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQywwQkNibEMsdWRBTU0saU9ETU0sWUFBWSxrUEFFVjtZQUNWLE9BQU8sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BCLFVBQVUsQ0FBQyxXQUFXLEVBQUU7b0JBQ3RCLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDckIsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDcEMsQ0FBQztnQkFDRixVQUFVLENBQUMsV0FBVyxFQUFFO29CQUN0QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7b0JBQ3ZCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3BDLENBQUM7YUFDSCxDQUFDO1NBQ0g7OzJGQUVVLG9CQUFvQjtrQkFwQmhDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBR2pCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxhQUNaLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxjQUNwQjt3QkFDVixPQUFPLENBQUMsWUFBWSxFQUFFOzRCQUNwQixVQUFVLENBQUMsV0FBVyxFQUFFO2dDQUN0QixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0NBQ3JCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ3BDLENBQUM7NEJBQ0YsVUFBVSxDQUFDLFdBQVcsRUFBRTtnQ0FDdEIsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO2dDQUN2QixPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzZCQUNwQyxDQUFDO3lCQUNILENBQUM7cUJBQ0g7dUZBR2UsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRGF0YU1lc3NhZ2VTZXJ2aWNlLCBNZXNzYWdlIH0gZnJvbSAnLi4vbWVzc2FnZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBwcm92aWRlQW5pbWF0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbWVzc2FnZS16b25lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2Utem9uZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lc3NhZ2Utem9uZS5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUFuaW1hdGlvbnMoKV0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdkaXNwU3RhdHVzJywgW1xuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG4gICAgICAgIGFuaW1hdGUoNTUwLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogJyonIH0pLFxuICAgICAgICBhbmltYXRlKDU1MCwgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlWm9uZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXI/OiBzdHJpbmc7XG4gIHB1YmxpYyBjdXJyZW50OiBNZXNzYWdlW10gPSBbXTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWVzc2FnZXM6IERhdGFNZXNzYWdlU2VydmljZSkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tZXNzYWdlcy5jdXJyZW50XG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlcykgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBtZXNzYWdlcztcbiAgICAgIH0pO1xuICB9XG59XG4iLCJcbjxkaXYgY2xhc3M9XCJtZXNzYWdlem9uZVwiPlxuICA8ZGl2IGNsYXNzPVwiYWxlcnRcIiAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBjdXJyZW50XCIgW0BkaXNwU3RhdHVzXT1cIm1lc3NhZ2Uuc3RhdHVzXCIgW2NsYXNzXT1cIm1lc3NhZ2Uuc3R5bGVcIiAoY2xpY2spPVwibWVzc2FnZS5zaG93VHJhY2U9IW1lc3NhZ2Uuc2hvd1RyYWNlXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1jbG9zZVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwibWVzc2FnZXMuYWNrKG1lc3NhZ2UpXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCI+PC9idXR0b24+PHN0cm9uZz57e21lc3NhZ2UudGl0bGV9fTwvc3Ryb25nPiZuYnNwOyB7e21lc3NhZ2UubWVzc2FnZX19XG4gICAgPGRpdiBjbGFzcz1cInByZXRyYWNlXCIgKm5nSWY9XCJtZXNzYWdlLnNob3dUcmFjZVwiPnt7bWVzc2FnZS50cmFjZX19PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, InjectionToken, Optional } from "@angular/core";
|
|
2
|
-
import { ReplaySubject, timer } from "rxjs";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export var DEFAULT_TIMEOUTS;
|
|
5
|
-
(function (DEFAULT_TIMEOUTS) {
|
|
6
|
-
DEFAULT_TIMEOUTS[DEFAULT_TIMEOUTS["SUCCESS"] = 3000] = "SUCCESS";
|
|
7
|
-
DEFAULT_TIMEOUTS[DEFAULT_TIMEOUTS["INFO"] = 4000] = "INFO";
|
|
8
|
-
DEFAULT_TIMEOUTS[DEFAULT_TIMEOUTS["WARNING"] = 10000] = "WARNING";
|
|
9
|
-
DEFAULT_TIMEOUTS[DEFAULT_TIMEOUTS["DANGER"] = 30000] = "DANGER";
|
|
10
|
-
})(DEFAULT_TIMEOUTS || (DEFAULT_TIMEOUTS = {}));
|
|
11
|
-
export var STATUS;
|
|
12
|
-
(function (STATUS) {
|
|
13
|
-
STATUS[STATUS["UNDISP"] = 0] = "UNDISP";
|
|
14
|
-
STATUS[STATUS["DISP"] = 1] = "DISP";
|
|
15
|
-
STATUS[STATUS["ACK"] = 2] = "ACK";
|
|
16
|
-
})(STATUS || (STATUS = {}));
|
|
17
|
-
const DEFAULT_MESSAGE_TIMEOUT = 5000;
|
|
18
|
-
export const DATA_MESSAGE_SOUNDS = new InjectionToken("data.message.sounds");
|
|
19
|
-
export class Message {
|
|
20
|
-
constructor(title, type = 1 /* TYPE.INFO */, message = "", trace = null, ttl = DEFAULT_MESSAGE_TIMEOUT) {
|
|
21
|
-
this.title = title;
|
|
22
|
-
this.type = type;
|
|
23
|
-
this.message = message;
|
|
24
|
-
this.trace = trace;
|
|
25
|
-
this.ttl = ttl;
|
|
26
|
-
this.status = STATUS[STATUS.UNDISP];
|
|
27
|
-
this.showTrace = false;
|
|
28
|
-
}
|
|
29
|
-
get style() {
|
|
30
|
-
if (this.type === 3 /* TYPE.DANGER */) {
|
|
31
|
-
return "alert alert-dismissible alert-danger";
|
|
32
|
-
}
|
|
33
|
-
if (this.type === 1 /* TYPE.INFO */) {
|
|
34
|
-
return "alert alert-dismissible alert-info";
|
|
35
|
-
}
|
|
36
|
-
if (this.type === 2 /* TYPE.WARNING */) {
|
|
37
|
-
return "alert alert-dismissible alert-warning";
|
|
38
|
-
}
|
|
39
|
-
if (this.type === 0 /* TYPE.SUCCESS */) {
|
|
40
|
-
return "alert alert-dismissible alert-success";
|
|
41
|
-
}
|
|
42
|
-
return "alert alert-dismissible alert-success";
|
|
43
|
-
}
|
|
44
|
-
ack() {
|
|
45
|
-
this.status = STATUS[STATUS.ACK];
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
export class DataMessageService {
|
|
49
|
-
constructor(ngZone, sounds) {
|
|
50
|
-
this.ngZone = ngZone;
|
|
51
|
-
this.sounds = sounds;
|
|
52
|
-
this._messages$ = new ReplaySubject(1);
|
|
53
|
-
this._messages = [];
|
|
54
|
-
this.init();
|
|
55
|
-
}
|
|
56
|
-
get current() {
|
|
57
|
-
return this._messages$.asObservable();
|
|
58
|
-
}
|
|
59
|
-
init() {
|
|
60
|
-
let changed = false;
|
|
61
|
-
if (!this._timer) {
|
|
62
|
-
this.ngZone.runOutsideAngular(() => {
|
|
63
|
-
this._timer = timer(500, 500);
|
|
64
|
-
this._subscription = this._timer.subscribe(() => {
|
|
65
|
-
for (const m of this._messages) {
|
|
66
|
-
m.ttl -= 500;
|
|
67
|
-
if (m.ttl <= 0) {
|
|
68
|
-
changed = true;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
if (changed) {
|
|
72
|
-
this.ngZone.run(() => {
|
|
73
|
-
const out = [];
|
|
74
|
-
for (const m of this._messages) {
|
|
75
|
-
if (m.ttl >= 0) {
|
|
76
|
-
out.push(m);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
this._messages = out;
|
|
80
|
-
this._notify();
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
close() {
|
|
88
|
-
this._subscription.unsubscribe();
|
|
89
|
-
}
|
|
90
|
-
success(title, message = "", trace = null, timeout = DEFAULT_TIMEOUTS.SUCCESS) {
|
|
91
|
-
this._messages.push(new Message(title, 0 /* TYPE.SUCCESS */, message, trace, timeout));
|
|
92
|
-
this.play("success");
|
|
93
|
-
this._notify();
|
|
94
|
-
}
|
|
95
|
-
info(title, message = "", trace = null, timeout = DEFAULT_TIMEOUTS.INFO) {
|
|
96
|
-
this._messages.push(new Message(title, 1 /* TYPE.INFO */, message, trace, timeout));
|
|
97
|
-
this.play("info");
|
|
98
|
-
this._notify();
|
|
99
|
-
}
|
|
100
|
-
warning(title, message = "", trace = null, timeout = DEFAULT_TIMEOUTS.WARNING) {
|
|
101
|
-
this._messages.push(new Message(title, 2 /* TYPE.WARNING */, message, trace, timeout));
|
|
102
|
-
this.play("warning");
|
|
103
|
-
this._notify();
|
|
104
|
-
}
|
|
105
|
-
danger(title, message = "", trace = null, timeout = DEFAULT_TIMEOUTS.DANGER) {
|
|
106
|
-
this._messages.push(new Message(title, 3 /* TYPE.DANGER */, message, trace, DEFAULT_TIMEOUTS.DANGER));
|
|
107
|
-
this.play("error");
|
|
108
|
-
this._notify();
|
|
109
|
-
}
|
|
110
|
-
error(title, message = "", trace = null) {
|
|
111
|
-
this.danger(title, message, trace);
|
|
112
|
-
}
|
|
113
|
-
debug(title, message = "", trace = null) {
|
|
114
|
-
console.log(title, message, trace);
|
|
115
|
-
}
|
|
116
|
-
ack(message) {
|
|
117
|
-
message.ack();
|
|
118
|
-
this._notify();
|
|
119
|
-
}
|
|
120
|
-
play(type = "notify") {
|
|
121
|
-
if (this.sounds && this.sounds[type]) {
|
|
122
|
-
const audio = new Audio(this.sounds[type]);
|
|
123
|
-
audio.play();
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
_notify() {
|
|
127
|
-
const out = [];
|
|
128
|
-
for (const message of this._messages) {
|
|
129
|
-
if ((message.status === STATUS[STATUS.UNDISP]) ||
|
|
130
|
-
(message.status === STATUS[STATUS.DISP])) {
|
|
131
|
-
message.status = STATUS[STATUS.DISP];
|
|
132
|
-
out.push(message);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
this._messages$.next(out);
|
|
136
|
-
}
|
|
137
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", 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: "18.2.5", ngImport: i0, type: DataMessageService, providedIn: "root" }); }
|
|
139
|
-
}
|
|
140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DataMessageService, decorators: [{
|
|
141
|
-
type: Injectable,
|
|
142
|
-
args: [{
|
|
143
|
-
providedIn: "root"
|
|
144
|
-
}]
|
|
145
|
-
}], ctorParameters: () => [{ type: i0.NgZone }, { type: undefined, decorators: [{
|
|
146
|
-
type: Optional
|
|
147
|
-
}, {
|
|
148
|
-
type: Inject,
|
|
149
|
-
args: [DATA_MESSAGE_SOUNDS]
|
|
150
|
-
}] }] });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21lc3NhZ2VzL21lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQVUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBYSxhQUFhLEVBQWdCLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFNcEUsTUFBTSxDQUFOLElBQVksZ0JBS1g7QUFMRCxXQUFZLGdCQUFnQjtJQUMxQixnRUFBYyxDQUFBO0lBQ2QsMERBQVcsQ0FBQTtJQUNYLGlFQUFlLENBQUE7SUFDZiwrREFBYyxDQUFBO0FBQ2hCLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCO0FBRUQsTUFBTSxDQUFOLElBQVksTUFFWDtBQUZELFdBQVksTUFBTTtJQUNoQix1Q0FBTSxDQUFBO0lBQUUsbUNBQUksQ0FBQTtJQUFFLGlDQUFHLENBQUE7QUFDbkIsQ0FBQyxFQUZXLE1BQU0sS0FBTixNQUFNLFFBRWpCO0FBRUQsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUM7QUFNckMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQWMscUJBQXFCLENBQUMsQ0FBQztBQUcxRixNQUFNLE9BQU8sT0FBTztJQUlsQixZQUFtQixLQUFhLEVBQ2Isd0JBQXNCLEVBQ3RCLFVBQWtCLEVBQUUsRUFDcEIsUUFBYSxJQUFJLEVBQ2pCLE1BQWMsdUJBQXVCO1FBSnJDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsUUFBRyxHQUFILEdBQUcsQ0FBa0M7UUFQakQsV0FBTSxH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QUFDO2dCQUMzQyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQXRHVSxrQkFBa0Isd0NBT0csbUJBQW1CO2tIQVB4QyxrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBUWMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE5nWm9uZSwgT3B0aW9uYWx9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGltZXJ9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCBjb25zdCBlbnVtIFRZUEUge1xuICBTVUNDRVNTLCBJTkZPLCBXQVJOSU5HLCBEQU5HRVJcbn1cblxuZXhwb3J0IGVudW0gREVGQVVMVF9USU1FT1VUUyB7XG4gIFNVQ0NFU1MgPSAzMDAwLFxuICBJTkZPID0gNDAwMCxcbiAgV0FSTklORyA9IDEwMDAwLFxuICBEQU5HRVIgPSAzMDAwMFxufVxuXG5leHBvcnQgZW51bSBTVEFUVVMge1xuICBVTkRJU1AsIERJU1AsIEFDS1xufVxuXG5jb25zdCBERUZBVUxUX01FU1NBR0VfVElNRU9VVCA9IDUwMDA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNvdW5kVHlwZXMge1xuICBbaW5kZXg6IHN0cmluZ106IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3QgREFUQV9NRVNTQUdFX1NPVU5EUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJU291bmRUeXBlcz4oXCJkYXRhLm1lc3NhZ2Uuc291bmRzXCIpO1xuXG5cbmV4cG9ydCBjbGFzcyBNZXNzYWdlIHtcbiAgcHVibGljIHN0YXR1czogc3RyaW5nID0gU1RBVFVTW1NUQVRVUy5VTkRJU1BdO1xuICBwdWJsaWMgc2hvd1RyYWNlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRpdGxlOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHB1YmxpYyB0eXBlOiBUWVBFID0gVFlQRS5JTkZPLFxuICAgICAgICAgICAgICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nID0gXCJcIixcbiAgICAgICAgICAgICAgcHVibGljIHRyYWNlOiBhbnkgPSBudWxsLFxuICAgICAgICAgICAgICBwdWJsaWMgdHRsOiBudW1iZXIgPSBERUZBVUxUX01FU1NBR0VfVElNRU9VVCkge1xuICB9XG5cbiAgcHVibGljIGdldCBzdHlsZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IFRZUEUuREFOR0VSKSB7XG4gICAgICByZXR1cm4gXCJhbGVydCBhbGVydC1kaXNtaXNzaWJsZSBhbGVydC1kYW5nZXJcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gVFlQRS5JTkZPKSB7XG4gICAgICByZXR1cm4gXCJhbGVydCBhbGVydC1kaXNtaXNzaWJsZSBhbGVydC1pbmZvXCI7XG4gICAgfVxuICAgIGlmICh0aGlzLnR5cGUgPT09IFRZUEUuV0FSTklORykge1xuICAgICAgcmV0dXJuIFwiYWxlcnQgYWxlcnQtZGlzbWlzc2libGUgYWxlcnQtd2FybmluZ1wiO1xuICAgIH1cbiAgICBpZiAodGhpcy50eXBlID09PSBUWVBFLlNVQ0NFU1MpIHtcbiAgICAgIHJldHVybiBcImFsZXJ0IGFsZXJ0LWRpc21pc3NpYmxlIGFsZXJ0LXN1Y2Nlc3NcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiYWxlcnQgYWxlcnQtZGlzbWlzc2libGUgYWxlcnQtc3VjY2Vzc1wiO1xuICB9XG5cbiAgcHVibGljIGFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1cyA9IFNUQVRVU1tTVEFUVVMuQUNLXTtcbiAgfVxufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgRGF0YU1lc3NhZ2VTZXJ2aWNlIHtcbiAgcHVibGljIF9tZXNzYWdlcyQ6IFJlcGxheVN1YmplY3Q8TWVzc2FnZVtdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PE1lc3NhZ2VbXT4oMSk7XG4gIHByaXZhdGUgX21lc3NhZ2VzOiBNZXNzYWdlW10gPSBbXTtcbiAgcHJpdmF0ZSBfdGltZXIhOiBPYnNlcnZhYmxlPGFueT47XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFUQV9NRVNTQUdFX1NPVU5EUykgcHVibGljIHNvdW5kczogSVNvdW5kVHlwZXMpIHtcbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudCgpOiBPYnNlcnZhYmxlPE1lc3NhZ2VbXT4ge1xuICAgIHJldHVybiB0aGlzLl9tZXNzYWdlcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuICAgIGlmICghdGhpcy5fdGltZXIpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5fdGltZXIgPSB0aW1lcig1MDAsIDUwMCk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuX3RpbWVyLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBtIG9mIHRoaXMuX21lc3NhZ2VzKSB7XG4gICAgICAgICAgICBtLnR0bCAtPSA1MDA7XG4gICAgICAgICAgICBpZiAobS50dGwgPD0gMCkge1xuICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG91dDogTWVzc2FnZVtdID0gW107XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbSBvZiB0aGlzLl9tZXNzYWdlcykge1xuICAgICAgICAgICAgICAgIGlmIChtLnR0bCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICBvdXQucHVzaChtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZXMgPSBvdXQ7XG4gICAgICAgICAgICAgIHRoaXMuX25vdGlmeSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWNjZXNzKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyA9IFwiXCIsIHRyYWNlOiBhbnkgPSBudWxsLCB0aW1lb3V0OiBudW1iZXIgPSBERUZBVUxUX1RJTUVPVVRTLlNVQ0NFU1MpOiB2b2lkIHtcbiAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG5ldyBNZXNzYWdlKHRpdGxlLCBUWVBFLlNVQ0NFU1MsIG1lc3NhZ2UsIHRyYWNlLCB0aW1lb3V0KSk7XG4gICAgdGhpcy5wbGF5KFwic3VjY2Vzc1wiKTtcbiAgICB0aGlzLl9ub3RpZnkoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbmZvKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyA9IFwiXCIsIHRyYWNlOiBhbnkgPSBudWxsLCB0aW1lb3V0OiBudW1iZXIgPSBERUZBVUxUX1RJTUVPVVRTLklORk8pOiB2b2lkIHtcbiAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG5ldyBNZXNzYWdlKHRpdGxlLCBUWVBFLklORk8sIG1lc3NhZ2UsIHRyYWNlLCB0aW1lb3V0KSk7XG4gICAgdGhpcy5wbGF5KFwiaW5mb1wiKTtcbiAgICB0aGlzLl9ub3RpZnkoKTtcbiAgfVxuXG4gIHB1YmxpYyB3YXJuaW5nKHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyA9IFwiXCIsIHRyYWNlOiBhbnkgPSBudWxsLCB0aW1lb3V0OiBudW1iZXIgPSBERUZBVUxUX1RJTUVPVVRTLldBUk5JTkcpOiB2b2lkIHtcbiAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG5ldyBNZXNzYWdlKHRpdGxlLCBUWVBFLldBUk5JTkcsIG1lc3NhZ2UsIHRyYWNlLCB0aW1lb3V0KSk7XG4gICAgdGhpcy5wbGF5KFwid2FybmluZ1wiKVxuICAgIHRoaXMuX25vdGlmeSgpO1xuICB9XG5cbiAgcHVibGljIGRhbmdlcih0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiLCB0cmFjZTogYW55ID0gbnVsbCwgdGltZW91dDogbnVtYmVyID0gREVGQVVMVF9USU1FT1VUUy5EQU5HRVIpOiB2b2lkIHtcbiAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG5ldyBNZXNzYWdlKHRpdGxlLCBUWVBFLkRBTkdFUiwgbWVzc2FnZSwgdHJhY2UsIERFRkFVTFRfVElNRU9VVFMuREFOR0VSKSk7XG4gICAgdGhpcy5wbGF5KFwiZXJyb3JcIilcbiAgICB0aGlzLl9ub3RpZnkoKTtcbiAgfVxuXG4gIHB1YmxpYyBlcnJvcih0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiLCB0cmFjZTogYW55ID0gbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuZGFuZ2VyKHRpdGxlLCBtZXNzYWdlLCB0cmFjZSk7XG4gIH1cblxuICBwdWJsaWMgZGVidWcodGl0bGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nID0gXCJcIiwgdHJhY2U6IGFueSA9IG51bGwpOiB2b2lkIHtcbiAgICBjb25zb2xlLmxvZyh0aXRsZSwgbWVzc2FnZSwgdHJhY2UpO1xuICB9XG5cbiAgcHVibGljIGFjayhtZXNzYWdlOiBNZXNzYWdlKTogdm9pZCB7XG4gICAgbWVzc2FnZS5hY2soKTtcbiAgICB0aGlzLl9ub3RpZnkoKTtcbiAgfVxuXG4gIHB1YmxpYyBwbGF5KHR5cGU6IHN0cmluZyA9IFwibm90aWZ5XCIpIHtcbiAgICBpZiAodGhpcy5zb3VuZHMgJiYgdGhpcy5zb3VuZHNbdHlwZV0pIHtcbiAgICAgIGNvbnN0IGF1ZGlvID0gbmV3IEF1ZGlvKHRoaXMuc291bmRzW3R5cGVdKTtcbiAgICAgIGF1ZGlvLnBsYXkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9ub3RpZnkoKTogdm9pZCB7XG4gICAgY29uc3Qgb3V0OiBNZXNzYWdlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgdGhpcy5fbWVzc2FnZXMpIHtcbiAgICAgIGlmICgobWVzc2FnZS5zdGF0dXMgPT09IFNUQVRVU1tTVEFUVVMuVU5ESVNQXSkgfHxcbiAgICAgICAgKG1lc3NhZ2Uuc3RhdHVzID09PSBTVEFUVVNbU1RBVFVTLkRJU1BdKSkge1xuICAgICAgICBtZXNzYWdlLnN0YXR1cyA9IFNUQVRVU1tTVEFUVVMuRElTUF07XG4gICAgICAgIG91dC5wdXNoKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9tZXNzYWdlcyQubmV4dChvdXQpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyL21lc3NhZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElGaWVsZEhlYWRlck1lc3NhZ2Uge1xuICBkZXN0OiAnaGVhZGVyJztcbiAgc2hvdz86IGJvb2xlYW47XG4gIG1lbnU/OiAnaGlkZScgfCAnc2lkZScgfCAnY2xpY2snIHwgJ2RlZmF1bHQnO1xuICBzb3J0PzogJ2hpZGUnIHwgJ3NpZGUnIHwgJ2NsaWNrJyB8ICdkZWZhdWx0Jztcbn1cbiJdfQ==
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { Component, DestroyRef, inject, Input, ViewChild, } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
|
|
4
|
-
import { ModelListSorterComponent } from '../../model-list-sorter/model-list-sorter/model-list-sorter.component';
|
|
5
|
-
import { filter } from 'rxjs/operators';
|
|
6
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common";
|
|
9
|
-
import * as i2 from "@ng-bootstrap/ng-bootstrap";
|
|
10
|
-
export class ModelListFieldHeaderComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.sort = false;
|
|
13
|
-
this.menuMode = 'side';
|
|
14
|
-
this.sortMode = 'side';
|
|
15
|
-
this.dispMenuMode = this.menuMode;
|
|
16
|
-
this.dispSortMode = this.sortMode;
|
|
17
|
-
this.destroy$ = inject(DestroyRef);
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
this.list.messages$
|
|
21
|
-
.pipe(takeUntilDestroyed(this.destroy$), filter((m) => m.dest === 'header'))
|
|
22
|
-
.subscribe((m) => {
|
|
23
|
-
this.dispMenuMode =
|
|
24
|
-
m.menu && m.menu !== 'default' ? m.menu : this.menuMode;
|
|
25
|
-
this.dispSortMode =
|
|
26
|
-
m.sort && m.sort !== 'default' ? m.sort : this.sortMode;
|
|
27
|
-
this.display = m.show !== undefined ? m.show : this.display;
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
disable() {
|
|
31
|
-
this.list.fields.disable(this.field);
|
|
32
|
-
}
|
|
33
|
-
enable(f) {
|
|
34
|
-
this.list.fields.move(f.name, 'after', this.field);
|
|
35
|
-
this.list.fields.enable(f.name);
|
|
36
|
-
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ModelListFieldHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", 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"] }] }); }
|
|
39
|
-
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ModelListFieldHeaderComponent, decorators: [{
|
|
41
|
-
type: Component,
|
|
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"] }]
|
|
43
|
-
}], ctorParameters: () => [], propDecorators: { list: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], field: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], sort: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], sortField: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], menuMode: [{
|
|
52
|
-
type: Input
|
|
53
|
-
}], sortMode: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], display: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}], mnu: [{
|
|
58
|
-
type: ViewChild,
|
|
59
|
-
args: ['mnu', { static: false }]
|
|
60
|
-
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWVsZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpZWxkcy9tb2RlbC1saXN0LWZpZWxkLWhlYWRlci9tb2RlbC1saXN0LWZpZWxkLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyL21vZGVsLWxpc3QtZmllbGQtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFTaEUsTUFBTSxPQUFPLDZCQUE2QjtJQWdCeEM7UUFYZ0IsU0FBSSxHQUFhLEtBQUssQ0FBQztRQUV2QixhQUFRLEdBQThCLE1BQU0sQ0FBQztRQUM3QyxhQUFRLEdBQThCLE1BQU0sQ0FBQztRQUl0RCxpQkFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDN0IsaUJBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzVCLGFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdkIsQ0FBQztJQUVULFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7YUFDaEIsSUFBSSxDQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDakMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUNuQzthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVk7Z0JBQ2YsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUMxRCxJQUFJLENBQUMsWUFBWTtnQkFDZixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzFELElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxDQUFpQjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0F4Q1UsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsb1VDeEIxQyxtMERBeUJNLDBNREhNLFlBQVksMmRBQUUsaUJBQWlCLG1uQkFBRSx3QkFBd0I7OzJGQUV4RCw2QkFBNkI7a0JBUHpDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQzt3REFLcEQsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFFc0MsR0FBRztzQkFBOUMsU0FBUzt1QkFBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RlbExpc3QgfSBmcm9tICcuLi8uLi9tb2RlbC1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpZWxkIH0gZnJvbSAnLi4vbW9kZWwtbGlzdC1maWVsZHMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nYkRyb3Bkb3duLCBOZ2JEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE1vZGVsTGlzdFNvcnRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vZGVsLWxpc3Qtc29ydGVyL21vZGVsLWxpc3Qtc29ydGVyL21vZGVsLWxpc3Qtc29ydGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdGEtbW9kZWwtbGlzdC1maWVsZC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtbGlzdC1maWVsZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC1saXN0LWZpZWxkLWhlYWRlci5jb21wb25lbnQuc2FzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ2JEcm9wZG93bk1vZHVsZSwgTW9kZWxMaXN0U29ydGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0RmllbGRIZWFkZXJDb21wb25lbnQ8VCBleHRlbmRzIERhdGFNb2RlbD5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgQElucHV0KCkgcHVibGljIGxpc3QhOiBNb2RlbExpc3Q8VD47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZCE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNvcnQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzb3J0RmllbGQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51TW9kZTogJ2hpZGUnIHwgJ3NpZGUnIHwgJ2NsaWNrJyA9ICdzaWRlJztcbiAgQElucHV0KCkgcHVibGljIHNvcnRNb2RlOiAnaGlkZScgfCAnc2lkZScgfCAnY2xpY2snID0gJ3NpZGUnO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzcGxheT86IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnbW51JywgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyBtbnU/OiBOZ2JEcm9wZG93bjtcbiAgcHVibGljIGRpc3BNZW51TW9kZSA9IHRoaXMubWVudU1vZGU7XG4gIHB1YmxpYyBkaXNwU29ydE1vZGUgPSB0aGlzLnNvcnRNb2RlO1xuICBwcml2YXRlIGRlc3Ryb3kkID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5saXN0Lm1lc3NhZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgZmlsdGVyKChtKSA9PiBtLmRlc3QgPT09ICdoZWFkZXInKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKG0pID0+IHtcbiAgICAgICAgdGhpcy5kaXNwTWVudU1vZGUgPVxuICAgICAgICAgIG0ubWVudSAmJiBtLm1lbnUgIT09ICdkZWZhdWx0JyA/IG0ubWVudSA6IHRoaXMubWVudU1vZGU7XG4gICAgICAgIHRoaXMuZGlzcFNvcnRNb2RlID1cbiAgICAgICAgICBtLnNvcnQgJiYgbS5zb3J0ICE9PSAnZGVmYXVsdCcgPyBtLnNvcnQgOiB0aGlzLnNvcnRNb2RlO1xuICAgICAgICB0aGlzLmRpc3BsYXkgPSBtLnNob3cgIT09IHVuZGVmaW5lZCA/IG0uc2hvdyA6IHRoaXMuZGlzcGxheTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGUoKSB7XG4gICAgdGhpcy5saXN0LmZpZWxkcy5kaXNhYmxlKHRoaXMuZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZShmOiBNb2RlbExpc3RGaWVsZCkge1xuICAgIHRoaXMubGlzdC5maWVsZHMubW92ZShmLm5hbWUsICdhZnRlcicsIHRoaXMuZmllbGQpO1xuICAgIHRoaXMubGlzdC5maWVsZHMuZW5hYmxlKGYubmFtZSk7XG4gIH1cbn1cbiIsIlxuPG5nLXRlbXBsYXRlICNsYWJlbD48c3BhbiAjcmVmPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+PHNwYW4gKm5nSWY9XCIhcmVmLmNoaWxkcmVuLmxlbmd0aFwiPnt7bGlzdC5maWVsZHMuZ2V0KGZpZWxkKT8ubGFiZWx8fGZpZWxkfX08L3NwYW4+PC9uZy10ZW1wbGF0ZT5cbjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kIHNsYWJlbFwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cbiAgICA8ZGF0YS1tb2RlbC1saXN0LXNvcnRlciBbbGlzdF09XCJsaXN0XCIgW2ZpZWxkXT1cInNvcnRGaWVsZHx8ZmllbGRcIiAqbmdJZj1cInNvcnQgJmFtcDsmYW1wOyBkaXNwU29ydE1vZGU9PT0nc2lkZSdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYWJlbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGF0YS1tb2RlbC1saXN0LXNvcnRlcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNvcnQgfHwgZGlzcFNvcnRNb2RlPT09J2hpZGUnXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFiZWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJuYXZpY29ucyBkLWZsZXggZmxleC1yb3dcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidHZXN0aW9uIGNoYW1wcydcIiAqbmdJZj1cImRpc3BNZW51TW9kZT09PSdzaWRlJ1wiPjxpIGNsYXNzPVwiYmkgYmktY2FyZXQtbGVmdC1maWxsXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJsaXN0LmZpZWxkcy5tb3ZlKGZpZWxkLCAnYmVmb3JlJylcIiBhcmlhLWxhYmVsPVwiRMOpcGxhY2VyIHZlcnMgbGEgZ2F1Y2hlXCI+PC9pPlxuICAgIDxkaXYgbmdiRHJvcGRvd24gI21udT1cIm5nYkRyb3Bkb3duXCIgW2NvbnRhaW5lcl09XCInYm9keSdcIj48aSBjbGFzcz1cImJpIGJpLXJlY29yZFwiIG5nYkRyb3Bkb3duVG9nZ2xlIGFyaWEtbGFiZWw9XCJPdXZyaXIgbGEgYm9pdGUgZGUgZGlhbG9ndWUgZGVzIGNoYW1wc1wiIHJvbGU9XCJidXR0b25cIj48L2k+XG4gICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudT5cbiAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gKGNsaWNrKT1cImRpc2FibGUoKVwiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2ggbWUtMlwiPjwvaT5TdXBwcmltZXI8L2J1dHRvbj5cbiAgICAgICAgPGg2IGNsYXNzPVwiZHJvcGRvd24taGVhZGVyXCI+QWpvdXRlciB1bmUgY29sb25uZSBhcHLDqHM8L2g2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmIG9mIGxpc3QuZmllbGRzLmZpZWxkc3xhc3luY1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmLmFsbG93ZWQgJmFtcDsmYW1wOyAhZi5lbmFibGVkXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwiZW5hYmxlKGYpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJmLmxhYmVsfHxmLm5hbWVcIj48aSBjbGFzcz1cImJpIGJpLXBsdXMtY2lyY2xlIG1lLTJcIj48L2k+e3tmLmxhYmVsfHxmLm5hbWV9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PjxpIGNsYXNzPVwiYmkgYmktY2FyZXQtcmlnaHQtZmlsbFwiIHJvbGU9XCJidXR0b25cIiAoY2xpY2spPVwibGlzdC5maWVsZHMubW92ZShmaWVsZCwgJ2FmdGVyJylcIiBhcmlhLWxhYmVsPVwiRMOpcGxhY2VyIHZlcnMgbGEgZHJvaXRlXCI+PC9pPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
2
|
-
import { CDK_DRAG_CONFIG, DragDropModule, } from '@angular/cdk/drag-drop';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { NgbOffcanvasModule } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
-
import { CdkScrollableModule } from '@angular/cdk/scrolling';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
8
|
-
import * as i2 from "@angular/common";
|
|
9
|
-
import * as i3 from "@angular/cdk/scrolling";
|
|
10
|
-
import * as i4 from "@angular/cdk/drag-drop";
|
|
11
|
-
const DragConfig = {
|
|
12
|
-
dragStartThreshold: 5,
|
|
13
|
-
pointerDirectionChangeThreshold: 10,
|
|
14
|
-
zIndex: 10000,
|
|
15
|
-
};
|
|
16
|
-
export class ModelListFieldsSelectorComponent {
|
|
17
|
-
constructor(_ofc) {
|
|
18
|
-
this._ofc = _ofc;
|
|
19
|
-
this.seeMore = false;
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
if (!this.list || !this.list.fields) {
|
|
23
|
-
throw new Error('Missing list / fields');
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
open() {
|
|
27
|
-
this._ofc.open(this.ofctpl);
|
|
28
|
-
}
|
|
29
|
-
drop($event) {
|
|
30
|
-
let pos = $event.currentIndex * 10;
|
|
31
|
-
if ($event.currentIndex > $event.previousIndex) {
|
|
32
|
-
pos += 1;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
pos -= 1;
|
|
36
|
-
}
|
|
37
|
-
this.list.fields.setPosition($event.item.data, pos);
|
|
38
|
-
}
|
|
39
|
-
toggle(f) {
|
|
40
|
-
if (f.enabled) {
|
|
41
|
-
this.list.fields.disable(f.name);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
this.list.fields.enable(f.name);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ModelListFieldsSelectorComponent, deps: [{ token: i1.NgbOffcanvas }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", 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", "cdkDropListElementContainer"], 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", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "ngmodule", type: CdkScrollableModule }, { kind: "ngmodule", type: NgbOffcanvasModule }] }); }
|
|
49
|
-
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ModelListFieldsSelectorComponent, decorators: [{
|
|
51
|
-
type: Component,
|
|
52
|
-
args: [{ selector: 'data-model-list-fields-selector', standalone: true, imports: [
|
|
53
|
-
CommonModule,
|
|
54
|
-
DragDropModule,
|
|
55
|
-
CdkScrollableModule,
|
|
56
|
-
NgbOffcanvasModule,
|
|
57
|
-
], providers: [{ provide: CDK_DRAG_CONFIG, useValue: DragConfig }], 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"] }]
|
|
58
|
-
}], ctorParameters: () => [{ type: i1.NgbOffcanvas }], propDecorators: { list: [{
|
|
59
|
-
type: Input
|
|
60
|
-
}], ofctpl: [{
|
|
61
|
-
type: ViewChild,
|
|
62
|
-
args: ['selector', { static: true }]
|
|
63
|
-
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtbGlzdC1maWVsZHMtc2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL21vZGVsbGlzdC9tb2RlbC1saXN0LWZpZWxkcy9tb2RlbC1saXN0LWZpZWxkcy1zZWxlY3Rvci9tb2RlbC1saXN0LWZpZWxkcy1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvbW9kZWxsaXN0L21vZGVsLWxpc3QtZmllbGRzL21vZGVsLWxpc3QtZmllbGRzLXNlbGVjdG9yL21vZGVsLWxpc3QtZmllbGRzLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRixPQUFPLEVBQ0wsZUFBZSxFQUVmLGNBQWMsR0FDZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQUU3RCxNQUFNLFVBQVUsR0FBRztJQUNqQixrQkFBa0IsRUFBRSxDQUFDO0lBQ3JCLCtCQUErQixFQUFFLEVBQUU7SUFDbkMsTUFBTSxFQUFFLEtBQUs7Q0FDZCxDQUFDO0FBZUYsTUFBTSxPQUFPLGdDQUFnQztJQVEzQyxZQUFvQixJQUFrQjtRQUFsQixTQUFJLEdBQUosSUFBSSxDQUFjO1FBRi9CLFlBQU8sR0FBWSxLQUFLLENBQUM7SUFFUyxDQUFDO0lBRW5DLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQTJCO1FBQzlCLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDL0MsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNYLENBQUM7YUFBTSxDQUFDO1lBQ04sR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxDQUFpQjtRQUM3QixJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOzhHQXBDVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyx3R0FGaEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLDRJQzlCakUsNG1DQWdCYyxva0NEU1YsWUFBWSxvVEFDWixjQUFjLDBsQ0FDZCxtQkFBbUIsOEJBQ25CLGtCQUFrQjs7MkZBSVQsZ0NBQWdDO2tCQWI1QyxTQUFTOytCQUNFLGlDQUFpQyxjQUcvQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNuQixhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQztpRkFLL0MsSUFBSTtzQkFBbkIsS0FBSztnQkFFQyxNQUFNO3NCQURaLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgTW9kZWxMaXN0IH0gZnJvbSAnLi4vLi4vbW9kZWwtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIENES19EUkFHX0NPTkZJRyxcbiAgQ2RrRHJhZ0Ryb3AsXG4gIERyYWdEcm9wTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ2JPZmZjYW52YXMsIE5nYk9mZmNhbnZhc01vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IE1vZGVsTGlzdEZpZWxkIH0gZnJvbSAnLi4vbW9kZWwtbGlzdC1maWVsZHMnO1xuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuXG5jb25zdCBEcmFnQ29uZmlnID0ge1xuICBkcmFnU3RhcnRUaHJlc2hvbGQ6IDUsXG4gIHBvaW50ZXJEaXJlY3Rpb25DaGFuZ2VUaHJlc2hvbGQ6IDEwLFxuICB6SW5kZXg6IDEwMDAwLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YS1tb2RlbC1saXN0LWZpZWxkcy1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1saXN0LWZpZWxkcy1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWxpc3QtZmllbGRzLXNlbGVjdG9yLmNvbXBvbmVudC5zYXNzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgQ2RrU2Nyb2xsYWJsZU1vZHVsZSxcbiAgICBOZ2JPZmZjYW52YXNNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ0RLX0RSQUdfQ09ORklHLCB1c2VWYWx1ZTogRHJhZ0NvbmZpZyB9XSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxMaXN0RmllbGRzU2VsZWN0b3JDb21wb25lbnQ8VCBleHRlbmRzIERhdGFNb2RlbD5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgQElucHV0KCkgcHVibGljIGxpc3QhOiBNb2RlbExpc3Q8VD47XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdG9yJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIG9mY3RwbCE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBwdWJsaWMgc2VlTW9yZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX29mYzogTmdiT2ZmY2FudmFzKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMubGlzdCB8fCAhdGhpcy5saXN0LmZpZWxkcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGxpc3QgLyBmaWVsZHMnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlbigpIHtcbiAgICB0aGlzLl9vZmMub3Blbih0aGlzLm9mY3RwbCk7XG4gIH1cblxuICBkcm9wKCRldmVudDogQ2RrRHJhZ0Ryb3A8VCwgYW55Pikge1xuICAgIGxldCBwb3MgPSAkZXZlbnQuY3VycmVudEluZGV4ICogMTA7XG4gICAgaWYgKCRldmVudC5jdXJyZW50SW5kZXggPiAkZXZlbnQucHJldmlvdXNJbmRleCkge1xuICAgICAgcG9zICs9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBvcyAtPSAxO1xuICAgIH1cbiAgICB0aGlzLmxpc3QuZmllbGRzLnNldFBvc2l0aW9uKCRldmVudC5pdGVtLmRhdGEsIHBvcyk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKGY6IE1vZGVsTGlzdEZpZWxkKSB7XG4gICAgaWYgKGYuZW5hYmxlZCkge1xuICAgICAgdGhpcy5saXN0LmZpZWxkcy5kaXNhYmxlKGYubmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubGlzdC5maWVsZHMuZW5hYmxlKGYubmFtZSk7XG4gICAgfVxuICB9XG59XG4iLCI8aSBjbGFzcz1cImJpIGJpLWxpc3QtdWxcIiAoY2xpY2spPVwib3BlbigpXCIgcm9sZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJDaG9peCBkZXMgY2hhbXBzXCI+PC9pPlxuPG5nLXRlbXBsYXRlICNzZWxlY3RvciBsZXQtb2ZmY2FudmFzPlxuICA8ZGl2IGNsYXNzPVwib2ZmY2FudmFzLWhlYWRlclwiPlxuICAgIDxoNCBjbGFzcz1cIm9mZmNhbnZhcy10aXRsZVwiPkNob2l4IGRlcyBjaGFtcHM8L2g0PlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4tY2xvc2VcIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm9mZmNhbnZhcy5kaXNtaXNzKCd4JylcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvZmZjYW52YXMtYm9keVwiIGNka1Njcm9sbGFibGU+XG4gICAgPGRpdiBjbGFzcz1cImZpZWxkcy1saXN0XCIgY2RrRHJvcExpc3QgY2RrRHJvcExpc3RMb2NrQXhpcz1cInlcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiICpuZ0lmPVwibGlzdC5maWVsZHMuZmllbGRzfGFzeW5jIGFzIGZpZWxkc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZiBvZiBmaWVsZHNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlZU1vcmUgfHwgZi5wcmlvcml0eSAmZ3Q7PSAwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLWJveFwiIGNka0RyYWcgKGNsaWNrKT1cInRvZ2dsZShmKVwiIFtjZGtEcmFnRGF0YV09XCJmLm5hbWVcIiBbY2xhc3MuZW5hYmxlZF09XCJmLmVuYWJsZWRcIiBbY2xhc3MuY29tcGFjdF09XCJmaWVsZHMubGVuZ3RoJmd0OzMwXCIgW2F0dHIuYXJpYWwtbGFiZWxdPVwiZi5sYWJlbFwiIHJvbGU9XCJidXR0b25cIj57e2YubGFiZWx9fTxzcGFuIGNsYXNzPVwiYmFkZ2UgYmctaW5mb1wiPiB7e2YucHJpb3JpdHl9fTwvc3Bhbj48L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlua1wiIChjbGljayk9XCJzZWVNb3JlPSFzZWVNb3JlXCI+cGx1cyBkZSBjaGFtcHM8L2J1dHRvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
|