@acrodata/gui 0.5.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -14
- package/button-toggle/button-toggle.d.ts +1 -1
- package/button-toggle/button-toggle.scss +1 -0
- package/button-toggle/icon.d.ts +1 -1
- package/esm2022/button-toggle/button-toggle.mjs +23 -15
- package/esm2022/button-toggle/icon.mjs +16 -11
- package/esm2022/field-group/field-group.mjs +7 -8
- package/esm2022/field-label/field-label.mjs +6 -7
- package/esm2022/file-uploader/file-uploader-config.mjs +9 -6
- package/esm2022/file-uploader/file-uploader.mjs +27 -15
- package/esm2022/fill/fill.mjs +25 -14
- package/esm2022/gui-form.mjs +57 -29
- package/esm2022/gui-icons.mjs +40 -10
- package/esm2022/gui-module.mjs +35 -35
- package/esm2022/gui-utils.mjs +10 -8
- package/esm2022/image-select/image-select.mjs +23 -14
- package/esm2022/inline-group/inline-group.mjs +6 -7
- package/esm2022/input-number/input-number.mjs +21 -13
- package/esm2022/input-text/input-text.mjs +21 -13
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/select/select.mjs +23 -14
- package/esm2022/slider/slider.mjs +25 -14
- package/esm2022/switch/switch.mjs +12 -13
- package/esm2022/textarea/textarea.mjs +21 -13
- package/fesm2022/acrodata-gui.mjs +592 -443
- package/fesm2022/acrodata-gui.mjs.map +1 -1
- package/field-group/field-group.d.ts +1 -1
- package/field-label/field-label.d.ts +1 -1
- package/file-uploader/file-uploader.d.ts +4 -3
- package/fill/fill.d.ts +1 -1
- package/gui-form.d.ts +3 -1
- package/gui-form.scss +1 -2
- package/gui-icons.d.ts +28 -1
- package/gui-module.d.ts +32 -35
- package/gui-utils.d.ts +2 -2
- package/image-select/image-select.d.ts +1 -1
- package/image-select/image-select.scss +2 -0
- package/inline-group/inline-group.d.ts +1 -1
- package/input-number/input-number.d.ts +1 -1
- package/input-text/input-text.d.ts +1 -1
- package/package.json +8 -8
- package/public-api.d.ts +1 -0
- package/select/select.d.ts +1 -1
- package/slider/slider.d.ts +1 -1
- package/switch/switch.d.ts +1 -1
- package/switch/switch.scss +7 -7
- package/textarea/textarea.d.ts +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,21 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@acrodata/gui)
|
|
4
4
|
[](https://github.com/acrodata/gui/blob/main/LICENSE)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
JSON powered GUI for configurable panels.
|
|
9
|
+
|
|
10
|
+
#### Quick links
|
|
11
|
+
|
|
12
|
+
[Documentation](https://acrodata.github.io/gui/) |
|
|
13
|
+
[Playground](https://acrodata.github.io/gui/playground)
|
|
14
|
+
|
|
15
|
+
## Compatibility
|
|
16
|
+
|
|
17
|
+
| Angular | @acrodata/gui |
|
|
18
|
+
| -------- | ------------- |
|
|
19
|
+
| >=17.0.0 | 1.x |
|
|
20
|
+
| >=16.0.0 | 0.x |
|
|
7
21
|
|
|
8
22
|
## Installation
|
|
9
23
|
|
|
@@ -13,18 +27,6 @@ npm install @angular/material @ng-matero/extensions @acrodata/gui --save
|
|
|
13
27
|
|
|
14
28
|
## Setup
|
|
15
29
|
|
|
16
|
-
```ts
|
|
17
|
-
import { GuiModule } from '@acrodata/gui';
|
|
18
|
-
|
|
19
|
-
@NgModule({
|
|
20
|
-
...
|
|
21
|
-
imports: [GuiModule, ...],
|
|
22
|
-
...
|
|
23
|
-
})
|
|
24
|
-
export class YourAppModule {
|
|
25
|
-
}
|
|
26
|
-
```
|
|
27
|
-
|
|
28
30
|
Define a theme with Angular Material's theming system. [More about theming](https://material.angular.io/guide/theming).
|
|
29
31
|
|
|
30
32
|
```scss
|
|
@@ -38,15 +40,25 @@ $theme: mat.define-light-theme(...);
|
|
|
38
40
|
@include gui.all-control-themes($theme);
|
|
39
41
|
```
|
|
40
42
|
|
|
43
|
+
🚨 If you use the Angular Material as default library and have included all component themes, there's no need to include the GUI themes anymore.
|
|
44
|
+
|
|
45
|
+
```diff
|
|
46
|
+
+ @include mat.all-component-themes($theme);
|
|
47
|
+
+ @include mtx.all-component-themes($theme);
|
|
48
|
+
- @include gui.all-control-themes($theme);
|
|
49
|
+
```
|
|
50
|
+
|
|
41
51
|
## Usage
|
|
42
52
|
|
|
43
53
|
```ts
|
|
44
54
|
import { Component } from '@angular/core';
|
|
45
|
-
import { GuiFields } from '@acrodata/gui';
|
|
55
|
+
import { GuiFields, GuiForm } from '@acrodata/gui';
|
|
46
56
|
|
|
47
57
|
@Component({
|
|
48
58
|
selector: 'your-app',
|
|
49
59
|
template: `<gui-form [config]="config" [model]="model" [form]="form"></gui-form>`,
|
|
60
|
+
standalone: true,
|
|
61
|
+
imports: [GuiForm],
|
|
50
62
|
})
|
|
51
63
|
export class YourAppComponent {
|
|
52
64
|
config: GuiFields = {
|
|
@@ -16,5 +16,5 @@ export declare class GuiButtonToggle implements ControlValueAccessor {
|
|
|
16
16
|
setDisabledState(isDisabled: boolean): void;
|
|
17
17
|
onValueChange(): void;
|
|
18
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<GuiButtonToggle, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GuiButtonToggle, "gui-button-toggle", never, { "config": { "alias": "config"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never,
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GuiButtonToggle, "gui-button-toggle", never, { "config": { "alias": "config"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
|
|
20
20
|
}
|
package/button-toggle/icon.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export declare class GuiIcon {
|
|
|
3
3
|
src: string;
|
|
4
4
|
isUrl(): boolean;
|
|
5
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<GuiIcon, never>;
|
|
6
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GuiIcon, "gui-icon", never, { "src": { "alias": "src"; "required": false; }; }, {}, never, never,
|
|
6
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GuiIcon, "gui-icon", never, { "src": { "alias": "src"; "required": false; }; }, {}, never, never, true, never>;
|
|
7
7
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
2
|
+
import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, } from '@angular/forms';
|
|
3
|
+
import { MatButtonToggle, MatButtonToggleGroup } from '@angular/material/button-toggle';
|
|
4
|
+
import { MatHint } from '@angular/material/form-field';
|
|
5
|
+
import { GuiFieldLabel } from '../field-label/field-label';
|
|
6
|
+
import { GuiFlexDirective } from '../gui-utils';
|
|
7
|
+
import { GuiIcon } from './icon';
|
|
3
8
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/
|
|
5
|
-
import * as i2 from "@angular/forms";
|
|
6
|
-
import * as i3 from "@angular/material/form-field";
|
|
7
|
-
import * as i4 from "@angular/material/button-toggle";
|
|
8
|
-
import * as i5 from "./icon";
|
|
9
|
-
import * as i6 from "../field-label/field-label";
|
|
10
|
-
import * as i7 from "../gui-utils";
|
|
9
|
+
import * as i1 from "@angular/forms";
|
|
11
10
|
export class GuiButtonToggle {
|
|
12
11
|
constructor(cdr) {
|
|
13
12
|
this.cdr = cdr;
|
|
@@ -34,16 +33,16 @@ export class GuiButtonToggle {
|
|
|
34
33
|
onValueChange() {
|
|
35
34
|
this.onChange(this.value);
|
|
36
35
|
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiButtonToggle, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.6", type: GuiButtonToggle, isStandalone: true, selector: "gui-button-toggle", inputs: { config: "config", disabled: "disabled" }, host: { classAttribute: "gui-field gui-button-toggle" }, providers: [
|
|
39
38
|
{
|
|
40
39
|
provide: NG_VALUE_ACCESSOR,
|
|
41
40
|
useExisting: forwardRef(() => GuiButtonToggle),
|
|
42
41
|
multi: true,
|
|
43
42
|
},
|
|
44
|
-
], ngImport: i0, template: "<mat-button-toggle-group [(ngModel)]=\"value\" [disabled]=\"disabled\" [multiple]=\"config.multiple\"\n
|
|
43
|
+
], ngImport: i0, template: "<mat-button-toggle-group [(ngModel)]=\"value\" [disabled]=\"disabled\" [multiple]=\"config.multiple\"\n (change)=\"onValueChange()\" hideSingleSelectionIndicator hideMultipleSelectionIndicator>\n @for (opt of config.options; track opt) {\n <mat-button-toggle disableRipple\n [class.gui-icon-toggle]=\"config.useIcon\"\n [flex]=\"opt.col\"\n [value]=\"opt.value\"\n [disabled]=\"opt.disabled\"\n [title]=\"config.useIcon ? opt.label : ''\">\n @if (config.useIcon) {\n <gui-icon [src]=\"opt.src!\" />\n } @else {\n {{opt.label}}\n }\n </mat-button-toggle>\n }\n</mat-button-toggle-group>\n@if (config.parentType==='inline') {\n <mat-hint>\n <gui-field-label [config]=\"config\" />\n </mat-hint>\n}\n", styles: [".gui-button-toggle{--mat-standard-button-toggle-height: 24px;--mat-standard-button-toggle-label-text-size: 12px}.gui-button-toggle .mat-button-toggle-group{flex-wrap:wrap;border-width:0}.gui-button-toggle .mat-button-toggle-appearance-standard{border-width:0!important;background-color:var(--mdc-filled-text-field-container-color)}.gui-button-toggle .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background-color:var(--mat-standard-button-toggle-selected-state-background-color)}.gui-icon-toggle.mat-button-toggle .mat-button-toggle-label-content{padding:0;line-height:normal}.gui-icon-toggle.mat-button-toggle-checked img{opacity:.64}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: GuiFlexDirective, selector: "[flex]", inputs: ["flex"] }, { kind: "component", type: GuiIcon, selector: "gui-icon", inputs: ["src"] }, { kind: "component", type: GuiFieldLabel, selector: "gui-field-label", inputs: ["config", "index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
45
44
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiButtonToggle, decorators: [{
|
|
47
46
|
type: Component,
|
|
48
47
|
args: [{ selector: 'gui-button-toggle', host: {
|
|
49
48
|
class: 'gui-field gui-button-toggle',
|
|
@@ -53,10 +52,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
|
|
|
53
52
|
useExisting: forwardRef(() => GuiButtonToggle),
|
|
54
53
|
multi: true,
|
|
55
54
|
},
|
|
56
|
-
],
|
|
57
|
-
|
|
55
|
+
], standalone: true, imports: [
|
|
56
|
+
ReactiveFormsModule,
|
|
57
|
+
FormsModule,
|
|
58
|
+
MatButtonToggleGroup,
|
|
59
|
+
MatButtonToggle,
|
|
60
|
+
MatHint,
|
|
61
|
+
GuiFlexDirective,
|
|
62
|
+
GuiIcon,
|
|
63
|
+
GuiFieldLabel,
|
|
64
|
+
], template: "<mat-button-toggle-group [(ngModel)]=\"value\" [disabled]=\"disabled\" [multiple]=\"config.multiple\"\n (change)=\"onValueChange()\" hideSingleSelectionIndicator hideMultipleSelectionIndicator>\n @for (opt of config.options; track opt) {\n <mat-button-toggle disableRipple\n [class.gui-icon-toggle]=\"config.useIcon\"\n [flex]=\"opt.col\"\n [value]=\"opt.value\"\n [disabled]=\"opt.disabled\"\n [title]=\"config.useIcon ? opt.label : ''\">\n @if (config.useIcon) {\n <gui-icon [src]=\"opt.src!\" />\n } @else {\n {{opt.label}}\n }\n </mat-button-toggle>\n }\n</mat-button-toggle-group>\n@if (config.parentType==='inline') {\n <mat-hint>\n <gui-field-label [config]=\"config\" />\n </mat-hint>\n}\n", styles: [".gui-button-toggle{--mat-standard-button-toggle-height: 24px;--mat-standard-button-toggle-label-text-size: 12px}.gui-button-toggle .mat-button-toggle-group{flex-wrap:wrap;border-width:0}.gui-button-toggle .mat-button-toggle-appearance-standard{border-width:0!important;background-color:var(--mdc-filled-text-field-container-color)}.gui-button-toggle .mat-button-toggle-appearance-standard.mat-button-toggle-checked{background-color:var(--mat-standard-button-toggle-selected-state-background-color)}.gui-icon-toggle.mat-button-toggle .mat-button-toggle-label-content{padding:0;line-height:normal}.gui-icon-toggle.mat-button-toggle-checked img{opacity:.64}\n"] }]
|
|
65
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { config: [{
|
|
58
66
|
type: Input
|
|
59
67
|
}], disabled: [{
|
|
60
68
|
type: Input
|
|
61
69
|
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXRvZ2dsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9idXR0b24tdG9nZ2xlL2J1dHRvbi10b2dnbGUudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvYnV0dG9uLXRvZ2dsZS9idXR0b24tdG9nZ2xlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7OztBQThCakMsTUFBTSxPQUFPLGVBQWU7SUFTMUIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFSakMsV0FBTSxHQUF3QixFQUFFLENBQUM7UUFDakMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQixVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUVsQixhQUFRLEdBQW1DLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUNwRCxjQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRUksQ0FBQztJQUU5QyxVQUFVLENBQUMsS0FBb0I7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBa0M7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOzhHQS9CVSxlQUFlO2tHQUFmLGVBQWUsNktBbkJmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQzlDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNwQ0gsK3ZCQXNCQSx5c0JEaUJJLG1CQUFtQixzSUFDbkIsV0FBVyx1UEFDWCxvQkFBb0IsMlJBQ3BCLGVBQWUsc1BBQ2YsT0FBTyw4RUFDUCxnQkFBZ0IscUVBQ2hCLE9BQU8sc0VBQ1AsYUFBYTs7MkZBR0osZUFBZTtrQkE1QjNCLFNBQVM7K0JBQ0UsbUJBQW1CLFFBR3ZCO3dCQUNKLEtBQUssRUFBRSw2QkFBNkI7cUJBQ3JDLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLGNBQ1csSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsYUFBYTtxQkFDZDtzRkFHUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlLCBNYXRCdXR0b25Ub2dnbGVHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTWF0SGludCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgR3VpRmllbGRMYWJlbCB9IGZyb20gJy4uL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsJztcbmltcG9ydCB7IEd1aUZsZXhEaXJlY3RpdmUgfSBmcm9tICcuLi9ndWktdXRpbHMnO1xuaW1wb3J0IHsgR3VpQmFzaWNWYWx1ZSwgR3VpQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBHdWlJY29uIH0gZnJvbSAnLi9pY29uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ3VpLWJ1dHRvbi10b2dnbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLXRvZ2dsZS5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2J1dHRvbi10b2dnbGUuc2NzcycsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2d1aS1maWVsZCBndWktYnV0dG9uLXRvZ2dsZScsXG4gIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEd1aUJ1dHRvblRvZ2dsZSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRCdXR0b25Ub2dnbGVHcm91cCxcbiAgICBNYXRCdXR0b25Ub2dnbGUsXG4gICAgTWF0SGludCxcbiAgICBHdWlGbGV4RGlyZWN0aXZlLFxuICAgIEd1aUljb24sXG4gICAgR3VpRmllbGRMYWJlbCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3VpQnV0dG9uVG9nZ2xlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBjb25maWc6IFBhcnRpYWw8R3VpQ29udHJvbD4gPSB7fTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICB2YWx1ZTogR3VpQmFzaWNWYWx1ZSA9ICcnO1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogR3VpQmFzaWNWYWx1ZSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBHdWlCYXNpY1ZhbHVlKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBHdWlCYXNpY1ZhbHVlKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvblZhbHVlQ2hhbmdlKCkge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gIH1cbn1cbiIsIjxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBbKG5nTW9kZWwpXT1cInZhbHVlXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW211bHRpcGxlXT1cImNvbmZpZy5tdWx0aXBsZVwiXG4gIChjaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgpXCIgaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvciBoaWRlTXVsdGlwbGVTZWxlY3Rpb25JbmRpY2F0b3I+XG4gIEBmb3IgKG9wdCBvZiBjb25maWcub3B0aW9uczsgdHJhY2sgb3B0KSB7XG4gICAgPG1hdC1idXR0b24tdG9nZ2xlIGRpc2FibGVSaXBwbGVcbiAgICAgIFtjbGFzcy5ndWktaWNvbi10b2dnbGVdPVwiY29uZmlnLnVzZUljb25cIlxuICAgICAgW2ZsZXhdPVwib3B0LmNvbFwiXG4gICAgICBbdmFsdWVdPVwib3B0LnZhbHVlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJvcHQuZGlzYWJsZWRcIlxuICAgICAgW3RpdGxlXT1cImNvbmZpZy51c2VJY29uID8gb3B0LmxhYmVsIDogJydcIj5cbiAgICAgIEBpZiAoY29uZmlnLnVzZUljb24pIHtcbiAgICAgICAgPGd1aS1pY29uIFtzcmNdPVwib3B0LnNyYyFcIiAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIHt7b3B0LmxhYmVsfX1cbiAgICAgIH1cbiAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICB9XG48L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxuQGlmIChjb25maWcucGFyZW50VHlwZT09PSdpbmxpbmUnKSB7XG4gIDxtYXQtaGludD5cbiAgICA8Z3VpLWZpZWxkLWxhYmVsIFtjb25maWddPVwiY29uZmlnXCIgLz5cbiAgPC9tYXQtaGludD5cbn1cbiJdfQ==
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
3
|
export class GuiIcon {
|
|
5
4
|
constructor() {
|
|
6
5
|
this.src = '';
|
|
@@ -8,21 +7,27 @@ export class GuiIcon {
|
|
|
8
7
|
isUrl() {
|
|
9
8
|
return /^(https?:\/\/|\.?\/)\w+/.test(this.src);
|
|
10
9
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.6", type: GuiIcon, isStandalone: true, selector: "gui-icon", inputs: { src: "src" }, host: { classAttribute: "gui-icon" }, ngImport: i0, template: `
|
|
12
|
+
@if (isUrl()) {
|
|
13
|
+
<img [src]="src" />
|
|
14
|
+
} @else {
|
|
15
|
+
<i [class]="src"></i>
|
|
16
|
+
}
|
|
17
|
+
`, isInline: true, styles: [".gui-icon{display:inline-flex}.gui-icon img,.gui-icon i{display:block;width:var(--mat-standard-button-toggle-height);height:var(--mat-standard-button-toggle-height);line-height:var(--mat-standard-button-toggle-height)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
16
18
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiIcon, decorators: [{
|
|
18
20
|
type: Component,
|
|
19
21
|
args: [{ selector: 'gui-icon', template: `
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
@if (isUrl()) {
|
|
23
|
+
<img [src]="src" />
|
|
24
|
+
} @else {
|
|
25
|
+
<i [class]="src"></i>
|
|
26
|
+
}
|
|
22
27
|
`, host: {
|
|
23
28
|
class: 'gui-icon',
|
|
24
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".gui-icon{display:inline-flex}.gui-icon img,.gui-icon i{display:block;width:var(--mat-standard-button-toggle-height);height:var(--mat-standard-button-toggle-height);line-height:var(--mat-standard-button-toggle-height)}\n"] }]
|
|
29
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, styles: [".gui-icon{display:inline-flex}.gui-icon img,.gui-icon i{display:block;width:var(--mat-standard-button-toggle-height);height:var(--mat-standard-button-toggle-height);line-height:var(--mat-standard-button-toggle-height)}\n"] }]
|
|
25
30
|
}], propDecorators: { src: [{
|
|
26
31
|
type: Input
|
|
27
32
|
}] } });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9idXR0b24tdG9nZ2xlL2ljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBbUI3RixNQUFNLE9BQU8sT0FBTztJQWpCcEI7UUFrQlcsUUFBRyxHQUFHLEVBQUUsQ0FBQztLQUtuQjtJQUhDLEtBQUs7UUFDSCxPQUFPLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0FMVSxPQUFPO2tHQUFQLE9BQU8sa0lBZlI7Ozs7OztHQU1UOzsyRkFTVSxPQUFPO2tCQWpCbkIsU0FBUzsrQkFDRSxVQUFVLFlBQ1Y7Ozs7OztHQU1ULFFBRUs7d0JBQ0osS0FBSyxFQUFFLFVBQVU7cUJBQ2xCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSTs4QkFHUCxHQUFHO3NCQUFYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ3VpLWljb24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoaXNVcmwoKSkge1xuICAgICAgPGltZyBbc3JjXT1cInNyY1wiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8aSBbY2xhc3NdPVwic3JjXCI+PC9pPlxuICAgIH1cbiAgYCxcbiAgc3R5bGVVcmw6ICcuL2ljb24uc2NzcycsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2d1aS1pY29uJyxcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEd1aUljb24ge1xuICBASW5wdXQoKSBzcmMgPSAnJztcblxuICBpc1VybCgpIHtcbiAgICByZXR1cm4gL14oaHR0cHM/OlxcL1xcL3xcXC4/XFwvKVxcdysvLnRlc3QodGhpcy5zcmMpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { GuiFieldLabel } from '../field-label/field-label';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../field-label/field-label";
|
|
5
4
|
export class GuiFieldGroup {
|
|
6
5
|
constructor(differs, cdr) {
|
|
7
6
|
this.differs = differs;
|
|
@@ -17,15 +16,15 @@ export class GuiFieldGroup {
|
|
|
17
16
|
this.cdr.markForCheck();
|
|
18
17
|
});
|
|
19
18
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiFieldGroup, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.6", type: GuiFieldGroup, isStandalone: true, selector: "gui-field-group", inputs: { config: "config" }, host: { classAttribute: "gui-field-group" }, ngImport: i0, template: "@if (config.parentType!=='inline' && config.name) {\n <gui-field-label [config]=\"config\" [index]=\"config.index\" />\n}\n<ng-content></ng-content>\n", styles: [".gui-field-group{display:flex;padding:4px 8px}.gui-field{--mat-form-field-container-text-size: 12px;display:inline-flex;flex:1;flex-wrap:wrap}.gui-field>.mat-mdc-form-field{flex:1;width:0;max-width:100%}.gui-field .mat-mdc-text-field-wrapper,.gui-field .mat-mdc-form-field-hint-wrapper{position:relative;padding:0 8px;border-radius:var(--mdc-filled-text-field-container-shape)}[dir=rtl] .gui-field .mat-mdc-text-field-wrapper,[dir=rtl] .gui-field .mat-mdc-form-field-hint-wrapper{padding:0 8px}.gui-field .mat-mdc-form-field-infix{min-height:auto;padding:0!important}.gui-field .mat-mdc-form-field-hint-spacer,.gui-field .mat-mdc-form-field-bottom-align:before,.gui-field .mdc-line-ripple{display:none}.gui-field .mat-mdc-icon-button{--mdc-icon-button-state-layer-size: 24px;--mdc-icon-button-icon-size: 14px;padding:0}.gui-field .mat-mdc-icon-button .mat-mdc-button-touch-target{width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size)}.gui-field .mat-icon{display:inline-flex;justify-content:center;align-items:center;padding:0!important}.gui-field .mat-icon svg{width:14px;height:14px}\n"], dependencies: [{ kind: "component", type: GuiFieldLabel, selector: "gui-field-label", inputs: ["config", "index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
22
21
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiFieldGroup, decorators: [{
|
|
24
23
|
type: Component,
|
|
25
24
|
args: [{ selector: 'gui-field-group', host: {
|
|
26
25
|
class: 'gui-field-group',
|
|
27
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "
|
|
28
|
-
}], ctorParameters:
|
|
26
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [GuiFieldLabel], template: "@if (config.parentType!=='inline' && config.name) {\n <gui-field-label [config]=\"config\" [index]=\"config.index\" />\n}\n<ng-content></ng-content>\n", styles: [".gui-field-group{display:flex;padding:4px 8px}.gui-field{--mat-form-field-container-text-size: 12px;display:inline-flex;flex:1;flex-wrap:wrap}.gui-field>.mat-mdc-form-field{flex:1;width:0;max-width:100%}.gui-field .mat-mdc-text-field-wrapper,.gui-field .mat-mdc-form-field-hint-wrapper{position:relative;padding:0 8px;border-radius:var(--mdc-filled-text-field-container-shape)}[dir=rtl] .gui-field .mat-mdc-text-field-wrapper,[dir=rtl] .gui-field .mat-mdc-form-field-hint-wrapper{padding:0 8px}.gui-field .mat-mdc-form-field-infix{min-height:auto;padding:0!important}.gui-field .mat-mdc-form-field-hint-spacer,.gui-field .mat-mdc-form-field-bottom-align:before,.gui-field .mdc-line-ripple{display:none}.gui-field .mat-mdc-icon-button{--mdc-icon-button-state-layer-size: 24px;--mdc-icon-button-icon-size: 14px;padding:0}.gui-field .mat-mdc-icon-button .mat-mdc-button-touch-target{width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size)}.gui-field .mat-icon{display:inline-flex;justify-content:center;align-items:center;padding:0!important}.gui-field .mat-icon svg{width:14px;height:14px}\n"] }]
|
|
27
|
+
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }], propDecorators: { config: [{
|
|
29
28
|
type: Input
|
|
30
29
|
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmllbGQtZ3JvdXAvZmllbGQtZ3JvdXAudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmllbGQtZ3JvdXAvZmllbGQtZ3JvdXAuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxLQUFLLEVBSUwsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFlM0QsTUFBTSxPQUFPLGFBQWE7SUFLeEIsWUFDVSxPQUF3QixFQUN4QixHQUFzQjtRQUR0QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQU52QixXQUFNLEdBQXdCLEVBQUUsQ0FBQztJQU92QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuQlUsYUFBYTtrR0FBYixhQUFhLHNKQzFCMUIseUpBSUEsZ3FDRG9CWSxhQUFhOzsyRkFFWixhQUFhO2tCQVp6QixTQUFTOytCQUNFLGlCQUFpQixRQUdyQjt3QkFDSixLQUFLLEVBQUUsaUJBQWlCO3FCQUN6QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGFBQWEsQ0FBQztvSEFHZixNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRG9DaGVjayxcbiAgSW5wdXQsXG4gIEtleVZhbHVlRGlmZmVyLFxuICBLZXlWYWx1ZURpZmZlcnMsXG4gIE9uSW5pdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3VpRmllbGRMYWJlbCB9IGZyb20gJy4uL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsJztcbmltcG9ydCB7IEd1aUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdndWktZmllbGQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtZ3JvdXAuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWVsZC1ncm91cC5zY3NzJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZ3VpLWZpZWxkLWdyb3VwJyxcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtHdWlGaWVsZExhYmVsXSxcbn0pXG5leHBvcnQgY2xhc3MgR3VpRmllbGRHcm91cCBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjayB7XG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxHdWlDb250cm9sPiA9IHt9O1xuXG4gIHByaXZhdGUgY29uZmlnRGlmZmVyPzogS2V5VmFsdWVEaWZmZXI8c3RyaW5nLCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWdEaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLmNvbmZpZykuY3JlYXRlKCk7XG4gIH1cblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuY29uZmlnRGlmZmVyPy5kaWZmKHRoaXMuY29uZmlnKTtcbiAgICBjaGFuZ2VzPy5mb3JFYWNoQ2hhbmdlZEl0ZW0ocmVjb3JkID0+IHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKGNvbmZpZy5wYXJlbnRUeXBlIT09J2lubGluZScgJiYgY29uZmlnLm5hbWUpIHtcbiAgPGd1aS1maWVsZC1sYWJlbCBbY29uZmlnXT1cImNvbmZpZ1wiIFtpbmRleF09XCJjb25maWcuaW5kZXhcIiAvPlxufVxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { MatTooltip } from '@angular/material/tooltip';
|
|
2
3
|
import { ejsTmpl } from '../gui-utils';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@angular/material/tooltip";
|
|
6
5
|
export class GuiFieldLabel {
|
|
7
6
|
constructor() {
|
|
8
7
|
this.config = {};
|
|
@@ -15,18 +14,18 @@ export class GuiFieldLabel {
|
|
|
15
14
|
this.styless =
|
|
16
15
|
(parentType === 'inline' && type !== 'inline') || type === 'group' || type === 'tabs';
|
|
17
16
|
}
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiFieldLabel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.6", type: GuiFieldLabel, isStandalone: true, selector: "gui-field-label", inputs: { config: "config", index: "index" }, host: { properties: { "class.gui-field-label": "!styless", "title": "title" } }, usesOnChanges: true, ngImport: i0, template: "@if (!config.description) {\n <span>{{title}}</span>\n} @else {\n <span\n [class.gui-field-label-with-description]=\"config.description\"\n [matTooltip]=\"config.description\"\n matTooltipPosition=\"above\"\n matTooltipClass=\"gui-field-label-tooltip\">{{title}}</span>\n}\n", styles: [".gui-field-label{display:inline-block;width:64px;height:24px;padding:0 4px;line-height:24px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gui-field-label-with-description{text-decoration:underline dotted;cursor:help}\n"], dependencies: [{ kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
20
19
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiFieldLabel, decorators: [{
|
|
22
21
|
type: Component,
|
|
23
22
|
args: [{ selector: 'gui-field-label', host: {
|
|
24
23
|
'[class.gui-field-label]': '!styless',
|
|
25
24
|
'[title]': 'title',
|
|
26
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "
|
|
25
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatTooltip], template: "@if (!config.description) {\n <span>{{title}}</span>\n} @else {\n <span\n [class.gui-field-label-with-description]=\"config.description\"\n [matTooltip]=\"config.description\"\n matTooltipPosition=\"above\"\n matTooltipClass=\"gui-field-label-tooltip\">{{title}}</span>\n}\n", styles: [".gui-field-label{display:inline-block;width:64px;height:24px;padding:0 4px;line-height:24px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gui-field-label-with-description{text-decoration:underline dotted;cursor:help}\n"] }]
|
|
27
26
|
}], propDecorators: { config: [{
|
|
28
27
|
type: Input
|
|
29
28
|
}], index: [{
|
|
30
29
|
type: Input
|
|
31
30
|
}] } });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbGFiZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmllbGQtbGFiZWwvZmllbGQtbGFiZWwudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmllbGQtbGFiZWwvZmllbGQtbGFiZWwuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQWdCdkMsTUFBTSxPQUFPLGFBQWE7SUFiMUI7UUFjVyxXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUkxQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsWUFBTyxHQUFHLEtBQUssQ0FBQztLQVFqQjtJQU5DLFdBQVc7UUFDVCxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2RixJQUFJLENBQUMsT0FBTztZQUNWLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDO0lBQzFGLENBQUM7OEdBZFUsYUFBYTtrR0FBYixhQUFhLCtOQ3hCMUIsa1NBU0EsaVNEYVksVUFBVTs7MkZBRVQsYUFBYTtrQkFiekIsU0FBUzsrQkFDRSxpQkFBaUIsUUFHckI7d0JBQ0oseUJBQXlCLEVBQUUsVUFBVTt3QkFDckMsU0FBUyxFQUFFLE9BQU87cUJBQ25CLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsVUFBVSxDQUFDOzhCQUdaLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBlanNUbXBsIH0gZnJvbSAnLi4vZ3VpLXV0aWxzJztcbmltcG9ydCB7IEd1aUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdndWktZmllbGQtbGFiZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtbGFiZWwuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWVsZC1sYWJlbC5zY3NzJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZ3VpLWZpZWxkLWxhYmVsXSc6ICchc3R5bGVzcycsXG4gICAgJ1t0aXRsZV0nOiAndGl0bGUnLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdFRvb2x0aXBdLFxufSlcbmV4cG9ydCBjbGFzcyBHdWlGaWVsZExhYmVsIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29uZmlnOiBQYXJ0aWFsPEd1aUNvbnRyb2w+ID0ge307XG5cbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG5cbiAgdGl0bGUgPSAnJztcblxuICBzdHlsZXNzID0gZmFsc2U7XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgeyBpbmRleCwgbmFtZSwgcGFyZW50VHlwZSwgdHlwZSB9ID0gdGhpcy5jb25maWc7XG4gICAgdGhpcy50aXRsZSA9IGluZGV4ICE9IG51bGwgJiYgIWlzTmFOKGluZGV4KSA/IGVqc1RtcGwobmFtZSB8fCAnJywgeyBpOiBpbmRleCB9KSA6IG5hbWU7XG4gICAgdGhpcy5zdHlsZXNzID1cbiAgICAgIChwYXJlbnRUeXBlID09PSAnaW5saW5lJyAmJiB0eXBlICE9PSAnaW5saW5lJykgfHwgdHlwZSA9PT0gJ2dyb3VwJyB8fCB0eXBlID09PSAndGFicyc7XG4gIH1cbn1cbiIsIkBpZiAoIWNvbmZpZy5kZXNjcmlwdGlvbikge1xuICA8c3Bhbj57e3RpdGxlfX08L3NwYW4+XG59IEBlbHNlIHtcbiAgPHNwYW5cbiAgICBbY2xhc3MuZ3VpLWZpZWxkLWxhYmVsLXdpdGgtZGVzY3JpcHRpb25dPVwiY29uZmlnLmRlc2NyaXB0aW9uXCJcbiAgICBbbWF0VG9vbHRpcF09XCJjb25maWcuZGVzY3JpcHRpb25cIlxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICBtYXRUb29sdGlwQ2xhc3M9XCJndWktZmllbGQtbGFiZWwtdG9vbHRpcFwiPnt7dGl0bGV9fTwvc3Bhbj5cbn1cbiJdfQ==
|
|
@@ -26,10 +26,13 @@ export class GuiFileUploaderConfig {
|
|
|
26
26
|
params: this.params,
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
30
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiFileUploaderConfig, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiFileUploaderConfig, providedIn: 'root' }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
33
|
-
type: Injectable
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiFileUploaderConfig, decorators: [{
|
|
33
|
+
type: Injectable,
|
|
34
|
+
args: [{
|
|
35
|
+
providedIn: 'root',
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRXBDOztXQUVHO1FBQ0gsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUVUOztXQUVHO1FBQ0gsV0FBTSxHQUFRLEVBQUUsQ0FBQztJQVZzQixDQUFDO0lBWXhDOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLElBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRTtZQUN6QyxjQUFjLEVBQUUsSUFBSTtZQUNwQixPQUFPLEVBQUUsUUFBUTtZQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F6QlUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHdWlGaWxlVXBsb2FkZXJDb25maWcge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgLyoqXG4gICAqICBUaGUgZmlsZSB1cGxvYWQgVVJMXG4gICAqL1xuICB1cmwgPSAnJztcblxuICAvKipcbiAgICogVGhlIGZpbGUgdXBsb2FkIHBhcmFtc1xuICAgKi9cbiAgcGFyYW1zOiBhbnkgPSB7fTtcblxuICAvKipcbiAgICogVGhlIEZpbGUgdXBsb2FkIEFQSVxuICAgKlxuICAgKiBAcGFyYW0gZmlsZSBmaWxlIGRhdGFcbiAgICogQHJldHVybnNcbiAgICovXG4gIHVwbG9hZChmaWxlOiBGb3JtRGF0YSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHRoaXMudXJsLCBmaWxlLCB7XG4gICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcbiAgICAgIG9ic2VydmU6ICdldmVudHMnLFxuICAgICAgcGFyYW1zOiB0aGlzLnBhcmFtcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { HttpResponse } from '@angular/common/http';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
|
|
3
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
+
import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule, } from '@angular/forms';
|
|
4
|
+
import { MatIconButton } from '@angular/material/button';
|
|
5
|
+
import { MatFormField, MatHint, MatPrefix, MatSuffix } from '@angular/material/form-field';
|
|
6
|
+
import { MatIcon } from '@angular/material/icon';
|
|
7
|
+
import { MatInput } from '@angular/material/input';
|
|
4
8
|
import { of } from 'rxjs';
|
|
5
9
|
import { catchError, finalize } from 'rxjs/operators';
|
|
10
|
+
import { GuiFieldLabel } from '../field-label/field-label';
|
|
6
11
|
import * as i0 from "@angular/core";
|
|
7
12
|
import * as i1 from "./file-uploader-config";
|
|
8
|
-
import * as i2 from "
|
|
13
|
+
import * as i2 from "../gui-icons";
|
|
9
14
|
import * as i3 from "@angular/forms";
|
|
10
|
-
import * as i4 from "@angular/material/form-field";
|
|
11
|
-
import * as i5 from "@angular/material/input";
|
|
12
|
-
import * as i6 from "@angular/material/icon";
|
|
13
|
-
import * as i7 from "@angular/material/button";
|
|
14
|
-
import * as i8 from "../field-label/field-label";
|
|
15
15
|
export class GuiFileUploader {
|
|
16
|
-
constructor(fileUploaderCfg, cdr) {
|
|
16
|
+
constructor(fileUploaderCfg, cdr, iconsRegistry) {
|
|
17
17
|
this.fileUploaderCfg = fileUploaderCfg;
|
|
18
18
|
this.cdr = cdr;
|
|
19
19
|
this.config = {};
|
|
@@ -26,6 +26,7 @@ export class GuiFileUploader {
|
|
|
26
26
|
this.url = '';
|
|
27
27
|
this.onChange = () => { };
|
|
28
28
|
this.onTouched = () => { };
|
|
29
|
+
iconsRegistry.add('link', 'clear', 'file', 'upload');
|
|
29
30
|
}
|
|
30
31
|
ngOnChanges(changes) {
|
|
31
32
|
if (changes['type']) {
|
|
@@ -90,16 +91,16 @@ export class GuiFileUploader {
|
|
|
90
91
|
this.onTouched();
|
|
91
92
|
this.fileChange.emit(this.url);
|
|
92
93
|
}
|
|
93
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiFileUploader, deps: [{ token: i1.GuiFileUploaderConfig }, { token: i0.ChangeDetectorRef }, { token: i2.GuiIconsRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.6", type: GuiFileUploader, isStandalone: true, selector: "gui-file-uploader", inputs: { config: "config", disabled: "disabled", type: "type", name: "name", accept: "accept" }, outputs: { fileChange: "fileChange" }, host: { classAttribute: "gui-field gui-file-uploader" }, providers: [
|
|
95
96
|
{
|
|
96
97
|
provide: NG_VALUE_ACCESSOR,
|
|
97
98
|
useExisting: forwardRef(() => GuiFileUploader),
|
|
98
99
|
multi: true,
|
|
99
100
|
},
|
|
100
|
-
], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field>\n <mat-icon matPrefix svgIcon=\"link\" />\n\n <input matInput type=\"text\" [ngModel]=\"url\" [disabled]=\"disabled\"\n
|
|
101
|
+
], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field>\n <mat-icon matPrefix svgIcon=\"link\" />\n\n <input matInput type=\"text\" [ngModel]=\"url\" [disabled]=\"disabled\"\n [placeholder]=\"config.placeholder||''\"\n (change)=\"onUrlChange($event)\" (blur)=\"onBlur()\">\n\n @if (url) {\n <button matSuffix mat-icon-button color=\"warn\" [disabled]=\"disabled\" (click)=\"onClear()\">\n <mat-icon svgIcon=\"clear\" />\n </button>\n }\n</mat-form-field>\n\n<figure class=\"gui-file-content\">\n @if (url) {\n @switch (type) {\n @case ('image') {\n <img [src]=\"url\" />\n }\n @case ('video') {\n <video [src]=\"url\"></video>\n }\n @case ('audio') {\n <audio [src]=\"url\" controls></audio>\n }\n @default {\n <mat-icon svgIcon=\"file\" />\n }\n }\n } @else {\n <div class=\"gui-file-placeholder\">\n <mat-icon svgIcon=\"upload\" />\n </div>\n }\n\n <input #fileInput type=\"file\" [accept]=\"accept\" [name]=\"name\"\n [disabled]=\"disabled\" (change)=\"onFileChange($event)\">\n</figure>\n\n@if (config.parentType==='inline') {\n <mat-hint>\n <gui-field-label [config]=\"config\" />\n </mat-hint>\n}\n", styles: [".gui-file-uploader{display:block;overflow:auto}.gui-file-uploader .mat-mdc-form-field{width:100%}.gui-file-uploader .gui-file-content{position:relative;display:flex;align-items:center;justify-content:center;height:120px;margin:4px 0 0;padding:4px;background-color:var(--mdc-filled-text-field-container-color);border:1px solid transparent;border-radius:4px}.gui-file-uploader .gui-file-content:hover,.gui-file-uploader .gui-file-content:focus-within{border-color:currentColor}.gui-file-uploader .gui-file-content img,.gui-file-uploader .gui-file-content video{width:100%;height:100%;object-fit:contain}.gui-file-uploader .gui-file-content input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.gui-file-uploader .gui-file-content .mat-icon svg{width:24px;height:24px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: GuiFieldLabel, selector: "gui-field-label", inputs: ["config", "index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
101
102
|
}
|
|
102
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: GuiFileUploader, decorators: [{
|
|
103
104
|
type: Component,
|
|
104
105
|
args: [{ selector: 'gui-file-uploader', host: {
|
|
105
106
|
class: 'gui-field gui-file-uploader',
|
|
@@ -109,8 +110,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
|
|
|
109
110
|
useExisting: forwardRef(() => GuiFileUploader),
|
|
110
111
|
multi: true,
|
|
111
112
|
},
|
|
112
|
-
],
|
|
113
|
-
|
|
113
|
+
], standalone: true, imports: [
|
|
114
|
+
ReactiveFormsModule,
|
|
115
|
+
FormsModule,
|
|
116
|
+
MatFormField,
|
|
117
|
+
MatIcon,
|
|
118
|
+
MatPrefix,
|
|
119
|
+
MatInput,
|
|
120
|
+
MatIconButton,
|
|
121
|
+
MatSuffix,
|
|
122
|
+
MatHint,
|
|
123
|
+
GuiFieldLabel,
|
|
124
|
+
], template: "<mat-form-field>\n <mat-icon matPrefix svgIcon=\"link\" />\n\n <input matInput type=\"text\" [ngModel]=\"url\" [disabled]=\"disabled\"\n [placeholder]=\"config.placeholder||''\"\n (change)=\"onUrlChange($event)\" (blur)=\"onBlur()\">\n\n @if (url) {\n <button matSuffix mat-icon-button color=\"warn\" [disabled]=\"disabled\" (click)=\"onClear()\">\n <mat-icon svgIcon=\"clear\" />\n </button>\n }\n</mat-form-field>\n\n<figure class=\"gui-file-content\">\n @if (url) {\n @switch (type) {\n @case ('image') {\n <img [src]=\"url\" />\n }\n @case ('video') {\n <video [src]=\"url\"></video>\n }\n @case ('audio') {\n <audio [src]=\"url\" controls></audio>\n }\n @default {\n <mat-icon svgIcon=\"file\" />\n }\n }\n } @else {\n <div class=\"gui-file-placeholder\">\n <mat-icon svgIcon=\"upload\" />\n </div>\n }\n\n <input #fileInput type=\"file\" [accept]=\"accept\" [name]=\"name\"\n [disabled]=\"disabled\" (change)=\"onFileChange($event)\">\n</figure>\n\n@if (config.parentType==='inline') {\n <mat-hint>\n <gui-field-label [config]=\"config\" />\n </mat-hint>\n}\n", styles: [".gui-file-uploader{display:block;overflow:auto}.gui-file-uploader .mat-mdc-form-field{width:100%}.gui-file-uploader .gui-file-content{position:relative;display:flex;align-items:center;justify-content:center;height:120px;margin:4px 0 0;padding:4px;background-color:var(--mdc-filled-text-field-container-color);border:1px solid transparent;border-radius:4px}.gui-file-uploader .gui-file-content:hover,.gui-file-uploader .gui-file-content:focus-within{border-color:currentColor}.gui-file-uploader .gui-file-content img,.gui-file-uploader .gui-file-content video{width:100%;height:100%;object-fit:contain}.gui-file-uploader .gui-file-content input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.gui-file-uploader .gui-file-content .mat-icon svg{width:24px;height:24px}\n"] }]
|
|
125
|
+
}], ctorParameters: () => [{ type: i1.GuiFileUploaderConfig }, { type: i0.ChangeDetectorRef }, { type: i2.GuiIconsRegistry }], propDecorators: { fileInput: [{
|
|
114
126
|
type: ViewChild,
|
|
115
127
|
args: ['fileInput']
|
|
116
128
|
}], config: [{
|
|
@@ -126,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
|
|
|
126
138
|
}], fileChange: [{
|
|
127
139
|
type: Output
|
|
128
140
|
}] } });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBNkJ0RCxNQUFNLE9BQU8sZUFBZTtJQW9CMUIsWUFDVSxlQUFzQyxFQUN0QyxHQUFzQjtRQUR0QixvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFDdEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFuQnZCLFdBQU0sR0FBd0IsRUFBRSxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsU0FBSSxHQUFtQixHQUFHLENBQUM7UUFDM0IsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNWLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFWCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVsRCxZQUFZO1FBQ1osUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUtELGFBQVEsR0FBNEIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzdDLGNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxD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LENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUVkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQzs4R0E5R1UsZUFBZTtrR0FBZixlQUFlLDhPQVJmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBQzlDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRix1SkM1Q0gsNHBDQW1DQTs7MkZEV2EsZUFBZTtrQkFqQjNCLFNBQVM7K0JBQ0UsbUJBQW1CLFFBR3ZCO3dCQUNKLEtBQUssRUFBRSw2QkFBNkI7cUJBQ3JDLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzRJQUd1QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBRWIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgR3VpRmlsZVVwbG9hZGVyQ29uZmlnIH0gZnJvbSAnLi9maWxlLXVwbG9hZGVyLWNvbmZpZyc7XG5pbXBvcnQgeyBHdWlDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlJztcblxuZXhwb3J0IHR5cGUgRmlsZVVwbG9hZFR5cGUgPSAnaW1hZ2UnIHwgJ3ZpZGVvJyB8ICdhdWRpbycgfCAnKic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVVwbG9hZENvbnRlbnQge1xuICBkYXRhOiBGaWxlO1xuICBwcm9ncmVzczogbnVtYmVyO1xuICBpblByb2dyZXNzOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdndWktZmlsZS11cGxvYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZGVyLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLXVwbG9hZGVyLnNjc3MnXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZ3VpLWZpZWxkIGd1aS1maWxlLXVwbG9hZGVyJyxcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gR3VpRmlsZVVwbG9hZGVyKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEd1aUZpbGVVcGxvYWRlciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxHdWlDb250cm9sPiA9IHt9O1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB0eXBlOiBGaWxlVXBsb2FkVHlwZSA9ICcqJztcbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuICBASW5wdXQoKSBhY2NlcHQgPSAnJztcblxuICBAT3V0cHV0KCkgZmlsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIG1lZGlhIHNyY1xuICB1cmwgPSAnJztcblxuICAvLyBmaWxlIHRvIHVwbG9hZFxuICBmaWxlITogRmlsZVVwbG9hZENvbnRlbnQ7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZpbGVVcGxvYWRlckNmZzogR3VpRmlsZVVwbG9hZGVyQ29uZmlnLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10pIHtcbiAgICAgIHRoaXMuYWNjZXB0ID0gdGhpcy50eXBlICsgJy8qJztcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVybCA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHVwbG9hZChmaWxlOiBGaWxlVXBsb2FkQ29udGVudCkge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZS5kYXRhIHx8ICcnKTtcblxuICAgIGZpbGUuaW5Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICB0aGlzLmZpbGVVcGxvYWRlckNmZ1xuICAgICAgLnVwbG9hZChmb3JtRGF0YSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBmaWxlLmluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm4gb2YoYCR7ZmlsZS5kYXRhPy5uYW1lIHx8ICdGaWxlJ30gdXBsb2FkIGZhaWxlZC5gKTtcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHt9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAocmVzIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlICYmIHJlcy5ib2R5KSB7XG4gICAgICAgICAgdGhpcy51cmwgPSByZXMuYm9keS5kYXRhO1xuXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnVybCk7XG4gICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcblxuICAgICAgICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMudXJsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb25VcmxDaGFuZ2UoZTogRXZlbnQpIHtcbiAgICB0aGlzLnVybCA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcblxuICAgIHRoaXMub25DaGFuZ2UodGhpcy51cmwpO1xuXG4gICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQodGhpcy51cmwpO1xuICB9XG5cbiAgb25GaWxlQ2hhbmdlKGU6IEV2ZW50KSB7XG4gICAgdGhpcy5maWxlID0ge1xuICAgICAgZGF0YTogKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzIVswXSxcbiAgICAgIGluUHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgcHJvZ3Jlc3M6IDAsXG4gICAgfTtcblxuICAgIHRoaXMudXBsb2FkKHRoaXMuZmlsZSk7XG5cbiAgICAvLyByZXNldCBpbnB1dCB2YWx1ZVxuICAgIChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSA9ICcnO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBvbkNsZWFyKCkge1xuICAgIHRoaXMudXJsID0gJyc7XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudXJsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQodGhpcy51cmwpO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtaWNvbiBtYXRQcmVmaXggc3ZnSWNvbj1cImxpbmtcIiAvPlxuXG4gIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiIFtuZ01vZGVsXT1cInVybFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLnBsYWNlaG9sZGVyfHwnJ1wiXG4gICAgICAgICAoY2hhbmdlKT1cIm9uVXJsQ2hhbmdlKCRldmVudClcIiAoYmx1cik9XCJvbkJsdXIoKVwiPlxuXG4gIDxidXR0b24gKm5nSWY9XCJ1cmxcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsaWNrKT1cIm9uQ2xlYXIoKVwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY2xvc2VcIiAvPlxuICA8L2J1dHRvbj5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjxmaWd1cmUgY2xhc3M9XCJndWktZmlsZS1jb250ZW50XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1cmxcIiBbbmdTd2l0Y2hdPVwidHlwZVwiPlxuICAgIDxpbWcgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZSdcIiBbc3JjXT1cInVybFwiIC8+XG5cbiAgICA8dmlkZW8gKm5nU3dpdGNoQ2FzZT1cIid2aWRlbydcIiBbc3JjXT1cInVybFwiPjwvdmlkZW8+XG5cbiAgICA8YXVkaW8gKm5nU3dpdGNoQ2FzZT1cIidhdWRpbydcIiBbc3JjXT1cInVybFwiIGNvbnRyb2xzPjwvYXVkaW8+XG5cbiAgICA8bWF0LWljb24gKm5nU3dpdGNoRGVmYXVsdCBzdmdJY29uPVwiZmlsZV9vdXRsaW5lXCIgLz5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiAqbmdJZj1cIiF1cmxcIiBjbGFzcz1cImd1aS1maWxlLXBsYWNlaG9sZGVyXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJmaWxlX3VwbG9hZFwiIC8+XG4gIDwvZGl2PlxuXG4gIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgW2FjY2VwdF09XCJhY2NlcHRcIiBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIj5cbjwvZmlndXJlPlxuXG48bWF0LWhpbnQgKm5nSWY9XCJjb25maWcucGFyZW50VHlwZT09PSdpbmxpbmUnXCI+XG4gIDxndWktZmllbGQtbGFiZWwgW2NvbmZpZ109XCJjb25maWdcIiAvPlxuPC9tYXQtaGludD5cbiJdfQ==
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUEyQzNELE1BQU0sT0FBTyxlQUFlO0lBb0IxQixZQUNVLGVBQXNDLEVBQ3RDLEdBQXNCLEVBQzlCLGFBQStCO1FBRnZCLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQUN0QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtR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QUFtQixRQUd2Qjt3QkFDSixLQUFLLEVBQUUsNkJBQTZCO3FCQUNyQyxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxhQUFhO3FCQUNkO3lKQUd1QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBRWIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1zTW9kdWxlLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEhpbnQsIE1hdFByZWZpeCwgTWF0U3VmZml4IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgR3VpRmllbGRMYWJlbCB9IGZyb20gJy4uL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsJztcbmltcG9ydCB7IEd1aUljb25zUmVnaXN0cnkgfSBmcm9tICcuLi9ndWktaWNvbnMnO1xuaW1wb3J0IHsgR3VpQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBHdWlGaWxlVXBsb2FkZXJDb25maWcgfSBmcm9tICcuL2ZpbGUtdXBsb2FkZXItY29uZmlnJztcblxuZXhwb3J0IHR5cGUgRmlsZVVwbG9hZFR5cGUgPSAnaW1hZ2UnIHwgJ3ZpZGVvJyB8ICdhdWRpbycgfCAnKic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVVwbG9hZENvbnRlbnQge1xuICBkYXRhOiBGaWxlO1xuICBwcm9ncmVzczogbnVtYmVyO1xuICBpblByb2dyZXNzOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdndWktZmlsZS11cGxvYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZGVyLmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmlsZS11cGxvYWRlci5zY3NzJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZ3VpLWZpZWxkIGd1aS1maWxlLXVwbG9hZGVyJyxcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gR3VpRmlsZVVwbG9hZGVyKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZCxcbiAgICBNYXRJY29uLFxuICAgIE1hdFByZWZpeCxcbiAgICBNYXRJbnB1dCxcbiAgICBNYXRJY29uQnV0dG9uLFxuICAgIE1hdFN1ZmZpeCxcbiAgICBNYXRIaW50LFxuICAgIEd1aUZpZWxkTGFiZWwsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEd1aUZpbGVVcGxvYWRlciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxHdWlDb250cm9sPiA9IHt9O1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB0eXBlOiBGaWxlVXBsb2FkVHlwZSA9ICcqJztcbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuICBASW5wdXQoKSBhY2NlcHQgPSAnJztcblxuICBAT3V0cHV0KCkgZmlsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIG1lZGlhIHNyY1xuICB1cmwgPSAnJztcblxuICAvLyBmaWxlIHRvIHVwbG9hZFxuICBmaWxlITogRmlsZVVwbG9hZENvbnRlbnQ7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZpbGVVcGxvYWRlckNmZzogR3VpRmlsZVVwbG9hZGVyQ29uZmlnLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBpY29uc1JlZ2lzdHJ5OiBHdWlJY29uc1JlZ2lzdHJ5XG4gICkge1xuICAgIGljb25zUmVnaXN0cnkuYWRkKCdsaW5rJywgJ2NsZWFyJywgJ2ZpbGUnLCAndXBsb2FkJyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3R5cGUnXSkge1xuICAgICAgdGhpcy5hY2NlcHQgPSB0aGlzLnR5cGUgKyAnLyonO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudXJsID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdXBsb2FkKGZpbGU6IEZpbGVVcGxvYWRDb250ZW50KSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlLmRhdGEgfHwgJycpO1xuXG4gICAgZmlsZS5pblByb2dyZXNzID0gdHJ1ZTtcblxuICAgIHRoaXMuZmlsZVVwbG9hZGVyQ2ZnXG4gICAgICAudXBsb2FkKGZvcm1EYXRhKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGZpbGUuaW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybiBvZihgJHtmaWxlLmRhdGE/Lm5hbWUgfHwgJ0ZpbGUnfSB1cGxvYWQgZmFpbGVkLmApO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge30pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UgJiYgcmVzLmJvZHkpIHtcbiAgICAgICAgICB0aGlzLnVybCA9IHJlcy5ib2R5LmRhdGE7XG5cbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudXJsKTtcbiAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gICAgICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQodGhpcy51cmwpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBvblVybENoYW5nZShlOiBFdmVudCkge1xuICAgIHRoaXMudXJsID0gKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnVybCk7XG5cbiAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdCh0aGlzLnVybCk7XG4gIH1cblxuICBvbkZpbGVDaGFuZ2UoZTogRXZlbnQpIHtcbiAgICB0aGlzLmZpbGUgPSB7XG4gICAgICBkYXRhOiAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXMhWzBdLFxuICAgICAgaW5Qcm9ncmVzczogZmFsc2UsXG4gICAgICBwcm9ncmVzczogMCxcbiAgICB9O1xuXG4gICAgdGhpcy51cGxvYWQodGhpcy5maWxlKTtcblxuICAgIC8vIHJlc2V0IGlucHV0IHZhbHVlXG4gICAgKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gJyc7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIG9uQ2xlYXIoKSB7XG4gICAgdGhpcy51cmwgPSAnJztcblxuICAgIHRoaXMub25DaGFuZ2UodGhpcy51cmwpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgICB0aGlzLmZpbGVDaGFuZ2UuZW1pdCh0aGlzLnVybCk7XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZD5cbiAgPG1hdC1pY29uIG1hdFByZWZpeCBzdmdJY29uPVwibGlua1wiIC8+XG5cbiAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgW25nTW9kZWxdPVwidXJsXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLnBsYWNlaG9sZGVyfHwnJ1wiXG4gICAgKGNoYW5nZSk9XCJvblVybENoYW5nZSgkZXZlbnQpXCIgKGJsdXIpPVwib25CbHVyKClcIj5cblxuICBAaWYgKHVybCkge1xuICAgIDxidXR0b24gbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cIndhcm5cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwib25DbGVhcigpXCI+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNsZWFyXCIgLz5cbiAgICA8L2J1dHRvbj5cbiAgfVxuPC9tYXQtZm9ybS1maWVsZD5cblxuPGZpZ3VyZSBjbGFzcz1cImd1aS1maWxlLWNvbnRlbnRcIj5cbiAgQGlmICh1cmwpIHtcbiAgICBAc3dpdGNoICh0eXBlKSB7XG4gICAgICBAY2FzZSAoJ2ltYWdlJykge1xuICAgICAgICA8aW1nIFtzcmNdPVwidXJsXCIgLz5cbiAgICAgIH1cbiAgICAgIEBjYXNlICgndmlkZW8nKSB7XG4gICAgICAgIDx2aWRlbyBbc3JjXT1cInVybFwiPjwvdmlkZW8+XG4gICAgICB9XG4gICAgICBAY2FzZSAoJ2F1ZGlvJykge1xuICAgICAgICA8YXVkaW8gW3NyY109XCJ1cmxcIiBjb250cm9scz48L2F1ZGlvPlxuICAgICAgfVxuICAgICAgQGRlZmF1bHQge1xuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImZpbGVcIiAvPlxuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImd1aS1maWxlLXBsYWNlaG9sZGVyXCI+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInVwbG9hZFwiIC8+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8aW5wdXQgI2ZpbGVJbnB1dCB0eXBlPVwiZmlsZVwiIFthY2NlcHRdPVwiYWNjZXB0XCIgW25hbWVdPVwibmFtZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiPlxuPC9maWd1cmU+XG5cbkBpZiAoY29uZmlnLnBhcmVudFR5cGU9PT0naW5saW5lJykge1xuICA8bWF0LWhpbnQ+XG4gICAgPGd1aS1maWVsZC1sYWJlbCBbY29uZmlnXT1cImNvbmZpZ1wiIC8+XG4gIDwvbWF0LWhpbnQ+XG59XG4iXX0=
|