@pepperi-addons/ngx-composite-lib 0.0.10-beta.4 → 0.0.10-beta.42
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/bundles/pepperi-addons-ngx-composite-lib-color-settings.umd.js +2 -1
- package/bundles/pepperi-addons-ngx-composite-lib-color-settings.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-composite-lib-dimx-export.umd.js +771 -0
- package/bundles/pepperi-addons-ngx-composite-lib-dimx-export.umd.js.map +1 -0
- package/bundles/pepperi-addons-ngx-composite-lib-file-status-panel.umd.js +119 -0
- package/bundles/pepperi-addons-ngx-composite-lib-file-status-panel.umd.js.map +1 -0
- package/bundles/pepperi-addons-ngx-composite-lib-generic-list.umd.js +493 -105
- package/bundles/pepperi-addons-ngx-composite-lib-generic-list.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-composite-lib-group-buttons-settings.umd.js +4 -1
- package/bundles/pepperi-addons-ngx-composite-lib-group-buttons-settings.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-composite-lib-shadow-settings.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-composite-lib.umd.js +586 -51
- package/bundles/pepperi-addons-ngx-composite-lib.umd.js.map +1 -1
- package/color-settings/package.json +0 -3
- package/core/common/directives/index.d.ts +1 -0
- package/core/common/directives/public-api.d.ts +1 -0
- package/core/common/directives/reset-configuration-field.directive.d.ts +38 -0
- package/core/common/index.d.ts +1 -0
- package/core/common/public-api.d.ts +2 -0
- package/core/common/services/index.d.ts +1 -0
- package/core/common/services/public-api.d.ts +1 -0
- package/core/common/services/utilities.service.d.ts +6 -0
- package/core/index.d.ts +1 -0
- package/core/public-api.d.ts +1 -0
- package/dimx-export/dimx.component.d.ts +73 -0
- package/dimx-export/dimx.model.d.ts +7 -0
- package/dimx-export/dimx.module.d.ts +15 -0
- package/dimx-export/dimx.service.d.ts +20 -0
- package/dimx-export/package.json +16 -0
- package/{draggable-item/pepperi-addons-ngx-composite-lib-draggable-item.d.ts → dimx-export/pepperi-addons-ngx-composite-lib-dimx-export.d.ts} +1 -1
- package/dimx-export/public-api.d.ts +3 -0
- package/esm2015/color-settings/color-settings.component.js +9 -8
- package/esm2015/color-settings/color-settings.model.js +1 -1
- package/esm2015/core/common/directives/index.js +5 -0
- package/esm2015/core/common/directives/public-api.js +5 -0
- package/esm2015/core/common/directives/reset-configuration-field.directive.js +153 -0
- package/esm2015/core/common/index.js +5 -0
- package/esm2015/core/common/public-api.js +6 -0
- package/esm2015/core/common/services/index.js +5 -0
- package/esm2015/core/common/services/public-api.js +5 -0
- package/esm2015/core/common/services/utilities.service.js +19 -0
- package/esm2015/core/index.js +5 -0
- package/esm2015/core/public-api.js +5 -0
- package/esm2015/dimx-export/dimx.component.js +241 -0
- package/esm2015/dimx-export/dimx.model.js +8 -0
- package/esm2015/dimx-export/dimx.module.js +49 -0
- package/esm2015/dimx-export/dimx.service.js +50 -0
- package/esm2015/dimx-export/pepperi-addons-ngx-composite-lib-dimx-export.js +5 -0
- package/esm2015/dimx-export/public-api.js +7 -0
- package/esm2015/file-status-panel/file-status-panel.component.js +34 -0
- package/esm2015/file-status-panel/file-status-panel.model.js +8 -0
- package/esm2015/file-status-panel/file-status-panel.module.js +40 -0
- package/esm2015/file-status-panel/pepperi-addons-ngx-composite-lib-file-status-panel.js +5 -0
- package/esm2015/file-status-panel/public-api.js +7 -0
- package/esm2015/generic-list/generic-list.component.js +337 -80
- package/esm2015/generic-list/generic-list.model.js +1 -1
- package/esm2015/generic-list/generic-list.module.js +18 -6
- package/esm2015/generic-list/generic-list.service.js +42 -0
- package/esm2015/generic-list/public-api.js +2 -1
- package/esm2015/group-buttons-settings/group-buttons-settings.component.js +5 -2
- package/esm2015/ngx-composite-lib.module.js +28 -9
- package/esm2015/public-api.js +2 -1
- package/esm2015/shadow-settings/shadow-settings.model.js +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.js +8 -7
- package/fesm2015/pepperi-addons-ngx-composite-lib-color-settings.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-dimx-export.js +350 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-dimx-export.js.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.js +90 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-file-status-panel.js.map +1 -0
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.js +391 -85
- package/fesm2015/pepperi-addons-ngx-composite-lib-generic-list.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.js +4 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-group-buttons-settings.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib-shadow-settings.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-composite-lib.js +225 -13
- package/fesm2015/pepperi-addons-ngx-composite-lib.js.map +1 -1
- package/file-status-panel/file-status-panel.component.d.ts +14 -0
- package/file-status-panel/file-status-panel.model.d.ts +6 -0
- package/file-status-panel/file-status-panel.module.d.ts +12 -0
- package/file-status-panel/package.json +10 -0
- package/file-status-panel/pepperi-addons-ngx-composite-lib-file-status-panel.d.ts +5 -0
- package/file-status-panel/public-api.d.ts +3 -0
- package/generic-list/generic-list.component.d.ts +68 -22
- package/generic-list/generic-list.model.d.ts +35 -5
- package/generic-list/generic-list.module.d.ts +2 -1
- package/generic-list/generic-list.service.d.ts +13 -0
- package/generic-list/package.json +0 -1
- package/generic-list/public-api.d.ts +1 -0
- package/group-buttons-settings/group-buttons-settings.component.d.ts +2 -1
- package/group-buttons-settings/package.json +0 -3
- package/ngx-composite-lib.module.d.ts +6 -1
- package/package.json +2 -2
- package/public-api.d.ts +1 -0
- package/shadow-settings/package.json +0 -3
- package/src/assets/i18n/en.ngx-composite-lib.json +5 -2
- package/src/core/style/abstracts/functions.scss +0 -0
- package/src/core/style/abstracts/mixins.scss +0 -0
- package/src/core/style/abstracts/variables.scss +0 -0
- package/src/core/style/base/helpers.scss +0 -0
- package/src/core/style/components/general.scss +0 -0
- package/styling.scss +11 -0
- package/bundles/pepperi-addons-ngx-composite-lib-draggable-item.umd.js +0 -112
- package/bundles/pepperi-addons-ngx-composite-lib-draggable-item.umd.js.map +0 -1
- package/draggable-item/draggable-item.component.d.ts +0 -11
- package/draggable-item/draggable-item.module.d.ts +0 -11
- package/draggable-item/package.json +0 -13
- package/draggable-item/public-api.d.ts +0 -2
- package/esm2015/draggable-item/draggable-item.component.js +0 -40
- package/esm2015/draggable-item/draggable-item.module.js +0 -36
- package/esm2015/draggable-item/pepperi-addons-ngx-composite-lib-draggable-item.js +0 -5
- package/esm2015/draggable-item/public-api.js +0 -6
- package/fesm2015/pepperi-addons-ngx-composite-lib-draggable-item.js +0 -84
- package/fesm2015/pepperi-addons-ngx-composite-lib-draggable-item.js.map +0 -1
- package/styles.scss +0 -38
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Directive, EventEmitter, Input } from '@angular/core';
|
|
3
|
+
import { pepIconDeviceResponsive } from '@pepperi-addons/ngx-lib/icon';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@pepperi-addons/ngx-lib/icon";
|
|
6
|
+
import * as i2 from "@ngx-translate/core";
|
|
7
|
+
export class PepResetConfigurationFieldDirective {
|
|
8
|
+
constructor(renderer, element, pepIconService, translate) {
|
|
9
|
+
this.renderer = renderer;
|
|
10
|
+
this.element = element;
|
|
11
|
+
this.pepIconService = pepIconService;
|
|
12
|
+
this.translate = translate;
|
|
13
|
+
this.resetFieldKey = '';
|
|
14
|
+
this.resetHostEvents = new EventEmitter();
|
|
15
|
+
this._disabled = false;
|
|
16
|
+
this._hideReset = false;
|
|
17
|
+
this._dir = 'ltr';
|
|
18
|
+
// styleType: PepStyleType = 'weak';
|
|
19
|
+
// styleStateType: PepStyleStateType = 'system';
|
|
20
|
+
this.sizeType = 'sm';
|
|
21
|
+
this.resetPosition = 'bottom-end';
|
|
22
|
+
// Create the buton container.
|
|
23
|
+
this.buttonContainer = this.renderer.createElement('div');
|
|
24
|
+
this.translate.get('GENERAL.RESET_HINT').toPromise().then(hint => {
|
|
25
|
+
this.renderer.setAttribute(this.buttonContainer, 'title', hint);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
set disabled(value) {
|
|
29
|
+
this._disabled = value;
|
|
30
|
+
this.renderer.setStyle(this.buttonContainer, 'visibility', this.getVisibility());
|
|
31
|
+
}
|
|
32
|
+
get disabled() {
|
|
33
|
+
return this._disabled;
|
|
34
|
+
}
|
|
35
|
+
set hideReset(value) {
|
|
36
|
+
this._hideReset = value;
|
|
37
|
+
this.renderer.setStyle(this.buttonContainer, 'visibility', this.getVisibility());
|
|
38
|
+
}
|
|
39
|
+
get hideReset() {
|
|
40
|
+
return this._hideReset;
|
|
41
|
+
}
|
|
42
|
+
set dir(value) {
|
|
43
|
+
this._dir = value;
|
|
44
|
+
this.renderer.setStyle(this.buttonContainer, 'float', this.getFloat());
|
|
45
|
+
}
|
|
46
|
+
get dir() {
|
|
47
|
+
return this._dir;
|
|
48
|
+
}
|
|
49
|
+
getVisibility() {
|
|
50
|
+
return this.disabled || this.hideReset ? 'hidden' : 'visible';
|
|
51
|
+
}
|
|
52
|
+
getFloat() {
|
|
53
|
+
return this.dir === 'rtl' ? 'left' : 'right';
|
|
54
|
+
}
|
|
55
|
+
setButtonContainerStyle() {
|
|
56
|
+
let css = `
|
|
57
|
+
display: flex;
|
|
58
|
+
justify-content: flex-end;
|
|
59
|
+
float: ${this.getFloat()};
|
|
60
|
+
margin-bottom: 1rem;
|
|
61
|
+
`;
|
|
62
|
+
this.buttonContainer.setAttribute("style", css);
|
|
63
|
+
}
|
|
64
|
+
setButtonStyle(button) {
|
|
65
|
+
let css = `
|
|
66
|
+
display: flex !important;
|
|
67
|
+
align-items: center !important;
|
|
68
|
+
height: 1rem !important;
|
|
69
|
+
line-height: unset !important;
|
|
70
|
+
padding: unset !important;
|
|
71
|
+
background: unset !important;
|
|
72
|
+
font-size: var(--pep-button-2xs-font-size) !important;
|
|
73
|
+
visibility: ${this.getVisibility()};
|
|
74
|
+
`;
|
|
75
|
+
button.setAttribute("style", css);
|
|
76
|
+
}
|
|
77
|
+
setSvgStyle(svg) {
|
|
78
|
+
let css = `
|
|
79
|
+
transform: rotate(270deg);
|
|
80
|
+
width: 0.75rem;
|
|
81
|
+
`;
|
|
82
|
+
svg.setAttribute('style', css);
|
|
83
|
+
}
|
|
84
|
+
getResetElement() {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
this.setButtonContainerStyle();
|
|
87
|
+
this.renderer.addClass(this.buttonContainer, 'pep-reset-configuration-field-container');
|
|
88
|
+
// Append button
|
|
89
|
+
const button = this.renderer.createElement('button');
|
|
90
|
+
yield this.translate.get('ACTIONS.RESET').toPromise().then(resetText => {
|
|
91
|
+
const buttonText = this.renderer.createText(resetText);
|
|
92
|
+
this.renderer.appendChild(button, buttonText);
|
|
93
|
+
});
|
|
94
|
+
this.renderer.addClass(button, 'pep-button');
|
|
95
|
+
// this.renderer.addClass(button, this.styleType);
|
|
96
|
+
// this.renderer.addClass(button, this.styleStateType);
|
|
97
|
+
this.renderer.addClass(button, 'color-link');
|
|
98
|
+
this.renderer.addClass(button, this.sizeType);
|
|
99
|
+
this.setButtonStyle(button);
|
|
100
|
+
// this.renderer.addClass(button, 'reset-configuration-field-button');
|
|
101
|
+
this.unlistener = this.renderer.listen(button, 'click', () => this.onResetClicked());
|
|
102
|
+
this.renderer.appendChild(this.buttonContainer, button);
|
|
103
|
+
// Append svg
|
|
104
|
+
const svgIcon = this.pepIconService.getSvgIcon(pepIconDeviceResponsive.name);
|
|
105
|
+
this.setSvgStyle(svgIcon);
|
|
106
|
+
this.renderer.appendChild(this.buttonContainer, svgIcon);
|
|
107
|
+
return this.buttonContainer;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
ngAfterViewInit() {
|
|
111
|
+
this.getResetElement().then(element => {
|
|
112
|
+
var _a;
|
|
113
|
+
if (this.resetPosition === 'top-end' && ((_a = this.element.nativeElement.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
114
|
+
this.renderer.insertBefore(this.element.nativeElement, element, this.element.nativeElement.children[0]);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.renderer.appendChild(this.element.nativeElement, element);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
ngOnDestroy() {
|
|
122
|
+
if (this.unlistener) {
|
|
123
|
+
this.unlistener();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
onResetClicked() {
|
|
127
|
+
this.resetHostEvents.emit({
|
|
128
|
+
action: 'set-configuration-field',
|
|
129
|
+
key: this.resetFieldKey,
|
|
130
|
+
value: undefined
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
PepResetConfigurationFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PepResetConfigurationFieldDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.PepIconService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
135
|
+
PepResetConfigurationFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.0.5", type: PepResetConfigurationFieldDirective, selector: "[pepResetConfigurationField]", inputs: { resetFieldKey: ["pepResetConfigurationField", "resetFieldKey"], resetHostEvents: "resetHostEvents", disabled: "disabled", hideReset: "hideReset", dir: "dir" }, ngImport: i0 });
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PepResetConfigurationFieldDirective, decorators: [{
|
|
137
|
+
type: Directive,
|
|
138
|
+
args: [{
|
|
139
|
+
selector: '[pepResetConfigurationField]',
|
|
140
|
+
}]
|
|
141
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.PepIconService }, { type: i2.TranslateService }]; }, propDecorators: { resetFieldKey: [{
|
|
142
|
+
type: Input,
|
|
143
|
+
args: ['pepResetConfigurationField']
|
|
144
|
+
}], resetHostEvents: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], disabled: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], hideReset: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], dir: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}] } });
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtY29uZmlndXJhdGlvbi1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9zcmMvY29yZS9jb21tb24vZGlyZWN0aXZlcy9yZXNldC1jb25maWd1cmF0aW9uLWZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBNkYsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdySyxPQUFPLEVBQWtCLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFNdkYsTUFBTSxPQUFPLG1DQUFtQztJQTBDNUMsWUFDWSxRQUFrQixFQUNsQixPQUFtQixFQUNuQixjQUE4QixFQUM5QixTQUEyQjtRQUgzQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBN0NGLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQy9DLG9CQUFlLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQVVsQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBVW5CLFNBQUksR0FBa0IsS0FBSyxDQUFDO1FBVXBDLG9DQUFvQztRQUNwQyxnREFBZ0Q7UUFDaEQsYUFBUSxHQUFnQixJQUFJLENBQUM7UUFDN0Isa0JBQWEsR0FBRyxZQUFZLENBQUM7UUFVekIsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJ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SSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSwwQ0FBRSxNQUFNLElBQUcsQ0FBQyxFQUFFO2dCQUNyRixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0c7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDbEU7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7WUFDdEIsTUFBTSxFQUFFLHlCQUF5QjtZQUNqQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDdkIsS0FBSyxFQUFFLFNBQVM7U0FDbkIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0lBeEpRLG1DQUFtQztvSEFBbkMsbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBSC9DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtpQkFDM0M7cUxBRXdDLGFBQWE7c0JBQWpELEtBQUs7dUJBQUMsNEJBQTRCO2dCQUMxQixlQUFlO3NCQUF2QixLQUFLO2dCQUlGLFFBQVE7c0JBRFgsS0FBSztnQkFXRixTQUFTO3NCQURaLEtBQUs7Z0JBV0YsR0FBRztzQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBSZW5kZXJlcjIsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgUGVwU2l6ZVR5cGUsIFBlcFN0eWxlU3RhdGVUeXBlLCBQZXBTdHlsZVR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XHJcbmltcG9ydCB7IFBlcEljb25TZXJ2aWNlLCBwZXBJY29uRGV2aWNlUmVzcG9uc2l2ZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbcGVwUmVzZXRDb25maWd1cmF0aW9uRmllbGRdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBlcFJlc2V0Q29uZmlndXJhdGlvbkZpZWxkRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgncGVwUmVzZXRDb25maWd1cmF0aW9uRmllbGQnKSByZXNldEZpZWxkS2V5ID0gJyc7XHJcbiAgICBASW5wdXQoKSByZXNldEhvc3RFdmVudHM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgXHJcbiAgICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgXHJcbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5idXR0b25Db250YWluZXIsICd2aXNpYmlsaXR5JywgdGhpcy5nZXRWaXNpYmlsaXR5KCkpO1xyXG4gICAgfVxyXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9oaWRlUmVzZXQgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIFxyXG4gICAgc2V0IGhpZGVSZXNldCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2hpZGVSZXNldCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5idXR0b25Db250YWluZXIsICd2aXNpYmlsaXR5JywgdGhpcy5nZXRWaXNpYmlsaXR5KCkpO1xyXG4gICAgfVxyXG4gICAgZ2V0IGhpZGVSZXNldCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faGlkZVJlc2V0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2RpcjogJ3J0bCcgfCAnbHRyJyA9ICdsdHInO1xyXG4gICAgQElucHV0KCkgXHJcbiAgICBzZXQgZGlyKHZhbHVlOiAncnRsJyB8ICdsdHInKSB7XHJcbiAgICAgICAgdGhpcy5fZGlyID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmJ1dHRvbkNvbnRhaW5lciwgJ2Zsb2F0JywgdGhpcy5nZXRGbG9hdCgpKTtcclxuICAgIH1cclxuICAgIGdldCBkaXIoKTogJ3J0bCcgfCAnbHRyJyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzdHlsZVR5cGU6IFBlcFN0eWxlVHlwZSA9ICd3ZWFrJztcclxuICAgIC8vIHN0eWxlU3RhdGVUeXBlOiBQZXBTdHlsZVN0YXRlVHlwZSA9ICdzeXN0ZW0nO1xyXG4gICAgc2l6ZVR5cGU6IFBlcFNpemVUeXBlID0gJ3NtJztcclxuICAgIHJlc2V0UG9zaXRpb24gPSAnYm90dG9tLWVuZCc7XHJcbiAgICBcclxuICAgIHByaXZhdGUgdW5saXN0ZW5lcjogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG4gICAgcHJpdmF0ZSBidXR0b25Db250YWluZXIhOiBIVE1MRGl2RWxlbWVudDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOlJlbmRlcmVyMixcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBwZXBJY29uU2VydmljZTogUGVwSWNvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgICAgICAvLyBDcmVhdGUgdGhlIGJ1dG9uIGNvbnRhaW5lci5cclxuICAgICAgICB0aGlzLmJ1dHRvbkNvbnRhaW5lciA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcblxyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnR0VORVJBTC5SRVNFVF9ISU5UJykudG9Qcm9taXNlKCkudGhlbihoaW50ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5idXR0b25Db250YWluZXIsICd0aXRsZScsIGhpbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VmlzaWJpbGl0eSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmhpZGVSZXNldCA/ICdoaWRkZW4nIDogJ3Zpc2libGUnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RmxvYXQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlyID09PSAncnRsJyA/ICdsZWZ0JyA6ICdyaWdodCc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRCdXR0b25Db250YWluZXJTdHlsZSgpIHtcclxuICAgICAgICBsZXQgY3NzID0gYFxyXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gICAgICAgICAgICBmbG9hdDogJHt0aGlzLmdldEZsb2F0KCl9O1xyXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG4gICAgICAgIGA7XHJcblxyXG4gICAgICAgIHRoaXMuYnV0dG9uQ29udGFpbmVyLnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIGNzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRCdXR0b25TdHlsZShidXR0b246IEhUTUxCdXR0b25FbGVtZW50KSB7XHJcbiAgICAgICAgbGV0IGNzcyA9IGBcclxuICAgICAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIGhlaWdodDogMXJlbSAhaW1wb3J0YW50O1xyXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5zZXQgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgcGFkZGluZzogdW5zZXQgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgYmFja2dyb3VuZDogdW5zZXQgIWltcG9ydGFudDtcclxuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1wZXAtYnV0dG9uLTJ4cy1mb250LXNpemUpICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6ICR7dGhpcy5nZXRWaXNpYmlsaXR5KCl9O1xyXG4gICAgICAgIGA7XHJcblxyXG4gICAgICAgIGJ1dHRvbi5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBjc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0U3ZnU3R5bGUoc3ZnOiBTVkdFbGVtZW50KSB7XHJcbiAgICAgICAgbGV0IGNzcyA9IGBcclxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTtcclxuICAgICAgICAgICAgd2lkdGg6IDAuNzVyZW07XHJcbiAgICAgICAgYDtcclxuICAgICAgICBzdmcuc2V0QXR0cmlidXRlKCdzdHlsZScsIGNzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBnZXRSZXNldEVsZW1lbnQoKTogUHJvbWlzZTxIVE1MRWxlbWVudD4ge1xyXG4gICAgICAgIHRoaXMuc2V0QnV0dG9uQ29udGFpbmVyU3R5bGUoKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuYnV0dG9uQ29udGFpbmVyLCAncGVwLXJlc2V0LWNvbmZpZ3VyYXRpb24tZmllbGQtY29udGFpbmVyJyk7XHJcblxyXG4gICAgICAgIC8vIEFwcGVuZCBidXR0b25cclxuICAgICAgICBjb25zdCBidXR0b246IEhUTUxCdXR0b25FbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcclxuICAgICAgICBhd2FpdCB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FDVElPTlMuUkVTRVQnKS50b1Byb21pc2UoKS50aGVuKHJlc2V0VGV4dCA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJ1dHRvblRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQocmVzZXRUZXh0KTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChidXR0b24sIGJ1dHRvblRleHQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAncGVwLWJ1dHRvbicpO1xyXG4gICAgICAgIC8vIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCB0aGlzLnN0eWxlVHlwZSk7XHJcbiAgICAgICAgLy8gdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidXR0b24sIHRoaXMuc3R5bGVTdGF0ZVR5cGUpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnY29sb3ItbGluaycpO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCB0aGlzLnNpemVUeXBlKTtcclxuICAgICAgICB0aGlzLnNldEJ1dHRvblN0eWxlKGJ1dHRvbik7XHJcbiAgICAgICAgLy8gdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidXR0b24sICdyZXNldC1jb25maWd1cmF0aW9uLWZpZWxkLWJ1dHRvbicpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMudW5saXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKGJ1dHRvbiwgJ2NsaWNrJywgKCkgPT4gdGhpcy5vblJlc2V0Q2xpY2tlZCgpKTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuYnV0dG9uQ29udGFpbmVyLCBidXR0b24pO1xyXG5cclxuICAgICAgICAvLyBBcHBlbmQgc3ZnXHJcbiAgICAgICAgY29uc3Qgc3ZnSWNvbiA9IHRoaXMucGVwSWNvblNlcnZpY2UuZ2V0U3ZnSWNvbihwZXBJY29uRGV2aWNlUmVzcG9uc2l2ZS5uYW1lKTtcclxuICAgICAgICB0aGlzLnNldFN2Z1N0eWxlKHN2Z0ljb24pO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5idXR0b25Db250YWluZXIsIHN2Z0ljb24pO1xyXG5cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9uQ29udGFpbmVyO1xyXG4gICAgfVxyXG5cclxuICAgIFxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ2V0UmVzZXRFbGVtZW50KCkudGhlbihlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmVzZXRQb3NpdGlvbiA9PT0gJ3RvcC1lbmQnICYmIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgZWxlbWVudCwgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgZWxlbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy51bmxpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMudW5saXN0ZW5lcigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblJlc2V0Q2xpY2tlZCgpIHtcclxuICAgICAgICB0aGlzLnJlc2V0SG9zdEV2ZW50cy5lbWl0KHtcclxuICAgICAgICAgICAgYWN0aW9uOiAnc2V0LWNvbmZpZ3VyYXRpb24tZmllbGQnLFxyXG4gICAgICAgICAgICBrZXk6IHRoaXMucmVzZXRGaWVsZEtleSxcclxuICAgICAgICAgICAgdmFsdWU6IHVuZGVmaW5lZFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* export from ngx-composite-lib/core/common
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9zcmMvY29yZS9jb21tb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBleHBvcnQgZnJvbSBuZ3gtY29tcG9zaXRlLWxpYi9jb3JlL2NvbW1vblxuICovXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-composite-lib/core/common
|
|
3
|
+
*/
|
|
4
|
+
export * from './services/index';
|
|
5
|
+
export * from './directives/index';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL3NyYy9jb3JlL2NvbW1vbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtY29tcG9zaXRlLWxpYi9jb3JlL2NvbW1vblxuICovXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9pbmRleCc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* export from ngx-composite-lib/core/common/services
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBleHBvcnQgZnJvbSBuZ3gtY29tcG9zaXRlLWxpYi9jb3JlL2NvbW1vbi9zZXJ2aWNlc1xuICovXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-composite-lib/core/common/services
|
|
3
|
+
*/
|
|
4
|
+
export * from './utilities.service';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWNvbXBvc2l0ZS1saWIvY29yZS9jb21tb24vc2VydmljZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi91dGlsaXRpZXMuc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/*
|
|
4
|
+
This service is for utillity usege.
|
|
5
|
+
*/
|
|
6
|
+
export class PepCompositeLibUtilitiesService {
|
|
7
|
+
constructor() {
|
|
8
|
+
//
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
PepCompositeLibUtilitiesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PepCompositeLibUtilitiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12
|
+
PepCompositeLibUtilitiesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PepCompositeLibUtilitiesService, providedIn: 'root' });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PepCompositeLibUtilitiesService, decorators: [{
|
|
14
|
+
type: Injectable,
|
|
15
|
+
args: [{
|
|
16
|
+
providedIn: 'root',
|
|
17
|
+
}]
|
|
18
|
+
}], ctorParameters: function () { return []; } });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9zcmMvY29yZS9jb21tb24vc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0M7O0VBRUU7QUFJRixNQUFNLE9BQU8sK0JBQStCO0lBQ3hDO1FBS0ksRUFBRTtJQUNOLENBQUM7OzRIQVBRLCtCQUErQjtnSUFBL0IsK0JBQStCLGNBRjVCLE1BQU07MkZBRVQsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qXHJcbiAgICBUaGlzIHNlcnZpY2UgaXMgZm9yIHV0aWxsaXR5IHVzZWdlLlxyXG4qL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXBDb21wb3NpdGVMaWJVdGlsaXRpZXNTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIC8vIHByaXZhdGUgc2Vzc2lvblNlcnZpY2U6IFBlcFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgICAgIC8vIHByaXZhdGUgaHR0cFNlcnZpY2U6IFBlcEh0dHBTZXJ2aWNlLFxyXG4gICAgICAgIC8vIHByaXZhdGUgbG9hZGVyU2VydmljZTogUGVwTG9hZGVyU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICAgICAgLy9cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* export from ngx-composite-lib/core
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9zcmMvY29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIGV4cG9ydCBmcm9tIG5neC1jb21wb3NpdGUtbGliL2NvcmVcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-composite-lib/core
|
|
3
|
+
*/
|
|
4
|
+
export * from './common/index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL3NyYy9jb3JlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtY29tcG9zaXRlLWxpYi9jb3JlXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uL2luZGV4JzsiXX0=
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import { saveAs } from 'file-saver';
|
|
4
|
+
import { PepGuid } from '@pepperi-addons/ngx-lib';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ngx-translate/core";
|
|
7
|
+
import * as i2 from "./dimx.service";
|
|
8
|
+
import * as i3 from "@pepperi-addons/ngx-composite-lib/file-status-panel";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
export class DIMXComponent {
|
|
11
|
+
constructor(translate, addonService) {
|
|
12
|
+
this.translate = translate;
|
|
13
|
+
this.addonService = addonService;
|
|
14
|
+
this.iFileID = 0;
|
|
15
|
+
this.iFileArray = [];
|
|
16
|
+
this.toBase64 = (file) => new Promise((resolve, reject) => {
|
|
17
|
+
const reader = new FileReader();
|
|
18
|
+
reader.readAsDataURL(file);
|
|
19
|
+
reader.onload = () => resolve(reader.result);
|
|
20
|
+
reader.onerror = error => reject(error);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
// Get the first translation for load all translations.
|
|
25
|
+
this.translate.get('SHADOW_SETTINGS.INTENSITY_SOFT').toPromise().then((typeSoft) => {
|
|
26
|
+
console.log("something");
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
getDIMXExportPOSTBody(value) {
|
|
30
|
+
return {
|
|
31
|
+
"Format": value.DIMXExportFormat,
|
|
32
|
+
"IncludeDeleted": value.DIMXExportIncludeDeleted,
|
|
33
|
+
"Where": value.DIMXExportWhere,
|
|
34
|
+
"Fields": value.DIMXExportFields,
|
|
35
|
+
"Delimiter": value.DIMXExportDelimiter
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
printHello() {
|
|
39
|
+
console.log("hello");
|
|
40
|
+
}
|
|
41
|
+
pollDIMXResult(pollingURL, ifile) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
console.log(`polling audit with the executionUUID: ${pollingURL}`);
|
|
44
|
+
const delay = (ms) => new Promise(res => setTimeout(res, ms));
|
|
45
|
+
let seconds = 0;
|
|
46
|
+
const waitingTime = 1000; //in ms
|
|
47
|
+
try {
|
|
48
|
+
let result;
|
|
49
|
+
while (true) {
|
|
50
|
+
result = yield this.addonService.papiClient.get(`/audit_logs/${pollingURL}`);
|
|
51
|
+
console.log(`result from auditlog get is: ${result}`);
|
|
52
|
+
if (!result || result["Status"]["ID"] === 2 || result["Status"]["ID"] === 4) {
|
|
53
|
+
console.log(`waited for ${seconds++} seconds`);
|
|
54
|
+
yield delay(waitingTime);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
switch (result["Status"]["ID"]) {
|
|
61
|
+
case 0:
|
|
62
|
+
ifile.status = "failed";
|
|
63
|
+
throw new Error(result["AuditInfo"]["ErrorMessage"]);
|
|
64
|
+
case 1:
|
|
65
|
+
console.log(`polling result: ${result["AuditInfo"]["ResultObject"]}`);
|
|
66
|
+
return JSON.parse(result["AuditInfo"]["ResultObject"]);
|
|
67
|
+
default:
|
|
68
|
+
ifile.status = "failed";
|
|
69
|
+
throw new Error(`pollDIMXResult: unknown audit log type: ${result["Status"]}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (ex) {
|
|
73
|
+
console.log(`pollDIMXResult: ${ex}`);
|
|
74
|
+
ifile.status = "failed";
|
|
75
|
+
throw new Error(ex.message);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
getNewFileName(value) {
|
|
80
|
+
let extension;
|
|
81
|
+
switch (value.DIMXExportFormat.toLowerCase()) {
|
|
82
|
+
case "json":
|
|
83
|
+
extension = ".json";
|
|
84
|
+
break;
|
|
85
|
+
case "csv":
|
|
86
|
+
extension = '.csv';
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
extension = "";
|
|
90
|
+
}
|
|
91
|
+
const filename = value.DIMXExportFileName;
|
|
92
|
+
return filename + extension;
|
|
93
|
+
}
|
|
94
|
+
createNewIFile(fileName, status) {
|
|
95
|
+
return {
|
|
96
|
+
"key": this.iFileID++,
|
|
97
|
+
"name": fileName,
|
|
98
|
+
"status": status
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
removeIfileWithDelay(iFile, delay = 2000) {
|
|
102
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
window.setTimeout(() => {
|
|
104
|
+
const index = this.iFileArray.findIndex(element => element === iFile);
|
|
105
|
+
if (index >= 0) {
|
|
106
|
+
this.iFileArray.splice(index, 1);
|
|
107
|
+
}
|
|
108
|
+
}, delay);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
uploadf(e) {
|
|
112
|
+
const files = e.target.files;
|
|
113
|
+
const fileListAsArray = Array.from(files);
|
|
114
|
+
fileListAsArray.forEach((file, i) => {
|
|
115
|
+
const filex = file;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
uploadFile(event, options) {
|
|
119
|
+
this.dimxImportOptions = options;
|
|
120
|
+
const elem = document.getElementById("fileuploader");
|
|
121
|
+
if (elem && document.createEvent) {
|
|
122
|
+
const evt = document.createEvent("MouseEvents");
|
|
123
|
+
evt.initEvent("click", true, false);
|
|
124
|
+
elem.dispatchEvent(evt);
|
|
125
|
+
}
|
|
126
|
+
// this.fileField?.nativeElement.click();
|
|
127
|
+
}
|
|
128
|
+
dimximportrun(e) {
|
|
129
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
+
console.log("Enter DIMXImportRun");
|
|
131
|
+
const files = e.target.files;
|
|
132
|
+
const fileListAsArray = Array.from(files);
|
|
133
|
+
fileListAsArray.forEach((file, i) => __awaiter(this, void 0, void 0, function* () {
|
|
134
|
+
const filex = file;
|
|
135
|
+
const dimx_import_relativeURL = `/addons/api/44c97115-6d14-4626-91dc-83f176e9a0fc/api/file_import_upload`;
|
|
136
|
+
const str = (yield this.toBase64(filex)); //???
|
|
137
|
+
const ext = filex.name.split('.')[1];
|
|
138
|
+
const value = { fileStr: str, fileExt: ext };
|
|
139
|
+
const dimxUploadObject = Object.assign(Object.assign(Object.assign({}, this.getPFSUploadObject(value)), this.dimxImportOptions), { Resource: this.DIMXResource, AddonUUID: this.DIMXAddonUUID });
|
|
140
|
+
const iFile = this.createNewIFile(filex.name, "uploading");
|
|
141
|
+
console.log(`created new iFile: ${iFile}`);
|
|
142
|
+
this.iFileArray.push(iFile);
|
|
143
|
+
console.log(`added iFile to iFileArray`);
|
|
144
|
+
try {
|
|
145
|
+
console.log("posting to dimx import_upload now");
|
|
146
|
+
const res = yield this.addonService.papiClient.post(dimx_import_relativeURL, dimxUploadObject, { "X-Pepperi-OwnerID": dimxUploadObject.OwnerID, "X-Pepperi-ActionID": dimxUploadObject.ActionID });
|
|
147
|
+
console.log("Got reply from dimx, calling poll with the result:");
|
|
148
|
+
console.log(res);
|
|
149
|
+
const poll_result = yield this.pollDIMXResult(res['ExecutionUUID'], iFile);
|
|
150
|
+
console.log(`done polling, got result: ${JSON.stringify(poll_result)}`);
|
|
151
|
+
iFile.status = "done";
|
|
152
|
+
console.log("Imported the file");
|
|
153
|
+
yield this.removeIfileWithDelay(iFile);
|
|
154
|
+
}
|
|
155
|
+
catch (ex) {
|
|
156
|
+
console.log(`DIMXImportRun: ${ex}`);
|
|
157
|
+
iFile.status = "failed";
|
|
158
|
+
yield this.removeIfileWithDelay(iFile, 2000);
|
|
159
|
+
throw new Error(ex.message);
|
|
160
|
+
}
|
|
161
|
+
}));
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
getNewPFSUploadKey(fileExt) {
|
|
165
|
+
const uuid = PepGuid.newGuid();
|
|
166
|
+
const folder = 'DIMX_import';
|
|
167
|
+
const pfsKey = `/${folder}/${uuid}.${fileExt}`;
|
|
168
|
+
return pfsKey;
|
|
169
|
+
}
|
|
170
|
+
getPFSUploadObject(value) {
|
|
171
|
+
const fileStrArr = value.fileStr.split(';');
|
|
172
|
+
const mime = fileStrArr[0].split(':')[1];
|
|
173
|
+
const pfsKey = this.getNewPFSUploadKey(value.fileExt);
|
|
174
|
+
const pfsUploadObject = {
|
|
175
|
+
"Key": pfsKey,
|
|
176
|
+
"MIME": mime,
|
|
177
|
+
"URI": value.fileStr
|
|
178
|
+
};
|
|
179
|
+
return pfsUploadObject;
|
|
180
|
+
}
|
|
181
|
+
DIMXExportRun(value) {
|
|
182
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
183
|
+
if (!value) {
|
|
184
|
+
value = {};
|
|
185
|
+
}
|
|
186
|
+
if (!value.DIMXExportFormat) {
|
|
187
|
+
value.DIMXExportFormat = 'json';
|
|
188
|
+
}
|
|
189
|
+
if (!value.DIMXExportIncludeDeleted) {
|
|
190
|
+
value.DIMXExportIncludeDeleted = false;
|
|
191
|
+
}
|
|
192
|
+
if (!value.DIMXExportFileName) {
|
|
193
|
+
value.DIMXExportFileName = 'export';
|
|
194
|
+
}
|
|
195
|
+
const bod = this.getDIMXExportPOSTBody(value ? value : {});
|
|
196
|
+
const fileName = this.getNewFileName(value);
|
|
197
|
+
const iFile = this.createNewIFile(fileName, "downloading");
|
|
198
|
+
console.log(`created new iFile: ${iFile}`);
|
|
199
|
+
this.iFileArray.push(iFile);
|
|
200
|
+
console.log(`added iFile to iFileArray`);
|
|
201
|
+
try {
|
|
202
|
+
console.log("posting to dimx export now");
|
|
203
|
+
const res = yield this.addonService.papiClient.post(`/addons/data/export/file/${this.DIMXAddonUUID}/${this.DIMXResource}`, bod, { "X-Pepperi-ActionID": value.ActionID });
|
|
204
|
+
console.log("Got reply from dimx, calling poll with the result:");
|
|
205
|
+
console.log(res);
|
|
206
|
+
const url = (yield this.pollDIMXResult(res['ExecutionUUID'], iFile))["DownloadURL"];
|
|
207
|
+
console.log("attempting to download the file");
|
|
208
|
+
console.log(`url is: ${url}`);
|
|
209
|
+
const blob = yield fetch(url).then(r => r.blob());
|
|
210
|
+
saveAs(blob, fileName);
|
|
211
|
+
iFile.status = "done";
|
|
212
|
+
console.log("downloaded the file");
|
|
213
|
+
yield this.removeIfileWithDelay(iFile);
|
|
214
|
+
}
|
|
215
|
+
catch (ex) {
|
|
216
|
+
iFile.status = "failed";
|
|
217
|
+
yield this.removeIfileWithDelay(iFile);
|
|
218
|
+
console.log(`buttonClick: ${ex}`);
|
|
219
|
+
throw new Error(ex.message);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
DIMXComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: DIMXComponent, deps: [{ token: i1.TranslateService }, { token: i2.DIMXService }], target: i0.ɵɵFactoryTarget.Component });
|
|
225
|
+
DIMXComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: DIMXComponent, selector: "pep-dimx", inputs: { DIMXAddonUUID: "DIMXAddonUUID", DIMXResource: "DIMXResource" }, viewQueries: [{ propertyName: "fileField", first: true, predicate: ["fileField"], descendants: true }], ngImport: i0, template: "<pep-file-status-panel [title]=\"'File Imports/Exports'\" *ngIf=\"iFileArray?.length\" [filesList]=\"iFileArray\"></pep-file-status-panel>\n<input type=\"file\" multiple=\"multiple\" name=\"avatars\" id=\"fileuploader\" #fileField (change)=\"dimximportrun($event)\">\n<!-- <pep-button\n value=\"export\"\n styleType=\"strong\"\n styleStateType=\"success\"\n sizeType=\"sm\"\n classNames=\"hahah\"\n iconName=\"system_doc\"\n (buttonClick)=\"buttonClick($event)\"\n></pep-button> -->", styles: ["#fileuploader{display:none}:host{width:100%}:host .shadow-size-group,:host .shadow-type-group{display:block;margin-bottom:var(--pep-form-spacing, 1rem)}\n"], components: [{ type: i3.FileStatusPanelComponent, selector: "pep-file-status-panel", inputs: ["title", "filesList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: DIMXComponent, decorators: [{
|
|
227
|
+
type: Component,
|
|
228
|
+
args: [{
|
|
229
|
+
selector: 'pep-dimx',
|
|
230
|
+
templateUrl: './dimx.component.html',
|
|
231
|
+
styleUrls: ['./dimx.component.scss']
|
|
232
|
+
}]
|
|
233
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.DIMXService }]; }, propDecorators: { fileField: [{
|
|
234
|
+
type: ViewChild,
|
|
235
|
+
args: ['fileField']
|
|
236
|
+
}], DIMXAddonUUID: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], DIMXResource: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}] } });
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlteC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9kaW14LWV4cG9ydC9kaW14LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL2RpbXgtZXhwb3J0L2RpbXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTRCLEtBQUssRUFBa0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXRHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFPbEQsTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFDWSxTQUEyQixFQUM1QixZQUF5QjtRQUR4QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQTBGcEMsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNaLGVBQVUsR0FBVyxFQUFFLENBQUM7UUF5R3hCLGFBQVEsR0FBRyxDQUFDLElBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFFckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUVoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRTNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUU3QyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhDLENBQUMsQ0FBQyxDQUFDO0lBM01QLENBQUM7SUFHRCxRQUFR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QUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLElBQUksS0FBSyxDQUFFLEVBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDckQ7UUFFTCxDQUFDO0tBQUE7OzBHQTNRUSxhQUFhOzhGQUFiLGFBQWEsa09DWjFCLDJlQVVrQjsyRkRFTCxhQUFhO2tCQUx6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxVQUFVO29CQUNwQixXQUFXLEVBQUUsdUJBQXVCO29CQUNwQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDdkM7aUlBRTJCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDYixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElGaWxlIH0gZnJvbSAnLi9kaW14Lm1vZGVsJztcbmltcG9ydCB7IERJTVhTZXJ2aWNlIH0gZnJvbSAnLi9kaW14LnNlcnZpY2UnO1xuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgeyBQZXBHdWlkIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1kaW14JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlteC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGlteC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERJTVhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoJ2ZpbGVGaWVsZCcpIGZpbGVGaWVsZDpFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIERJTVhBZGRvblVVSUQhOiBzdHJpbmc7XG4gICAgQElucHV0KCkgRElNWFJlc291cmNlITogc3RyaW5nO1xuICAgIGRpbXhJbXBvcnRPcHRpb25zOiB7IE92ZXJ3cml0ZU9CamVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7IERlbGltaXRlcj86IHN0cmluZyB8IHVuZGVmaW5lZDsgT3duZXJJRD86IHN0cmluZyB8IHVuZGVmaW5lZDsgQWN0aW9uSUQ/OiBzdHJpbmcgfCB1bmRlZmluZWR9IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHVibGljIGFkZG9uU2VydmljZTogRElNWFNlcnZpY2VcbiAgICApIHtcblxuICAgIH1cblxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IFxuICAgICAgICAvLyBHZXQgdGhlIGZpcnN0IHRyYW5zbGF0aW9uIGZvciBsb2FkIGFsbCB0cmFuc2xhdGlvbnMuXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnU0hBRE9XX1NFVFRJTkdTLklOVEVOU0lUWV9TT0ZUJykudG9Qcm9taXNlKCkudGhlbigodHlwZVNvZnQpID0+IHsgY29uc29sZS5sb2coXCJzb21ldGhpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldERJTVhFeHBvcnRQT1NUQm9keSh2YWx1ZTp7XG4gICAgICAgIERJTVhFeHBvcnRGb3JtYXQ/OnN0cmluZyxcbiAgICAgICAgRElNWEV4cG9ydEluY2x1ZGVEZWxldGVkPzogYm9vbGVhbixcbiAgICAgICAgRElNWEV4cG9ydEZpbGVOYW1lPzogc3RyaW5nLFxuICAgICAgICBESU1YRXhwb3J0V2hlcmU/OiBzdHJpbmcsXG4gICAgICAgIERJTVhFeHBvcnRGaWVsZHM/OiBzdHJpbmcsXG4gICAgICAgIERJTVhFeHBvcnREZWxpbWl0ZXI/OnN0cmluZ1xuICAgIH0pe1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgXCJGb3JtYXRcIjp2YWx1ZS5ESU1YRXhwb3J0Rm9ybWF0LFxuICAgICAgICAgICAgXCJJbmNsdWRlRGVsZXRlZFwiOnZhbHVlLkRJTVhFeHBvcnRJbmNsdWRlRGVsZXRlZCxcbiAgICAgICAgICAgIFwiV2hlcmVcIjp2YWx1ZS5ESU1YRXhwb3J0V2hlcmUsXG4gICAgICAgICAgICBcIkZpZWxkc1wiOnZhbHVlLkRJTVhFeHBvcnRGaWVsZHMsXG4gICAgICAgICAgICBcIkRlbGltaXRlclwiOnZhbHVlLkRJTVhFeHBvcnREZWxpbWl0ZXJcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaW50SGVsbG8oKXtcbiAgICAgICAgY29uc29sZS5sb2coXCJoZWxsb1wiKTtcbiAgICB9XG5cbiAgICBhc3luYyBwb2xsRElNWFJlc3VsdChwb2xsaW5nVVJMOnN0cmluZywgaWZpbGU6SUZpbGUpe1xuICAgICAgICBjb25zb2xlLmxvZyhgcG9sbGluZyBhdWRpdCB3aXRoIHRoZSBleGVjdXRpb25VVUlEOiAke3BvbGxpbmdVUkx9YCk7XG4gICAgICAgIGNvbnN0IGRlbGF5ID0gKG1zOiBudW1iZXIpID0+IG5ldyBQcm9taXNlKHJlcyA9PiBzZXRUaW1lb3V0KHJlcywgbXMpKTtcbiAgICAgICAgbGV0IHNlY29uZHMgPSAwO1xuICAgICAgICBjb25zdCB3YWl0aW5nVGltZSA9IDEwMDA7IC8vaW4gbXNcbiAgICAgICAgdHJ5e1xuICAgICAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgICAgIHdoaWxlKHRydWUpe1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMuYWRkb25TZXJ2aWNlLnBhcGlDbGllbnQuZ2V0KGAvYXVkaXRfbG9ncy8ke3BvbGxpbmdVUkx9YCk7XG4gICAgICAgIFxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGByZXN1bHQgZnJvbSBhdWRpdGxvZyBnZXQgaXM6ICR7cmVzdWx0fWApO1xuICAgICAgICAgICAgICAgIGlmKCAhcmVzdWx0IHx8IHJlc3VsdFtcIlN0YXR1c1wiXVtcIklEXCJdID09PSAyIHx8IHJlc3VsdFtcIlN0YXR1c1wiXVtcIklEXCJdID09PSA0KXtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHdhaXRlZCBmb3IgJHtzZWNvbmRzKyt9IHNlY29uZHNgKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgZGVsYXkod2FpdGluZ1RpbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzd2l0Y2gocmVzdWx0W1wiU3RhdHVzXCJdW1wiSURcIl0pe1xuICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgaWZpbGUuc3RhdHVzID0gXCJmYWlsZWRcIjtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdFtcIkF1ZGl0SW5mb1wiXVtcIkVycm9yTWVzc2FnZVwiXSk7XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgcG9sbGluZyByZXN1bHQ6ICR7cmVzdWx0W1wiQXVkaXRJbmZvXCJdW1wiUmVzdWx0T2JqZWN0XCJdfWApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHRbXCJBdWRpdEluZm9cIl1bXCJSZXN1bHRPYmplY3RcIl0pO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGlmaWxlLnN0YXR1cyA9IFwiZmFpbGVkXCI7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcG9sbERJTVhSZXN1bHQ6IHVua25vd24gYXVkaXQgbG9nIHR5cGU6ICR7cmVzdWx0W1wiU3RhdHVzXCJdfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoKGV4KXtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBwb2xsRElNWFJlc3VsdDogJHtleH1gKTtcbiAgICAgICAgICAgIGlmaWxlLnN0YXR1cyA9IFwiZmFpbGVkXCI7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKGV4IGFzIHttZXNzYWdlOnN0cmluZ30pLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TmV3RmlsZU5hbWUodmFsdWU6e1xuICAgICAgICBESU1YRXhwb3J0Rm9ybWF0OnN0cmluZyxcbiAgICAgICAgRElNWEV4cG9ydEZpbGVOYW1lOiBzdHJpbmcsXG4gICAgfSl7XG4gICAgICAgIGxldCBleHRlbnNpb247XG4gICAgICAgIHN3aXRjaCAodmFsdWUuRElNWEV4cG9ydEZvcm1hdC50b0xvd2VyQ2FzZSgpKXtcbiAgICAgICAgICAgIGNhc2UgXCJqc29uXCI6XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0gXCIuanNvblwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImNzdlwiOlxuICAgICAgICAgICAgICAgIGV4dGVuc2lvbiA9ICcuY3N2JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWxlbmFtZSA9IHZhbHVlLkRJTVhFeHBvcnRGaWxlTmFtZTtcbiAgICAgICAgcmV0dXJuIGZpbGVuYW1lK2V4dGVuc2lvbjtcbiAgICB9XG4gICAgXG4gICAgaUZpbGVJRCA9IDA7XG4gICAgaUZpbGVBcnJheTpJRmlsZVtdID0gW107XG4gICAgY3JlYXRlTmV3SUZpbGUoZmlsZU5hbWU6c3RyaW5nICwgc3RhdHVzOlwiZG93bmxvYWRpbmdcInxcInVwbG9hZGluZ1wiKTpJRmlsZXtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFwia2V5XCI6dGhpcy5pRmlsZUlEKyssXG4gICAgICAgICAgICBcIm5hbWVcIjpmaWxlTmFtZSxcbiAgICAgICAgICAgIFwic3RhdHVzXCI6c3RhdHVzfTtcbiAgICB9XG5cbiAgICBhc3luYyByZW1vdmVJZmlsZVdpdGhEZWxheShpRmlsZTpJRmlsZSwgZGVsYXkgPSAyMDAwKSB7XG4gICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pRmlsZUFycmF5LmZpbmRJbmRleChlbGVtZW50ID0+IGVsZW1lbnQgPT09IGlGaWxlKTtcbiAgICAgICAgICAgIGlmIChpbmRleCA+PSAwKXtcbiAgICAgICAgICAgICAgICB0aGlzLmlGaWxlQXJyYXkuc3BsaWNlKGluZGV4LDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBkZWxheSlcbiAgICB9XG5cblxuICAgIHVwbG9hZGYoZTphbnkpe1xuICAgICAgICBjb25zdCBmaWxlcyA9IGUudGFyZ2V0LmZpbGVzO1xuICAgICAgICBjb25zdCBmaWxlTGlzdEFzQXJyYXkgPSBBcnJheS5mcm9tKGZpbGVzKTtcbiAgICAgICBcbiAgICAgICAgZmlsZUxpc3RBc0FycmF5LmZvckVhY2goKGZpbGUsIGkpID0+IHtcblxuICAgICAgICBjb25zdCBmaWxleCA9IChmaWxlIGFzIEhUTUxJbnB1dEVsZW1lbnQpO1xuICAgICAgICBcblxuXG5cbn0pO1xuICAgIH1cblxuICAgIHVwbG9hZEZpbGUoZXZlbnQ6YW55LCBvcHRpb25zPzp7T3ZlcndyaXRlT0JqZWN0Pzpib29sZWFuLCBEZWxpbWl0ZXI/OnN0cmluZywgT3duZXJJRD86c3RyaW5nLCBBY3Rpb25JRD86c3RyaW5nfSl7XG4gICAgICAgIHRoaXMuZGlteEltcG9ydE9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICBjb25zdCBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmaWxldXBsb2FkZXJcIik7XG4gICBpZihlbGVtICYmIGRvY3VtZW50LmNyZWF0ZUV2ZW50KSB7XG4gICAgICBjb25zdCBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudChcIk1vdXNlRXZlbnRzXCIpO1xuICAgICAgZXZ0LmluaXRFdmVudChcImNsaWNrXCIsIHRydWUsIGZhbHNlKTtcbiAgICAgIGVsZW0uZGlzcGF0Y2hFdmVudChldnQpO1xuICAgfVxuICAgICAgICAvLyB0aGlzLmZpbGVGaWVsZD8ubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH0gICBcblxuXG4gICAgYXN5bmMgZGlteGltcG9ydHJ1bihlOmFueSkge1xuICAgICAgICBjb25zb2xlLmxvZyhcIkVudGVyIERJTVhJbXBvcnRSdW5cIik7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gZS50YXJnZXQuZmlsZXM7XG4gICAgICAgIGNvbnN0IGZpbGVMaXN0QXNBcnJheSA9IEFycmF5LmZyb20oZmlsZXMpO1xuICAgICAgICBmaWxlTGlzdEFzQXJyYXkuZm9yRWFjaChhc3luYyAoZmlsZSwgaSkgPT4ge1xuXG4gICAgICAgIGNvbnN0IGZpbGV4ID0gKGZpbGUgYXMgSFRNTElucHV0RWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGRpbXhfaW1wb3J0X3JlbGF0aXZlVVJMID0gYC9hZGRvbnMvYXBpLzQ0Yzk3MTE1LTZkMTQtNDYyNi05MWRjLTgzZjE3NmU5YTBmYy9hcGkvZmlsZV9pbXBvcnRfdXBsb2FkYDtcbiAgICAgICAgY29uc3Qgc3RyID0gKGF3YWl0IHRoaXMudG9CYXNlNjQoZmlsZXgpKSBhcyBzdHJpbmc7IC8vPz8/XG4gICAgICAgIGNvbnN0IGV4dCA9IGZpbGV4Lm5hbWUuc3BsaXQoJy4nKVsxXTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB7ZmlsZVN0cjpzdHIsIGZpbGVFeHQ6ZXh0fVxuICAgICAgICBjb25zdCBkaW14VXBsb2FkT2JqZWN0ID0gey4uLnRoaXMuZ2V0UEZTVXBsb2FkT2JqZWN0KHZhbHVlKSwgLi4udGhpcy5kaW14SW1wb3J0T3B0aW9ucywgUmVzb3VyY2U6dGhpcy5ESU1YUmVzb3VyY2UsIEFkZG9uVVVJRDp0aGlzLkRJTVhBZGRvblVVSUR9O1xuICAgICAgICBjb25zdCBpRmlsZTpJRmlsZSA9IHRoaXMuY3JlYXRlTmV3SUZpbGUoZmlsZXgubmFtZSwgXCJ1cGxvYWRpbmdcIik7XG4gICAgICAgIGNvbnNvbGUubG9nKGBjcmVhdGVkIG5ldyBpRmlsZTogJHtpRmlsZX1gKTtcbiAgICAgICAgdGhpcy5pRmlsZUFycmF5LnB1c2goaUZpbGUpO1xuICAgICAgICBjb25zb2xlLmxvZyhgYWRkZWQgaUZpbGUgdG8gaUZpbGVBcnJheWApO1xuICAgICAgICBcbiAgICAgICAgdHJ5e1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInBvc3RpbmcgdG8gZGlteCBpbXBvcnRfdXBsb2FkIG5vd1wiKTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuYWRkb25TZXJ2aWNlLnBhcGlDbGllbnQucG9zdChkaW14X2ltcG9ydF9yZWxhdGl2ZVVSTCwgZGlteFVwbG9hZE9iamVjdCwge1wiWC1QZXBwZXJpLU93bmVySURcIjpkaW14VXBsb2FkT2JqZWN0Lk93bmVySUQsIFwiWC1QZXBwZXJpLUFjdGlvbklEXCI6ZGlteFVwbG9hZE9iamVjdC5BY3Rpb25JRH0pO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJHb3QgcmVwbHkgZnJvbSBkaW14LCBjYWxsaW5nIHBvbGwgd2l0aCB0aGUgcmVzdWx0OlwiKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlcyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHBvbGxfcmVzdWx0ID0gYXdhaXQgdGhpcy5wb2xsRElNWFJlc3VsdChyZXNbJ0V4ZWN1dGlvblVVSUQnXSwgaUZpbGUpO1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgZG9uZSBwb2xsaW5nLCBnb3QgcmVzdWx0OiAke0pTT04uc3RyaW5naWZ5KHBvbGxfcmVzdWx0KX1gKTtcbiAgICAgICAgICAgIGlGaWxlLnN0YXR1cyA9IFwiZG9uZVwiO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJJbXBvcnRlZCB0aGUgZmlsZVwiKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucmVtb3ZlSWZpbGVXaXRoRGVsYXkoaUZpbGUpO1xuXG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2goZXgpe1xuICAgICAgICAgICAgY29uc29sZS5sb2coYERJTVhJbXBvcnRSdW46ICR7ZXh9YCk7XG4gICAgICAgICAgICBpRmlsZS5zdGF0dXMgPSBcImZhaWxlZFwiO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdmVJZmlsZVdpdGhEZWxheShpRmlsZSwgMjAwMCk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKGV4IGFzIHttZXNzYWdlOnN0cmluZ30pLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBcbiAgICAgICAgXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXROZXdQRlNVcGxvYWRLZXkoZmlsZUV4dDpzdHJpbmcpe1xuICAgICAgICBjb25zdCB1dWlkID0gUGVwR3VpZC5uZXdHdWlkKCk7XG4gICAgICAgIGNvbnN0IGZvbGRlciA9ICdESU1YX2ltcG9ydCc7XG4gICAgICAgIGNvbnN0IHBmc0tleSA9IGAvJHtmb2xkZXJ9LyR7dXVpZH0uJHtmaWxlRXh0fWA7XG4gICAgICAgIHJldHVybiBwZnNLZXk7XG4gICAgfVxuICAgIGdldFBGU1VwbG9hZE9iamVjdCh2YWx1ZTp7ZmlsZVN0cjpzdHJpbmcsIGZpbGVFeHQ6c3RyaW5nfSl7XG4gICAgICAgIGNvbnN0IGZpbGVTdHJBcnIgPSB2YWx1ZS5maWxlU3RyLnNwbGl0KCc7Jyk7XG4gICAgICAgIGNvbnN0IG1pbWUgPSBmaWxlU3RyQXJyWzBdLnNwbGl0KCc6JylbMV07XG4gICAgICAgIGNvbnN0IHBmc0tleSA9IHRoaXMuZ2V0TmV3UEZTVXBsb2FkS2V5KHZhbHVlLmZpbGVFeHQpO1xuICAgICAgICBjb25zdCBwZnNVcGxvYWRPYmplY3QgPSB7XG4gICAgICAgICAgICBcIktleVwiOiBwZnNLZXksXG4gICAgICAgICAgICBcIk1JTUVcIjogbWltZSxcbiAgICAgICAgICAgIFwiVVJJXCI6dmFsdWUuZmlsZVN0clxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwZnNVcGxvYWRPYmplY3Q7XG4gICAgfVxuXG4gICAgdG9CYXNlNjQgPSAoZmlsZTphbnkpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICBcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgIFxuICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZShyZWFkZXIucmVzdWx0KTtcbiAgICAgICAgXG4gICAgICAgIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgXG4gICAgICAgIH0pO1xuXG4gICAgYXN5bmMgRElNWEV4cG9ydFJ1bih2YWx1ZToge1xuICAgICAgICBESU1YRXhwb3J0Rm9ybWF0PzpzdHJpbmcsXG4gICAgICAgIERJTVhFeHBvcnRJbmNsdWRlRGVsZXRlZD86IGJvb2xlYW4sXG4gICAgICAgIERJTVhFeHBvcnRGaWxlTmFtZT86IHN0cmluZyxcbiAgICAgICAgRElNWEV4cG9ydFdoZXJlPzogc3RyaW5nLFxuICAgICAgICBESU1YRXhwb3J0RmllbGRzPzogc3RyaW5nLFxuICAgICAgICBESU1YRXhwb3J0RGVsaW1pdGVyPzpzdHJpbmcsXG4gICAgICAgIEFjdGlvbklEPzpzdHJpbmdcbiAgICB9KSB7XG4gICAgICAgIGlmICghdmFsdWUpe1xuICAgICAgICAgICAgdmFsdWUgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbHVlLkRJTVhFeHBvcnRGb3JtYXQpe1xuICAgICAgICAgICAgdmFsdWUuRElNWEV4cG9ydEZvcm1hdCA9ICdqc29uJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbHVlLkRJTVhFeHBvcnRJbmNsdWRlRGVsZXRlZCl7XG4gICAgICAgICAgICB2YWx1ZS5ESU1YRXhwb3J0SW5jbHVkZURlbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbHVlLkRJTVhFeHBvcnRGaWxlTmFtZSl7XG4gICAgICAgICAgICB2YWx1ZS5ESU1YRXhwb3J0RmlsZU5hbWUgPSAnZXhwb3J0JztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBib2QgPSB0aGlzLmdldERJTVhFeHBvcnRQT1NUQm9keSh2YWx1ZSA/IHZhbHVlIDoge30pO1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IHRoaXMuZ2V0TmV3RmlsZU5hbWUodmFsdWUgYXMge0RJTVhFeHBvcnRGb3JtYXQ6c3RyaW5nLCBESU1YRXhwb3J0RmlsZU5hbWU6c3RyaW5nfSk7XG4gICAgICAgIGNvbnN0IGlGaWxlOklGaWxlID0gdGhpcy5jcmVhdGVOZXdJRmlsZShmaWxlTmFtZSwgXCJkb3dubG9hZGluZ1wiKTtcbiAgICAgICAgY29uc29sZS5sb2coYGNyZWF0ZWQgbmV3IGlGaWxlOiAke2lGaWxlfWApO1xuICAgICAgICB0aGlzLmlGaWxlQXJyYXkucHVzaChpRmlsZSk7XG4gICAgICAgIGNvbnNvbGUubG9nKGBhZGRlZCBpRmlsZSB0byBpRmlsZUFycmF5YCk7XG4gICAgIFxuICAgICAgICB0cnl7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwicG9zdGluZyB0byBkaW14IGV4cG9ydCBub3dcIik7XG4gICAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmFkZG9uU2VydmljZS5wYXBpQ2xpZW50LnBvc3QoYC9hZGRvbnMvZGF0YS9leHBvcnQvZmlsZS8ke3RoaXMuRElNWEFkZG9uVVVJRH0vJHt0aGlzLkRJTVhSZXNvdXJjZX1gLCBib2QsIHtcIlgtUGVwcGVyaS1BY3Rpb25JRFwiOnZhbHVlLkFjdGlvbklEfSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkdvdCByZXBseSBmcm9tIGRpbXgsIGNhbGxpbmcgcG9sbCB3aXRoIHRoZSByZXN1bHQ6XCIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzKTtcblxuICAgICAgICAgICAgY29uc3QgdXJsID0gKGF3YWl0IHRoaXMucG9sbERJTVhSZXN1bHQocmVzWydFeGVjdXRpb25VVUlEJ10sIGlGaWxlKSlbXCJEb3dubG9hZFVSTFwiXTtcblxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJhdHRlbXB0aW5nIHRvIGRvd25sb2FkIHRoZSBmaWxlXCIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHVybCBpczogJHt1cmx9YCk7XG4gICAgICAgICAgICBjb25zdCBibG9iID0gYXdhaXQgZmV0Y2godXJsKS50aGVuKHIgPT4gci5ibG9iKCkpO1xuICAgICAgICAgICAgc2F2ZUFzKGJsb2IsIGZpbGVOYW1lKTtcbiAgICAgICAgICAgIGlGaWxlLnN0YXR1cyA9IFwiZG9uZVwiO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJkb3dubG9hZGVkIHRoZSBmaWxlXCIpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdmVJZmlsZVdpdGhEZWxheShpRmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2goZXgpe1xuICAgICAgICAgICAgaUZpbGUuc3RhdHVzPSBcImZhaWxlZFwiO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdmVJZmlsZVdpdGhEZWxheShpRmlsZSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgYnV0dG9uQ2xpY2s6ICR7ZXh9YCk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKGV4IGFzIHttZXNzYWdlOnN0cmluZ30pLm1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cblxuICAgXG5cbiAgIFxufVxuIiwiPHBlcC1maWxlLXN0YXR1cy1wYW5lbCBbdGl0bGVdPVwiJ0ZpbGUgSW1wb3J0cy9FeHBvcnRzJ1wiICpuZ0lmPVwiaUZpbGVBcnJheT8ubGVuZ3RoXCIgW2ZpbGVzTGlzdF09XCJpRmlsZUFycmF5XCI+PC9wZXAtZmlsZS1zdGF0dXMtcGFuZWw+XG48aW5wdXQgdHlwZT1cImZpbGVcIiBtdWx0aXBsZT1cIm11bHRpcGxlXCIgbmFtZT1cImF2YXRhcnNcIiBpZD1cImZpbGV1cGxvYWRlclwiICNmaWxlRmllbGQgKGNoYW5nZSk9XCJkaW14aW1wb3J0cnVuKCRldmVudClcIj5cbjwhLS0gPHBlcC1idXR0b25cbiAgdmFsdWU9XCJleHBvcnRcIlxuICBzdHlsZVR5cGU9XCJzdHJvbmdcIlxuICBzdHlsZVN0YXRlVHlwZT1cInN1Y2Nlc3NcIlxuICBzaXplVHlwZT1cInNtXCJcbiAgY2xhc3NOYW1lcz1cImhhaGFoXCJcbiAgaWNvbk5hbWU9XCJzeXN0ZW1fZG9jXCJcbiAgKGJ1dHRvbkNsaWNrKT1cImJ1dHRvbkNsaWNrKCRldmVudClcIlxuPjwvcGVwLWJ1dHRvbj4gLS0+Il19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export class IFile {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.key = 0;
|
|
4
|
+
this.name = '';
|
|
5
|
+
this.status = 'downloading';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlteC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21wb3NpdGUtbGliL2RpbXgtZXhwb3J0L2RpbXgubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFPLEtBQUs7SUFBbEI7UUFDSSxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFdBQU0sR0FBZSxhQUFhLENBQUM7SUFDbkMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBmaWxlU3RhdHVzID0gJ3VwbG9hZGluZyd8J2Rvd25sb2FkaW5nJ3wnZG9uZSd8J2ZhaWxlZCd8J2hpZGRlbic7XG5leHBvcnQgY2xhc3MgSUZpbGUge1xuICAgIGtleSA9IDA7XG4gICAgbmFtZSA9ICcnO1xuICAgIHN0YXR1czogZmlsZVN0YXR1cyA9ICdkb3dubG9hZGluZyc7XG4gICAgfSJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { PepNgxLibModule } from '@pepperi-addons/ngx-lib';
|
|
4
|
+
import { DIMXComponent } from './dimx.component';
|
|
5
|
+
import { pepIconSystemDoc } from '@pepperi-addons/ngx-lib/icon';
|
|
6
|
+
import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
|
|
7
|
+
import { PepIconModule } from '@pepperi-addons/ngx-lib/icon';
|
|
8
|
+
import { PepFileStatusPanelModule } from '@pepperi-addons/ngx-composite-lib/file-status-panel';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@pepperi-addons/ngx-lib/icon";
|
|
11
|
+
const pepIcons = [
|
|
12
|
+
pepIconSystemDoc,
|
|
13
|
+
];
|
|
14
|
+
export class PepDIMXModule {
|
|
15
|
+
constructor(pepIconRegistry) {
|
|
16
|
+
this.pepIconRegistry = pepIconRegistry;
|
|
17
|
+
this.pepIconRegistry.registerIcons(pepIcons);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
PepDIMXModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PepDIMXModule, deps: [{ token: i1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
21
|
+
PepDIMXModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PepDIMXModule, declarations: [DIMXComponent], imports: [CommonModule,
|
|
22
|
+
PepNgxLibModule,
|
|
23
|
+
PepButtonModule,
|
|
24
|
+
PepIconModule,
|
|
25
|
+
PepFileStatusPanelModule], exports: [DIMXComponent] });
|
|
26
|
+
PepDIMXModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PepDIMXModule, imports: [[
|
|
27
|
+
CommonModule,
|
|
28
|
+
PepNgxLibModule,
|
|
29
|
+
PepButtonModule,
|
|
30
|
+
PepIconModule,
|
|
31
|
+
PepFileStatusPanelModule,
|
|
32
|
+
]] });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: PepDIMXModule, decorators: [{
|
|
34
|
+
type: NgModule,
|
|
35
|
+
args: [{
|
|
36
|
+
declarations: [
|
|
37
|
+
DIMXComponent
|
|
38
|
+
],
|
|
39
|
+
imports: [
|
|
40
|
+
CommonModule,
|
|
41
|
+
PepNgxLibModule,
|
|
42
|
+
PepButtonModule,
|
|
43
|
+
PepIconModule,
|
|
44
|
+
PepFileStatusPanelModule,
|
|
45
|
+
],
|
|
46
|
+
exports: [DIMXComponent]
|
|
47
|
+
}]
|
|
48
|
+
}], ctorParameters: function () { return [{ type: i1.PepIconRegistry }]; } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlteC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tcG9zaXRlLWxpYi9kaW14LWV4cG9ydC9kaW14Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7QUFFL0YsTUFBTSxRQUFRLEdBQUc7SUFDYixnQkFBZ0I7Q0FDbkIsQ0FBQTtBQWVELE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFlBQ1ksZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRXhDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELENBQUM7OzBHQUxRLGFBQWE7MkdBQWIsYUFBYSxpQkFYbEIsYUFBYSxhQUdiLFlBQVk7UUFDWixlQUFlO1FBQ2YsZUFBZTtRQUNmLGFBQWE7UUFDYix3QkFBd0IsYUFFbEIsYUFBYTsyR0FFZCxhQUFhLFlBVGI7WUFDTCxZQUFZO1lBQ1osZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2Isd0JBQXdCO1NBQzNCOzJGQUdRLGFBQWE7a0JBYnpCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLGFBQWE7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLHdCQUF3QjtxQkFDM0I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUGVwTmd4TGliTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgRElNWENvbXBvbmVudCB9IGZyb20gJy4vZGlteC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwSWNvblJlZ2lzdHJ5LCBwZXBJY29uU3lzdGVtRG9jIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvaWNvbic7XG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgUGVwSWNvbk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgUGVwRmlsZVN0YXR1c1BhbmVsTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1jb21wb3NpdGUtbGliL2ZpbGUtc3RhdHVzLXBhbmVsJztcblxuY29uc3QgcGVwSWNvbnMgPSBbXG4gICAgcGVwSWNvblN5c3RlbURvYyxcbl1cblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRElNWENvbXBvbmVudFxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFBlcE5neExpYk1vZHVsZSxcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXBJY29uTW9kdWxlLFxuICAgICAgICBQZXBGaWxlU3RhdHVzUGFuZWxNb2R1bGUsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbRElNWENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUGVwRElNWE1vZHVsZSB7IFxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHBlcEljb25SZWdpc3RyeTogUGVwSWNvblJlZ2lzdHJ5LFxuICAgICkge1xuICAgICAgICB0aGlzLnBlcEljb25SZWdpc3RyeS5yZWdpc3Rlckljb25zKHBlcEljb25zKTtcbiAgICB9XG5cblxufVxuIl19
|