ngx-ode-ui 4.6.0-dev.1 → 4.6.0-dev.3
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
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/directives/drag-and-drop-files.directive.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Directive, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
|
|
7
|
-
import { InputFileService } from '../services/inputFile.service';
|
|
8
|
-
export class DragAndDropFilesDirective {
|
|
9
|
-
/**
|
|
10
|
-
* @param {?} inputFileService
|
|
11
|
-
*/
|
|
12
|
-
constructor(inputFileService) {
|
|
13
|
-
this.inputFileService = inputFileService;
|
|
14
|
-
this.allowedExtensions = [];
|
|
15
|
-
this.maxFilesNumber = 1;
|
|
16
|
-
this.dragAndDrop = new EventEmitter();
|
|
17
|
-
this.invalidDragAndDrop = new EventEmitter();
|
|
18
|
-
this.backgroundColor = '#fafafa';
|
|
19
|
-
this.borderColor = '#ddd';
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* @param {?} evt
|
|
23
|
-
* @return {?}
|
|
24
|
-
*/
|
|
25
|
-
onDragOver(evt) {
|
|
26
|
-
if (!this.disabled) {
|
|
27
|
-
evt.preventDefault();
|
|
28
|
-
evt.stopPropagation();
|
|
29
|
-
this.highlightColors();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* @param {?} evt
|
|
34
|
-
* @return {?}
|
|
35
|
-
*/
|
|
36
|
-
onDragLeave(evt) {
|
|
37
|
-
if (!this.disabled) {
|
|
38
|
-
evt.preventDefault();
|
|
39
|
-
evt.stopPropagation();
|
|
40
|
-
this.resetColors();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* @param {?} event
|
|
45
|
-
* @return {?}
|
|
46
|
-
*/
|
|
47
|
-
onDrop(event) {
|
|
48
|
-
if (!this.disabled) {
|
|
49
|
-
event.preventDefault();
|
|
50
|
-
event.stopPropagation();
|
|
51
|
-
if (event.dataTransfer) {
|
|
52
|
-
this.inputFileService
|
|
53
|
-
.validateFiles(event.dataTransfer.files, this.maxFilesNumber, this.allowedExtensions)
|
|
54
|
-
.subscribe((/**
|
|
55
|
-
* @param {?} files
|
|
56
|
-
* @return {?}
|
|
57
|
-
*/
|
|
58
|
-
files => this.dragAndDrop.emit(files)), (/**
|
|
59
|
-
* @param {?} error
|
|
60
|
-
* @return {?}
|
|
61
|
-
*/
|
|
62
|
-
error => this.invalidDragAndDrop.emit(error)));
|
|
63
|
-
}
|
|
64
|
-
this.resetColors();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* @private
|
|
69
|
-
* @return {?}
|
|
70
|
-
*/
|
|
71
|
-
resetColors() {
|
|
72
|
-
this.backgroundColor = '#fafafa';
|
|
73
|
-
this.borderColor = '#ddd';
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* @private
|
|
77
|
-
* @return {?}
|
|
78
|
-
*/
|
|
79
|
-
highlightColors() {
|
|
80
|
-
this.backgroundColor = '#ffd1b6';
|
|
81
|
-
this.borderColor = '#ff8352';
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
DragAndDropFilesDirective.decorators = [
|
|
85
|
-
{ type: Directive, args: [{
|
|
86
|
-
selector: '[dragAndDropFiles]'
|
|
87
|
-
},] }
|
|
88
|
-
];
|
|
89
|
-
/** @nocollapse */
|
|
90
|
-
DragAndDropFilesDirective.ctorParameters = () => [
|
|
91
|
-
{ type: InputFileService }
|
|
92
|
-
];
|
|
93
|
-
DragAndDropFilesDirective.propDecorators = {
|
|
94
|
-
allowedExtensions: [{ type: Input }],
|
|
95
|
-
maxFilesNumber: [{ type: Input }],
|
|
96
|
-
disabled: [{ type: Input }],
|
|
97
|
-
dragAndDrop: [{ type: Output }],
|
|
98
|
-
invalidDragAndDrop: [{ type: Output }],
|
|
99
|
-
backgroundColor: [{ type: HostBinding, args: ['style.background',] }],
|
|
100
|
-
borderColor: [{ type: HostBinding, args: ['style.border-color',] }],
|
|
101
|
-
onDragOver: [{ type: HostListener, args: ['dragover', ['$event'],] }],
|
|
102
|
-
onDragLeave: [{ type: HostListener, args: ['dragleave', ['$event'],] }],
|
|
103
|
-
onDrop: [{ type: HostListener, args: ['drop', ['$event'],] }]
|
|
104
|
-
};
|
|
105
|
-
if (false) {
|
|
106
|
-
/** @type {?} */
|
|
107
|
-
DragAndDropFilesDirective.prototype.allowedExtensions;
|
|
108
|
-
/** @type {?} */
|
|
109
|
-
DragAndDropFilesDirective.prototype.maxFilesNumber;
|
|
110
|
-
/** @type {?} */
|
|
111
|
-
DragAndDropFilesDirective.prototype.disabled;
|
|
112
|
-
/** @type {?} */
|
|
113
|
-
DragAndDropFilesDirective.prototype.dragAndDrop;
|
|
114
|
-
/** @type {?} */
|
|
115
|
-
DragAndDropFilesDirective.prototype.invalidDragAndDrop;
|
|
116
|
-
/** @type {?} */
|
|
117
|
-
DragAndDropFilesDirective.prototype.backgroundColor;
|
|
118
|
-
/** @type {?} */
|
|
119
|
-
DragAndDropFilesDirective.prototype.borderColor;
|
|
120
|
-
/**
|
|
121
|
-
* @type {?}
|
|
122
|
-
* @private
|
|
123
|
-
*/
|
|
124
|
-
DragAndDropFilesDirective.prototype.inputFileService;
|
|
125
|
-
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1maWxlcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvZHJhZy1hbmQtZHJvcC1maWxlcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFLL0QsTUFBTSxPQUFPLHlCQUF5Qjs7OztJQWtCbEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFoQnRELHNCQUFpQixHQUFrQixFQUFFLENBQUM7UUFFdEMsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFLbkIsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RCx1QkFBa0IsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd2RCxvQkFBZSxHQUFHLFNBQVMsQ0FBQztRQUU1QixnQkFBVyxHQUFHLE1BQU0sQ0FBQztJQUc1QixDQUFDOzs7OztJQUdNLFVBQVUsQ0FBQyxHQUFHO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQzs7Ozs7SUFHTSxXQUFXLENBQUMsR0FBRztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7Ozs7O0lBR00sTUFBTSxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRXhCLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGdCQUFnQjtxQkFDaEIsYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDO3FCQUNwRixTQUFTOzs7O2dCQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDOzs7O2dCQUMxQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQzthQUMzRDtZQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7Ozs7O0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO0lBQzlCLENBQUM7Ozs7O0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUNqQyxDQUFDOzs7WUFuRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxvQkFBb0I7YUFDakM7Ozs7WUFKTyxnQkFBZ0I7OztnQ0FNbkIsS0FBSzs2QkFFTCxLQUFLO3VCQUVMLEtBQUs7MEJBR0wsTUFBTTtpQ0FFTixNQUFNOzhCQUdOLFdBQVcsU0FBQyxrQkFBa0I7MEJBRTlCLFdBQVcsU0FBQyxvQkFBb0I7eUJBTWhDLFlBQVksU0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUM7MEJBU25DLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7cUJBU3BDLFlBQVksU0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7Ozs7SUF0Q2hDLHNEQUNzQzs7SUFDdEMsbURBQ21COztJQUNuQiw2Q0FDa0I7O0lBRWxCLGdEQUN1RDs7SUFDdkQsdURBQzhEOztJQUU5RCxvREFDbUM7O0lBQ25DLGdEQUM0Qjs7Ozs7SUFFaEIscURBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lucHV0RmlsZVNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2lucHV0RmlsZS5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZHJhZ0FuZERyb3BGaWxlc10nXG59KVxuZXhwb3J0IGNsYXNzIERyYWdBbmREcm9wRmlsZXNEaXJlY3RpdmUge1xuICAgIEBJbnB1dCgpXG4gICAgYWxsb3dlZEV4dGVuc2lvbnM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgICBASW5wdXQoKVxuICAgIG1heEZpbGVzTnVtYmVyID0gMTtcbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZHJhZ0FuZERyb3A6IEV2ZW50RW1pdHRlcjxGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGludmFsaWREcmFnQW5kRHJvcDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmQnKVxuICAgIHB1YmxpYyBiYWNrZ3JvdW5kQ29sb3IgPSAnI2ZhZmFmYSc7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3JkZXItY29sb3InKVxuICAgIHB1YmxpYyBib3JkZXJDb2xvciA9ICcjZGRkJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5wdXRGaWxlU2VydmljZTogSW5wdXRGaWxlU2VydmljZSkge1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25EcmFnT3ZlcihldnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0Q29sb3JzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyYWdMZWF2ZShldnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRDb2xvcnMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkRyb3AoZXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0RmlsZVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLnZhbGlkYXRlRmlsZXMoZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLCB0aGlzLm1heEZpbGVzTnVtYmVyLCB0aGlzLmFsbG93ZWRFeHRlbnNpb25zKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGZpbGVzID0+IHRoaXMuZHJhZ0FuZERyb3AuZW1pdChmaWxlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICwgZXJyb3IgPT4gdGhpcy5pbnZhbGlkRHJhZ0FuZERyb3AuZW1pdChlcnJvcikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJlc2V0Q29sb3JzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0Q29sb3JzKCkge1xuICAgICAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9ICcjZmFmYWZhJztcbiAgICAgICAgdGhpcy5ib3JkZXJDb2xvciA9ICcjZGRkJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZ2hsaWdodENvbG9ycygpIHtcbiAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZDFiNic7XG4gICAgICAgIHRoaXMuYm9yZGVyQ29sb3IgPSAnI2ZmODM1Mic7XG4gICAgfVxufVxuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/directives/dynamic-component/component-descriptor.model.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Usefull to desccribe (type and input data) a component
|
|
8
|
-
* that will be dynamically instanciate
|
|
9
|
-
*/
|
|
10
|
-
export class ComponentDescriptor {
|
|
11
|
-
/**
|
|
12
|
-
* @param {?} type
|
|
13
|
-
* @param {?} data
|
|
14
|
-
*/
|
|
15
|
-
constructor(type, data) {
|
|
16
|
-
this.type = type;
|
|
17
|
-
this.data = data;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* @param {?} data
|
|
21
|
-
* @return {?}
|
|
22
|
-
*/
|
|
23
|
-
assignData(data) {
|
|
24
|
-
Object.assign(this.data, data);
|
|
25
|
-
return this;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
if (false) {
|
|
29
|
-
/** @type {?} */
|
|
30
|
-
ComponentDescriptor.prototype.type;
|
|
31
|
-
/** @type {?} */
|
|
32
|
-
ComponentDescriptor.prototype.data;
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWRlc2NyaXB0b3IubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvZHluYW1pYy1jb21wb25lbnQvY29tcG9uZW50LWRlc2NyaXB0b3IubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBTUEsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7SUFDN0IsWUFDVyxJQUFlLEVBQ2YsSUFBUztRQURULFNBQUksR0FBSixJQUFJLENBQVc7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFLO0lBQ2pCLENBQUM7Ozs7O0lBRUosVUFBVSxDQUFDLElBQVM7UUFDaEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSDs7O0lBUk0sbUNBQXNCOztJQUN0QixtQ0FBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiogVXNlZnVsbCB0byBkZXNjY3JpYmUgKHR5cGUgYW5kIGlucHV0IGRhdGEpIGEgY29tcG9uZW50XG4qIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseSBpbnN0YW5jaWF0ZVxuKi9cbmV4cG9ydCBjbGFzcyBDb21wb25lbnREZXNjcmlwdG9yIHtcbiAgIGNvbnN0cnVjdG9yKFxuICAgICAgIHB1YmxpYyB0eXBlOiBUeXBlPGFueT4sXG4gICAgICAgcHVibGljIGRhdGE6IGFueVxuICAgKSB7fVxuXG4gICBhc3NpZ25EYXRhKGRhdGE6IGFueSk6IENvbXBvbmVudERlc2NyaXB0b3Ige1xuICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhLCBkYXRhKTtcbiAgICAgICByZXR1cm4gdGhpcztcbiAgIH1cbn1cbiJdfQ==
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/directives/dynamic-component/dynamic-component.directive.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { ComponentFactoryResolver, Directive, Input, ViewContainerRef, } from '@angular/core';
|
|
7
|
-
import { ComponentDescriptor } from './component-descriptor.model';
|
|
8
|
-
/**
|
|
9
|
-
* Dynamically load the component describe with the \@input dynamic-component
|
|
10
|
-
*/
|
|
11
|
-
export class DynamicComponentDirective {
|
|
12
|
-
/**
|
|
13
|
-
* @param {?} viewContainerRef
|
|
14
|
-
* @param {?} componentFactoryResolver
|
|
15
|
-
*/
|
|
16
|
-
constructor(viewContainerRef, componentFactoryResolver) {
|
|
17
|
-
this.viewContainerRef = viewContainerRef;
|
|
18
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @param {?=} data
|
|
22
|
-
* @return {?}
|
|
23
|
-
*/
|
|
24
|
-
load(data) {
|
|
25
|
-
if (this.isLoaded()) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
/** @type {?} */
|
|
29
|
-
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.componentDesc.type);
|
|
30
|
-
this.viewContainerRef.clear();
|
|
31
|
-
this.componentRef = this.viewContainerRef.createComponent(componentFactory);
|
|
32
|
-
if (data != undefined) {
|
|
33
|
-
this.componentDesc.assignData(data);
|
|
34
|
-
}
|
|
35
|
-
for (const attribute in this.componentDesc.data) {
|
|
36
|
-
this.componentRef.instance[attribute] = this.componentDesc.data[attribute];
|
|
37
|
-
if (attribute == 'hideEvent') {
|
|
38
|
-
this.componentRef.instance.hideEvent.subscribe((/**
|
|
39
|
-
* @param {?} e
|
|
40
|
-
* @return {?}
|
|
41
|
-
*/
|
|
42
|
-
e => {
|
|
43
|
-
this.destroy();
|
|
44
|
-
}));
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* @return {?}
|
|
50
|
-
*/
|
|
51
|
-
isLoaded() {
|
|
52
|
-
if (this.componentRef == undefined) {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
return this.componentRef.instance != null;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* @return {?}
|
|
61
|
-
*/
|
|
62
|
-
destroy() {
|
|
63
|
-
if (this.componentRef.instance.hideEvent != undefined) {
|
|
64
|
-
this.componentRef.instance.hideEvent.unsubscribe();
|
|
65
|
-
}
|
|
66
|
-
// FIXME: this.componentRef.destroy(); => This one usually should work, better to use but do nothing...
|
|
67
|
-
delete this.componentRef;
|
|
68
|
-
this.viewContainerRef.clear();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
DynamicComponentDirective.decorators = [
|
|
72
|
-
{ type: Directive, args: [{
|
|
73
|
-
selector: '[dynamic-component]',
|
|
74
|
-
},] }
|
|
75
|
-
];
|
|
76
|
-
/** @nocollapse */
|
|
77
|
-
DynamicComponentDirective.ctorParameters = () => [
|
|
78
|
-
{ type: ViewContainerRef },
|
|
79
|
-
{ type: ComponentFactoryResolver }
|
|
80
|
-
];
|
|
81
|
-
DynamicComponentDirective.propDecorators = {
|
|
82
|
-
componentDesc: [{ type: Input, args: ['dynamic-component',] }]
|
|
83
|
-
};
|
|
84
|
-
if (false) {
|
|
85
|
-
/** @type {?} */
|
|
86
|
-
DynamicComponentDirective.prototype.componentRef;
|
|
87
|
-
/** @type {?} */
|
|
88
|
-
DynamicComponentDirective.prototype.componentDesc;
|
|
89
|
-
/**
|
|
90
|
-
* @type {?}
|
|
91
|
-
* @private
|
|
92
|
-
*/
|
|
93
|
-
DynamicComponentDirective.prototype.viewContainerRef;
|
|
94
|
-
/**
|
|
95
|
-
* @type {?}
|
|
96
|
-
* @private
|
|
97
|
-
*/
|
|
98
|
-
DynamicComponentDirective.prototype.componentFactoryResolver;
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW9kZS11aS8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2R5bmFtaWMtY29tcG9uZW50L2R5bmFtaWMtY29tcG9uZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyx3QkFBd0IsRUFBZ0IsU0FBUyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQVFqRSxNQUFNLE9BQU8seUJBQXlCOzs7OztJQUNsQyxZQUNZLGdCQUFrQyxFQUNsQyx3QkFBa0Q7UUFEbEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQzNELENBQUM7Ozs7O0lBT0osSUFBSSxDQUFDLElBQVU7UUFDWCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUFFLE9BQU87U0FBRTs7Y0FDMUIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUU1RSxJQUFJLElBQUksSUFBSSxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkM7UUFDRCxLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNFLElBQUksU0FBUyxJQUFJLFdBQVcsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVM7Ozs7Z0JBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQy9DLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxFQUFDLENBQUM7YUFDTjtTQUNKO0lBQ0wsQ0FBQzs7OztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksU0FBUyxFQUFFO1lBQ2hDLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO2FBQ0k7WUFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztTQUM3QztJQUNMLENBQUM7Ozs7SUFFRCxPQUFPO1FBQ0gsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksU0FBUyxFQUFFO1lBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0RDtRQUNELHVHQUF1RztRQUN2RyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xDLENBQUM7OztZQWpESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjthQUNsQzs7OztZQVJpRSxnQkFBZ0I7WUFBMUUsd0JBQXdCOzs7NEJBaUIzQixLQUFLLFNBQUMsbUJBQW1COzs7O0lBRjFCLGlEQUF1Qzs7SUFFdkMsa0RBQ21DOzs7OztJQVAvQixxREFBMEM7Ozs7O0lBQzFDLDZEQUEwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgSW5wdXQsIFZpZXdDb250YWluZXJSZWYsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbXBvbmVudERlc2NyaXB0b3J9IGZyb20gJy4vY29tcG9uZW50LWRlc2NyaXB0b3IubW9kZWwnO1xuXG4vKipcbiogRHluYW1pY2FsbHkgbG9hZCB0aGUgY29tcG9uZW50IGRlc2NyaWJlIHdpdGggdGhlIEBpbnB1dCBkeW5hbWljLWNvbXBvbmVudFxuKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2R5bmFtaWMtY29tcG9uZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNDb21wb25lbnREaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcblxuICAgIEBJbnB1dCgnZHluYW1pYy1jb21wb25lbnQnKVxuICAgIGNvbXBvbmVudERlc2M6IENvbXBvbmVudERlc2NyaXB0b3I7XG5cbiAgICBsb2FkKGRhdGE/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkZWQoKSkgeyByZXR1cm47IH1cbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuY29tcG9uZW50RGVzYy50eXBlKTtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5KTtcblxuICAgICAgICBpZiAoZGF0YSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50RGVzYy5hc3NpZ25EYXRhKGRhdGEpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIGluIHRoaXMuY29tcG9uZW50RGVzYy5kYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZVthdHRyaWJ1dGVdID0gdGhpcy5jb21wb25lbnREZXNjLmRhdGFbYXR0cmlidXRlXTtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUgPT0gJ2hpZGVFdmVudCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5oaWRlRXZlbnQuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgIT0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5oaWRlRXZlbnQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5oaWRlRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBGSVhNRTogdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpOyA9PiBUaGlzIG9uZSB1c3VhbGx5IHNob3VsZCB3b3JrLCBiZXR0ZXIgdG8gdXNlIGJ1dCBkbyBub3RoaW5nLi4uXG4gICAgICAgIGRlbGV0ZSB0aGlzLmNvbXBvbmVudFJlZjtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgfVxufVxuXG5cblxuIl19
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/directives/dynamictemplate.directive.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Compiler, Component, Directive, ElementRef, Input, NgModule, Injector, ViewContainerRef } from '@angular/core';
|
|
7
|
-
import { CommonModule } from '@angular/common';
|
|
8
|
-
import { DynamicModuleImportsService } from '../services/dynamicModuleImports.service';
|
|
9
|
-
export class DynamicTemplateDirective {
|
|
10
|
-
/**
|
|
11
|
-
* @param {?} elementRef
|
|
12
|
-
* @param {?} viewContainer
|
|
13
|
-
* @param {?} compiler
|
|
14
|
-
* @param {?} dynamicModuleImports
|
|
15
|
-
*/
|
|
16
|
-
constructor(elementRef, viewContainer, compiler, dynamicModuleImports) {
|
|
17
|
-
this.elementRef = elementRef;
|
|
18
|
-
this.viewContainer = viewContainer;
|
|
19
|
-
this.compiler = compiler;
|
|
20
|
-
this.dynamicModuleImports = dynamicModuleImports;
|
|
21
|
-
this._html = '';
|
|
22
|
-
this._selector = 'dynamic-view';
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* @param {?} html
|
|
26
|
-
* @return {?}
|
|
27
|
-
*/
|
|
28
|
-
set templateContents(html) {
|
|
29
|
-
if (html) {
|
|
30
|
-
this._html = html;
|
|
31
|
-
/** @type {?} */
|
|
32
|
-
const cmpType = this._createDynamicComponent();
|
|
33
|
-
/** @type {?} */
|
|
34
|
-
const moduleType = this._createDynamicModule(cmpType);
|
|
35
|
-
/** @type {?} */
|
|
36
|
-
const injector = Injector.create({
|
|
37
|
-
providers: [],
|
|
38
|
-
parent: this.viewContainer.parentInjector,
|
|
39
|
-
});
|
|
40
|
-
this.compiler.compileModuleAndAllComponentsAsync(moduleType)
|
|
41
|
-
.then((/**
|
|
42
|
-
* @param {?} factory
|
|
43
|
-
* @return {?}
|
|
44
|
-
*/
|
|
45
|
-
factory => {
|
|
46
|
-
/** @type {?} */
|
|
47
|
-
let cmpFactory;
|
|
48
|
-
for (let i = factory.componentFactories.length - 1; i >= 0; i--) {
|
|
49
|
-
if (factory.componentFactories[i].selector === this._selector) {
|
|
50
|
-
cmpFactory = factory.componentFactories[i];
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return cmpFactory;
|
|
55
|
-
}))
|
|
56
|
-
.then((/**
|
|
57
|
-
* @param {?} cmpFactory
|
|
58
|
-
* @return {?}
|
|
59
|
-
*/
|
|
60
|
-
cmpFactory => {
|
|
61
|
-
if (cmpFactory && this.viewContainer) {
|
|
62
|
-
this.viewContainer.clear();
|
|
63
|
-
this.viewContainer.createComponent(cmpFactory, 0, injector);
|
|
64
|
-
}
|
|
65
|
-
}));
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
this._html = '';
|
|
69
|
-
this.viewContainer.clear();
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* @private
|
|
74
|
-
* @return {?}
|
|
75
|
-
*/
|
|
76
|
-
_createDynamicComponent() {
|
|
77
|
-
/** @type {?} */
|
|
78
|
-
const metadata = {
|
|
79
|
-
selector: this._selector,
|
|
80
|
-
template: this._html,
|
|
81
|
-
inputs: ['template']
|
|
82
|
-
};
|
|
83
|
-
class _cmp_ {
|
|
84
|
-
}
|
|
85
|
-
_cmp_.prototype = this.context;
|
|
86
|
-
return Component(metadata)(_cmp_);
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* @private
|
|
90
|
-
* @param {?} componentType
|
|
91
|
-
* @return {?}
|
|
92
|
-
*/
|
|
93
|
-
_createDynamicModule(componentType) {
|
|
94
|
-
class _mod_ {
|
|
95
|
-
}
|
|
96
|
-
return NgModule({
|
|
97
|
-
imports: [
|
|
98
|
-
CommonModule,
|
|
99
|
-
...this.dynamicModuleImports.imports
|
|
100
|
-
],
|
|
101
|
-
declarations: [componentType],
|
|
102
|
-
providers: []
|
|
103
|
-
})(_mod_);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
DynamicTemplateDirective.decorators = [
|
|
107
|
-
{ type: Directive, args: [{
|
|
108
|
-
selector: 'dynamic-template'
|
|
109
|
-
},] }
|
|
110
|
-
];
|
|
111
|
-
/** @nocollapse */
|
|
112
|
-
DynamicTemplateDirective.ctorParameters = () => [
|
|
113
|
-
{ type: ElementRef },
|
|
114
|
-
{ type: ViewContainerRef },
|
|
115
|
-
{ type: Compiler },
|
|
116
|
-
{ type: DynamicModuleImportsService }
|
|
117
|
-
];
|
|
118
|
-
DynamicTemplateDirective.propDecorators = {
|
|
119
|
-
templateContents: [{ type: Input, args: ['template',] }],
|
|
120
|
-
context: [{ type: Input }]
|
|
121
|
-
};
|
|
122
|
-
if (false) {
|
|
123
|
-
/**
|
|
124
|
-
* @type {?}
|
|
125
|
-
* @private
|
|
126
|
-
*/
|
|
127
|
-
DynamicTemplateDirective.prototype._html;
|
|
128
|
-
/**
|
|
129
|
-
* @type {?}
|
|
130
|
-
* @private
|
|
131
|
-
*/
|
|
132
|
-
DynamicTemplateDirective.prototype._selector;
|
|
133
|
-
/**
|
|
134
|
-
* @type {?}
|
|
135
|
-
* @private
|
|
136
|
-
*/
|
|
137
|
-
DynamicTemplateDirective.prototype.context;
|
|
138
|
-
/**
|
|
139
|
-
* @type {?}
|
|
140
|
-
* @private
|
|
141
|
-
*/
|
|
142
|
-
DynamicTemplateDirective.prototype.elementRef;
|
|
143
|
-
/**
|
|
144
|
-
* @type {?}
|
|
145
|
-
* @private
|
|
146
|
-
*/
|
|
147
|
-
DynamicTemplateDirective.prototype.viewContainer;
|
|
148
|
-
/**
|
|
149
|
-
* @type {?}
|
|
150
|
-
* @private
|
|
151
|
-
*/
|
|
152
|
-
DynamicTemplateDirective.prototype.compiler;
|
|
153
|
-
/**
|
|
154
|
-
* @type {?}
|
|
155
|
-
* @private
|
|
156
|
-
*/
|
|
157
|
-
DynamicTemplateDirective.prototype.dynamicModuleImports;
|
|
158
|
-
}
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pY3RlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1vZGUtdWkvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9keW5hbWljdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBUSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFLckYsTUFBTSxPQUFPLHdCQUF3Qjs7Ozs7OztJQUVqQyxZQUNZLFVBQXNCLEVBQ3RCLGFBQStCLEVBQy9CLFFBQWtCLEVBQ2xCLG9CQUFpRDtRQUhqRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBNkI7UUFxQ3JELFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxjQUFTLEdBQUcsY0FBYyxDQUFDO0lBckNoQyxDQUFDOzs7OztJQUVKLElBQ0ksZ0JBQWdCLENBQUMsSUFBWTtRQUM3QixJQUFJLElBQUksRUFBRTtZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDOztrQkFDWixPQUFPLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFOztrQkFDeEMsVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUM7O2tCQUMvQyxRQUFRLEdBQWEsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDdkMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYzthQUM1QyxDQUFDO1lBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBTSxVQUFVLENBQUM7aUJBQzVELElBQUk7Ozs7WUFBQyxPQUFPLENBQUMsRUFBRTs7b0JBQ1IsVUFBZTtnQkFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUM3RCxJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTt3QkFDM0QsVUFBVSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDM0MsTUFBTTtxQkFDVDtpQkFDSjtnQkFDRCxPQUFPLFVBQVUsQ0FBQztZQUN0QixDQUFDLEVBQUM7aUJBQ0QsSUFBSTs7OztZQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNmLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7aUJBQy9EO1lBQ0wsQ0FBQyxFQUFDLENBQUM7U0FDVjthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM5QjtJQUNMLENBQUM7Ozs7O0lBT08sdUJBQXVCOztjQUNyQixRQUFRLEdBQUc7WUFDYixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDeEIsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3BCLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUN2QjtRQUNELE1BQU0sS0FBSztTQUFHO1FBQ2QsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQy9CLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Ozs7OztJQUVPLG9CQUFvQixDQUFDLGFBQXdCO1FBQ2pELE1BQU0sS0FBSztTQUFHO1FBQ2QsT0FBTyxRQUFRLENBQUM7WUFDWixPQUFPLEVBQUU7Z0JBQ0wsWUFBWTtnQkFDWixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPO2FBQUU7WUFDMUMsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQzdCLFNBQVMsRUFBRSxFQUFFO1NBQ2hCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNkLENBQUM7OztZQXZFSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjthQUMvQjs7OztZQVB1QyxVQUFVO1lBQW1DLGdCQUFnQjtZQUE3RixRQUFRO1lBR1IsMkJBQTJCOzs7K0JBYzlCLEtBQUssU0FBQyxVQUFVO3NCQXFDaEIsS0FBSzs7Ozs7OztJQUhOLHlDQUFtQjs7Ozs7SUFDbkIsNkNBQW1DOzs7OztJQUVuQywyQ0FBaUM7Ozs7O0lBM0M3Qiw4Q0FBOEI7Ozs7O0lBQzlCLGlEQUF1Qzs7Ozs7SUFDdkMsNENBQTBCOzs7OztJQUMxQix3REFBeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBpbGVyLCBDb21wb25lbnQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE5nTW9kdWxlLCBJbmplY3RvciwgVHlwZSwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtEeW5hbWljTW9kdWxlSW1wb3J0c1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL2R5bmFtaWNNb2R1bGVJbXBvcnRzLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2R5bmFtaWMtdGVtcGxhdGUnXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyLFxuICAgICAgICBwcml2YXRlIGR5bmFtaWNNb2R1bGVJbXBvcnRzOiBEeW5hbWljTW9kdWxlSW1wb3J0c1NlcnZpY2VcbiAgICApIHt9XG5cbiAgICBASW5wdXQoJ3RlbXBsYXRlJylcbiAgICBzZXQgdGVtcGxhdGVDb250ZW50cyhodG1sOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGh0bWwpIHtcbiAgICAgICAgICAgIHRoaXMuX2h0bWwgPSBodG1sO1xuICAgICAgICAgICAgY29uc3QgY21wVHlwZSA9IHRoaXMuX2NyZWF0ZUR5bmFtaWNDb21wb25lbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IG1vZHVsZVR5cGUgPSB0aGlzLl9jcmVhdGVEeW5hbWljTW9kdWxlKGNtcFR5cGUpO1xuICAgICAgICAgICAgY29uc3QgaW5qZWN0b3I6IEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtdLFxuICAgICAgICAgICAgICAgIHBhcmVudDogdGhpcy52aWV3Q29udGFpbmVyLnBhcmVudEluamVjdG9yLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFuZEFsbENvbXBvbmVudHNBc3luYzxhbnk+KG1vZHVsZVR5cGUpXG4gICAgICAgICAgICAgICAgLnRoZW4oZmFjdG9yeSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjbXBGYWN0b3J5OiBhbnk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSBmYWN0b3J5LmNvbXBvbmVudEZhY3Rvcmllcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZhY3RvcnkuY29tcG9uZW50RmFjdG9yaWVzW2ldLnNlbGVjdG9yID09PSB0aGlzLl9zZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcEZhY3RvcnkgPSBmYWN0b3J5LmNvbXBvbmVudEZhY3Rvcmllc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY21wRmFjdG9yeTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKGNtcEZhY3RvcnkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY21wRmFjdG9yeSAmJiB0aGlzLnZpZXdDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjbXBGYWN0b3J5LCAwLCBpbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2h0bWwgPSAnJztcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaHRtbCA9ICcnO1xuICAgIHByaXZhdGUgX3NlbGVjdG9yID0gJ2R5bmFtaWMtdmlldyc7XG5cbiAgICBASW5wdXQoKSBwcml2YXRlIGNvbnRleHQ6IE9iamVjdDtcblxuICAgIHByaXZhdGUgX2NyZWF0ZUR5bmFtaWNDb21wb25lbnQoKTogVHlwZTxhbnk+IHtcbiAgICAgICAgY29uc3QgbWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBzZWxlY3RvcjogdGhpcy5fc2VsZWN0b3IsXG4gICAgICAgICAgICB0ZW1wbGF0ZTogdGhpcy5faHRtbCxcbiAgICAgICAgICAgIGlucHV0czogWyd0ZW1wbGF0ZSddXG4gICAgICAgIH07XG4gICAgICAgIGNsYXNzIF9jbXBfIHt9XG4gICAgICAgIF9jbXBfLnByb3RvdHlwZSA9IHRoaXMuY29udGV4dDtcbiAgICAgICAgcmV0dXJuIENvbXBvbmVudChtZXRhZGF0YSkoX2NtcF8pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZUR5bmFtaWNNb2R1bGUoY29tcG9uZW50VHlwZTogVHlwZTxhbnk+KSB7XG4gICAgICAgIGNsYXNzIF9tb2RfIHt9XG4gICAgICAgIHJldHVybiBOZ01vZHVsZSh7XG4gICAgICAgICAgICBpbXBvcnRzOiBbXG4gICAgICAgICAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuZHluYW1pY01vZHVsZUltcG9ydHMuaW1wb3J0cyBdLFxuICAgICAgICAgICAgZGVjbGFyYXRpb25zOiBbY29tcG9uZW50VHlwZV0sXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtdXG4gICAgICAgIH0pKF9tb2RfKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/directives/object-url.directive.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
import { Directive, ElementRef } from '@angular/core';
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
|
|
10
|
-
*/
|
|
11
|
-
export class ObjectURLDirective {
|
|
12
|
-
/**
|
|
13
|
-
* @param {?} elementRef
|
|
14
|
-
*/
|
|
15
|
-
constructor(elementRef) {
|
|
16
|
-
this.elementRef = elementRef;
|
|
17
|
-
}
|
|
18
|
-
// TODO provide more specific method like createJSON, createCSV, createPDF
|
|
19
|
-
// to free directive consumer from using Blog API
|
|
20
|
-
/**
|
|
21
|
-
* @param {?} blob
|
|
22
|
-
* @param {?} filename
|
|
23
|
-
* @return {?}
|
|
24
|
-
*/
|
|
25
|
-
create(blob, filename) {
|
|
26
|
-
if (this.objectURL !== null) {
|
|
27
|
-
window.URL.revokeObjectURL(this.objectURL);
|
|
28
|
-
}
|
|
29
|
-
this.objectURL = window.URL.createObjectURL(blob);
|
|
30
|
-
this.elementRef.nativeElement.href = this.objectURL;
|
|
31
|
-
this.elementRef.nativeElement.download = filename;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
ObjectURLDirective.decorators = [
|
|
35
|
-
{ type: Directive, args: [{ selector: '[object-url]' },] }
|
|
36
|
-
];
|
|
37
|
-
/** @nocollapse */
|
|
38
|
-
ObjectURLDirective.ctorParameters = () => [
|
|
39
|
-
{ type: ElementRef }
|
|
40
|
-
];
|
|
41
|
-
if (false) {
|
|
42
|
-
/**
|
|
43
|
-
* @type {?}
|
|
44
|
-
* @private
|
|
45
|
-
*/
|
|
46
|
-
ObjectURLDirective.prototype.objectURL;
|
|
47
|
-
/**
|
|
48
|
-
* @type {?}
|
|
49
|
-
* @private
|
|
50
|
-
*/
|
|
51
|
-
ObjectURLDirective.prototype.elementRef;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXVybC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtb2RlLXVpLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvb2JqZWN0LXVybC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPcEQsTUFBTSxPQUFPLGtCQUFrQjs7OztJQUUzQixZQUNZLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDL0IsQ0FBQzs7Ozs7Ozs7SUFNSixNQUFNLENBQUMsSUFBVSxFQUFFLFFBQWdCO1FBQy9CLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQ3RELENBQUM7OztZQWxCSixTQUFTLFNBQUMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFOzs7O1lBTnBCLFVBQVU7Ozs7Ozs7SUFhekIsdUNBQWtCOzs7OztJQUhkLHdDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4qXG4qIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVVJML2NyZWF0ZU9iamVjdFVSTFxuKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tvYmplY3QtdXJsXScgfSlcbmV4cG9ydCBjbGFzcyBPYmplY3RVUkxEaXJlY3RpdmUge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICApIHt9XG5cbiAgICBwcml2YXRlIG9iamVjdFVSTDtcblxuICAgIC8vIFRPRE8gcHJvdmlkZSBtb3JlIHNwZWNpZmljIG1ldGhvZCBsaWtlIGNyZWF0ZUpTT04sIGNyZWF0ZUNTViwgY3JlYXRlUERGXG4gICAgLy8gdG8gZnJlZSBkaXJlY3RpdmUgY29uc3VtZXIgZnJvbSB1c2luZyBCbG9nIEFQSVxuICAgIGNyZWF0ZShibG9iOiBCbG9iLCBmaWxlbmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm9iamVjdFVSTCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5vYmplY3RVUkwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2JqZWN0VVJMID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmhyZWYgPSB0aGlzLm9iamVjdFVSTDtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZG93bmxvYWQgPSBmaWxlbmFtZTtcbiAgICB9XG5cbn1cbiJdfQ==
|