@ecodev/natural 61.0.0 → 61.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/classes/abstract-detail.mjs +36 -33
- package/esm2022/lib/classes/abstract-editable-list.mjs +8 -6
- package/esm2022/lib/classes/abstract-list.mjs +74 -55
- package/esm2022/lib/classes/abstract-navigable-list.mjs +9 -9
- package/esm2022/lib/classes/cumulative-changes.mjs +3 -5
- package/esm2022/lib/classes/data-source.mjs +3 -2
- package/esm2022/lib/classes/query-variable-manager.mjs +3 -3
- package/esm2022/lib/directives/http-prefix.directive.mjs +4 -6
- package/esm2022/lib/modules/alert/alert.service.mjs +9 -11
- package/esm2022/lib/modules/alert/confirm.component.mjs +6 -11
- package/esm2022/lib/modules/avatar/component/avatar.component.mjs +25 -23
- package/esm2022/lib/modules/avatar/service/avatar.service.mjs +22 -24
- package/esm2022/lib/modules/avatar/sources/source.mjs +2 -1
- package/esm2022/lib/modules/columns-picker/columns-picker.component.mjs +26 -28
- package/esm2022/lib/modules/columns-picker/public-api.mjs +1 -1
- package/esm2022/lib/modules/common/directives/background-density.directive.mjs +6 -8
- package/esm2022/lib/modules/common/directives/linkable-tab.directive.mjs +18 -19
- package/esm2022/lib/modules/common/directives/src-density.directive.mjs +6 -8
- package/esm2022/lib/modules/common/pipes/capitalize.pipe.mjs +3 -3
- package/esm2022/lib/modules/common/pipes/ellipsis.pipe.mjs +3 -3
- package/esm2022/lib/modules/common/pipes/enum.pipe.mjs +7 -9
- package/esm2022/lib/modules/common/pipes/time-ago.pipe.mjs +4 -3
- package/esm2022/lib/modules/common/public-api.mjs +2 -2
- package/esm2022/lib/modules/common/services/memory-storage.mjs +4 -6
- package/esm2022/lib/modules/common/services/seo.service.mjs +18 -26
- package/esm2022/lib/modules/detail-header/detail-header.component.mjs +38 -33
- package/esm2022/lib/modules/dialog-trigger/dialog-trigger.component.mjs +13 -11
- package/esm2022/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +13 -12
- package/esm2022/lib/modules/dropdown-components/public-api.mjs +3 -3
- package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +10 -13
- package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +29 -33
- package/esm2022/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +27 -32
- package/esm2022/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +3 -3
- package/esm2022/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +3 -3
- package/esm2022/lib/modules/dropdown-components/type-number/type-number.component.mjs +29 -30
- package/esm2022/lib/modules/dropdown-components/type-options/type-options.component.mjs +17 -15
- package/esm2022/lib/modules/dropdown-components/type-select/type-select.component.mjs +25 -25
- package/esm2022/lib/modules/dropdown-components/type-text/type-text.component.mjs +15 -17
- package/esm2022/lib/modules/file/abstract-file.mjs +51 -47
- package/esm2022/lib/modules/file/component/file.component.mjs +51 -41
- package/esm2022/lib/modules/file/file-drop.directive.mjs +10 -13
- package/esm2022/lib/modules/file/file-select.directive.mjs +9 -12
- package/esm2022/lib/modules/file/file.service.mjs +15 -20
- package/esm2022/lib/modules/file/public-api.mjs +1 -1
- package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +7 -8
- package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +15 -12
- package/esm2022/lib/modules/hierarchic-selector/classes/flat-node.mjs +8 -2
- package/esm2022/lib/modules/hierarchic-selector/classes/model-node.mjs +4 -2
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +71 -55
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +18 -20
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +17 -11
- package/esm2022/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +7 -9
- package/esm2022/lib/modules/icon/icon.directive.mjs +15 -23
- package/esm2022/lib/modules/logger/error-handler.mjs +11 -25
- package/esm2022/lib/modules/logger/public-api.mjs +2 -2
- package/esm2022/lib/modules/matomo/matomo.service.mjs +15 -22
- package/esm2022/lib/modules/panels/abstract-panel.mjs +23 -19
- package/esm2022/lib/modules/panels/panels.component.mjs +10 -9
- package/esm2022/lib/modules/panels/panels.service.mjs +56 -52
- package/esm2022/lib/modules/relations/relations.component.mjs +74 -45
- package/esm2022/lib/modules/search/dropdown-container/dropdown-container.component.mjs +21 -22
- package/esm2022/lib/modules/search/dropdown-container/dropdown-ref.mjs +4 -2
- package/esm2022/lib/modules/search/dropdown-container/dropdown.service.mjs +8 -11
- package/esm2022/lib/modules/search/facet-selector/facet-selector.component.mjs +13 -18
- package/esm2022/lib/modules/search/group/group.component.mjs +12 -11
- package/esm2022/lib/modules/search/input/input.component.mjs +86 -73
- package/esm2022/lib/modules/search/public-api.mjs +1 -1
- package/esm2022/lib/modules/search/search/search.component.mjs +37 -40
- package/esm2022/lib/modules/select/abstract-select.component.mjs +66 -39
- package/esm2022/lib/modules/select/select/select.component.mjs +51 -48
- package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +32 -22
- package/esm2022/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +39 -34
- package/esm2022/lib/modules/sidenav/sidenav/sidenav.component.mjs +3 -3
- package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +34 -29
- package/esm2022/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +3 -3
- package/esm2022/lib/modules/sidenav/sidenav-stack.service.mjs +13 -15
- package/esm2022/lib/modules/sidenav/sidenav.service.mjs +47 -54
- package/esm2022/lib/modules/stamp/stamp.component.mjs +4 -3
- package/esm2022/lib/modules/table-button/table-button.component.mjs +16 -13
- package/esm2022/lib/services/abstract-model.service.mjs +17 -7
- package/esm2022/lib/services/debounce.service.mjs +7 -9
- package/esm2022/lib/services/enum.service.mjs +7 -10
- package/esm2022/lib/services/link-mutation.service.mjs +11 -10
- package/esm2022/lib/services/persistence.service.mjs +9 -21
- package/esm2022/lib/services/swiss-parsing-date-adapter.service.mjs +3 -3
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/ecodev-natural.mjs +1357 -1270
- package/fesm2022/ecodev-natural.mjs.map +1 -1
- package/lib/modules/alert/alert.service.d.ts +1 -3
- package/lib/modules/alert/confirm.component.d.ts +1 -2
- package/lib/modules/avatar/component/avatar.component.d.ts +0 -2
- package/lib/modules/columns-picker/columns-picker.component.d.ts +1 -3
- package/lib/modules/columns-picker/public-api.d.ts +1 -1
- package/lib/modules/common/directives/background-density.directive.d.ts +0 -2
- package/lib/modules/common/directives/linkable-tab.directive.d.ts +2 -4
- package/lib/modules/common/directives/src-density.directive.d.ts +0 -2
- package/lib/modules/common/pipes/enum.pipe.d.ts +0 -2
- package/lib/modules/common/public-api.d.ts +2 -1
- package/lib/modules/common/services/seo.service.d.ts +2 -3
- package/lib/modules/dialog-trigger/dialog-trigger.component.d.ts +3 -3
- package/lib/modules/dropdown-components/public-api.d.ts +9 -9
- package/lib/modules/dropdown-components/type-boolean/type-boolean.component.d.ts +1 -3
- package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +1 -3
- package/lib/modules/dropdown-components/type-date-range/type-date-range.component.d.ts +2 -3
- package/lib/modules/dropdown-components/type-number/type-number.component.d.ts +1 -2
- package/lib/modules/dropdown-components/type-options/type-options.component.d.ts +3 -3
- package/lib/modules/dropdown-components/type-select/type-select.component.d.ts +1 -2
- package/lib/modules/dropdown-components/type-text/type-text.component.d.ts +1 -2
- package/lib/modules/file/component/file.component.d.ts +0 -3
- package/lib/modules/file/file.service.d.ts +0 -1
- package/lib/modules/file/public-api.d.ts +1 -1
- package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +1 -2
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +2 -3
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.d.ts +0 -2
- package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.d.ts +1 -2
- package/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.d.ts +1 -2
- package/lib/modules/icon/icon.directive.d.ts +3 -5
- package/lib/modules/logger/error-handler.d.ts +3 -4
- package/lib/modules/logger/public-api.d.ts +2 -1
- package/lib/modules/matomo/matomo.service.d.ts +2 -5
- package/lib/modules/panels/panels.component.d.ts +1 -3
- package/lib/modules/panels/panels.service.d.ts +2 -6
- package/lib/modules/relations/relations.component.d.ts +3 -5
- package/lib/modules/search/dropdown-container/dropdown-container.component.d.ts +3 -4
- package/lib/modules/search/dropdown-container/dropdown.service.d.ts +1 -3
- package/lib/modules/search/facet-selector/facet-selector.component.d.ts +1 -2
- package/lib/modules/search/input/input.component.d.ts +1 -3
- package/lib/modules/search/public-api.d.ts +5 -5
- package/lib/modules/search/search/search.component.d.ts +0 -2
- package/lib/modules/select/select-enum/select-enum.component.d.ts +4 -4
- package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +4 -4
- package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +0 -1
- package/lib/modules/sidenav/sidenav.service.d.ts +2 -7
- package/lib/services/enum.service.d.ts +0 -2
- package/lib/services/link-mutation.service.d.ts +0 -2
- package/lib/services/persistence.service.d.ts +2 -4
- package/package.json +1 -1
- package/public-api.d.ts +3 -2
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Component, EventEmitter, HostBinding,
|
|
1
|
+
import { Component, EventEmitter, HostBinding, Input, Output, inject, } from '@angular/core';
|
|
2
2
|
import { of, Subject, tap } from 'rxjs';
|
|
3
|
+
import { NaturalFileService } from '../file.service';
|
|
3
4
|
import { CommonModule, DOCUMENT } from '@angular/common';
|
|
5
|
+
import { NaturalAlertService } from '../../alert/alert.service';
|
|
4
6
|
import { NaturalCapitalizePipe } from '../../common/pipes/capitalize.pipe';
|
|
5
7
|
import { NaturalIconDirective } from '../../icon/icon.directive';
|
|
6
8
|
import { MatIconModule } from '@angular/material/icon';
|
|
@@ -8,41 +10,52 @@ import { MatRippleModule } from '@angular/material/core';
|
|
|
8
10
|
import { NaturalFileDropDirective } from '../file-drop.directive';
|
|
9
11
|
import { NaturalBackgroundDensityDirective } from '../../common/directives/background-density.directive';
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "
|
|
12
|
-
import * as i2 from "
|
|
13
|
-
import * as i3 from "@angular/material/
|
|
14
|
-
import * as i4 from "@angular/common";
|
|
15
|
-
import * as i5 from "@angular/material/icon";
|
|
13
|
+
import * as i1 from "@angular/material/core";
|
|
14
|
+
import * as i2 from "@angular/common";
|
|
15
|
+
import * as i3 from "@angular/material/icon";
|
|
16
16
|
// @dynamic
|
|
17
17
|
export class NaturalFileComponent {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
18
|
+
naturalFileService = inject(NaturalFileService);
|
|
19
|
+
alertService = inject(NaturalAlertService);
|
|
20
|
+
document = inject(DOCUMENT);
|
|
21
|
+
height = 250;
|
|
22
|
+
action = null;
|
|
23
|
+
backgroundSize = 'contain';
|
|
24
|
+
/**
|
|
25
|
+
* Comma-separated list of unique file type specifiers. Like the native element,
|
|
26
|
+
* it can be a mix of mime-type and file extensions.
|
|
27
|
+
*
|
|
28
|
+
* See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept
|
|
29
|
+
*/
|
|
30
|
+
accept = 'image/bmp,image/gif,image/jpeg,image/pjpeg,image/png,image/svg+xml,image/svg,image/webp';
|
|
31
|
+
/**
|
|
32
|
+
* If given, it will be called when a new file is selected. The callback should typically upload the file
|
|
33
|
+
* to the server and link the newly uploaded file to the existing related object.
|
|
34
|
+
*
|
|
35
|
+
* The callback **must** be able to run even if the calling component has been destroyed. That means in most
|
|
36
|
+
* cases you **must** `bind()` the callback explicitly, like so:
|
|
37
|
+
*
|
|
38
|
+
* ```html
|
|
39
|
+
* <natural-file [uploader]="myCallback.bind(this)" />
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* Also, you probably **should** set a `[formCtrl]` so that the form is updated automatically, instead of doing
|
|
43
|
+
* it manually within the callback.
|
|
44
|
+
*/
|
|
45
|
+
uploader;
|
|
46
|
+
model = null;
|
|
47
|
+
/**
|
|
48
|
+
* If provided, its value will get updated when the model changes.
|
|
49
|
+
* But its value is never read, so if you want to set a value use `[model]` instead.
|
|
50
|
+
*/
|
|
51
|
+
formCtrl = null;
|
|
52
|
+
/**
|
|
53
|
+
* This **must not** be used to mutate the server, because it is very likely it will never be called if the
|
|
54
|
+
* human navigates away from the page before the upload is finished. Instead, you should use `[uploader]`.
|
|
55
|
+
*/
|
|
56
|
+
modelChange = new EventEmitter();
|
|
57
|
+
imagePreview = '';
|
|
58
|
+
filePreview = null;
|
|
46
59
|
ngOnChanges(changes) {
|
|
47
60
|
if (changes.model && changes.model.previousValue !== changes.model.currentValue) {
|
|
48
61
|
this.updateImage();
|
|
@@ -123,8 +136,8 @@ export class NaturalFileComponent {
|
|
|
123
136
|
reader.readAsBinaryString(file);
|
|
124
137
|
return subject.asObservable();
|
|
125
138
|
}
|
|
126
|
-
static
|
|
127
|
-
static
|
|
139
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
140
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalFileComponent, isStandalone: true, selector: "natural-file", inputs: { height: "height", action: "action", backgroundSize: "backgroundSize", accept: "accept", uploader: "uploader", model: "model", formCtrl: "formCtrl" }, outputs: { modelChange: "modelChange" }, host: { properties: { "style.height.px": "this.height" } }, usesOnChanges: true, ngImport: i0, template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [naturalBackgroundDensity]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\">\n <mat-icon [size]=\"height * 0.33\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\">\n @if (action === 'upload') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;position:relative;flex-direction:row;overflow:hidden}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{display:flex;position:absolute;inset:0;justify-content:center;align-items:center;opacity:0}\n"], dependencies: [{ kind: "directive", type: NaturalFileDropDirective, selector: ":not([naturalFileSelect])[naturalFileDrop]", outputs: ["fileOver"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }, { kind: "pipe", type: NaturalCapitalizePipe, name: "capitalize" }, { kind: "directive", type: NaturalBackgroundDensityDirective, selector: "[naturalBackgroundDensity]", inputs: ["naturalBackgroundDensity"] }] });
|
|
128
141
|
}
|
|
129
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileComponent, decorators: [{
|
|
130
143
|
type: Component,
|
|
@@ -137,10 +150,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
137
150
|
NaturalCapitalizePipe,
|
|
138
151
|
NaturalBackgroundDensityDirective,
|
|
139
152
|
], template: "<a\n (fileChange)=\"upload($event)\"\n naturalFileDrop\n [selectable]=\"true\"\n [accept]=\"accept\"\n [attr.href]=\"getDownloadLink()\"\n [class.has-action]=\"!!action\"\n [class.suggest-upload]=\"!model && action === 'upload'\"\n [fileSelectionDisabled]=\"action !== 'upload'\"\n [matRippleDisabled]=\"!action\"\n [naturalBackgroundDensity]=\"imagePreview\"\n [style.backgroundSize]=\"backgroundSize\"\n matRipple\n target=\"_blank\"\n>\n @if (filePreview) {\n <div class=\"file-preview\">\n <mat-icon [size]=\"height * 0.33\" naturalIcon=\"attachment\" />\n {{ filePreview | uppercase }}\n </div>\n }\n\n <div class=\"action-overlay\">\n @if (action === 'upload') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"cloud_upload\" />\n }\n @if (action === 'download') {\n <mat-icon [size]=\"height * 0.66\" naturalIcon=\"get_app\" />\n }\n {{ action | capitalize }}\n </div>\n</a>\n", styles: [":host{display:flex;position:relative;flex-direction:row;overflow:hidden}:host>a{position:relative;flex:1;background-position:center;background-repeat:no-repeat}:host>a.has-action{cursor:pointer}:host>a.has-action.suggest-upload .action-overlay{opacity:.66}:host>a.has-action:hover .action-overlay,:host>a.has-action.natural-file-over .action-overlay{opacity:1}:host .action-overlay,:host .file-preview{display:flex;position:absolute;inset:0;flex-direction:column;justify-content:center;align-items:center;font-size:36px;line-height:1.3em;text-align:center}:host .action-overlay{opacity:0}:host .action-overlay>div{display:flex;position:absolute;inset:0;justify-content:center;align-items:center;opacity:0}\n"] }]
|
|
140
|
-
}],
|
|
141
|
-
type: Inject,
|
|
142
|
-
args: [DOCUMENT]
|
|
143
|
-
}] }], propDecorators: { height: [{
|
|
153
|
+
}], propDecorators: { height: [{
|
|
144
154
|
type: HostBinding,
|
|
145
155
|
args: ['style.height.px']
|
|
146
156
|
}, {
|
|
@@ -160,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
160
170
|
}], modelChange: [{
|
|
161
171
|
type: Output
|
|
162
172
|
}] } });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maWxlL2NvbXBvbmVudC9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvY29tcG9uZW50L2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVsRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7QUFFdkcsV0FBVztBQWdCWCxNQUFNLE9BQU8sb0JBQW9CO0lBZ0Q3QixZQUNxQixrQkFBc0MsRUFDdEMsWUFBaUMsRUFDZixRQUFrQjtRQUZwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNmLGFBQVEsR0FBUixR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b0JBQW9CLDhGQUNwQixxQkFBcUIsbURBQ3JCLGlDQUFpQzs7MkZBRzVCLG9CQUFvQjtrQkFmaEMsU0FBUzsrQkFDSSxjQUFjLGNBR1osSUFBSSxXQUNQO3dCQUNMLHdCQUF3Qjt3QkFDeEIsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLGlDQUFpQztxQkFDcEM7OzBCQXFESSxNQUFNOzJCQUFDLFFBQVE7eUNBbEQ0QixNQUFNO3NCQUFyRCxXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQUcsS0FBSztnQkFFdEIsTUFBTTtzQkFBckIsS0FBSztnQkFFVSxjQUFjO3NCQUE3QixLQUFLO2dCQVFVLE1BQU07c0JBQXJCLEtBQUs7Z0JBZ0JVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBRVUsS0FBSztzQkFBcEIsS0FBSztnQkFNVSxRQUFRO3NCQUF2QixLQUFLO2dCQU1vQixXQUFXO3NCQUFwQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtOYXR1cmFsRmlsZVNlcnZpY2V9IGZyb20gJy4uL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZSwgRE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0ZpbGVNb2RlbH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtOYXR1cmFsQWxlcnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7TmF0dXJhbENhcGl0YWxpemVQaXBlfSBmcm9tICcuLi8uLi9jb21tb24vcGlwZXMvY2FwaXRhbGl6ZS5waXBlJztcbmltcG9ydCB7TmF0dXJhbEljb25EaXJlY3RpdmV9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0UmlwcGxlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TmF0dXJhbEZpbGVEcm9wRGlyZWN0aXZlfSBmcm9tICcuLi9maWxlLWRyb3AuZGlyZWN0aXZlJztcbmltcG9ydCB7TmF0dXJhbEJhY2tncm91bmREZW5zaXR5RGlyZWN0aXZlfSBmcm9tICcuLi8uLi9jb21tb24vZGlyZWN0aXZlcy9iYWNrZ3JvdW5kLWRlbnNpdHkuZGlyZWN0aXZlJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmF0dXJhbC1maWxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2ZpbGUuY29tcG9uZW50LnNjc3MnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOYXR1cmFsRmlsZURyb3BEaXJlY3RpdmUsXG4gICAgICAgIE1hdFJpcHBsZU1vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBOYXR1cmFsSWNvbkRpcmVjdGl2ZSxcbiAgICAgICAgTmF0dXJhbENhcGl0YWxpemVQaXBlLFxuICAgICAgICBOYXR1cmFsQmFja2dyb3VuZERlbnNpdHlEaXJlY3RpdmUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKSBASW5wdXQoKSBwdWJsaWMgaGVpZ2h0ID0gMjUwO1xuXG4gICAgQElucHV0KCkgcHVibGljIGFjdGlvbjogJ3VwbG9hZCcgfCAnZG93bmxvYWQnIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgYmFja2dyb3VuZFNpemUgPSAnY29udGFpbic7XG5cbiAgICAvKipcbiAgICAgKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB1bmlxdWUgZmlsZSB0eXBlIHNwZWNpZmllcnMuIExpa2UgdGhlIG5hdGl2ZSBlbGVtZW50LFxuICAgICAqIGl0IGNhbiBiZSBhIG1peCBvZiBtaW1lLXR5cGUgYW5kIGZpbGUgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvZmlsZSNhY2NlcHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYWNjZXB0ID0gJ2ltYWdlL2JtcCxpbWFnZS9naWYsaW1hZ2UvanBlZyxpbWFnZS9wanBlZyxpbWFnZS9wbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS9zdmcsaW1hZ2Uvd2VicCc7XG5cbiAgICAvKipcbiAgICAgKiBJZiBnaXZlbiwgaXQgd2lsbCBiZSBjYWxsZWQgd2hlbiBhIG5ldyBmaWxlIGlzIHNlbGVjdGVkLiBUaGUgY2FsbGJhY2sgc2hvdWxkIHR5cGljYWxseSB1cGxvYWQgdGhlIGZpbGVcbiAgICAgKiB0byB0aGUgc2VydmVyIGFuZCBsaW5rIHRoZSBuZXdseSB1cGxvYWRlZCBmaWxlIHRvIHRoZSBleGlzdGluZyByZWxhdGVkIG9iamVjdC5cbiAgICAgKlxuICAgICAqIFRoZSBjYWxsYmFjayAqKm11c3QqKiBiZSBhYmxlIHRvIHJ1biBldmVuIGlmIHRoZSBjYWxsaW5nIGNvbXBvbmVudCBoYXMgYmVlbiBkZXN0cm95ZWQuIFRoYXQgbWVhbnMgaW4gbW9zdFxuICAgICAqIGNhc2VzIHlvdSAqKm11c3QqKiBgYmluZCgpYCB0aGUgY2FsbGJhY2sgZXhwbGljaXRseSwgbGlrZSBzbzpcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8bmF0dXJhbC1maWxlIFt1cGxvYWRlcl09XCJteUNhbGxiYWNrLmJpbmQodGhpcylcIiAvPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQWxzbywgeW91IHByb2JhYmx5ICoqc2hvdWxkKiogc2V0IGEgYFtmb3JtQ3RybF1gIHNvIHRoYXQgdGhlIGZvcm0gaXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5LCBpbnN0ZWFkIG9mIGRvaW5nXG4gICAgICogaXQgbWFudWFsbHkgd2l0aGluIHRoZSBjYWxsYmFjay5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdXBsb2FkZXI/OiAoZmlsZTogRmlsZSkgPT4gT2JzZXJ2YWJsZTxGaWxlTW9kZWw+O1xuXG4gICAgQElucHV0KCkgcHVibGljIG1vZGVsOiBGaWxlTW9kZWwgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIElmIHByb3ZpZGVkLCBpdHMgdmFsdWUgd2lsbCBnZXQgdXBkYXRlZCB3aGVuIHRoZSBtb2RlbCBjaGFuZ2VzLlxuICAgICAqIEJ1dCBpdHMgdmFsdWUgaXMgbmV2ZXIgcmVhZCwgc28gaWYgeW91IHdhbnQgdG8gc2V0IGEgdmFsdWUgdXNlIGBbbW9kZWxdYCBpbnN0ZWFkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmb3JtQ3RybDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzICoqbXVzdCBub3QqKiBiZSB1c2VkIHRvIG11dGF0ZSB0aGUgc2VydmVyLCBiZWNhdXNlIGl0IGlzIHZlcnkgbGlrZWx5IGl0IHdpbGwgbmV2ZXIgYmUgY2FsbGVkIGlmIHRoZVxuICAgICAqIGh1bWFuIG5hdmlnYXRlcyBhd2F5IGZyb20gdGhlIHBhZ2UgYmVmb3JlIHRoZSB1cGxvYWQgaXMgZmluaXNoZWQuIEluc3RlYWQsIHlvdSBzaG91bGQgdXNlIGBbdXBsb2FkZXJdYC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlTW9kZWw+KCk7XG5cbiAgICBwdWJsaWMgaW1hZ2VQcmV2aWV3ID0gJyc7XG4gICAgcHVibGljIGZpbGVQcmV2aWV3OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBuYXR1cmFsRmlsZVNlcnZpY2U6IE5hdHVyYWxGaWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2U6IE5hdHVyYWxBbGVydFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLm1vZGVsICYmIGNoYW5nZXMubW9kZWwucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlcy5tb2RlbC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW1hZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbWFnZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGxvYWQoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsID0ge2ZpbGU6IGZpbGV9O1xuICAgICAgICB0aGlzLnVwZGF0ZUltYWdlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUodGhpcy5tb2RlbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID1cbiAgICAgICAgICAgIHRoaXMudXBsb2FkZXI/LihmaWxlKS5waXBlKHRhcCgoKSA9PiB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKCRsb2NhbGl6ZWBNaXMgw6Agam91cmApKSkgPz8gb2YodGhpcy5tb2RlbCk7XG5cbiAgICAgICAgb2JzZXJ2YWJsZS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSByZXN1bHQ7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtQ3RybCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUodGhpcy5tb2RlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERvd25sb2FkTGluaygpOiBudWxsIHwgc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uICE9PSAnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWxGaWxlU2VydmljZS5nZXREb3dubG9hZExpbmsodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVJbWFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbWFnZVByZXZpZXcgPSAnJztcbiAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IG51bGw7XG4gICAgICAgIGlmICghdGhpcy5tb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwuZmlsZT8udHlwZS5pbmNsdWRlcygnaW1hZ2UvJykpIHtcbiAgICAgICAgICAgIC8vIE1vZGVsIGZyb20gdXBsb2FkIChiZWZvcmUgc2F2aW5nKVxuICAgICAgICAgICAgdGhpcy5nZXRCYXNlNjQodGhpcy5tb2RlbC5maWxlKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlbD8uZmlsZT8udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gJ3VybChkYXRhOicgKyB0aGlzLm1vZGVsPy5maWxlPy50eXBlICsgJztiYXNlNjQsJyArIHJlc3VsdCArICcpJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZVByZXZpZXcgPSBjb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZWwuZmlsZSkge1xuICAgICAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IHRoaXMubW9kZWwuZmlsZS50eXBlLnNwbGl0KCcvJylbMV07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbC5fX3R5cGVuYW1lID09PSAnSW1hZ2UnICYmIHRoaXMubW9kZWwuaWQpIHtcbiAgICAgICAgICAgIC8vIE1vZGVsIGltYWdlIHdpdGggaWQsIHVzZSBzcGVjaWZpYyBBUEkgdG8gcmVuZGVyIGltYWdlIGJ5IHNpemVcbiAgICAgICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgICAgICAgICBpZiAoIXdpbmRvdykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHNob3cgaW1hZ2UgcHJldmlldyBiZWNhdXNlIGB3aW5kb3dgIGlzIHVuZGVmaW5lZCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsb2MgPSB3aW5kb3cubG9jYXRpb247XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmhlaWdodCA/ICcvJyArIHRoaXMuaGVpZ2h0IDogJyc7XG5cbiAgICAgICAgICAgIC8vIGNyZWF0ZSBpbWFnZSB1cmwgd2l0aG91dCBwb3J0IHRvIHN0YXkgY29tcGF0aWJsZSB3aXRoIGRldiBtb2RlXG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IGxvYy5wcm90b2NvbCArICcvLycgKyBsb2MuaG9zdG5hbWUgKyAnL2FwaS9pbWFnZS8nICsgdGhpcy5tb2RlbC5pZCArIGhlaWdodDtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmV2aWV3ID0gaW1hZ2U7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbD8ubWltZSAmJiBbJ0ZpbGUnLCAnQWNjb3VudGluZ0RvY3VtZW50J10uaW5jbHVkZXModGhpcy5tb2RlbC5fX3R5cGVuYW1lIHx8ICcnKSkge1xuICAgICAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IHRoaXMubW9kZWwubWltZS5zcGxpdCgnLycpWzFdO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZWwuc3JjKSB7XG4gICAgICAgICAgICAvLyBleHRlcm5hbCB1cmxcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmV2aWV3ID0gdGhpcy5tb2RlbC5zcmM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJhc2U2NChmaWxlOiBGaWxlIHwgbnVsbCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICghZmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXY6IGFueSkgPT4ge1xuICAgICAgICAgICAgc3ViamVjdC5uZXh0KGJ0b2EoZXYudGFyZ2V0LnJlc3VsdCkpO1xuICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKTtcblxuICAgICAgICByZXR1cm4gc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG59XG4iLCI8YVxuICAgIChmaWxlQ2hhbmdlKT1cInVwbG9hZCgkZXZlbnQpXCJcbiAgICBuYXR1cmFsRmlsZURyb3BcbiAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgW2F0dHIuaHJlZl09XCJnZXREb3dubG9hZExpbmsoKVwiXG4gICAgW2NsYXNzLmhhcy1hY3Rpb25dPVwiISFhY3Rpb25cIlxuICAgIFtjbGFzcy5zdWdnZXN0LXVwbG9hZF09XCIhbW9kZWwgJiYgYWN0aW9uID09PSAndXBsb2FkJ1wiXG4gICAgW2ZpbGVTZWxlY3Rpb25EaXNhYmxlZF09XCJhY3Rpb24gIT09ICd1cGxvYWQnXCJcbiAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPVwiIWFjdGlvblwiXG4gICAgW25hdHVyYWxCYWNrZ3JvdW5kRGVuc2l0eV09XCJpbWFnZVByZXZpZXdcIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kU2l6ZV09XCJiYWNrZ3JvdW5kU2l6ZVwiXG4gICAgbWF0UmlwcGxlXG4gICAgdGFyZ2V0PVwiX2JsYW5rXCJcbj5cbiAgICBAaWYgKGZpbGVQcmV2aWV3KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXByZXZpZXdcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc2l6ZV09XCJoZWlnaHQgKiAwLjMzXCIgbmF0dXJhbEljb249XCJhdHRhY2htZW50XCIgLz5cbiAgICAgICAgICAgIHt7IGZpbGVQcmV2aWV3IHwgdXBwZXJjYXNlIH19XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tb3ZlcmxheVwiPlxuICAgICAgICBAaWYgKGFjdGlvbiA9PT0gJ3VwbG9hZCcpIHtcbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc2l6ZV09XCJoZWlnaHQgKiAwLjY2XCIgbmF0dXJhbEljb249XCJjbG91ZF91cGxvYWRcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYWN0aW9uID09PSAnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICA8bWF0LWljb24gW3NpemVdPVwiaGVpZ2h0ICogMC42NlwiIG5hdHVyYWxJY29uPVwiZ2V0X2FwcFwiIC8+XG4gICAgICAgIH1cbiAgICAgICAge3sgYWN0aW9uIHwgY2FwaXRhbGl6ZSB9fVxuICAgIDwvZGl2PlxuPC9hPlxuIl19
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maWxlL2NvbXBvbmVudC9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvY29tcG9uZW50L2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4sTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRXZELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sc0RBQXNELENBQUM7Ozs7O0FBRXZHLFdBQVc7QUFnQlgsTUFBTSxPQUFPLG9CQUFvQjtJQUNaLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFB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dUdBaEpRLG9CQUFvQjsyRkFBcEIsb0JBQW9CLGtXQ3hDakMsd2dDQWdDQSw2dkJERFEsd0JBQXdCLDZHQUN4QixlQUFlLGtTQUNmLFlBQVksMkZBQ1osYUFBYSxvTEFDYixvQkFBb0IsOEZBQ3BCLHFCQUFxQixtREFDckIsaUNBQWlDOzsyRkFHNUIsb0JBQW9CO2tCQWZoQyxTQUFTOytCQUNJLGNBQWMsY0FHWixJQUFJLFdBQ1A7d0JBQ0wsd0JBQXdCO3dCQUN4QixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsaUNBQWlDO3FCQUNwQzs4QkFPK0MsTUFBTTtzQkFBckQsV0FBVzt1QkFBQyxpQkFBaUI7O3NCQUFHLEtBQUs7Z0JBRXRCLE1BQU07c0JBQXJCLEtBQUs7Z0JBRVUsY0FBYztzQkFBN0IsS0FBSztnQkFRVSxNQUFNO3NCQUFyQixLQUFLO2dCQWdCVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBTVUsUUFBUTtzQkFBdkIsS0FBSztnQkFNb0IsV0FBVztzQkFBcEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TmF0dXJhbEZpbGVTZXJ2aWNlfSBmcm9tICcuLi9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGUsIERPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtGaWxlTW9kZWx9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7TmF0dXJhbEFsZXJ0U2VydmljZX0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQge05hdHVyYWxDYXBpdGFsaXplUGlwZX0gZnJvbSAnLi4vLi4vY29tbW9uL3BpcGVzL2NhcGl0YWxpemUucGlwZSc7XG5pbXBvcnQge05hdHVyYWxJY29uRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9pY29uL2ljb24uZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdFJpcHBsZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge05hdHVyYWxGaWxlRHJvcERpcmVjdGl2ZX0gZnJvbSAnLi4vZmlsZS1kcm9wLmRpcmVjdGl2ZSc7XG5pbXBvcnQge05hdHVyYWxCYWNrZ3JvdW5kRGVuc2l0eURpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vY29tbW9uL2RpcmVjdGl2ZXMvYmFja2dyb3VuZC1kZW5zaXR5LmRpcmVjdGl2ZSc7XG5cbi8vIEBkeW5hbWljXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25hdHVyYWwtZmlsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9maWxlLmNvbXBvbmVudC5zY3NzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmF0dXJhbEZpbGVEcm9wRGlyZWN0aXZlLFxuICAgICAgICBNYXRSaXBwbGVNb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgTmF0dXJhbEljb25EaXJlY3RpdmUsXG4gICAgICAgIE5hdHVyYWxDYXBpdGFsaXplUGlwZSxcbiAgICAgICAgTmF0dXJhbEJhY2tncm91bmREZW5zaXR5RGlyZWN0aXZlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxGaWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0dXJhbEZpbGVTZXJ2aWNlID0gaW5qZWN0KE5hdHVyYWxGaWxlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2UgPSBpbmplY3QoTmF0dXJhbEFsZXJ0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdDxEb2N1bWVudD4oRE9DVU1FTlQpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKSBASW5wdXQoKSBwdWJsaWMgaGVpZ2h0ID0gMjUwO1xuXG4gICAgQElucHV0KCkgcHVibGljIGFjdGlvbjogJ3VwbG9hZCcgfCAnZG93bmxvYWQnIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgYmFja2dyb3VuZFNpemUgPSAnY29udGFpbic7XG5cbiAgICAvKipcbiAgICAgKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB1bmlxdWUgZmlsZSB0eXBlIHNwZWNpZmllcnMuIExpa2UgdGhlIG5hdGl2ZSBlbGVtZW50LFxuICAgICAqIGl0IGNhbiBiZSBhIG1peCBvZiBtaW1lLXR5cGUgYW5kIGZpbGUgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIFNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW5wdXQvZmlsZSNhY2NlcHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgYWNjZXB0ID0gJ2ltYWdlL2JtcCxpbWFnZS9naWYsaW1hZ2UvanBlZyxpbWFnZS9wanBlZyxpbWFnZS9wbmcsaW1hZ2Uvc3ZnK3htbCxpbWFnZS9zdmcsaW1hZ2Uvd2VicCc7XG5cbiAgICAvKipcbiAgICAgKiBJZiBnaXZlbiwgaXQgd2lsbCBiZSBjYWxsZWQgd2hlbiBhIG5ldyBmaWxlIGlzIHNlbGVjdGVkLiBUaGUgY2FsbGJhY2sgc2hvdWxkIHR5cGljYWxseSB1cGxvYWQgdGhlIGZpbGVcbiAgICAgKiB0byB0aGUgc2VydmVyIGFuZCBsaW5rIHRoZSBuZXdseSB1cGxvYWRlZCBmaWxlIHRvIHRoZSBleGlzdGluZyByZWxhdGVkIG9iamVjdC5cbiAgICAgKlxuICAgICAqIFRoZSBjYWxsYmFjayAqKm11c3QqKiBiZSBhYmxlIHRvIHJ1biBldmVuIGlmIHRoZSBjYWxsaW5nIGNvbXBvbmVudCBoYXMgYmVlbiBkZXN0cm95ZWQuIFRoYXQgbWVhbnMgaW4gbW9zdFxuICAgICAqIGNhc2VzIHlvdSAqKm11c3QqKiBgYmluZCgpYCB0aGUgY2FsbGJhY2sgZXhwbGljaXRseSwgbGlrZSBzbzpcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8bmF0dXJhbC1maWxlIFt1cGxvYWRlcl09XCJteUNhbGxiYWNrLmJpbmQodGhpcylcIiAvPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQWxzbywgeW91IHByb2JhYmx5ICoqc2hvdWxkKiogc2V0IGEgYFtmb3JtQ3RybF1gIHNvIHRoYXQgdGhlIGZvcm0gaXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5LCBpbnN0ZWFkIG9mIGRvaW5nXG4gICAgICogaXQgbWFudWFsbHkgd2l0aGluIHRoZSBjYWxsYmFjay5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgdXBsb2FkZXI/OiAoZmlsZTogRmlsZSkgPT4gT2JzZXJ2YWJsZTxGaWxlTW9kZWw+O1xuXG4gICAgQElucHV0KCkgcHVibGljIG1vZGVsOiBGaWxlTW9kZWwgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIElmIHByb3ZpZGVkLCBpdHMgdmFsdWUgd2lsbCBnZXQgdXBkYXRlZCB3aGVuIHRoZSBtb2RlbCBjaGFuZ2VzLlxuICAgICAqIEJ1dCBpdHMgdmFsdWUgaXMgbmV2ZXIgcmVhZCwgc28gaWYgeW91IHdhbnQgdG8gc2V0IGEgdmFsdWUgdXNlIGBbbW9kZWxdYCBpbnN0ZWFkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBmb3JtQ3RybDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzICoqbXVzdCBub3QqKiBiZSB1c2VkIHRvIG11dGF0ZSB0aGUgc2VydmVyLCBiZWNhdXNlIGl0IGlzIHZlcnkgbGlrZWx5IGl0IHdpbGwgbmV2ZXIgYmUgY2FsbGVkIGlmIHRoZVxuICAgICAqIGh1bWFuIG5hdmlnYXRlcyBhd2F5IGZyb20gdGhlIHBhZ2UgYmVmb3JlIHRoZSB1cGxvYWQgaXMgZmluaXNoZWQuIEluc3RlYWQsIHlvdSBzaG91bGQgdXNlIGBbdXBsb2FkZXJdYC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlTW9kZWw+KCk7XG5cbiAgICBwdWJsaWMgaW1hZ2VQcmV2aWV3ID0gJyc7XG4gICAgcHVibGljIGZpbGVQcmV2aWV3OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLm1vZGVsICYmIGNoYW5nZXMubW9kZWwucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlcy5tb2RlbC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW1hZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbWFnZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGxvYWQoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsID0ge2ZpbGU6IGZpbGV9O1xuICAgICAgICB0aGlzLnVwZGF0ZUltYWdlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZm9ybUN0cmwpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUodGhpcy5tb2RlbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlID1cbiAgICAgICAgICAgIHRoaXMudXBsb2FkZXI/LihmaWxlKS5waXBlKHRhcCgoKSA9PiB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKCRsb2NhbGl6ZWBNaXMgw6Agam91cmApKSkgPz8gb2YodGhpcy5tb2RlbCk7XG5cbiAgICAgICAgb2JzZXJ2YWJsZS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSByZXN1bHQ7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtQ3RybCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUN0cmwuc2V0VmFsdWUodGhpcy5tb2RlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERvd25sb2FkTGluaygpOiBudWxsIHwgc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uICE9PSAnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm5hdHVyYWxGaWxlU2VydmljZS5nZXREb3dubG9hZExpbmsodGhpcy5tb2RlbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVJbWFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbWFnZVByZXZpZXcgPSAnJztcbiAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IG51bGw7XG4gICAgICAgIGlmICghdGhpcy5tb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9kZWwuZmlsZT8udHlwZS5pbmNsdWRlcygnaW1hZ2UvJykpIHtcbiAgICAgICAgICAgIC8vIE1vZGVsIGZyb20gdXBsb2FkIChiZWZvcmUgc2F2aW5nKVxuICAgICAgICAgICAgdGhpcy5nZXRCYXNlNjQodGhpcy5tb2RlbC5maWxlKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlbD8uZmlsZT8udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gJ3VybChkYXRhOicgKyB0aGlzLm1vZGVsPy5maWxlPy50eXBlICsgJztiYXNlNjQsJyArIHJlc3VsdCArICcpJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFnZVByZXZpZXcgPSBjb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZWwuZmlsZSkge1xuICAgICAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IHRoaXMubW9kZWwuZmlsZS50eXBlLnNwbGl0KCcvJylbMV07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbC5fX3R5cGVuYW1lID09PSAnSW1hZ2UnICYmIHRoaXMubW9kZWwuaWQpIHtcbiAgICAgICAgICAgIC8vIE1vZGVsIGltYWdlIHdpdGggaWQsIHVzZSBzcGVjaWZpYyBBUEkgdG8gcmVuZGVyIGltYWdlIGJ5IHNpemVcbiAgICAgICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgICAgICAgICBpZiAoIXdpbmRvdykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHNob3cgaW1hZ2UgcHJldmlldyBiZWNhdXNlIGB3aW5kb3dgIGlzIHVuZGVmaW5lZCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsb2MgPSB3aW5kb3cubG9jYXRpb247XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLmhlaWdodCA/ICcvJyArIHRoaXMuaGVpZ2h0IDogJyc7XG5cbiAgICAgICAgICAgIC8vIGNyZWF0ZSBpbWFnZSB1cmwgd2l0aG91dCBwb3J0IHRvIHN0YXkgY29tcGF0aWJsZSB3aXRoIGRldiBtb2RlXG4gICAgICAgICAgICBjb25zdCBpbWFnZSA9IGxvYy5wcm90b2NvbCArICcvLycgKyBsb2MuaG9zdG5hbWUgKyAnL2FwaS9pbWFnZS8nICsgdGhpcy5tb2RlbC5pZCArIGhlaWdodDtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmV2aWV3ID0gaW1hZ2U7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tb2RlbD8ubWltZSAmJiBbJ0ZpbGUnLCAnQWNjb3VudGluZ0RvY3VtZW50J10uaW5jbHVkZXModGhpcy5tb2RlbC5fX3R5cGVuYW1lIHx8ICcnKSkge1xuICAgICAgICAgICAgdGhpcy5maWxlUHJldmlldyA9IHRoaXMubW9kZWwubWltZS5zcGxpdCgnLycpWzFdO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZWwuc3JjKSB7XG4gICAgICAgICAgICAvLyBleHRlcm5hbCB1cmxcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VQcmV2aWV3ID0gdGhpcy5tb2RlbC5zcmM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJhc2U2NChmaWxlOiBGaWxlIHwgbnVsbCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIGlmICghZmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKCcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoZXY6IGFueSkgPT4ge1xuICAgICAgICAgICAgc3ViamVjdC5uZXh0KGJ0b2EoZXYudGFyZ2V0LnJlc3VsdCkpO1xuICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0JpbmFyeVN0cmluZyhmaWxlKTtcblxuICAgICAgICByZXR1cm4gc3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG59XG4iLCI8YVxuICAgIChmaWxlQ2hhbmdlKT1cInVwbG9hZCgkZXZlbnQpXCJcbiAgICBuYXR1cmFsRmlsZURyb3BcbiAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgW2F0dHIuaHJlZl09XCJnZXREb3dubG9hZExpbmsoKVwiXG4gICAgW2NsYXNzLmhhcy1hY3Rpb25dPVwiISFhY3Rpb25cIlxuICAgIFtjbGFzcy5zdWdnZXN0LXVwbG9hZF09XCIhbW9kZWwgJiYgYWN0aW9uID09PSAndXBsb2FkJ1wiXG4gICAgW2ZpbGVTZWxlY3Rpb25EaXNhYmxlZF09XCJhY3Rpb24gIT09ICd1cGxvYWQnXCJcbiAgICBbbWF0UmlwcGxlRGlzYWJsZWRdPVwiIWFjdGlvblwiXG4gICAgW25hdHVyYWxCYWNrZ3JvdW5kRGVuc2l0eV09XCJpbWFnZVByZXZpZXdcIlxuICAgIFtzdHlsZS5iYWNrZ3JvdW5kU2l6ZV09XCJiYWNrZ3JvdW5kU2l6ZVwiXG4gICAgbWF0UmlwcGxlXG4gICAgdGFyZ2V0PVwiX2JsYW5rXCJcbj5cbiAgICBAaWYgKGZpbGVQcmV2aWV3KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLXByZXZpZXdcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc2l6ZV09XCJoZWlnaHQgKiAwLjMzXCIgbmF0dXJhbEljb249XCJhdHRhY2htZW50XCIgLz5cbiAgICAgICAgICAgIHt7IGZpbGVQcmV2aWV3IHwgdXBwZXJjYXNlIH19XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tb3ZlcmxheVwiPlxuICAgICAgICBAaWYgKGFjdGlvbiA9PT0gJ3VwbG9hZCcpIHtcbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc2l6ZV09XCJoZWlnaHQgKiAwLjY2XCIgbmF0dXJhbEljb249XCJjbG91ZF91cGxvYWRcIiAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYWN0aW9uID09PSAnZG93bmxvYWQnKSB7XG4gICAgICAgICAgICA8bWF0LWljb24gW3NpemVdPVwiaGVpZ2h0ICogMC42NlwiIG5hdHVyYWxJY29uPVwiZ2V0X2FwcFwiIC8+XG4gICAgICAgIH1cbiAgICAgICAge3sgYWN0aW9uIHwgY2FwaXRhbGl6ZSB9fVxuICAgIDwvZGl2PlxuPC9hPlxuIl19
|
|
@@ -19,16 +19,13 @@ import * as i0 from "@angular/core";
|
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
21
|
export class NaturalFileDropDirective extends NaturalAbstractFile {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.fileOver = new EventEmitter();
|
|
30
|
-
this.rawFileOver = new Subject();
|
|
31
|
-
}
|
|
22
|
+
destroyRef = inject(DestroyRef);
|
|
23
|
+
fileOverClass = false;
|
|
24
|
+
/**
|
|
25
|
+
* Emits whenever files are being dragged over
|
|
26
|
+
*/
|
|
27
|
+
fileOver = new EventEmitter();
|
|
28
|
+
rawFileOver = new Subject();
|
|
32
29
|
ngOnInit() {
|
|
33
30
|
super.ngOnInit();
|
|
34
31
|
// Automatically change the class, but not too often to avoid visual
|
|
@@ -87,8 +84,8 @@ export class NaturalFileDropDirective extends NaturalAbstractFile {
|
|
|
87
84
|
this.filesChange.observed ||
|
|
88
85
|
(this.broadcast && this.naturalFileService.filesChanged.observed));
|
|
89
86
|
}
|
|
90
|
-
static
|
|
91
|
-
static
|
|
87
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileDropDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
88
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: NaturalFileDropDirective, isStandalone: true, selector: ":not([naturalFileSelect])[naturalFileDrop]", outputs: { fileOver: "fileOver" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)" }, properties: { "class.natural-file-over": "this.fileOverClass" } }, usesInheritance: true, ngImport: i0 });
|
|
92
89
|
}
|
|
93
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileDropDirective, decorators: [{
|
|
94
91
|
type: Directive,
|
|
@@ -111,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
111
108
|
type: HostListener,
|
|
112
109
|
args: ['dragleave', ['$event']]
|
|
113
110
|
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvZmlsZS1kcm9wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sU0FBUyxDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFOUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBS0gsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG1CQUFtQjtJQUM1QyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ0YsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUVyRTs7T0FFRztJQUN1QixRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUVoRCxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUV0QyxRQUFRO1FBQ3BCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixvRUFBb0U7UUFDcEUsNEVBQTRFO1FBQzVFLDBFQUEwRTtRQUMxRSxxRUFBcUU7UUFDckUsSUFBSSxDQUFDLFdBQVc7YUFDWCxJQUFJLENBQ0Qsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUNuQyxZQUFZLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRTtZQUM5QixPQUFPLEVBQUUsSUFBSTtZQUNiLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FDTDthQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFHTSxNQUFNLENBQUMsS0FBZ0I7UUFDMUIsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1gsQ0FBQztRQUVELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFHTSxVQUFVLENBQUMsS0FBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1gsQ0FBQztRQUVELFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQixnQkFBZ0I7UUFDaEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUNwQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxVQUFVO1FBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUdNLFdBQVcsQ0FBQyxLQUFnQjtRQUMvQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLE9BQU87UUFDWCxDQUFDO1FBRUQsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sWUFBWTtRQUNoQixPQUFPLENBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRO1lBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUTtZQUN6QixDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FDcEUsQ0FBQztJQUNOLENBQUM7dUdBMUZRLHdCQUF3QjsyRkFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0Q0FBNEM7b0JBQ3RELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFHa0QsYUFBYTtzQkFBM0QsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBS1osUUFBUTtzQkFBakMsTUFBTTtnQkEwQkEsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFrQnpCLFVBQVU7c0JBRGhCLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTBCN0IsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Rlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBpbmplY3QsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0RmlsZX0gZnJvbSAnLi9hYnN0cmFjdC1maWxlJztcbmltcG9ydCB7ZXZlbnRUb0ZpbGVzLCBzdG9wRXZlbnR9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHthc3luY1NjaGVkdWxlciwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rocm90dGxlVGltZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBoYXMgYWxsIG9wdGlvbnMgdG8gc2VsZWN0IGZpbGVzLCBhbmQgYWRkcyBzdXBwb3J0IGZvciBkcmFnJ24nZHJvcC5cbiAqXG4gKiBJdCB3aWxsIGFkZCB0aGUgQ1NTIGNsYXNzIGBuYXR1cmFsLWZpbGUtb3ZlcmAgb24gdGhlIGNvbXBvbmVudCB3aGVuIGEgZmlsZSBpc1xuICogZHJhZ2dlZCBvdmVyLiBJdCBpcyB1cCB0byB0aGUgY29tcG9uZW50IHRvIGhhdmUgc29tZSBzcGVjaWZpYyBzdHlsaW5nIGJ5IHVzaW5nXG4gKiB0aGlzIGNsYXNzLlxuICpcbiAqIEluIG1vc3QgY2FzZXMgeW91IHByb2JhYmx5IGFsc28gd2FudCBjbGljay10by1zZWxlY3QsIHNvIHlvdSBzaG91bGQgdXNlOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgbmF0dXJhbEZpbGVEcm9wIFtzZWxlY3RhYmxlXT1cInRydWVcIj48L2Rpdj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJzpub3QoW25hdHVyYWxGaWxlU2VsZWN0XSlbbmF0dXJhbEZpbGVEcm9wXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEZpbGVEcm9wRGlyZWN0aXZlIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0RmlsZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MubmF0dXJhbC1maWxlLW92ZXInKSBwdWJsaWMgZmlsZU92ZXJDbGFzcyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbmV2ZXIgZmlsZXMgYXJlIGJlaW5nIGRyYWdnZWQgb3ZlclxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgZmlsZU92ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJhd0ZpbGVPdmVyID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICAvLyBBdXRvbWF0aWNhbGx5IGNoYW5nZSB0aGUgY2xhc3MsIGJ1dCBub3QgdG9vIG9mdGVuIHRvIGF2b2lkIHZpc3VhbFxuICAgICAgICAvLyBmbGlja2VyaW5nIGluIENocm9tZSB3aGVuIGhvdmVyaW5nIGFjcm9zcyBjaGlsZCBIVE1MIGVsZW1lbnQgb2Ygb3VyIGhvc3QuXG4gICAgICAgIC8vIEl0J3Mgbm90IGFic29sdXRlbHkgcGVyZmVjdCBhbmQgaWYgZHJhZ2dpbmcgc2xvd2x5IGFuZCBwcmVjaXNlbHkgd2UgY2FuXG4gICAgICAgIC8vIHN0aWxsIHNlZSBmbGlja2VyLCBidXQgaXQgc2hvdWxkIGJlIGJldHRlciBmb3IgbW9zdCBub3JtYWwgdXNhZ2VzLlxuICAgICAgICB0aGlzLnJhd0ZpbGVPdmVyXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgICAgICAgICB0aHJvdHRsZVRpbWUoMjAwLCBhc3luY1NjaGVkdWxlciwge1xuICAgICAgICAgICAgICAgICAgICBsZWFkaW5nOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB0cmFpbGluZzogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZmlsZU92ZXIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZU92ZXIuZW1pdChmaWxlT3Zlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlT3ZlckNsYXNzID0gZmlsZU92ZXI7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsZVNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsb3NlRHJhZ3MoKTtcblxuICAgICAgICBjb25zdCBmaWxlcyA9IGV2ZW50VG9GaWxlcyhldmVudCk7XG4gICAgICAgIGlmICghZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgICB0aGlzLmhhbmRsZUZpbGVzKGZpbGVzKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzT2JzZXJ2ZXJzKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZpbGVTZWxlY3Rpb25EaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RvcEV2ZW50KGV2ZW50KTtcblxuICAgICAgICAvLyBDaGFuZ2UgY3Vyc29yXG4gICAgICAgIGNvbnN0IHRyYW5zZmVyID0gZXZlbnQuZGF0YVRyYW5zZmVyO1xuICAgICAgICBpZiAodHJhbnNmZXIpIHtcbiAgICAgICAgICAgIHRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnY29weSc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJhd0ZpbGVPdmVyLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZURyYWdzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJhd0ZpbGVPdmVyLm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmlsZVNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzdG9wRXZlbnQoZXZlbnQpO1xuICAgICAgICB0aGlzLmNsb3NlRHJhZ3MoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc09ic2VydmVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuZmlsZUNoYW5nZS5vYnNlcnZlZCB8fFxuICAgICAgICAgICAgdGhpcy5maWxlc0NoYW5nZS5vYnNlcnZlZCB8fFxuICAgICAgICAgICAgKHRoaXMuYnJvYWRjYXN0ICYmIHRoaXMubmF0dXJhbEZpbGVTZXJ2aWNlLmZpbGVzQ2hhbmdlZC5vYnNlcnZlZClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -5,17 +5,14 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
* This directive has all options to select files, except drag'n'drop.
|
|
6
6
|
*/
|
|
7
7
|
export class NaturalFileSelectDirective extends NaturalAbstractFile {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileSelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
18
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: NaturalFileSelectDirective, isStandalone: true, selector: ":not([naturalFileDrop])[naturalFileSelect]", inputs: { selectable: "selectable" }, usesInheritance: true, ngImport: i0 }); }
|
|
8
|
+
/**
|
|
9
|
+
* Whether the user can click on the element to select something
|
|
10
|
+
*
|
|
11
|
+
* Override parent to enable it by default
|
|
12
|
+
*/
|
|
13
|
+
selectable = true;
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileSelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
15
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.3", type: NaturalFileSelectDirective, isStandalone: true, selector: ":not([naturalFileDrop])[naturalFileSelect]", inputs: { selectable: "selectable" }, usesInheritance: true, ngImport: i0 });
|
|
19
16
|
}
|
|
20
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileSelectDirective, decorators: [{
|
|
21
18
|
type: Directive,
|
|
@@ -26,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
26
23
|
}], propDecorators: { selectable: [{
|
|
27
24
|
type: Input
|
|
28
25
|
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZmlsZS9maWxlLXNlbGVjdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBRXBEOztHQUVHO0FBS0gsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG1CQUFtQjtJQUMvRDs7OztPQUlHO0lBQ3NCLFVBQVUsR0FBRyxJQUFJLENBQUM7dUdBTmxDLDBCQUEwQjsyRkFBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0Q0FBNEM7b0JBQ3RELFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFPNEIsVUFBVTtzQkFBbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdHVyYWxBYnN0cmFjdEZpbGV9IGZyb20gJy4vYWJzdHJhY3QtZmlsZSc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgaGFzIGFsbCBvcHRpb25zIHRvIHNlbGVjdCBmaWxlcywgZXhjZXB0IGRyYWcnbidkcm9wLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJzpub3QoW25hdHVyYWxGaWxlRHJvcF0pW25hdHVyYWxGaWxlU2VsZWN0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEZpbGVTZWxlY3REaXJlY3RpdmUgZXh0ZW5kcyBOYXR1cmFsQWJzdHJhY3RGaWxlIHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSB1c2VyIGNhbiBjbGljayBvbiB0aGUgZWxlbWVudCB0byBzZWxlY3Qgc29tZXRoaW5nXG4gICAgICpcbiAgICAgKiBPdmVycmlkZSBwYXJlbnQgdG8gZW5hYmxlIGl0IGJ5IGRlZmF1bHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgb3ZlcnJpZGUgc2VsZWN0YWJsZSA9IHRydWU7XG59XG4iXX0=
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import { DOCUMENT } from '@angular/common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
// @dynamic
|
|
6
6
|
export class NaturalFileService {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
this.filesChanged = new Subject();
|
|
18
|
-
}
|
|
7
|
+
document = inject(DOCUMENT);
|
|
8
|
+
/**
|
|
9
|
+
* Allow to subscribe to selected files in the entire application. So a
|
|
10
|
+
* child component is able to receive a file that was dropped on a parent
|
|
11
|
+
* component.
|
|
12
|
+
*
|
|
13
|
+
* Typically useful to drop a file on the entire screen, instead of a precise
|
|
14
|
+
* component.
|
|
15
|
+
*/
|
|
16
|
+
filesChanged = new Subject();
|
|
19
17
|
getDownloadLink(model) {
|
|
20
18
|
const window = this.document.defaultView;
|
|
21
19
|
if (!window) {
|
|
@@ -33,16 +31,13 @@ export class NaturalFileService {
|
|
|
33
31
|
}
|
|
34
32
|
return null;
|
|
35
33
|
}
|
|
36
|
-
static
|
|
37
|
-
static
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
35
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileService, providedIn: 'root' });
|
|
38
36
|
}
|
|
39
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFileService, decorators: [{
|
|
40
38
|
type: Injectable,
|
|
41
39
|
args: [{
|
|
42
40
|
providedIn: 'root',
|
|
43
41
|
}]
|
|
44
|
-
}]
|
|
45
|
-
|
|
46
|
-
args: [DOCUMENT]
|
|
47
|
-
}] }] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZmlsZS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUc3QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBRXpDLFdBQVc7QUFJWCxNQUFNLE9BQU8sa0JBQWtCO0lBVzNCLFlBQXNELFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFWeEU7Ozs7Ozs7V0FPRztRQUNhLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7SUFFZSxDQUFDO0lBRXJFLGVBQWUsQ0FBQyxLQUF1QjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUU1RSxJQUFJLEtBQUssRUFBRSxVQUFVLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDL0IsT0FBTyxRQUFRLEdBQUcsWUFBWSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUMsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3BELE9BQU8sUUFBUSxHQUFHLDJCQUEyQixHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0QsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFFBQVEsR0FBRyxhQUFhLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0E5QlEsa0JBQWtCLGtCQVdBLFFBQVE7a0hBWDFCLGtCQUFrQixjQUZmLE1BQU07OzJGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQVl1QixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWxlU2VsZWN0aW9ufSBmcm9tICcuL2Fic3RyYWN0LWZpbGUnO1xuaW1wb3J0IHtGaWxlTW9kZWx9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLy8gQGR5bmFtaWNcbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxGaWxlU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogQWxsb3cgdG8gc3Vic2NyaWJlIHRvIHNlbGVjdGVkIGZpbGVzIGluIHRoZSBlbnRpcmUgYXBwbGljYXRpb24uIFNvIGFcbiAgICAgKiBjaGlsZCBjb21wb25lbnQgaXMgYWJsZSB0byByZWNlaXZlIGEgZmlsZSB0aGF0IHdhcyBkcm9wcGVkIG9uIGEgcGFyZW50XG4gICAgICogY29tcG9uZW50LlxuICAgICAqXG4gICAgICogVHlwaWNhbGx5IHVzZWZ1bCB0byBkcm9wIGEgZmlsZSBvbiB0aGUgZW50aXJlIHNjcmVlbiwgaW5zdGVhZCBvZiBhIHByZWNpc2VcbiAgICAgKiBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGZpbGVzQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PEZpbGVTZWxlY3Rpb24+KCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQpIHt9XG5cbiAgICBwdWJsaWMgZ2V0RG93bmxvYWRMaW5rKG1vZGVsOiBGaWxlTW9kZWwgfCBudWxsKTogbnVsbCB8IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgICAgIGlmICghd2luZG93KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBidWlsZCBkb3dubG9hZCBsaW5rIGJlY2F1c2UgYHdpbmRvd2AgaXMgdW5kZWZpbmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5cbiAgICAgICAgaWYgKG1vZGVsPy5fX3R5cGVuYW1lID09PSAnRmlsZScpIHtcbiAgICAgICAgICAgIHJldHVybiBob3N0bmFtZSArICcvYXBpL2ZpbGUvJyArIG1vZGVsLmlkO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZGVsPy5fX3R5cGVuYW1lID09PSAnQWNjb3VudGluZ0RvY3VtZW50Jykge1xuICAgICAgICAgICAgcmV0dXJuIGhvc3RuYW1lICsgJy9hcGkvYWNjb3VudGluZy1kb2N1bWVudC8nICsgbW9kZWwuaWQ7XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZWw/Ll9fdHlwZW5hbWUgPT09ICdJbWFnZScpIHtcbiAgICAgICAgICAgIHJldHVybiBob3N0bmFtZSArICcvYXBpL2ltYWdlLycgKyBtb2RlbC5pZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
|
|
42
|
+
}] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZmlsZS9maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUc3QixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBRXpDLFdBQVc7QUFJWCxNQUFNLE9BQU8sa0JBQWtCO0lBQ1YsUUFBUSxHQUFHLE1BQU0sQ0FBVyxRQUFRLENBQUMsQ0FBQztJQUV2RDs7Ozs7OztPQU9HO0lBQ2EsWUFBWSxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO0lBRXJELGVBQWUsQ0FBQyxLQUF1QjtRQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUU1RSxJQUFJLEtBQUssRUFBRSxVQUFVLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDL0IsT0FBTyxRQUFRLEdBQUcsWUFBWSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUMsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3BELE9BQU8sUUFBUSxHQUFHLDJCQUEyQixHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0QsQ0FBQzthQUFNLElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxPQUFPLFFBQVEsR0FBRyxhQUFhLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzt1R0E5QlEsa0JBQWtCOzJHQUFsQixrQkFBa0IsY0FGZixNQUFNOzsyRkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RmlsZVNlbGVjdGlvbn0gZnJvbSAnLi9hYnN0cmFjdC1maWxlJztcbmltcG9ydCB7RmlsZU1vZGVsfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8vIEBkeW5hbWljXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBOYXR1cmFsRmlsZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3Q8RG9jdW1lbnQ+KERPQ1VNRU5UKTtcblxuICAgIC8qKlxuICAgICAqIEFsbG93IHRvIHN1YnNjcmliZSB0byBzZWxlY3RlZCBmaWxlcyBpbiB0aGUgZW50aXJlIGFwcGxpY2F0aW9uLiBTbyBhXG4gICAgICogY2hpbGQgY29tcG9uZW50IGlzIGFibGUgdG8gcmVjZWl2ZSBhIGZpbGUgdGhhdCB3YXMgZHJvcHBlZCBvbiBhIHBhcmVudFxuICAgICAqIGNvbXBvbmVudC5cbiAgICAgKlxuICAgICAqIFR5cGljYWxseSB1c2VmdWwgdG8gZHJvcCBhIGZpbGUgb24gdGhlIGVudGlyZSBzY3JlZW4sIGluc3RlYWQgb2YgYSBwcmVjaXNlXG4gICAgICogY29tcG9uZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmaWxlc0NoYW5nZWQgPSBuZXcgU3ViamVjdDxGaWxlU2VsZWN0aW9uPigpO1xuXG4gICAgcHVibGljIGdldERvd25sb2FkTGluayhtb2RlbDogRmlsZU1vZGVsIHwgbnVsbCk6IG51bGwgfCBzdHJpbmcge1xuICAgICAgICBjb25zdCB3aW5kb3cgPSB0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3O1xuICAgICAgICBpZiAoIXdpbmRvdykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYnVpbGQgZG93bmxvYWQgbGluayBiZWNhdXNlIGB3aW5kb3dgIGlzIHVuZGVmaW5lZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuXG4gICAgICAgIGlmIChtb2RlbD8uX190eXBlbmFtZSA9PT0gJ0ZpbGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gaG9zdG5hbWUgKyAnL2FwaS9maWxlLycgKyBtb2RlbC5pZDtcbiAgICAgICAgfSBlbHNlIGlmIChtb2RlbD8uX190eXBlbmFtZSA9PT0gJ0FjY291bnRpbmdEb2N1bWVudCcpIHtcbiAgICAgICAgICAgIHJldHVybiBob3N0bmFtZSArICcvYXBpL2FjY291bnRpbmctZG9jdW1lbnQvJyArIG1vZGVsLmlkO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZGVsPy5fX3R5cGVuYW1lID09PSAnSW1hZ2UnKSB7XG4gICAgICAgICAgICByZXR1cm4gaG9zdG5hbWUgKyAnL2FwaS9pbWFnZS8nICsgbW9kZWwuaWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -6,4 +6,4 @@ export * from './file-select.directive';
|
|
|
6
6
|
export * from './file.service';
|
|
7
7
|
export * from './component/file.component';
|
|
8
8
|
export * from './types';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpbGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5hdHVyYWxcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtZHJvcC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXNlbGVjdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLnNlcnZpY2UnO1xuZXhwb3J0IHR5cGUge0ludmFsaWRGaWxlLCBGaWxlU2VsZWN0aW9ufSBmcm9tICcuL2Fic3RyYWN0LWZpbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQvZmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG4iXX0=
|
|
@@ -7,13 +7,12 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
import * as i1 from "@angular/material/button";
|
|
8
8
|
import * as i2 from "@angular/material/icon";
|
|
9
9
|
export class NaturalFixedButtonComponent {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
static
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: NaturalFixedButtonComponent, isStandalone: true, selector: "natural-fixed-button", inputs: { icon: "icon", link: "link", color: "color", disabled: "disabled" }, ngImport: i0, template: "<button [color]=\"color\" [disabled]=\"disabled\" [routerLink]=\"link\" mat-fab>\n <mat-icon [naturalIcon]=\"icon\" />\n</button>\n", styles: [":host{position:fixed!important;right:32px;bottom:32px;z-index:999}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }] }); }
|
|
10
|
+
icon;
|
|
11
|
+
link = [];
|
|
12
|
+
color = 'accent';
|
|
13
|
+
disabled = false;
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFixedButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.3", type: NaturalFixedButtonComponent, isStandalone: true, selector: "natural-fixed-button", inputs: { icon: "icon", link: "link", color: "color", disabled: "disabled" }, ngImport: i0, template: "<button [color]=\"color\" [disabled]=\"disabled\" [routerLink]=\"link\" mat-fab>\n <mat-icon [naturalIcon]=\"icon\" />\n</button>\n", styles: [":host{position:fixed!important;right:32px;bottom:32px;z-index:999}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NaturalIconDirective, selector: "mat-icon[naturalIcon]", inputs: ["naturalIcon", "size"] }] });
|
|
17
16
|
}
|
|
18
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFixedButtonComponent, decorators: [{
|
|
19
18
|
type: Component,
|
|
@@ -28,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
28
27
|
}], disabled: [{
|
|
29
28
|
type: Input
|
|
30
29
|
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2ZpeGVkLWJ1dHRvbi9maXhlZC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZml4ZWQtYnV0dG9uL2ZpeGVkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQVN6RCxNQUFNLE9BQU8sMkJBQTJCO0lBQ0osSUFBSSxDQUFVO0lBQzlCLElBQUksR0FBNkIsRUFBRSxDQUFDO0lBQ3BDLEtBQUssR0FBaUIsUUFBUSxDQUFDO0lBQy9CLFFBQVEsR0FBRyxLQUFLLENBQUM7dUdBSnhCLDJCQUEyQjsyRkFBM0IsMkJBQTJCLDhKQ2R4Qyx3SUFHQSw2SERTYyxlQUFlLHlKQUFFLFVBQVUsbU9BQUUsYUFBYSxvTEFBRSxvQkFBb0I7OzJGQUVqRSwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0ksc0JBQXNCLGNBR3BCLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixDQUFDOzhCQUczQyxJQUFJO3NCQUFuQyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFDUCxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RoZW1lUGFsZXR0ZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge1JvdXRlckxpbmt9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge05hdHVyYWxJY29uRGlyZWN0aXZlfSBmcm9tICcuLi9pY29uL2ljb24uZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdEJ1dHRvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLWZpeGVkLWJ1dHRvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpeGVkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2ZpeGVkLWJ1dHRvbi5jb21wb25lbnQuc2NzcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTWF0QnV0dG9uTW9kdWxlLCBSb3V0ZXJMaW5rLCBNYXRJY29uTW9kdWxlLCBOYXR1cmFsSWNvbkRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIE5hdHVyYWxGaXhlZEJ1dHRvbkNvbXBvbmVudCB7XG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBpY29uITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsaW5rOiBSb3V0ZXJMaW5rWydyb3V0ZXJMaW5rJ10gPSBbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdhY2NlbnQnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xufVxuIiwiPGJ1dHRvbiBbY29sb3JdPVwiY29sb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbcm91dGVyTGlua109XCJsaW5rXCIgbWF0LWZhYj5cbiAgICA8bWF0LWljb24gW25hdHVyYWxJY29uXT1cImljb25cIiAvPlxuPC9idXR0b24+XG4iXX0=
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, inject } from '@angular/core';
|
|
2
|
+
import { ActivatedRoute } from '@angular/router';
|
|
2
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
4
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
4
5
|
import { NaturalFixedButtonComponent } from '../fixed-button/fixed-button.component';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/
|
|
7
|
-
import * as i2 from "@angular/material/tooltip";
|
|
7
|
+
import * as i1 from "@angular/material/tooltip";
|
|
8
8
|
export class NaturalFixedButtonDetailComponent {
|
|
9
|
+
canChange = true;
|
|
10
|
+
isCreation = false;
|
|
9
11
|
get model() {
|
|
10
12
|
return this._model;
|
|
11
13
|
}
|
|
@@ -16,11 +18,12 @@ export class NaturalFixedButtonDetailComponent {
|
|
|
16
18
|
this.canChange = false;
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
_model;
|
|
22
|
+
form;
|
|
23
|
+
create = new EventEmitter();
|
|
24
|
+
delete = new EventEmitter();
|
|
25
|
+
constructor() {
|
|
26
|
+
const route = inject(ActivatedRoute);
|
|
24
27
|
route.params.pipe(takeUntilDestroyed()).subscribe(() => (this.canChange = true));
|
|
25
28
|
}
|
|
26
29
|
clickCreate() {
|
|
@@ -33,13 +36,13 @@ export class NaturalFixedButtonDetailComponent {
|
|
|
33
36
|
this.delete.emit();
|
|
34
37
|
}
|
|
35
38
|
}
|
|
36
|
-
static
|
|
37
|
-
static
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFixedButtonDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.3", type: NaturalFixedButtonDetailComponent, isStandalone: true, selector: "natural-fixed-button-detail", inputs: { model: "model", form: "form" }, outputs: { create: "create", delete: "delete" }, ngImport: i0, template: "@if (isCreation) {\n <natural-fixed-button\n (click)=\"clickCreate()\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n />\n}\n\n@if (!isCreation && (!model.permissions || model.permissions.delete)) {\n <natural-fixed-button\n (click)=\"clickDelete()\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n />\n}\n", styles: [""], dependencies: [{ kind: "component", type: NaturalFixedButtonComponent, selector: "natural-fixed-button", inputs: ["icon", "link", "color", "disabled"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] });
|
|
38
41
|
}
|
|
39
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImport: i0, type: NaturalFixedButtonDetailComponent, decorators: [{
|
|
40
43
|
type: Component,
|
|
41
44
|
args: [{ selector: 'natural-fixed-button-detail', standalone: true, imports: [NaturalFixedButtonComponent, MatTooltipModule], template: "@if (isCreation) {\n <natural-fixed-button\n (click)=\"clickCreate()\"\n [disabled]=\"form.disabled\"\n [color]=\"form.valid ? 'accent' : 'warn'\"\n class=\"detail-speed-dial\"\n icon=\"save\"\n />\n}\n\n@if (!isCreation && (!model.permissions || model.permissions.delete)) {\n <natural-fixed-button\n (click)=\"clickDelete()\"\n [disabled]=\"form.disabled\"\n class=\"detail-speed-dial\"\n color=\"warn\"\n icon=\"delete_forever\"\n i18n-matTooltip\n matTooltip=\"Supprimer d\u00E9finitivement\"\n matTooltipPosition=\"left\"\n />\n}\n" }]
|
|
42
|
-
}], ctorParameters: () => [
|
|
45
|
+
}], ctorParameters: () => [], propDecorators: { model: [{
|
|
43
46
|
type: Input,
|
|
44
47
|
args: [{ required: true }]
|
|
45
48
|
}], form: [{
|
|
@@ -50,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.3", ngImpor
|
|
|
50
53
|
}], delete: [{
|
|
51
54
|
type: Output
|
|
52
55
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9maXhlZC1idXR0b24tZGV0YWlsL2ZpeGVkLWJ1dHRvbi1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvZml4ZWQtYnV0dG9uLWRldGFpbC9maXhlZC1idXR0b24tZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTdFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBZ0JuRixNQUFNLE9BQU8saUNBQWlDO0lBQ2xDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDbEIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUUxQixJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ1csS0FBSyxDQUFDLEtBQVk7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUM7SUFDTCxDQUFDO0lBRU8sTUFBTSxDQUFTO0lBRVMsSUFBSSxDQUFhO0lBRXZCLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ2xDLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRTVEO1FBQ0ksTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXJDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0wsQ0FBQzt1R0F4Q1EsaUNBQWlDOzJGQUFqQyxpQ0FBaUMsa0xDckI5Qyxpb0JBc0JBLDBEREhjLDJCQUEyQiwrR0FBRSxnQkFBZ0I7OzJGQUU5QyxpQ0FBaUM7a0JBUDdDLFNBQVM7K0JBQ0ksNkJBQTZCLGNBRzNCLElBQUksV0FDUCxDQUFDLDJCQUEyQixFQUFFLGdCQUFnQixDQUFDO3dEQVc3QyxLQUFLO3NCQURmLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQVdTLElBQUk7c0JBQW5DLEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQUVHLE1BQU07c0JBQS9CLE1BQU07Z0JBQ21CLE1BQU07c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtNYXRUb29sdGlwTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7TmF0dXJhbEZpeGVkQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi9maXhlZC1idXR0b24vZml4ZWQtYnV0dG9uLmNvbXBvbmVudCc7XG5cbnR5cGUgTW9kZWwgPSB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgcGVybWlzc2lvbnM/OiB7XG4gICAgICAgIGRlbGV0ZTogYm9vbGVhbjtcbiAgICB9O1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYXR1cmFsLWZpeGVkLWJ1dHRvbi1kZXRhaWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maXhlZC1idXR0b24tZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZml4ZWQtYnV0dG9uLWRldGFpbC5jb21wb25lbnQuc2NzcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmF0dXJhbEZpeGVkQnV0dG9uQ29tcG9uZW50LCBNYXRUb29sdGlwTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF0dXJhbEZpeGVkQnV0dG9uRGV0YWlsQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIGNhbkNoYW5nZSA9IHRydWU7XG4gICAgcHVibGljIGlzQ3JlYXRpb24gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgbW9kZWwoKTogTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gICAgfVxuXG4gICAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pXG4gICAgcHVibGljIHNldCBtb2RlbCh2YWx1ZTogTW9kZWwpIHtcbiAgICAgICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuY2FuQ2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmlzQ3JlYXRpb24gPSAhdGhpcy5fbW9kZWwuaWQ7XG4gICAgICAgICAgICB0aGlzLmNhbkNoYW5nZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbW9kZWwhOiBNb2RlbDtcblxuICAgIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgZm9ybSE6IEZvcm1Hcm91cDtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBjb25zdCByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG5cbiAgICAgICAgcm91dGUucGFyYW1zLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiAodGhpcy5jYW5DaGFuZ2UgPSB0cnVlKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrQ3JlYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb3JtLmVuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja0RlbGV0ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5lbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRlbGV0ZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKGlzQ3JlYXRpb24pIHtcbiAgICA8bmF0dXJhbC1maXhlZC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImNsaWNrQ3JlYXRlKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiXG4gICAgICAgIFtjb2xvcl09XCJmb3JtLnZhbGlkID8gJ2FjY2VudCcgOiAnd2FybidcIlxuICAgICAgICBjbGFzcz1cImRldGFpbC1zcGVlZC1kaWFsXCJcbiAgICAgICAgaWNvbj1cInNhdmVcIlxuICAgIC8+XG59XG5cbkBpZiAoIWlzQ3JlYXRpb24gJiYgKCFtb2RlbC5wZXJtaXNzaW9ucyB8fCBtb2RlbC5wZXJtaXNzaW9ucy5kZWxldGUpKSB7XG4gICAgPG5hdHVyYWwtZml4ZWQtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJjbGlja0RlbGV0ZSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uZGlzYWJsZWRcIlxuICAgICAgICBjbGFzcz1cImRldGFpbC1zcGVlZC1kaWFsXCJcbiAgICAgICAgY29sb3I9XCJ3YXJuXCJcbiAgICAgICAgaWNvbj1cImRlbGV0ZV9mb3JldmVyXCJcbiAgICAgICAgaTE4bi1tYXRUb29sdGlwXG4gICAgICAgIG1hdFRvb2x0aXA9XCJTdXBwcmltZXIgZMOpZmluaXRpdmVtZW50XCJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwibGVmdFwiXG4gICAgLz5cbn1cbiJdfQ==
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
export class HierarchicFlatNode {
|
|
2
|
+
node;
|
|
3
|
+
name;
|
|
4
|
+
level;
|
|
5
|
+
expandable;
|
|
6
|
+
selectable;
|
|
7
|
+
deselectable;
|
|
8
|
+
loading = false;
|
|
2
9
|
constructor(node, name, level = 0, expandable = false, selectable = true, deselectable = true) {
|
|
3
10
|
this.node = node;
|
|
4
11
|
this.name = name;
|
|
@@ -6,7 +13,6 @@ export class HierarchicFlatNode {
|
|
|
6
13
|
this.expandable = expandable;
|
|
7
14
|
this.selectable = selectable;
|
|
8
15
|
this.deselectable = deselectable;
|
|
9
|
-
this.loading = false;
|
|
10
16
|
}
|
|
11
17
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdC1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL21vZHVsZXMvaGllcmFyY2hpYy1zZWxlY3Rvci9jbGFzc2VzL2ZsYXQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0lBSVA7SUFDQTtJQUNBO0lBQ1Q7SUFDUztJQUNUO0lBUkosT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV2QixZQUNvQixJQUF5QixFQUN6QixJQUFZLEVBQ1osUUFBUSxDQUFDLEVBQ2xCLGFBQWEsS0FBSyxFQUNULGFBQWEsSUFBSSxFQUMxQixlQUFlLElBQUk7UUFMVixTQUFJLEdBQUosSUFBSSxDQUFxQjtRQUN6QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osVUFBSyxHQUFMLEtBQUssQ0FBSTtRQUNsQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ1QsZUFBVSxHQUFWLFVBQVUsQ0FBTztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBTztJQUMzQixDQUFDO0NBQ1AiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0hpZXJhcmNoaWNNb2RlbE5vZGV9IGZyb20gJy4vbW9kZWwtbm9kZSc7XG5cbmV4cG9ydCBjbGFzcyBIaWVyYXJjaGljRmxhdE5vZGUge1xuICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBub2RlOiBIaWVyYXJjaGljTW9kZWxOb2RlLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgbGV2ZWwgPSAwLFxuICAgICAgICBwdWJsaWMgZXhwYW5kYWJsZSA9IGZhbHNlLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0YWJsZSA9IHRydWUsXG4gICAgICAgIHB1YmxpYyBkZXNlbGVjdGFibGUgPSB0cnVlLFxuICAgICkge31cbn1cbiJdfQ==
|