ngx-ode-ui 4.6.0-dev.1 → 4.6.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/esm2020/lib/components/datepicker/datepicker.component.mjs +148 -0
- package/esm2020/lib/components/dropdown/dropdown.component.mjs +55 -0
- package/esm2020/lib/components/ellipsis/ellipsis.component.mjs +53 -0
- package/esm2020/lib/components/form-errors/form-errors.component.mjs +35 -0
- package/esm2020/lib/components/form-field/form-field.component.mjs +24 -0
- package/esm2020/lib/components/item-tree/item-tree.component.mjs +170 -0
- package/esm2020/lib/components/lightbox/lightbox.component.mjs +70 -0
- package/esm2020/lib/components/lightbox-confirm/lightbox-confirm.component.mjs +43 -0
- package/esm2020/lib/components/list/list.component.mjs +88 -0
- package/esm2020/lib/components/list-checkable/list-checkable.component.mjs +79 -0
- package/esm2020/lib/components/message-box/message-box.component.mjs +92 -0
- package/esm2020/lib/components/message-sticker/message-sticker.component.mjs +51 -0
- package/esm2020/lib/components/mono-select/mono-select.component.mjs +83 -0
- package/esm2020/lib/components/multi-combo/multi-combo.component.mjs +166 -0
- package/esm2020/lib/components/multi-select/multi-select.component.mjs +104 -0
- package/esm2020/lib/components/panel-section/panel-section.component.mjs +23 -0
- package/esm2020/lib/components/portal/portal.component.mjs +15 -0
- package/esm2020/lib/components/push-panel/push-panel.component.mjs +43 -0
- package/esm2020/lib/components/search-input/search-input.component.mjs +87 -0
- package/esm2020/lib/components/search-toolbar/search-toolbar.component.mjs +56 -0
- package/esm2020/lib/components/side-layout/side-layout.component.mjs +23 -0
- package/esm2020/lib/components/side-panel/side-panel.component.mjs +41 -0
- package/esm2020/lib/components/spinner-cube/spinner-cube.component.mjs +31 -0
- package/esm2020/lib/components/table/pager.component.mjs +48 -0
- package/esm2020/lib/components/tooltip/tooltip.component.mjs +104 -0
- package/esm2020/lib/components/upload-files/upload-files.component.mjs +59 -0
- package/esm2020/lib/components/value-editable/simple-select.component.mjs +29 -0
- package/esm2020/lib/components/wizard/wizard.component.mjs +152 -0
- package/esm2020/lib/directives/anchor.directive.mjs +27 -0
- package/esm2020/lib/directives/drag-and-drop-files.directive.mjs +82 -0
- package/esm2020/lib/directives/dynamic-component/component-descriptor.model.mjs +15 -0
- package/esm2020/lib/directives/dynamic-component/dynamic-component.directive.mjs +58 -0
- package/esm2020/lib/directives/dynamictemplate.directive.mjs +83 -0
- package/esm2020/lib/directives/object-url.directive.mjs +28 -0
- package/esm2020/lib/ngx-ode-ui.module.mjs +282 -0
- package/esm2020/lib/pipes/bytes.pipe.mjs +20 -0
- package/esm2020/lib/pipes/filter.pipe.mjs +97 -0
- package/esm2020/lib/pipes/flattenObjArray.pipe.mjs +35 -0
- package/esm2020/lib/pipes/keys.pipe.mjs +20 -0
- package/esm2020/lib/pipes/length.pipe.mjs +17 -0
- package/esm2020/lib/pipes/limit.pipe.mjs +17 -0
- package/esm2020/lib/pipes/localizedDate.pipe.mjs +23 -0
- package/esm2020/lib/pipes/orderBy.pipe.mjs +161 -0
- package/esm2020/lib/pipes/replace.pipe.mjs +20 -0
- package/esm2020/lib/pipes/store.pipe.mjs +17 -0
- package/esm2020/lib/services/dynamicModuleImports.service.mjs +13 -0
- package/esm2020/lib/services/inputFile.service.mjs +56 -0
- package/esm2020/lib/services/labels.service.mjs +32 -0
- package/esm2020/lib/services/spinner.service.mjs +76 -0
- package/esm2020/lib/utils/math.mjs +19 -0
- package/esm2020/lib/utils/string.mjs +11 -0
- package/esm2020/lib/utils/testing.mjs +7 -0
- package/esm2020/ngx-ode-ui.mjs +5 -0
- package/esm2020/public-api.mjs +57 -0
- package/fesm2015/ngx-ode-ui.mjs +2954 -0
- package/fesm2015/ngx-ode-ui.mjs.map +1 -0
- package/fesm2020/ngx-ode-ui.mjs +2952 -0
- package/fesm2020/ngx-ode-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/datepicker/datepicker.component.d.ts +7 -2
- package/lib/components/dropdown/dropdown.component.d.ts +3 -0
- package/lib/components/ellipsis/ellipsis.component.d.ts +4 -1
- package/lib/components/form-errors/form-errors.component.d.ts +3 -0
- package/lib/components/form-field/form-field.component.d.ts +3 -0
- package/lib/components/item-tree/item-tree.component.d.ts +5 -1
- package/lib/components/lightbox/lightbox.component.d.ts +5 -1
- package/lib/components/lightbox-confirm/lightbox-confirm.component.d.ts +3 -0
- package/lib/components/list/list.component.d.ts +5 -1
- package/lib/components/list-checkable/list-checkable.component.d.ts +5 -1
- package/lib/components/message-box/message-box.component.d.ts +8 -4
- package/lib/components/message-sticker/message-sticker.component.d.ts +3 -0
- package/lib/components/mono-select/mono-select.component.d.ts +3 -0
- package/lib/components/multi-combo/multi-combo.component.d.ts +4 -1
- package/lib/components/multi-select/multi-select.component.d.ts +3 -0
- package/lib/components/panel-section/panel-section.component.d.ts +3 -0
- package/lib/components/portal/portal.component.d.ts +3 -0
- package/lib/components/push-panel/push-panel.component.d.ts +4 -1
- package/lib/components/search-input/search-input.component.d.ts +5 -1
- package/lib/components/search-toolbar/search-toolbar.component.d.ts +3 -0
- package/lib/components/side-layout/side-layout.component.d.ts +3 -0
- package/lib/components/side-panel/side-panel.component.d.ts +4 -1
- package/lib/components/spinner-cube/spinner-cube.component.d.ts +5 -1
- package/lib/components/table/pager.component.d.ts +3 -0
- package/lib/components/tooltip/tooltip.component.d.ts +3 -0
- package/lib/components/upload-files/upload-files.component.d.ts +3 -0
- package/lib/components/value-editable/simple-select.component.d.ts +3 -0
- package/lib/components/wizard/wizard.component.d.ts +5 -0
- package/lib/directives/anchor.directive.d.ts +3 -0
- package/lib/directives/drag-and-drop-files.directive.d.ts +3 -0
- package/lib/directives/dynamic-component/dynamic-component.directive.d.ts +3 -0
- package/lib/directives/dynamictemplate.directive.d.ts +4 -1
- package/lib/directives/object-url.directive.d.ts +3 -0
- package/lib/ngx-ode-ui.module.d.ts +53 -2
- package/lib/pipes/bytes.pipe.d.ts +3 -0
- package/lib/pipes/filter.pipe.d.ts +3 -0
- package/lib/pipes/flattenObjArray.pipe.d.ts +3 -0
- package/lib/pipes/keys.pipe.d.ts +3 -0
- package/lib/pipes/length.pipe.d.ts +3 -0
- package/lib/pipes/limit.pipe.d.ts +3 -0
- package/lib/pipes/localizedDate.pipe.d.ts +3 -0
- package/lib/pipes/orderBy.pipe.d.ts +3 -0
- package/lib/pipes/replace.pipe.d.ts +8 -0
- package/lib/pipes/store.pipe.d.ts +3 -0
- package/lib/services/dynamicModuleImports.service.d.ts +3 -0
- package/lib/services/inputFile.service.d.ts +3 -0
- package/lib/services/labels.service.d.ts +3 -0
- package/lib/services/spinner.service.d.ts +4 -1
- package/package.json +29 -17
- package/public-api.d.ts +3 -0
- package/CHANGELOG.md +0 -14
- package/bundles/ngx-ode-ui.umd.js +0 -5804
- package/bundles/ngx-ode-ui.umd.js.map +0 -1
- package/bundles/ngx-ode-ui.umd.min.js +0 -17
- package/bundles/ngx-ode-ui.umd.min.js.map +0 -1
- package/esm2015/lib/components/datepicker/datepicker.component.js +0 -261
- package/esm2015/lib/components/dropdown/dropdown.component.js +0 -76
- package/esm2015/lib/components/ellipsis/ellipsis.component.js +0 -98
- package/esm2015/lib/components/form-errors/form-errors.component.js +0 -65
- package/esm2015/lib/components/form-field/form-field.component.js +0 -40
- package/esm2015/lib/components/item-tree/item-tree.component.js +0 -289
- package/esm2015/lib/components/lightbox/lightbox.component.js +0 -129
- package/esm2015/lib/components/lightbox-confirm/lightbox-confirm.component.js +0 -65
- package/esm2015/lib/components/list/list.component.js +0 -140
- package/esm2015/lib/components/list-checkable/list-checkable.component.js +0 -137
- package/esm2015/lib/components/message-box/message-box.component.js +0 -153
- package/esm2015/lib/components/message-sticker/message-sticker.component.js +0 -81
- package/esm2015/lib/components/mono-select/mono-select.component.js +0 -164
- package/esm2015/lib/components/multi-combo/multi-combo.component.js +0 -255
- package/esm2015/lib/components/multi-select/multi-select.component.js +0 -214
- package/esm2015/lib/components/panel-section/panel-section.component.js +0 -38
- package/esm2015/lib/components/portal/portal.component.js +0 -27
- package/esm2015/lib/components/push-panel/push-panel.component.js +0 -81
- package/esm2015/lib/components/search-input/search-input.component.js +0 -176
- package/esm2015/lib/components/search-toolbar/search-toolbar.component.js +0 -84
- package/esm2015/lib/components/side-layout/side-layout.component.js +0 -39
- package/esm2015/lib/components/side-panel/side-panel.component.js +0 -76
- package/esm2015/lib/components/spinner-cube/spinner-cube.component.js +0 -67
- package/esm2015/lib/components/table/pager.component.js +0 -95
- package/esm2015/lib/components/tooltip/tooltip.component.js +0 -172
- package/esm2015/lib/components/upload-files/upload-files.component.js +0 -112
- package/esm2015/lib/components/value-editable/simple-select.component.js +0 -57
- package/esm2015/lib/components/wizard/wizard.component.js +0 -225
- package/esm2015/lib/directives/anchor.directive.js +0 -34
- package/esm2015/lib/directives/drag-and-drop-files.directive.js +0 -126
- package/esm2015/lib/directives/dynamic-component/component-descriptor.model.js +0 -34
- package/esm2015/lib/directives/dynamic-component/dynamic-component.directive.js +0 -100
- package/esm2015/lib/directives/dynamictemplate.directive.js +0 -159
- package/esm2015/lib/directives/object-url.directive.js +0 -53
- package/esm2015/lib/ngx-ode-ui.module.js +0 -188
- package/esm2015/lib/pipes/bytes.pipe.js +0 -27
- package/esm2015/lib/pipes/filter.pipe.js +0 -141
- package/esm2015/lib/pipes/flattenObjArray.pipe.js +0 -52
- package/esm2015/lib/pipes/keys.pipe.js +0 -27
- package/esm2015/lib/pipes/length.pipe.js +0 -22
- package/esm2015/lib/pipes/limit.pipe.js +0 -24
- package/esm2015/lib/pipes/localizedDate.pipe.js +0 -44
- package/esm2015/lib/pipes/orderBy.pipe.js +0 -269
- package/esm2015/lib/pipes/store.pipe.js +0 -24
- package/esm2015/lib/services/dynamicModuleImports.service.js +0 -19
- package/esm2015/lib/services/inputFile.service.js +0 -80
- package/esm2015/lib/services/labels.service.js +0 -54
- package/esm2015/lib/services/spinner.service.js +0 -163
- package/esm2015/lib/utils/math.js +0 -49
- package/esm2015/lib/utils/string.js +0 -29
- package/esm2015/lib/utils/testing.js +0 -20
- package/esm2015/ngx-ode-ui.js +0 -12
- package/esm2015/public-api.js +0 -59
- package/esm5/lib/components/datepicker/datepicker.component.js +0 -292
- package/esm5/lib/components/dropdown/dropdown.component.js +0 -81
- package/esm5/lib/components/ellipsis/ellipsis.component.js +0 -106
- package/esm5/lib/components/form-errors/form-errors.component.js +0 -73
- package/esm5/lib/components/form-field/form-field.component.js +0 -41
- package/esm5/lib/components/item-tree/item-tree.component.js +0 -345
- package/esm5/lib/components/lightbox/lightbox.component.js +0 -141
- package/esm5/lib/components/lightbox-confirm/lightbox-confirm.component.js +0 -67
- package/esm5/lib/components/list/list.component.js +0 -146
- package/esm5/lib/components/list-checkable/list-checkable.component.js +0 -148
- package/esm5/lib/components/message-box/message-box.component.js +0 -190
- package/esm5/lib/components/message-sticker/message-sticker.component.js +0 -92
- package/esm5/lib/components/mono-select/mono-select.component.js +0 -192
- package/esm5/lib/components/multi-combo/multi-combo.component.js +0 -294
- package/esm5/lib/components/multi-select/multi-select.component.js +0 -258
- package/esm5/lib/components/panel-section/panel-section.component.js +0 -40
- package/esm5/lib/components/portal/portal.component.js +0 -28
- package/esm5/lib/components/push-panel/push-panel.component.js +0 -91
- package/esm5/lib/components/search-input/search-input.component.js +0 -199
- package/esm5/lib/components/search-toolbar/search-toolbar.component.js +0 -93
- package/esm5/lib/components/side-layout/side-layout.component.js +0 -41
- package/esm5/lib/components/side-panel/side-panel.component.js +0 -85
- package/esm5/lib/components/spinner-cube/spinner-cube.component.js +0 -76
- package/esm5/lib/components/table/pager.component.js +0 -113
- package/esm5/lib/components/tooltip/tooltip.component.js +0 -188
- package/esm5/lib/components/upload-files/upload-files.component.js +0 -133
- package/esm5/lib/components/value-editable/simple-select.component.js +0 -59
- package/esm5/lib/components/wizard/wizard.component.js +0 -161
- package/esm5/lib/directives/anchor.directive.js +0 -39
- package/esm5/lib/directives/drag-and-drop-files.directive.js +0 -146
- package/esm5/lib/directives/dynamic-component/component-descriptor.model.js +0 -44
- package/esm5/lib/directives/dynamic-component/dynamic-component.directive.js +0 -109
- package/esm5/lib/directives/dynamictemplate.directive.js +0 -175
- package/esm5/lib/directives/object-url.directive.js +0 -62
- package/esm5/lib/ngx-ode-ui.module.js +0 -199
- package/esm5/lib/pipes/bytes.pipe.js +0 -37
- package/esm5/lib/pipes/filter.pipe.js +0 -179
- package/esm5/lib/pipes/flattenObjArray.pipe.js +0 -62
- package/esm5/lib/pipes/keys.pipe.js +0 -36
- package/esm5/lib/pipes/length.pipe.js +0 -30
- package/esm5/lib/pipes/limit.pipe.js +0 -35
- package/esm5/lib/pipes/localizedDate.pipe.js +0 -49
- package/esm5/lib/pipes/orderBy.pipe.js +0 -280
- package/esm5/lib/pipes/store.pipe.js +0 -35
- package/esm5/lib/services/dynamicModuleImports.service.js +0 -21
- package/esm5/lib/services/inputFile.service.js +0 -98
- package/esm5/lib/services/labels.service.js +0 -68
- package/esm5/lib/services/spinner.service.js +0 -195
- package/esm5/lib/utils/math.js +0 -49
- package/esm5/lib/utils/string.js +0 -29
- package/esm5/lib/utils/testing.js +0 -20
- package/esm5/ngx-ode-ui.js +0 -12
- package/esm5/public-api.js +0 -59
- package/fesm2015/ngx-ode-ui.js +0 -5027
- package/fesm2015/ngx-ode-ui.js.map +0 -1
- package/fesm5/ngx-ode-ui.js +0 -5560
- package/fesm5/ngx-ode-ui.js.map +0 -1
- package/ngx-ode-ui.d.ts +0 -6
- package/ngx-ode-ui.metadata.json +0 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { OdeComponent } from 'ngx-ode-core';
|
|
2
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
export class LightBoxComponent extends OdeComponent {
|
|
6
|
+
constructor(injector, renderer, host) {
|
|
7
|
+
super(injector);
|
|
8
|
+
this.renderer = renderer;
|
|
9
|
+
this.host = host;
|
|
10
|
+
this._show = false;
|
|
11
|
+
this.showCloseButton = true;
|
|
12
|
+
this.onClose = new EventEmitter();
|
|
13
|
+
}
|
|
14
|
+
set show(s) {
|
|
15
|
+
if (this.timer) {
|
|
16
|
+
clearTimeout(this.timer);
|
|
17
|
+
}
|
|
18
|
+
if (s) {
|
|
19
|
+
this._show = true;
|
|
20
|
+
this.timer = window.setTimeout(() => {
|
|
21
|
+
this.renderer.addClass(this.host.nativeElement, 'shown');
|
|
22
|
+
this.timer = null;
|
|
23
|
+
this.changeDetector.markForCheck();
|
|
24
|
+
}, 100);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
const wait = parseFloat(this.section &&
|
|
28
|
+
window.getComputedStyle(this.section.nativeElement)['transition-duration']);
|
|
29
|
+
this.renderer.removeClass(this.host.nativeElement, 'shown');
|
|
30
|
+
this.timer = window.setTimeout(() => {
|
|
31
|
+
this._show = false;
|
|
32
|
+
this.timer = null;
|
|
33
|
+
this.changeDetector.markForCheck();
|
|
34
|
+
}, wait * 1000);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
get show() {
|
|
38
|
+
return this._show;
|
|
39
|
+
}
|
|
40
|
+
onClick(event) {
|
|
41
|
+
if (this.overlay.nativeElement.contains(event.target)) {
|
|
42
|
+
this.close();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
close() {
|
|
46
|
+
this.show = false;
|
|
47
|
+
this.onClose.emit();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
LightBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LightBoxComponent, deps: [{ token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
51
|
+
LightBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: LightBoxComponent, selector: "ode-lightbox", inputs: { show: "show", showCloseButton: "showCloseButton" }, outputs: { onClose: "onClose" }, host: { listeners: { "click": "onClick($event)" } }, viewQueries: [{ propertyName: "section", first: true, predicate: ["section"], descendants: true }, { propertyName: "overlay", first: true, predicate: ["overlay"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<section *ngIf=\"_show\" #section>\n <div overlay #overlay></div>\n <div content>\n <i (click)=\"close()\" *ngIf=\"showCloseButton == true\"></i>\n <ng-content></ng-content>\n </div>\n</section>\n", styles: ["section{position:fixed;display:flex;align-items:center;justify-content:center;height:100%;width:100%;z-index:100;top:0;left:0;opacity:0;transition:opacity .35s}section[hidden]{display:none!important}:host.shown>section{opacity:1}div[overlay]{position:absolute;top:0;left:0;opacity:.7;width:100%;height:100%;background-color:#000}div[content]{flex:0 0 auto;max-width:75%;max-height:75%;overflow:auto;background-color:#fff;z-index:2;position:relative}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LightBoxComponent, decorators: [{
|
|
53
|
+
type: Component,
|
|
54
|
+
args: [{ selector: 'ode-lightbox', host: {
|
|
55
|
+
'(click)': 'onClick($event)'
|
|
56
|
+
}, template: "<section *ngIf=\"_show\" #section>\n <div overlay #overlay></div>\n <div content>\n <i (click)=\"close()\" *ngIf=\"showCloseButton == true\"></i>\n <ng-content></ng-content>\n </div>\n</section>\n", styles: ["section{position:fixed;display:flex;align-items:center;justify-content:center;height:100%;width:100%;z-index:100;top:0;left:0;opacity:0;transition:opacity .35s}section[hidden]{display:none!important}:host.shown>section{opacity:1}div[overlay]{position:absolute;top:0;left:0;opacity:.7;width:100%;height:100%;background-color:#000}div[content]{flex:0 0 auto;max-width:75%;max-height:75%;overflow:auto;background-color:#fff;z-index:2;position:relative}\n"] }]
|
|
57
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { show: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], showCloseButton: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], onClose: [{
|
|
62
|
+
type: Output
|
|
63
|
+
}], section: [{
|
|
64
|
+
type: ViewChild,
|
|
65
|
+
args: ['section']
|
|
66
|
+
}], overlay: [{
|
|
67
|
+
type: ViewChild,
|
|
68
|
+
args: ['overlay']
|
|
69
|
+
}] } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlnaHRib3gvbGlnaHRib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlnaHRib3gvbGlnaHRib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQzs7O0FBV25ILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxZQUFZO0lBRS9DLFlBQ0ksUUFBa0IsRUFDVixRQUFtQixFQUNuQixJQUFnQjtRQUNwQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFGWixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVk7UUFnQzVCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFFTCxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUV0QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQWxDNUMsQ0FBQztJQUVELElBQ0ksSUFBSSxDQUFDLENBQVU7UUFDZixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLEVBQUU7WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7YUFBTTtZQUNILE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTztnQkFDaEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QyxDQUFDLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBYUQsT0FBTyxDQUFDLEtBQWlCO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7OEdBekRRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdaQ1o5QiwrTUFPQTsyRkRLYSxpQkFBaUI7a0JBVDdCLFNBQVM7K0JBQ0ksY0FBYyxRQUdsQjt3QkFDRixTQUFTLEVBQUUsaUJBQWlCO3FCQUMvQjtnSkFhRyxJQUFJO3NCQURQLEtBQUs7Z0JBOEJHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFFZSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0UsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtbGlnaHRib3gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saWdodGJveC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlnaHRib3guY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ29uQ2xpY2soJGV2ZW50KSdcbiAgICB9XG5cbn0pXG5leHBvcnQgY2xhc3MgTGlnaHRCb3hDb21wb25lbnQgZXh0ZW5kcyBPZGVDb21wb25lbnQge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzaG93KHM6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocykge1xuICAgICAgICAgICAgdGhpcy5fc2hvdyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsICdzaG93bicpO1xuICAgICAgICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgd2FpdCA9IHBhcnNlRmxvYXQodGhpcy5zZWN0aW9uICYmXG4gICAgICAgICAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5zZWN0aW9uLm5hdGl2ZUVsZW1lbnQpWyd0cmFuc2l0aW9uLWR1cmF0aW9uJ10pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwgJ3Nob3duJyk7XG4gICAgICAgICAgICB0aGlzLnRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3cgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVyID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSwgd2FpdCAqIDEwMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IHNob3coKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93O1xuICAgIH1cblxuICAgIF9zaG93ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b24gPSB0cnVlO1xuXG4gICAgQE91dHB1dCgpIG9uQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3NlY3Rpb24nKSBzZWN0aW9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ292ZXJsYXknKSBvdmVybGF5OiBFbGVtZW50UmVmO1xuXG4gICAgcHJpdmF0ZSB0aW1lcjogbnVtYmVyO1xuXG4gICAgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5vdmVybGF5Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCkge1xuICAgICAgICB0aGlzLnNob3cgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgICB9XG59XG4iLCI8c2VjdGlvbiAqbmdJZj1cIl9zaG93XCIgI3NlY3Rpb24+XG4gIDxkaXYgb3ZlcmxheSAjb3ZlcmxheT48L2Rpdj5cbiAgPGRpdiBjb250ZW50PlxuICAgIDxpIChjbGljayk9XCJjbG9zZSgpXCIgKm5nSWY9XCJzaG93Q2xvc2VCdXR0b24gPT0gdHJ1ZVwiPjwvaT5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { OdeComponent } from 'ngx-ode-core';
|
|
2
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "../lightbox/lightbox.component";
|
|
6
|
+
import * as i3 from "ngx-ode-sijil";
|
|
7
|
+
export class LightboxConfirmComponent extends OdeComponent {
|
|
8
|
+
constructor(injector) {
|
|
9
|
+
super(injector);
|
|
10
|
+
this.cancelText = "cancel";
|
|
11
|
+
this.confirmText = "confirm";
|
|
12
|
+
this.extraButtons = [];
|
|
13
|
+
this.disableConfirm = false;
|
|
14
|
+
this.onConfirm = new EventEmitter();
|
|
15
|
+
this.onCancel = new EventEmitter();
|
|
16
|
+
this.onExtra = new EventEmitter();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
LightboxConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LightboxConfirmComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
LightboxConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: LightboxConfirmComponent, selector: "ode-lightbox-confirm", inputs: { lightboxTitle: "lightboxTitle", show: "show", cancelText: "cancelText", confirmText: "confirmText", extraButtons: "extraButtons", disableConfirm: "disableConfirm" }, outputs: { onConfirm: "onConfirm", onCancel: "onCancel", onExtra: "onExtra" }, usesInheritance: true, ngImport: i0, template: "<ode-lightbox [show]=\"show\" (onClose)=\"onCancel.emit()\">\n <h2 class=\"lightbox-confirm__header\">{{ lightboxTitle | translate }}</h2>\n <div class=\"lightbox-confirm-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"lightbox-confirm-action\">\n <button (click)=\"onConfirm.emit()\" [disabled]=\"disableConfirm\" class=\"confirm\">{{ confirmText | translate }}</button>\n <button\n *ngFor=\"let extraBtn of extraButtons.slice().reverse(); index as i;\"\n (click)=\"onExtra.emit(extraButtons.length - 1 - i)\" class=\"confirm\">{{ extraBtn | translate }}</button>\n <button (click)=\"onCancel.emit()\" class=\"cancel\">{{ cancelText | translate }}</button>\n </div>\n</ode-lightbox>\n", styles: [".lightbox-confirm__header{margin-bottom:0}.lightbox-confirm-content{font-size:16px;padding:20px 0}.lightbox-confirm-action button{float:right;text-align:center;margin-left:5px;margin-bottom:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.LightBoxComponent, selector: "ode-lightbox", inputs: ["show", "showCloseButton"], outputs: ["onClose"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: LightboxConfirmComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'ode-lightbox-confirm', template: "<ode-lightbox [show]=\"show\" (onClose)=\"onCancel.emit()\">\n <h2 class=\"lightbox-confirm__header\">{{ lightboxTitle | translate }}</h2>\n <div class=\"lightbox-confirm-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"lightbox-confirm-action\">\n <button (click)=\"onConfirm.emit()\" [disabled]=\"disableConfirm\" class=\"confirm\">{{ confirmText | translate }}</button>\n <button\n *ngFor=\"let extraBtn of extraButtons.slice().reverse(); index as i;\"\n (click)=\"onExtra.emit(extraButtons.length - 1 - i)\" class=\"confirm\">{{ extraBtn | translate }}</button>\n <button (click)=\"onCancel.emit()\" class=\"cancel\">{{ cancelText | translate }}</button>\n </div>\n</ode-lightbox>\n", styles: [".lightbox-confirm__header{margin-bottom:0}.lightbox-confirm-content{font-size:16px;padding:20px 0}.lightbox-confirm-action button{float:right;text-align:center;margin-left:5px;margin-bottom:20px}\n"] }]
|
|
24
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { lightboxTitle: [{
|
|
25
|
+
type: Input
|
|
26
|
+
}], show: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], cancelText: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], confirmText: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], extraButtons: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], disableConfirm: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], onConfirm: [{
|
|
37
|
+
type: Output
|
|
38
|
+
}], onCancel: [{
|
|
39
|
+
type: Output
|
|
40
|
+
}], onExtra: [{
|
|
41
|
+
type: Output
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRib3gtY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy9saWdodGJveC1jb25maXJtL2xpZ2h0Ym94LWNvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlnaHRib3gtY29uZmlybS9saWdodGJveC1jb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPakYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLFlBQVk7SUFhdEQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFWWCxlQUFVLEdBQVcsUUFBUSxDQUFDO1FBQzlCLGdCQUFXLEdBQVcsU0FBUyxDQUFDO1FBQ2hDLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUUvQixjQUFTLEdBQXdCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDMUQsYUFBUSxHQUF3QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pELFlBQU8sR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUlyRSxDQUFDOztxSEFmUSx3QkFBd0I7eUdBQXhCLHdCQUF3QixrVkNSckMseXRCQWFBOzJGRExhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDSSxzQkFBc0I7K0ZBTXZCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLWxpZ2h0Ym94LWNvbmZpcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saWdodGJveC1jb25maXJtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9saWdodGJveC1jb25maXJtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlnaHRib3hDb25maXJtQ29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IHtcblxuICAgIEBJbnB1dCgpIGxpZ2h0Ym94VGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBzaG93OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNhbmNlbFRleHQ6IHN0cmluZyA9IFwiY2FuY2VsXCI7XG4gICAgQElucHV0KCkgY29uZmlybVRleHQ6IHN0cmluZyA9IFwiY29uZmlybVwiO1xuICAgIEBJbnB1dCgpIGV4dHJhQnV0dG9uczogQXJyYXk8U3RyaW5nPiA9IFtdO1xuICAgIEBJbnB1dCgpIGRpc2FibGVDb25maXJtOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25Db25maXJtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSAgbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBvbkNhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gIG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgb25FeHRyYTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxufVxuIiwiPG9kZS1saWdodGJveCBbc2hvd109XCJzaG93XCIgKG9uQ2xvc2UpPVwib25DYW5jZWwuZW1pdCgpXCI+XG4gIDxoMiBjbGFzcz1cImxpZ2h0Ym94LWNvbmZpcm1fX2hlYWRlclwiPnt7IGxpZ2h0Ym94VGl0bGUgfCB0cmFuc2xhdGUgfX08L2gyPlxuICA8ZGl2IGNsYXNzPVwibGlnaHRib3gtY29uZmlybS1jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxpZ2h0Ym94LWNvbmZpcm0tYWN0aW9uXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwib25Db25maXJtLmVtaXQoKVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlQ29uZmlybVwiIGNsYXNzPVwiY29uZmlybVwiPnt7IGNvbmZpcm1UZXh0IHwgdHJhbnNsYXRlIH19PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IGV4dHJhQnRuIG9mIGV4dHJhQnV0dG9ucy5zbGljZSgpLnJldmVyc2UoKTsgaW5kZXggYXMgaTtcIlxuICAgICAgKGNsaWNrKT1cIm9uRXh0cmEuZW1pdChleHRyYUJ1dHRvbnMubGVuZ3RoIC0gMSAtIGkpXCIgY2xhc3M9XCJjb25maXJtXCI+e3sgZXh0cmFCdG4gfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJvbkNhbmNlbC5lbWl0KClcIiBjbGFzcz1cImNhbmNlbFwiPnt7IGNhbmNlbFRleHQgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgPC9kaXY+XG48L29kZS1saWdodGJveD5cbiJdfQ==
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { OdeComponent } from 'ngx-ode-core';
|
|
2
|
+
import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "ngx-infinite-scroll";
|
|
6
|
+
import * as i3 from "../search-input/search-input.component";
|
|
7
|
+
import * as i4 from "ngx-ode-sijil";
|
|
8
|
+
import * as i5 from "../../pipes/filter.pipe";
|
|
9
|
+
import * as i6 from "../../pipes/orderBy.pipe";
|
|
10
|
+
import * as i7 from "../../pipes/store.pipe";
|
|
11
|
+
export class ListComponent extends OdeComponent {
|
|
12
|
+
constructor(injector) {
|
|
13
|
+
super(injector);
|
|
14
|
+
/* Store pipe */
|
|
15
|
+
this.self = this;
|
|
16
|
+
this._storedElements = [];
|
|
17
|
+
this.searchPlaceholder = 'search';
|
|
18
|
+
this.noResultsLabel = 'list.results.no.items';
|
|
19
|
+
this.placeholder = 'list.placeholder';
|
|
20
|
+
this.isSearchActive = true;
|
|
21
|
+
this.isSearchButtonDisabled = false;
|
|
22
|
+
this.searchInput = false;
|
|
23
|
+
this.inputChange = new EventEmitter();
|
|
24
|
+
this.onSelect = new EventEmitter();
|
|
25
|
+
this.listChange = new EventEmitter();
|
|
26
|
+
this.scrolledDown = new EventEmitter();
|
|
27
|
+
this.isSelected = (arg) => false;
|
|
28
|
+
this.isDisabled = (arg) => false;
|
|
29
|
+
this.ngClass = (arg) => ({});
|
|
30
|
+
}
|
|
31
|
+
set storedElements(list) {
|
|
32
|
+
this._storedElements = list;
|
|
33
|
+
this.listChange.emit(list);
|
|
34
|
+
}
|
|
35
|
+
get storedElements() {
|
|
36
|
+
return this._storedElements;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ListComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: ListComponent, selector: "ode-list", inputs: { model: "model", filters: "filters", inputFilter: "inputFilter", sort: "sort", limit: "limit", searchPlaceholder: "searchPlaceholder", noResultsLabel: "noResultsLabel", placeholder: "placeholder", isSearchActive: "isSearchActive", isSearchButtonDisabled: "isSearchButtonDisabled", searchInput: "searchInput", searchDelay: "searchDelay", searchSubmit: "searchSubmit", isSelected: "isSelected", isDisabled: "isDisabled", ngClass: "ngClass" }, outputs: { inputChange: "inputChange", onSelect: "onSelect", listChange: "listChange", scrolledDown: "scrolledDown" }, queries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ode-search-input\n *ngIf=\"isSearchActive\"\n [isSearchButtonDisabled]=\"isSearchButtonDisabled\"\n [searchInput]=\"searchInput\"\n [searchSubmit]=\"searchSubmit\"\n [delay]=\"searchDelay\"\n [attr.placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"inputChange.emit($event)\"\n>\n</ode-search-input>\n\n<div class=\"toolbar\">\n <ng-content select=\"[toolbar]\"></ng-content>\n</div>\n\n<div\n class=\"list-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\"\n>\n <ul>\n <li\n *ngFor=\"let item of model | filter: filters | filter: inputFilter | store:self:'storedElements' | orderBy: sort | slice: 0:limit\"\n (click)=\"onSelect.emit(item)\"\n [class.selected]=\"isSelected(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n class=\"lct-list-item\"\n >\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\">\n </ng-template>\n </li>\n </ul>\n\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\">{{ noResultsLabel | translate }}</li>\n </ul>\n\n <ul *ngIf=\"!model\">\n <li class=\"placeholder\">{{ placeholder | translate }}</li>\n </ul>\n</div>\n", styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{cursor:pointer;border-top:1px solid #ddd;padding:10px}ul li.no-results{padding:50px;text-align:center;font-style:italic}ul li.no-results:hover{cursor:default!important;background-color:inherit!important}ul li.placeholder{color:#aaa;padding:2rem;text-align:left}ul li.placeholder:hover{cursor:default!important;background-color:inherit!important}ul li.disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i3.SearchInputComponent, selector: "ode-search-input", inputs: ["isSearchActive", "isSearchButtonDisabled", "searchInput", "searchSubmit", "delay"], outputs: ["onChange"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i5.FilterPipe, name: "filter" }, { kind: "pipe", type: i6.OrderPipe, name: "orderBy" }, { kind: "pipe", type: i7.StorePipe, name: "store" }] });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ListComponent, decorators: [{
|
|
42
|
+
type: Component,
|
|
43
|
+
args: [{ selector: 'ode-list', template: "<ode-search-input\n *ngIf=\"isSearchActive\"\n [isSearchButtonDisabled]=\"isSearchButtonDisabled\"\n [searchInput]=\"searchInput\"\n [searchSubmit]=\"searchSubmit\"\n [delay]=\"searchDelay\"\n [attr.placeholder]=\"searchPlaceholder | translate\"\n (onChange)=\"inputChange.emit($event)\"\n>\n</ode-search-input>\n\n<div class=\"toolbar\">\n <ng-content select=\"[toolbar]\"></ng-content>\n</div>\n\n<div\n class=\"list-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\"\n>\n <ul>\n <li\n *ngFor=\"let item of model | filter: filters | filter: inputFilter | store:self:'storedElements' | orderBy: sort | slice: 0:limit\"\n (click)=\"onSelect.emit(item)\"\n [class.selected]=\"isSelected(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n class=\"lct-list-item\"\n >\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\">\n </ng-template>\n </li>\n </ul>\n\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\">{{ noResultsLabel | translate }}</li>\n </ul>\n\n <ul *ngIf=\"!model\">\n <li class=\"placeholder\">{{ placeholder | translate }}</li>\n </ul>\n</div>\n", styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{cursor:pointer;border-top:1px solid #ddd;padding:10px}ul li.no-results{padding:50px;text-align:center;font-style:italic}ul li.no-results:hover{cursor:default!important;background-color:inherit!important}ul li.placeholder{color:#aaa;padding:2rem;text-align:left}ul li.placeholder:hover{cursor:default!important;background-color:inherit!important}ul li.disabled{pointer-events:none}\n"] }]
|
|
44
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { model: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], filters: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], inputFilter: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], sort: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], limit: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], searchPlaceholder: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], noResultsLabel: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], placeholder: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], isSearchActive: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}], isSearchButtonDisabled: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], searchInput: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], searchDelay: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], searchSubmit: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], inputChange: [{
|
|
71
|
+
type: Output
|
|
72
|
+
}], onSelect: [{
|
|
73
|
+
type: Output
|
|
74
|
+
}], listChange: [{
|
|
75
|
+
type: Output
|
|
76
|
+
}], scrolledDown: [{
|
|
77
|
+
type: Output
|
|
78
|
+
}], templateRef: [{
|
|
79
|
+
type: ContentChild,
|
|
80
|
+
args: [TemplateRef]
|
|
81
|
+
}], isSelected: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], isDisabled: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], ngClass: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}] } });
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtb2RlLXVpL3NyYy9saWIvY29tcG9uZW50cy9saXN0L2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlzdC9saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFZLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFPNUcsTUFBTSxPQUFPLGFBQWMsU0FBUSxZQUFZO0lBdUMzQyxZQUFZLFFBQWtCO1FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQTdCcEIsZ0JBQWdCO1FBQ2hCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDWixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQU9aLHNCQUFpQixHQUFHLFFBQVEsQ0FBQztRQUM3QixtQkFBYyxHQUFHLHVCQUF1QixDQUFDO1FBQ3pDLGdCQUFXLEdBQUcsa0JBQWtCLENBQUM7UUFDakMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBQ3hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBSTVCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDL0QsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pELGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuRCxpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3RELGVBQVUsR0FBRyxDQUFDLEdBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxDQUFDLEdBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2xDLFlBQU8sR0FBRyxDQUFDLEdBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUl2QyxDQUFDO0lBdkNELElBQUksY0FBYyxDQUFDLElBQUk7UUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDOzswR0FUUSxhQUFhOzhGQUFiLGFBQWEsa3BCQWtDUixXQUFXLHVFQzFDN0Isd3lDQTRDQTsyRkRwQ2EsYUFBYTtrQkFMekIsU0FBUzsrQkFDSSxVQUFVOytGQW1CWCxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRW9CLFdBQVc7c0JBQXJDLFlBQVk7dUJBQUMsV0FBVztnQkFDaEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9kZUNvbXBvbmVudCB9IGZyb20gJ25neC1vZGUtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdvZGUtbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpc3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Q29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IHtcblxuICAgIHNldCBzdG9yZWRFbGVtZW50cyhsaXN0KSB7XG4gICAgICAgIHRoaXMuX3N0b3JlZEVsZW1lbnRzID0gbGlzdDtcbiAgICAgICAgdGhpcy5saXN0Q2hhbmdlLmVtaXQobGlzdCk7XG4gICAgfVxuXG4gICAgZ2V0IHN0b3JlZEVsZW1lbnRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RvcmVkRWxlbWVudHM7XG4gICAgfVxuXG4gICAgLyogU3RvcmUgcGlwZSAqL1xuICAgIHNlbGYgPSB0aGlzO1xuICAgIF9zdG9yZWRFbGVtZW50cyA9IFtdO1xuXG4gICAgQElucHV0KCkgbW9kZWw7XG4gICAgQElucHV0KCkgZmlsdGVycztcbiAgICBASW5wdXQoKSBpbnB1dEZpbHRlcjtcbiAgICBASW5wdXQoKSBzb3J0O1xuICAgIEBJbnB1dCgpIGxpbWl0OiBudW1iZXI7XG4gICAgQElucHV0KCkgc2VhcmNoUGxhY2Vob2xkZXIgPSAnc2VhcmNoJztcbiAgICBASW5wdXQoKSBub1Jlc3VsdHNMYWJlbCA9ICdsaXN0LnJlc3VsdHMubm8uaXRlbXMnO1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ2xpc3QucGxhY2Vob2xkZXInO1xuICAgIEBJbnB1dCgpIGlzU2VhcmNoQWN0aXZlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpc1NlYXJjaEJ1dHRvbkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2VhcmNoSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzZWFyY2hEZWxheTogbnVtYmVyO1xuICAgIEBJbnB1dCgpIHNlYXJjaFN1Ym1pdDogKCkgPT4gdm9pZDtcblxuICAgIEBPdXRwdXQoKSBpbnB1dENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBAT3V0cHV0KCkgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBsaXN0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgc2Nyb2xsZWREb3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBJbnB1dCgpIGlzU2VsZWN0ZWQgPSAoYXJnPzogYW55KSA9PiBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0Rpc2FibGVkID0gKGFyZz86IGFueSkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgbmdDbGFzcyA9IChhcmc/OiBhbnkpID0+ICh7fSk7XG5cbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xuICAgIH1cbn1cbiIsIjxvZGUtc2VhcmNoLWlucHV0XG4gICpuZ0lmPVwiaXNTZWFyY2hBY3RpdmVcIlxuICBbaXNTZWFyY2hCdXR0b25EaXNhYmxlZF09XCJpc1NlYXJjaEJ1dHRvbkRpc2FibGVkXCJcbiAgW3NlYXJjaElucHV0XT1cInNlYXJjaElucHV0XCJcbiAgW3NlYXJjaFN1Ym1pdF09XCJzZWFyY2hTdWJtaXRcIlxuICBbZGVsYXldPVwic2VhcmNoRGVsYXlcIlxuICBbYXR0ci5wbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gIChvbkNoYW5nZSk9XCJpbnB1dENoYW5nZS5lbWl0KCRldmVudClcIlxuPlxuPC9vZGUtc2VhcmNoLWlucHV0PlxuXG48ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbdG9vbGJhcl1cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cImxpc3Qtd3JhcHBlclwiXG4gIGluZmluaXRlU2Nyb2xsXG4gIFtzY3JvbGxXaW5kb3ddPVwiZmFsc2VcIlxuICAoc2Nyb2xsZWQpPVwic2Nyb2xsZWREb3duLmVtaXQoKVwiXG4gIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCJcbj5cbiAgPHVsPlxuICAgIDxsaVxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbW9kZWwgfCBmaWx0ZXI6IGZpbHRlcnMgfCBmaWx0ZXI6IGlucHV0RmlsdGVyIHwgc3RvcmU6c2VsZjonc3RvcmVkRWxlbWVudHMnIHwgb3JkZXJCeTogc29ydCB8IHNsaWNlOiAwOmxpbWl0XCJcbiAgICAgIChjbGljayk9XCJvblNlbGVjdC5lbWl0KGl0ZW0pXCJcbiAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc1NlbGVjdGVkKGl0ZW0pXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGl0ZW0pXCJcbiAgICAgIFtuZ0NsYXNzXT1cIm5nQ2xhc3MoaXRlbSlcIlxuICAgICAgY2xhc3M9XCJsY3QtbGlzdC1pdGVtXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogaXRlbX1cIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cbiAgPC91bD5cblxuICA8dWwgKm5nSWY9XCJzdG9yZWRFbGVtZW50cyAmJiBzdG9yZWRFbGVtZW50cy5sZW5ndGggPT09IDBcIj5cbiAgICA8bGkgY2xhc3M9XCJuby1yZXN1bHRzXCI+e3sgbm9SZXN1bHRzTGFiZWwgfCB0cmFuc2xhdGUgfX08L2xpPlxuICA8L3VsPlxuXG4gIDx1bCAqbmdJZj1cIiFtb2RlbFwiPlxuICAgIDxsaSBjbGFzcz1cInBsYWNlaG9sZGVyXCI+e3sgcGxhY2Vob2xkZXIgfCB0cmFuc2xhdGUgfX08L2xpPlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { OdeComponent } from 'ngx-ode-core';
|
|
2
|
+
import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "ngx-infinite-scroll";
|
|
6
|
+
import * as i3 from "ngx-ode-sijil";
|
|
7
|
+
import * as i4 from "../../pipes/filter.pipe";
|
|
8
|
+
import * as i5 from "../../pipes/orderBy.pipe";
|
|
9
|
+
import * as i6 from "../../pipes/store.pipe";
|
|
10
|
+
export class ListCheckableComponent extends OdeComponent {
|
|
11
|
+
constructor(injector) {
|
|
12
|
+
super(injector);
|
|
13
|
+
this.model = [];
|
|
14
|
+
this.noResultsLabel = 'list.results.no.items';
|
|
15
|
+
this.readOnly = false;
|
|
16
|
+
this.onCheck = new EventEmitter();
|
|
17
|
+
this.listChange = new EventEmitter();
|
|
18
|
+
this.scrolledDown = new EventEmitter();
|
|
19
|
+
this.areAllChecked = () => false;
|
|
20
|
+
this.isChecked = (arg) => false;
|
|
21
|
+
this.isDisabled = (arg) => false;
|
|
22
|
+
this.ngClass = (arg) => ({});
|
|
23
|
+
/* Store pipe */
|
|
24
|
+
this.self = this;
|
|
25
|
+
this._storedElements = [];
|
|
26
|
+
}
|
|
27
|
+
set storedElements(list) {
|
|
28
|
+
this._storedElements = list;
|
|
29
|
+
this.listChange.emit(list);
|
|
30
|
+
}
|
|
31
|
+
get storedElements() {
|
|
32
|
+
return this._storedElements;
|
|
33
|
+
}
|
|
34
|
+
toggleAll(checkAll) {
|
|
35
|
+
this.model.forEach(item => {
|
|
36
|
+
const isChecked = this.isChecked(item);
|
|
37
|
+
if (!this.isDisabled(item)
|
|
38
|
+
&& ((isChecked && !checkAll) || (!isChecked && checkAll))) {
|
|
39
|
+
this.onCheck.emit({ item: item, checked: checkAll });
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
ListCheckableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ListCheckableComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
+
ListCheckableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: ListCheckableComponent, selector: "ode-list-checkable", inputs: { model: "model", filters: "filters", sort: "sort", limit: "limit", noResultsLabel: "noResultsLabel", readOnly: "readOnly", areAllChecked: "areAllChecked", isChecked: "isChecked", isDisabled: "isDisabled", ngClass: "ngClass" }, outputs: { onCheck: "onCheck", listChange: "listChange", scrolledDown: "scrolledDown" }, queries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-checkable-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\">\n\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\"><span>{{ noResultsLabel | translate }}</span></li>\n </ul>\n \n <ul>\n <li class=\"select-all\" \n [class.checked]=\"areAllChecked()\"\n *ngIf=\"!readOnly\">\n <label>\n <span>{{(areAllChecked() ? 'ux.multiselect.deselect-all' : 'ux.multiselect.select-all') | translate}}</span>\n <input type=\"checkbox\" [checked]=\"areAllChecked()\" (change)=\"toggleAll($event.target.checked)\" />\n </label>\n </li>\n\n <li class=\"lct-list-checkable-item\" \n [class.checked]=\"isChecked(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n *ngFor=\"let item of model | filter: filters | store:self:'storedElements' | orderBy: sort | slice: 0:limit\">\n <label>\n <span>\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\"></ng-template> \n </span>\n <input *ngIf=\"!readOnly\" type=\"checkbox\" \n [disabled]=\"isDisabled(item)\"\n [checked]=\"isChecked(item)\"\n (change)=\"onCheck.emit({item:item, checked:$event.target.checked})\"/>\n </label>\n </li>\n </ul>\n\n</div>\n", styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{border-top:1px solid #ddd;width:-webkit-fill-available;width:-moz-available;display:flex}ul li:not(.checked){color:#939393}ul li.disabled{pointer-events:none}ul li.select-all{background-color:#ff83520a;color:#5b6472}ul li.select-all span{text-align:right}ul li label{cursor:pointer;width:100%;display:flex}ul li label:hover{background-color:#eaedf2}ul li label span{padding:7px 15px;width:100%}ul li label input[type=checkbox]{margin-right:15px;align-self:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "pipe", type: i4.FilterPipe, name: "filter" }, { kind: "pipe", type: i5.OrderPipe, name: "orderBy" }, { kind: "pipe", type: i6.StorePipe, name: "store" }] });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ListCheckableComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ selector: 'ode-list-checkable', template: "<div class=\"list-checkable-wrapper\"\n infiniteScroll\n [scrollWindow]=\"false\"\n (scrolled)=\"scrolledDown.emit()\"\n [infiniteScrollThrottle]=\"50\">\n\n <ul *ngIf=\"storedElements && storedElements.length === 0\">\n <li class=\"no-results\"><span>{{ noResultsLabel | translate }}</span></li>\n </ul>\n \n <ul>\n <li class=\"select-all\" \n [class.checked]=\"areAllChecked()\"\n *ngIf=\"!readOnly\">\n <label>\n <span>{{(areAllChecked() ? 'ux.multiselect.deselect-all' : 'ux.multiselect.select-all') | translate}}</span>\n <input type=\"checkbox\" [checked]=\"areAllChecked()\" (change)=\"toggleAll($event.target.checked)\" />\n </label>\n </li>\n\n <li class=\"lct-list-checkable-item\" \n [class.checked]=\"isChecked(item)\"\n [class.disabled]=\"isDisabled(item)\"\n [ngClass]=\"ngClass(item)\"\n *ngFor=\"let item of model | filter: filters | store:self:'storedElements' | orderBy: sort | slice: 0:limit\">\n <label>\n <span>\n <ng-template [ngTemplateOutlet]=\"templateRef\" [ngTemplateOutletContext]=\"{$implicit: item}\"></ng-template> \n </span>\n <input *ngIf=\"!readOnly\" type=\"checkbox\" \n [disabled]=\"isDisabled(item)\"\n [checked]=\"isChecked(item)\"\n (change)=\"onCheck.emit({item:item, checked:$event.target.checked})\"/>\n </label>\n </li>\n </ul>\n\n</div>\n", styles: ["ul{margin:0;padding:0;font-size:.9em}ul li{border-top:1px solid #ddd;width:-webkit-fill-available;width:-moz-available;display:flex}ul li:not(.checked){color:#939393}ul li.disabled{pointer-events:none}ul li.select-all{background-color:#ff83520a;color:#5b6472}ul li.select-all span{text-align:right}ul li label{cursor:pointer;width:100%;display:flex}ul li label:hover{background-color:#eaedf2}ul li label span{padding:7px 15px;width:100%}ul li label input[type=checkbox]{margin-right:15px;align-self:center}\n"] }]
|
|
49
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { model: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], filters: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], sort: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], limit: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], noResultsLabel: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], readOnly: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], onCheck: [{
|
|
62
|
+
type: Output
|
|
63
|
+
}], listChange: [{
|
|
64
|
+
type: Output
|
|
65
|
+
}], scrolledDown: [{
|
|
66
|
+
type: Output
|
|
67
|
+
}], templateRef: [{
|
|
68
|
+
type: ContentChild,
|
|
69
|
+
args: [TemplateRef]
|
|
70
|
+
}], areAllChecked: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], isChecked: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], isDisabled: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], ngClass: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jaGVja2FibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlzdC1jaGVja2FibGUvbGlzdC1jaGVja2FibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbGlzdC1jaGVja2FibGUvbGlzdC1jaGVja2FibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQVksTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBcUM1RyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQThCcEQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUE5QlgsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUlYLG1CQUFjLEdBQUcsdUJBQXVCLENBQUM7UUFDekMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUV6QixZQUFPLEdBQThCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEQsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25ELGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFJdkQsa0JBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDNUIsY0FBUyxHQUFHLENBQUMsR0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDakMsZUFBVSxHQUFHLENBQUMsR0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDbEMsWUFBTyxHQUFHLENBQUMsR0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXZDLGdCQUFnQjtRQUNoQixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osb0JBQWUsR0FBRyxFQUFFLENBQUM7SUFXckIsQ0FBQztJQVZELElBQUksY0FBYyxDQUFDLElBQUk7UUFDbkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBTU0sU0FBUyxDQUFFLFFBQWdCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFFLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO21CQUNsQixDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxRQUFRLENBQUMsQ0FBQyxFQUFHO2dCQUM3RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBRSxFQUFDLElBQUksRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLFFBQVEsRUFBQyxDQUFFLENBQUM7YUFDdEQ7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7O21IQTFDUSxzQkFBc0I7dUdBQXRCLHNCQUFzQix3YUFZakIsV0FBVyx1RUNsRDdCLGk4Q0FzQ0E7MkZEQWEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNJLG9CQUFvQjsrRkFLckIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFFb0IsV0FBVztzQkFBckMsWUFBWTt1QkFBQyxXQUFXO2dCQUVoQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogTGlzdENoZWNrYWJsZUNvbXBvbmVudCBpcyBhbiBhbHRlcm5hdGl2ZSB0byB0aGUgTGlzdENvbXBvbmVudCB0byBlYXNpbHkgc2VsZWN0IHJvd3MgYnkgdXNpbmcgYSBjaGVja2JveC5cbiAqIFxuICogXG5gYGBcbjxvZGUtbGlzdC1jaGVja2FibGVcbiAgICAgIFtyZWFkT25seV09XCJhX2Jvb2xlYW5cIlxuICAgICAgW21vZGVsXT1cImFuX2FycmF5X29mX2l0ZW1zXCJcbiAgICAgIFtmaWx0ZXJzXT1cIlwiXG4gICAgICBbc29ydF09XCInK2Rpc3BsYXlOYW1lJ1wiXG4gICAgICBbbGltaXRdPVwiYV9udW1iZXJcIlxuICAgICAgW25vUmVzdWx0c0xhYmVsXT1cInRleHRfdG9fZGlzcGxheV93aGVuX25vX2l0ZW1faW5fbW9kZWxcIlxuICAgICAgW2lzQ2hlY2tlZF09XCJhX2xhbWJkYV93aGljaF90YWtlc18xX2l0ZW1fYXJndW1lbnRfYW5kX3JldHVybnNfYV9ib29sZWFuXCJcbiAgICAgIFthcmVBbGxDaGVja2VkXT1cImFfbGFtYmRhX3dpdGhfbm9fYXJndW1lbnRfd2hpY2hfcmV0dXJuc19hX2Jvb2xlYW5cIlxuICAgICAgW25nQ2xhc3NdPVwiYV9sYW1iZGFfd2hpY2hfdGFrZXNfMV9pdGVtX2FyZ3VtZW50X2FuZF9yZXR1cm5zX2FuX29iamVjdFwiXG4gICAgICAob25DaGVjayk9XCJlbWl0c19hbl8kZXZlbnRfbGlrZV97aXRlbTphbnk7IGNoZWNrZWQ6Ym9vbGVhbn1cIlxuICAgICAgKGxpc3RDaGFuZ2UpPVwiXCJcbiAgICAgIChzY3JvbGxlZERvd24pPVwiXCJcbiAgICAgID5cblxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgIDxzcGFuPnt7aXRlbS5kaXNwbGF5TmFtZXx0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIFxuPC9vZGUtbGlzdC1jaGVja2FibGU+XG5gzIBgYFxuICovXG5cbnR5cGUgT25DaGVja0RhdGEgPSB7aXRlbTphbnksIGNoZWNrZWQ6Ym9vbGVhbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLWxpc3QtY2hlY2thYmxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1jaGVja2FibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xpc3QtY2hlY2thYmxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlzdENoZWNrYWJsZUNvbXBvbmVudCBleHRlbmRzIE9kZUNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgbW9kZWwgPSBbXTtcbiAgICBASW5wdXQoKSBmaWx0ZXJzO1xuICAgIEBJbnB1dCgpIHNvcnQ7XG4gICAgQElucHV0KCkgbGltaXQ6IG51bWJlcjtcbiAgICBASW5wdXQoKSBub1Jlc3VsdHNMYWJlbCA9ICdsaXN0LnJlc3VsdHMubm8uaXRlbXMnO1xuICAgIEBJbnB1dCgpIHJlYWRPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25DaGVjazogRXZlbnRFbWl0dGVyPE9uQ2hlY2tEYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbGlzdENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIHNjcm9sbGVkRG93bjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoKSBhcmVBbGxDaGVja2VkID0gKCkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNDaGVja2VkID0gKGFyZz86IGFueSkgPT4gZmFsc2U7XG4gICAgQElucHV0KCkgaXNEaXNhYmxlZCA9IChhcmc/OiBhbnkpID0+IGZhbHNlO1xuICAgIEBJbnB1dCgpIG5nQ2xhc3MgPSAoYXJnPzogYW55KSA9PiAoe30pO1xuXG4gICAgLyogU3RvcmUgcGlwZSAqL1xuICAgIHNlbGYgPSB0aGlzO1xuICAgIF9zdG9yZWRFbGVtZW50cyA9IFtdO1xuICAgIHNldCBzdG9yZWRFbGVtZW50cyhsaXN0KSB7XG4gICAgICAgIHRoaXMuX3N0b3JlZEVsZW1lbnRzID0gbGlzdDtcbiAgICAgICAgdGhpcy5saXN0Q2hhbmdlLmVtaXQobGlzdCk7XG4gICAgfVxuICAgIGdldCBzdG9yZWRFbGVtZW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JlZEVsZW1lbnRzO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZUFsbCggY2hlY2tBbGw6Ym9vbGVhbiApIHtcbiAgICAgICAgdGhpcy5tb2RlbC5mb3JFYWNoKCBpdGVtID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzQ2hlY2tlZCA9IHRoaXMuaXNDaGVja2VkKGl0ZW0pO1xuICAgICAgICAgICAgaWYoICF0aGlzLmlzRGlzYWJsZWQoaXRlbSlcbiAgICAgICAgICAgICAgICAgJiYgKChpc0NoZWNrZWQgJiYgIWNoZWNrQWxsKSB8fCAoIWlzQ2hlY2tlZCAmJiBjaGVja0FsbCkpICkge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGVjay5lbWl0KCB7aXRlbTppdGVtLCBjaGVja2VkOmNoZWNrQWxsfSApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImxpc3QtY2hlY2thYmxlLXdyYXBwZXJcIlxuICAgICBpbmZpbml0ZVNjcm9sbFxuICAgICBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCJcbiAgICAgKHNjcm9sbGVkKT1cInNjcm9sbGVkRG93bi5lbWl0KClcIlxuICAgICBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiPlxuXG4gIDx1bCAqbmdJZj1cInN0b3JlZEVsZW1lbnRzICYmIHN0b3JlZEVsZW1lbnRzLmxlbmd0aCA9PT0gMFwiPlxuICAgIDxsaSBjbGFzcz1cIm5vLXJlc3VsdHNcIj48c3Bhbj57eyBub1Jlc3VsdHNMYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj48L2xpPlxuICA8L3VsPlxuICBcbiAgPHVsPlxuICAgIDxsaSBjbGFzcz1cInNlbGVjdC1hbGxcIiBcbiAgICAgICAgW2NsYXNzLmNoZWNrZWRdPVwiYXJlQWxsQ2hlY2tlZCgpXCJcbiAgICAgICAgKm5nSWY9XCIhcmVhZE9ubHlcIj5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAgPHNwYW4+e3soYXJlQWxsQ2hlY2tlZCgpID8gJ3V4Lm11bHRpc2VsZWN0LmRlc2VsZWN0LWFsbCcgOiAndXgubXVsdGlzZWxlY3Quc2VsZWN0LWFsbCcpIHwgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJhcmVBbGxDaGVja2VkKClcIiAoY2hhbmdlKT1cInRvZ2dsZUFsbCgkZXZlbnQudGFyZ2V0LmNoZWNrZWQpXCIgLz5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9saT5cblxuICAgIDxsaSBjbGFzcz1cImxjdC1saXN0LWNoZWNrYWJsZS1pdGVtXCIgXG4gICAgICAgIFtjbGFzcy5jaGVja2VkXT1cImlzQ2hlY2tlZChpdGVtKVwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKGl0ZW0pXCJcbiAgICAgICAgW25nQ2xhc3NdPVwibmdDbGFzcyhpdGVtKVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1vZGVsIHwgZmlsdGVyOiBmaWx0ZXJzIHwgc3RvcmU6c2VsZjonc3RvcmVkRWxlbWVudHMnIHwgb3JkZXJCeTogc29ydCB8IHNsaWNlOiAwOmxpbWl0XCI+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVJlZlwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBpdGVtfVwiPjwvbmctdGVtcGxhdGU+ICAgICAgICBcbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8aW5wdXQgKm5nSWY9XCIhcmVhZE9ubHlcIiB0eXBlPVwiY2hlY2tib3hcIiBcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0NoZWNrZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hlY2suZW1pdCh7aXRlbTppdGVtLCBjaGVja2VkOiRldmVudC50YXJnZXQuY2hlY2tlZH0pXCIvPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2xpPlxuICA8L3VsPlxuXG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { HostBinding } from '@angular/core';
|
|
2
|
+
import { Component, Input, Output } from '@angular/core';
|
|
3
|
+
import { OdeComponent } from 'ngx-ode-core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "ngx-ode-sijil";
|
|
7
|
+
export const icons = {
|
|
8
|
+
info: 'fa-question-circle',
|
|
9
|
+
warning: 'fa-exclamation-circle',
|
|
10
|
+
danger: 'fa-ban',
|
|
11
|
+
success: 'fa-check-circle'
|
|
12
|
+
};
|
|
13
|
+
export class MessageBoxComponent extends OdeComponent {
|
|
14
|
+
constructor(eltRef, injector) {
|
|
15
|
+
super(injector);
|
|
16
|
+
this.eltRef = eltRef;
|
|
17
|
+
this._position = 'inherit';
|
|
18
|
+
/**
|
|
19
|
+
* `gravity` set the relative position of the message box if its position is 'absolute'.
|
|
20
|
+
* No effect when position is 'inherit'.
|
|
21
|
+
*/
|
|
22
|
+
this.gravity = 'left';
|
|
23
|
+
this.hidden = false;
|
|
24
|
+
}
|
|
25
|
+
set messages(value) {
|
|
26
|
+
this._messages = [];
|
|
27
|
+
for (const message of value) {
|
|
28
|
+
if (typeof message == 'string') {
|
|
29
|
+
this._messages.push([message, {}]);
|
|
30
|
+
}
|
|
31
|
+
else if (typeof message == 'object') {
|
|
32
|
+
this._messages.push(message);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
get messages() {
|
|
37
|
+
return this._messages;
|
|
38
|
+
}
|
|
39
|
+
set position(value) {
|
|
40
|
+
this._position = value;
|
|
41
|
+
}
|
|
42
|
+
get isGravityLeft() { return this.gravity === 'left'; }
|
|
43
|
+
get isGravityRight() { return this.gravity === 'right'; }
|
|
44
|
+
canHide() {
|
|
45
|
+
if (this._position == 'absolute') {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
hide() {
|
|
51
|
+
this.hidden = true;
|
|
52
|
+
this.hideEvent.emit();
|
|
53
|
+
}
|
|
54
|
+
ngOnInit() {
|
|
55
|
+
super.ngOnInit();
|
|
56
|
+
if (this.type == undefined) {
|
|
57
|
+
throw new Error('MessageSticker : type\' property must be set');
|
|
58
|
+
}
|
|
59
|
+
this.eltRef.nativeElement.style.position = this._position;
|
|
60
|
+
if (this._position == 'absolute') {
|
|
61
|
+
this.eltRef.nativeElement.style.width = '450px';
|
|
62
|
+
// TODO: Maybe use a static counter to push on top the last open MessageBox ?
|
|
63
|
+
this.eltRef.nativeElement.style.zIndex = '10';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
MessageBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MessageBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
+
MessageBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: MessageBoxComponent, selector: "message-box", inputs: { type: "type", header: "header", messages: "messages", position: "position", gravity: "gravity" }, outputs: { hideEvent: "onHide" }, host: { properties: { "class.gravity-left": "this.isGravityLeft", "class.gravity-right": "this.isGravityRight" } }, usesInheritance: true, ngImport: i0, template: "<article class=\"message is-{{type}}\" [hidden]=\"hidden\">\n <div *ngIf=\"header\" class=\"message-header\">\n <p>\n <i *ngIf=\"canHide()\" (click)=\"hide()\" class=\"fa fa-times-circle\"></i>\n {{header | translate}}\n </p>\n </div>\n <div class=\"message-body\">\n <i *ngIf=\"canHide() && !header\" (click)=\"hide()\" class=\"fa fa-times-circle\"></i>\n <p *ngFor=\"let message of messages\">\n <s5l [s5l-params]=\"message[1]\">{{message[0]}}</s5l>\n </p>\n </div>\n</article>\n", styles: [":host{font-size:initial;position:inherit;top:-5px}:host.gravity-left{right:-5px}:host.gravity-right{left:-5px}:host .message{border:1px solid}i.fa-times-circle{display:inline-flex;float:right;cursor:pointer;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.S5lComponent, selector: "s5l", inputs: ["s5l-params", "s5l-lang"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MessageBoxComponent, decorators: [{
|
|
70
|
+
type: Component,
|
|
71
|
+
args: [{ selector: 'message-box', template: "<article class=\"message is-{{type}}\" [hidden]=\"hidden\">\n <div *ngIf=\"header\" class=\"message-header\">\n <p>\n <i *ngIf=\"canHide()\" (click)=\"hide()\" class=\"fa fa-times-circle\"></i>\n {{header | translate}}\n </p>\n </div>\n <div class=\"message-body\">\n <i *ngIf=\"canHide() && !header\" (click)=\"hide()\" class=\"fa fa-times-circle\"></i>\n <p *ngFor=\"let message of messages\">\n <s5l [s5l-params]=\"message[1]\">{{message[0]}}</s5l>\n </p>\n </div>\n</article>\n", styles: [":host{font-size:initial;position:inherit;top:-5px}:host.gravity-left{right:-5px}:host.gravity-right{left:-5px}:host .message{border:1px solid}i.fa-times-circle{display:inline-flex;float:right;cursor:pointer;font-weight:700}\n"] }]
|
|
72
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }]; }, propDecorators: { type: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], header: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], messages: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], position: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], gravity: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], isGravityLeft: [{
|
|
83
|
+
type: HostBinding,
|
|
84
|
+
args: ['class.gravity-left']
|
|
85
|
+
}], isGravityRight: [{
|
|
86
|
+
type: HostBinding,
|
|
87
|
+
args: ['class.gravity-right']
|
|
88
|
+
}], hideEvent: [{
|
|
89
|
+
type: Output,
|
|
90
|
+
args: ['onHide']
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbWVzc2FnZS1ib3gvbWVzc2FnZS1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbWVzc2FnZS1ib3gvbWVzc2FnZS1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQVUsTUFBTSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFJNUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ2pCLElBQUksRUFBRyxvQkFBb0I7SUFDM0IsT0FBTyxFQUFHLHVCQUF1QjtJQUNqQyxNQUFNLEVBQUcsUUFBUTtJQUNqQixPQUFPLEVBQUcsaUJBQWlCO0NBQzlCLENBQUM7QUFPRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsWUFBWTtJQUNqRCxZQUNZLE1BQWtCLEVBQzFCLFFBQWtCO1FBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZWLFdBQU0sR0FBTixNQUFNLENBQVk7UUEyQnRCLGNBQVMsR0FBMkIsU0FBUyxDQUFDO1FBS3REOzs7V0FHRztRQUNNLFlBQU8sR0FBcUIsTUFBTSxDQUFDO1FBSTVDLFdBQU0sR0FBRyxLQUFLLENBQUM7SUFyQ1gsQ0FBQztJQVFMLElBQWEsUUFBUSxDQUFDLEtBQWdDO1FBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXBCLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxFQUFFO1lBQ3pCLElBQUksT0FBTyxPQUFPLElBQUksUUFBUSxFQUFFO2dCQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO2lCQUNJLElBQUksT0FBTyxPQUFPLElBQUksUUFBUSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNoQztTQUNKO0lBQ0wsQ0FBQztJQUNELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBR0QsSUFBYSxRQUFRLENBQUMsS0FBNkI7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQU9ELElBQXVDLGFBQWEsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFBLENBQUMsQ0FBQztJQUN6RixJQUF3QyxjQUFjLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQSxDQUFDLENBQUM7SUFJNUYsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxVQUFVLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksU0FBUyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztTQUNuRTtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksVUFBVSxFQUFFO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ2hELDZFQUE2RTtZQUM3RSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUNqRDtJQUVMLENBQUM7O2dIQW5FUSxtQkFBbUI7b0dBQW5CLG1CQUFtQiw0VUNsQmhDLHFnQkFjQTsyRkRJYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0ksYUFBYTt3SEFXZCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUtPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBaUJPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBUUcsT0FBTztzQkFBZixLQUFLO2dCQUNpQyxhQUFhO3NCQUFuRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDTyxjQUFjO3NCQUFyRCxXQUFXO3VCQUFDLHFCQUFxQjtnQkFHaEIsU0FBUztzQkFBMUIsTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPZGVDb21wb25lbnQgfSBmcm9tICduZ3gtb2RlLWNvcmUnO1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlVHlwZSA9ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInO1xuXG5leHBvcnQgY29uc3QgaWNvbnMgPSB7XG4gICAgaW5mbyA6ICdmYS1xdWVzdGlvbi1jaXJjbGUnLFxuICAgIHdhcm5pbmcgOiAnZmEtZXhjbGFtYXRpb24tY2lyY2xlJyxcbiAgICBkYW5nZXIgOiAnZmEtYmFuJyxcbiAgICBzdWNjZXNzIDogJ2ZhLWNoZWNrLWNpcmNsZSdcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbWVzc2FnZS1ib3gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLWJveC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVzc2FnZS1ib3guY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlQm94Q29tcG9uZW50IGV4dGVuZHMgT2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbHRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcikgIHtcbiAgICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgICAgIH1cblxuICAgIEBJbnB1dCgpIHR5cGU6IE1lc3NhZ2VUeXBlO1xuICAgIEBJbnB1dCgpIGhlYWRlcjogc3RyaW5nO1xuXG4gICAgLy8gdHlwZSAoc3RyaW5nIHwgW3N0cmluZyxPYmplY3RdKVtdIGVuYWJsZSB0byBwYXNzIGFuIGFycmF5IG9mIFN0cmluZyB3aGVyZSBTdHJpbmcgaXMgaTE4biBrZXlcbiAgICAvLyBvciBhbiBhcnJheSBvZiB0dXBsZTxTdHJpbmcsIE9iamVjdD4gd2hlcmUgU3RyaW5nIGlzIGkxOG4ga2V5IGFuZCBPYmplY3QgaXMgMTE4biBwYXJhbXNcbiAgICBwcml2YXRlIF9tZXNzYWdlczogW3N0cmluZywge31dW107XG4gICAgQElucHV0KCkgc2V0IG1lc3NhZ2VzKHZhbHVlOiAoc3RyaW5nIHwgW3N0cmluZywge31dKVtdKSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2VzID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKFttZXNzYWdlLCB7fV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG1lc3NhZ2UgPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBtZXNzYWdlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21lc3NhZ2VzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Bvc2l0aW9uOiAnYWJzb2x1dGUnIHwgJ2luaGVyaXQnID0gJ2luaGVyaXQnO1xuICAgIEBJbnB1dCgpIHNldCBwb3NpdGlvbih2YWx1ZTogJ2Fic29sdXRlJyB8ICdpbmhlcml0Jykge1xuICAgICAgICB0aGlzLl9wb3NpdGlvbiA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGBncmF2aXR5YCBzZXQgdGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIHRoZSBtZXNzYWdlIGJveCBpZiBpdHMgcG9zaXRpb24gaXMgJ2Fic29sdXRlJy5cbiAgICAgKiBObyBlZmZlY3Qgd2hlbiBwb3NpdGlvbiBpcyAnaW5oZXJpdCcuXG4gICAgICovXG4gICAgQElucHV0KCkgZ3Jhdml0eTogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmdyYXZpdHktbGVmdCcpIGdldCBpc0dyYXZpdHlMZWZ0KCkgeyByZXR1cm4gdGhpcy5ncmF2aXR5ID09PSAnbGVmdCcgfVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZ3Jhdml0eS1yaWdodCcpIGdldCBpc0dyYXZpdHlSaWdodCgpIHsgcmV0dXJuIHRoaXMuZ3Jhdml0eSA9PT0gJ3JpZ2h0JyB9XG5cbiAgICBoaWRkZW4gPSBmYWxzZTtcbiAgICBAT3V0cHV0KCdvbkhpZGUnKSBoaWRlRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPjtcbiAgICBjYW5IaWRlKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fcG9zaXRpb24gPT0gJ2Fic29sdXRlJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBoaWRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGRlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuaGlkZUV2ZW50LmVtaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTWVzc2FnZVN0aWNrZXIgOiB0eXBlXFwnIHByb3BlcnR5IG11c3QgYmUgc2V0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbHRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9IHRoaXMuX3Bvc2l0aW9uO1xuICAgICAgICBpZiAodGhpcy5fcG9zaXRpb24gPT0gJ2Fic29sdXRlJykge1xuICAgICAgICAgICAgdGhpcy5lbHRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9ICc0NTBweCc7XG4gICAgICAgICAgICAvLyBUT0RPOiBNYXliZSB1c2UgYSBzdGF0aWMgY291bnRlciB0byBwdXNoIG9uIHRvcCB0aGUgbGFzdCBvcGVuIE1lc3NhZ2VCb3ggP1xuICAgICAgICAgICAgdGhpcy5lbHRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS56SW5kZXggPSAnMTAnO1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cbiIsIjxhcnRpY2xlIGNsYXNzPVwibWVzc2FnZSBpcy17e3R5cGV9fVwiIFtoaWRkZW5dPVwiaGlkZGVuXCI+XG4gIDxkaXYgKm5nSWY9XCJoZWFkZXJcIiBjbGFzcz1cIm1lc3NhZ2UtaGVhZGVyXCI+XG4gICAgPHA+XG4gICAgICA8aSAqbmdJZj1cImNhbkhpZGUoKVwiIChjbGljayk9XCJoaWRlKClcIiBjbGFzcz1cImZhIGZhLXRpbWVzLWNpcmNsZVwiPjwvaT5cbiAgICAgIHt7aGVhZGVyIHwgdHJhbnNsYXRlfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1ib2R5XCI+XG4gICAgPGkgKm5nSWY9XCJjYW5IaWRlKCkgJiYgIWhlYWRlclwiIChjbGljayk9XCJoaWRlKClcIiBjbGFzcz1cImZhIGZhLXRpbWVzLWNpcmNsZVwiPjwvaT5cbiAgICA8cCAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlc1wiPlxuICAgICAgPHM1bCBbczVsLXBhcmFtc109XCJtZXNzYWdlWzFdXCI+e3ttZXNzYWdlWzBdfX08L3M1bD5cbiAgICA8L3A+XG4gIDwvZGl2PlxuPC9hcnRpY2xlPlxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { OdeComponent } from 'ngx-ode-core';
|
|
2
|
+
import { Component, EventEmitter, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import { icons, MessageBoxComponent } from '../message-box/message-box.component';
|
|
4
|
+
import { DynamicComponentDirective } from '../../directives/dynamic-component/dynamic-component.directive';
|
|
5
|
+
import { ComponentDescriptor } from '../../directives/dynamic-component/component-descriptor.model';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../directives/dynamic-component/dynamic-component.directive";
|
|
8
|
+
export class MessageStickerComponent extends OdeComponent {
|
|
9
|
+
constructor(injector) {
|
|
10
|
+
super(injector);
|
|
11
|
+
this.gravity = 'left';
|
|
12
|
+
this.icons = icons;
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
super.ngOnInit();
|
|
16
|
+
if (this.type === undefined) {
|
|
17
|
+
throw new Error('MessageSticker : type\' property must be set');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
newMessageBox() {
|
|
21
|
+
return new ComponentDescriptor(MessageBoxComponent, {
|
|
22
|
+
type: this.type,
|
|
23
|
+
header: this.header,
|
|
24
|
+
messages: this.messages,
|
|
25
|
+
position: 'absolute',
|
|
26
|
+
gravity: this.gravity,
|
|
27
|
+
hideEvent: new EventEmitter()
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
loadMessageBox() {
|
|
31
|
+
this.dComponent.load();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
MessageStickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MessageStickerComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
MessageStickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: MessageStickerComponent, selector: "ode-message-sticker", inputs: { type: "type", header: "header", messages: "messages", gravity: "gravity" }, viewQueries: [{ propertyName: "dComponent", first: true, predicate: DynamicComponentDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<i (click)=\"loadMessageBox()\" class=\"fa {{icons[type]}} is-{{type}}\"></i>\n<span message-box-anchor>\n <ng-container [dynamic-component]=\"newMessageBox()\"></ng-container>\n </span>\n", styles: [":host{display:inline;padding-left:.2em}span[message-box-anchor]{position:absolute;z-index:8}i{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.DynamicComponentDirective, selector: "[dynamic-component]", inputs: ["dynamic-component"] }] });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MessageStickerComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'ode-message-sticker', template: "<i (click)=\"loadMessageBox()\" class=\"fa {{icons[type]}} is-{{type}}\"></i>\n<span message-box-anchor>\n <ng-container [dynamic-component]=\"newMessageBox()\"></ng-container>\n </span>\n", styles: [":host{display:inline;padding-left:.2em}span[message-box-anchor]{position:absolute;z-index:8}i{cursor:pointer}\n"] }]
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { type: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], header: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], messages: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], gravity: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], dComponent: [{
|
|
48
|
+
type: ViewChild,
|
|
49
|
+
args: [DynamicComponentDirective]
|
|
50
|
+
}] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zdGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1vZGUtdWkvc3JjL2xpYi9jb21wb25lbnRzL21lc3NhZ2Utc3RpY2tlci9tZXNzYWdlLXN0aWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW9kZS11aS9zcmMvbGliL2NvbXBvbmVudHMvbWVzc2FnZS1zdGlja2VyL21lc3NhZ2Utc3RpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBYyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7QUFPcEcsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFlBQVk7SUFTckQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFOWCxZQUFPLEdBQXFCLE1BQU0sQ0FBQztRQUduQyxVQUFLLEdBQUcsS0FBSyxDQUFDO0lBSXZCLENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1NBQ25FO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksbUJBQW1CLENBQUMsbUJBQW1CLEVBQUU7WUFDaEQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixRQUFRLEVBQUUsVUFBVTtZQUNwQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsU0FBUyxFQUFFLElBQUksWUFBWSxFQUFRO1NBQ3RDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDOztvSEFqQ1EsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNkxBS3JCLHlCQUF5Qix1RUNoQnhDLGdOQUlBOzJGRE9hLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDSSxxQkFBcUI7K0ZBS3RCLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ2dDLFVBQVU7c0JBQS9DLFNBQVM7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2RlQ29tcG9uZW50IH0gZnJvbSAnbmd4LW9kZS1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2ljb25zLCBNZXNzYWdlQm94Q29tcG9uZW50LCBNZXNzYWdlVHlwZX0gZnJvbSAnLi4vbWVzc2FnZS1ib3gvbWVzc2FnZS1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21wb25lbnREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9keW5hbWljLWNvbXBvbmVudC9jb21wb25lbnQtZGVzY3JpcHRvci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnb2RlLW1lc3NhZ2Utc3RpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2Utc3RpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVzc2FnZS1zdGlja2VyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZVN0aWNrZXJDb21wb25lbnQgZXh0ZW5kcyBPZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIHR5cGU6IE1lc3NhZ2VUeXBlO1xuICAgIEBJbnB1dCgpIGhlYWRlcjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1lc3NhZ2VzOiAoc3RyaW5nIHwgW3N0cmluZywge31dKVtdO1xuICAgIEBJbnB1dCgpIGdyYXZpdHk6ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gICAgQFZpZXdDaGlsZChEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlKSBkQ29tcG9uZW50OiBEeW5hbWljQ29tcG9uZW50RGlyZWN0aXZlO1xuXG4gICAgcmVhZG9ubHkgaWNvbnMgPSBpY29ucztcblxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNZXNzYWdlU3RpY2tlciA6IHR5cGVcXCcgcHJvcGVydHkgbXVzdCBiZSBzZXQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5ld01lc3NhZ2VCb3goKTogQ29tcG9uZW50RGVzY3JpcHRvciB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50RGVzY3JpcHRvcihNZXNzYWdlQm94Q29tcG9uZW50LCB7XG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgICBoZWFkZXI6IHRoaXMuaGVhZGVyLFxuICAgICAgICAgICAgbWVzc2FnZXM6IHRoaXMubWVzc2FnZXMsXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIGdyYXZpdHk6IHRoaXMuZ3Jhdml0eSxcbiAgICAgICAgICAgIGhpZGVFdmVudDogbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxvYWRNZXNzYWdlQm94KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRDb21wb25lbnQubG9hZCgpO1xuICAgIH1cbn1cbiIsIjxpIChjbGljayk9XCJsb2FkTWVzc2FnZUJveCgpXCIgY2xhc3M9XCJmYSB7e2ljb25zW3R5cGVdfX0gaXMte3t0eXBlfX1cIj48L2k+XG48c3BhbiBtZXNzYWdlLWJveC1hbmNob3I+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtkeW5hbWljLWNvbXBvbmVudF09XCJuZXdNZXNzYWdlQm94KClcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuIl19
|