@acrodata/gui 1.1.1 → 2.0.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 +6 -5
- package/button-toggle/button-toggle.scss +5 -6
- package/esm2022/button-toggle/button-toggle.mjs +7 -8
- package/esm2022/button-toggle/icon.mjs +3 -3
- package/esm2022/field-group/field-group.mjs +5 -5
- package/esm2022/field-label/field-label.mjs +5 -5
- package/esm2022/file-uploader/file-uploader-config.mjs +3 -3
- package/esm2022/file-uploader/file-uploader.mjs +9 -8
- package/esm2022/fill/fill.mjs +9 -8
- package/esm2022/gui-form.mjs +7 -5
- package/esm2022/gui-icons.mjs +3 -3
- package/esm2022/gui-module.mjs +10 -5
- package/esm2022/gui-utils.mjs +6 -6
- package/esm2022/icon-button-wrapper/icon-button-wrapper.mjs +13 -0
- package/esm2022/image-select/image-select.mjs +7 -8
- package/esm2022/inline-group/inline-group.mjs +5 -5
- package/esm2022/input-number/input-number.mjs +7 -16
- package/esm2022/input-text/input-text.mjs +7 -16
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/select/select.mjs +7 -8
- package/esm2022/slider/slider.mjs +7 -8
- package/esm2022/switch/switch.mjs +7 -7
- package/esm2022/textarea/textarea.mjs +7 -16
- package/fesm2022/acrodata-gui.mjs +105 -120
- package/fesm2022/acrodata-gui.mjs.map +1 -1
- package/field-group/field-group.scss +4 -29
- package/field-label/field-label.scss +4 -4
- package/file-uploader/file-uploader.scss +6 -6
- package/fill/fill.scss +4 -4
- package/gui-form.scss +29 -41
- package/gui-module.d.ts +3 -2
- package/icon-button-wrapper/icon-button-wrapper.d.ts +5 -0
- package/icon-button-wrapper/icon-button-wrapper.scss +26 -0
- package/image-select/image-select.scss +10 -10
- package/inline-group/inline-group.scss +3 -3
- package/package.json +7 -7
- package/public-api.d.ts +1 -0
- package/select/select.scss +7 -7
- package/slider/slider.scss +6 -6
- package/switch/switch.scss +14 -7
- package/textarea/textarea.scss +1 -1
package/README.md
CHANGED
|
@@ -14,10 +14,11 @@ JSON powered GUI for configurable panels.
|
|
|
14
14
|
|
|
15
15
|
## Compatibility
|
|
16
16
|
|
|
17
|
-
| Angular | @acrodata/gui |
|
|
18
|
-
| -------- | ------------- |
|
|
19
|
-
| >=
|
|
20
|
-
| >=
|
|
17
|
+
| Angular | @acrodata/gui | Theming |
|
|
18
|
+
| -------- | ------------- | ------- |
|
|
19
|
+
| >=18.0.0 | 2.x | M2, M3 |
|
|
20
|
+
| >=17.0.0 | 1.x | M2 |
|
|
21
|
+
| >=16.0.0 | 0.x | M2 |
|
|
21
22
|
|
|
22
23
|
## Installation
|
|
23
24
|
|
|
@@ -35,7 +36,7 @@ Define a theme with Angular Material's theming system. [More about theming](http
|
|
|
35
36
|
|
|
36
37
|
@include mat.core();
|
|
37
38
|
|
|
38
|
-
$theme: mat.define-
|
|
39
|
+
$theme: mat.define-theme(...);
|
|
39
40
|
|
|
40
41
|
@include gui.all-control-themes($theme);
|
|
41
42
|
```
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
.gui-button-toggle {
|
|
2
|
-
--mat-standard-button-toggle-
|
|
3
|
-
--mat-standard-button-toggle-
|
|
2
|
+
--mat-standard-button-toggle-shape: 0.25rem;
|
|
3
|
+
--mat-standard-button-toggle-height: 1.5rem;
|
|
4
|
+
--mat-standard-button-toggle-label-text-size: 0.75rem;
|
|
5
|
+
--mat-standard-button-toggle-label-text-weight: 400;
|
|
6
|
+
--mat-standard-button-toggle-label-text-line-height: var(--mat-standard-button-toggle-height);
|
|
4
7
|
|
|
5
8
|
.mat-button-toggle-group {
|
|
6
9
|
flex-wrap: wrap;
|
|
@@ -10,10 +13,6 @@
|
|
|
10
13
|
.mat-button-toggle-appearance-standard {
|
|
11
14
|
border-width: 0 !important;
|
|
12
15
|
background-color: var(--mdc-filled-text-field-container-color);
|
|
13
|
-
|
|
14
|
-
&.mat-button-toggle-checked {
|
|
15
|
-
background-color: var(--mat-standard-button-toggle-selected-state-background-color);
|
|
16
|
-
}
|
|
17
16
|
}
|
|
18
17
|
}
|
|
19
18
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
|
-
import { FormsModule, NG_VALUE_ACCESSOR
|
|
2
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { MatButtonToggle, MatButtonToggleGroup } from '@angular/material/button-toggle';
|
|
4
4
|
import { MatHint } from '@angular/material/form-field';
|
|
5
5
|
import { GuiFieldLabel } from '../field-label/field-label';
|
|
@@ -33,16 +33,16 @@ export class GuiButtonToggle {
|
|
|
33
33
|
onValueChange() {
|
|
34
34
|
this.onChange(this.value);
|
|
35
35
|
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
37
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiButtonToggle, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: GuiButtonToggle, isStandalone: true, selector: "gui-button-toggle", inputs: { config: "config", disabled: "disabled" }, host: { classAttribute: "gui-field gui-button-toggle" }, providers: [
|
|
38
38
|
{
|
|
39
39
|
provide: NG_VALUE_ACCESSOR,
|
|
40
40
|
useExisting: forwardRef(() => GuiButtonToggle),
|
|
41
41
|
multi: true,
|
|
42
42
|
},
|
|
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:
|
|
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-shape: .25rem;--mat-standard-button-toggle-height: 1.5rem;--mat-standard-button-toggle-label-text-size: .75rem;--mat-standard-button-toggle-label-text-weight: 400;--mat-standard-button-toggle-label-text-line-height: var(--mat-standard-button-toggle-height)}.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-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: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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", "disabledInteractive", "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", "disabledInteractive"], 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 }); }
|
|
44
44
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiButtonToggle, decorators: [{
|
|
46
46
|
type: Component,
|
|
47
47
|
args: [{ selector: 'gui-button-toggle', host: {
|
|
48
48
|
class: 'gui-field gui-button-toggle',
|
|
@@ -53,7 +53,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
53
53
|
multi: true,
|
|
54
54
|
},
|
|
55
55
|
], standalone: true, imports: [
|
|
56
|
-
ReactiveFormsModule,
|
|
57
56
|
FormsModule,
|
|
58
57
|
MatButtonToggleGroup,
|
|
59
58
|
MatButtonToggle,
|
|
@@ -61,10 +60,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
61
60
|
GuiFlexDirective,
|
|
62
61
|
GuiIcon,
|
|
63
62
|
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:
|
|
63
|
+
], 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-shape: .25rem;--mat-standard-button-toggle-height: 1.5rem;--mat-standard-button-toggle-label-text-size: .75rem;--mat-standard-button-toggle-label-text-weight: 400;--mat-standard-button-toggle-label-text-line-height: var(--mat-standard-button-toggle-height)}.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-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
64
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { config: [{
|
|
66
65
|
type: Input
|
|
67
66
|
}], disabled: [{
|
|
68
67
|
type: Input
|
|
69
68
|
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXRvZ2dsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9idXR0b24tdG9nZ2xlL2J1dHRvbi10b2dnbGUudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvYnV0dG9uLXRvZ2dsZS9idXR0b24tdG9nZ2xlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQzs7O0FBNkJqQyxNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVJqQyxXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFVBQUssR0FBa0IsRUFBRSxDQUFDO1FBRWxCLGFBQVEsR0FBbUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ3BELGNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFSSxDQUFDO0lBRTlDLFVBQVUsQ0FBQyxLQUFvQjtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFrQztRQUNqRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OEdBL0JVLGVBQWU7a0dBQWYsZUFBZSw2S0FsQmY7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQy9CSCwrdkJBc0JBLG11QkRZSSxXQUFXLCtWQUNYLG9CQUFvQixrVEFDcEIsZUFBZSw2UUFDZixPQUFPLDhFQUNQLGdCQUFnQixxRUFDaEIsT0FBTyxzRUFDUCxhQUFhOzsyRkFHSixlQUFlO2tCQTNCM0IsU0FBUzsrQkFDRSxtQkFBbUIsUUFHdkI7d0JBQ0osS0FBSyxFQUFFLDZCQUE2QjtxQkFDckMsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsYUFBYTtxQkFDZDtzRkFHUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZSwgTWF0QnV0dG9uVG9nZ2xlR3JvdXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IE1hdEhpbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEd1aUZpZWxkTGFiZWwgfSBmcm9tICcuLi9maWVsZC1sYWJlbC9maWVsZC1sYWJlbCc7XG5pbXBvcnQgeyBHdWlGbGV4RGlyZWN0aXZlIH0gZnJvbSAnLi4vZ3VpLXV0aWxzJztcbmltcG9ydCB7IEd1aUJhc2ljVmFsdWUsIEd1aUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3VpSWNvbiB9IGZyb20gJy4vaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2d1aS1idXR0b24tdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi10b2dnbGUuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9idXR0b24tdG9nZ2xlLnNjc3MnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdndWktZmllbGQgZ3VpLWJ1dHRvbi10b2dnbGUnLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHdWlCdXR0b25Ub2dnbGUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZUdyb3VwLFxuICAgIE1hdEJ1dHRvblRvZ2dsZSxcbiAgICBNYXRIaW50LFxuICAgIEd1aUZsZXhEaXJlY3RpdmUsXG4gICAgR3VpSWNvbixcbiAgICBHdWlGaWVsZExhYmVsLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHdWlCdXR0b25Ub2dnbGUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxHdWlDb250cm9sPiA9IHt9O1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHZhbHVlOiBHdWlCYXNpY1ZhbHVlID0gJyc7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBHdWlCYXNpY1ZhbHVlKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IEd1aUJhc2ljVmFsdWUpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IEd1aUJhc2ljVmFsdWUpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UoKSB7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxufVxuIiwiPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFsobmdNb2RlbCldPVwidmFsdWVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbbXVsdGlwbGVdPVwiY29uZmlnLm11bHRpcGxlXCJcbiAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKClcIiBoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yIGhpZGVNdWx0aXBsZVNlbGVjdGlvbkluZGljYXRvcj5cbiAgQGZvciAob3B0IG9mIGNvbmZpZy5vcHRpb25zOyB0cmFjayBvcHQpIHtcbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUgZGlzYWJsZVJpcHBsZVxuICAgICAgW2NsYXNzLmd1aS1pY29uLXRvZ2dsZV09XCJjb25maWcudXNlSWNvblwiXG4gICAgICBbZmxleF09XCJvcHQuY29sXCJcbiAgICAgIFt2YWx1ZV09XCJvcHQudmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9wdC5kaXNhYmxlZFwiXG4gICAgICBbdGl0bGVdPVwiY29uZmlnLnVzZUljb24gPyBvcHQubGFiZWwgOiAnJ1wiPlxuICAgICAgQGlmIChjb25maWcudXNlSWNvbikge1xuICAgICAgICA8Z3VpLWljb24gW3NyY109XCJvcHQuc3JjIVwiIC8+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAge3tvcHQubGFiZWx9fVxuICAgICAgfVxuICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gIH1cbjwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG5AaWYgKGNvbmZpZy5wYXJlbnRUeXBlPT09J2lubGluZScpIHtcbiAgPG1hdC1oaW50PlxuICAgIDxndWktZmllbGQtbGFiZWwgW2NvbmZpZ109XCJjb25maWdcIiAvPlxuICA8L21hdC1oaW50PlxufVxuIl19
|
|
@@ -7,8 +7,8 @@ export class GuiIcon {
|
|
|
7
7
|
isUrl() {
|
|
8
8
|
return /^(https?:\/\/|\.?\/)\w+/.test(this.src);
|
|
9
9
|
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
11
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: GuiIcon, isStandalone: true, selector: "gui-icon", inputs: { src: "src" }, host: { classAttribute: "gui-icon" }, ngImport: i0, template: `
|
|
12
12
|
@if (isUrl()) {
|
|
13
13
|
<img [src]="src" />
|
|
14
14
|
} @else {
|
|
@@ -16,7 +16,7 @@ export class GuiIcon {
|
|
|
16
16
|
}
|
|
17
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 }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiIcon, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'gui-icon', template: `
|
|
22
22
|
@if (isUrl()) {
|
|
@@ -16,15 +16,15 @@ export class GuiFieldGroup {
|
|
|
16
16
|
this.cdr.markForCheck();
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", 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: "18.2.0", 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:.25rem .5rem}.gui-field{--mat-form-field-container-text-size: .75rem;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 .5rem;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 .5rem}.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}\n"], dependencies: [{ kind: "component", type: GuiFieldLabel, selector: "gui-field-label", inputs: ["config", "index"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiFieldGroup, decorators: [{
|
|
23
23
|
type: Component,
|
|
24
24
|
args: [{ selector: 'gui-field-group', host: {
|
|
25
25
|
class: 'gui-field-group',
|
|
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
|
|
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:.25rem .5rem}.gui-field{--mat-form-field-container-text-size: .75rem;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 .5rem;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 .5rem}.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}\n"] }]
|
|
27
27
|
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }], propDecorators: { config: [{
|
|
28
28
|
type: Input
|
|
29
29
|
}] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmllbGQtZ3JvdXAvZmllbGQtZ3JvdXAudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmllbGQtZ3JvdXAvZmllbGQtZ3JvdXAuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxLQUFLLEVBSUwsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFlM0QsTUFBTSxPQUFPLGFBQWE7SUFLeEIsWUFDVSxPQUF3QixFQUN4QixHQUFzQjtRQUR0QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQU52QixXQUFNLEdBQXdCLEVBQUUsQ0FBQztJQU92QyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuQlUsYUFBYTtrR0FBYixhQUFhLHNKQzFCMUIseUpBSUEscXdCRG9CWSxhQUFhOzsyRkFFWixhQUFhO2tCQVp6QixTQUFTOytCQUNFLGlCQUFpQixRQUdyQjt3QkFDSixLQUFLLEVBQUUsaUJBQWlCO3FCQUN6QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGFBQWEsQ0FBQztvSEFHZixNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRG9DaGVjayxcbiAgSW5wdXQsXG4gIEtleVZhbHVlRGlmZmVyLFxuICBLZXlWYWx1ZURpZmZlcnMsXG4gIE9uSW5pdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3VpRmllbGRMYWJlbCB9IGZyb20gJy4uL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsJztcbmltcG9ydCB7IEd1aUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdndWktZmllbGQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtZ3JvdXAuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWVsZC1ncm91cC5zY3NzJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZ3VpLWZpZWxkLWdyb3VwJyxcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtHdWlGaWVsZExhYmVsXSxcbn0pXG5leHBvcnQgY2xhc3MgR3VpRmllbGRHcm91cCBpbXBsZW1lbnRzIE9uSW5pdCwgRG9DaGVjayB7XG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxHdWlDb250cm9sPiA9IHt9O1xuXG4gIHByaXZhdGUgY29uZmlnRGlmZmVyPzogS2V5VmFsdWVEaWZmZXI8c3RyaW5nLCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWdEaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLmNvbmZpZykuY3JlYXRlKCk7XG4gIH1cblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuY29uZmlnRGlmZmVyPy5kaWZmKHRoaXMuY29uZmlnKTtcbiAgICBjaGFuZ2VzPy5mb3JFYWNoQ2hhbmdlZEl0ZW0ocmVjb3JkID0+IHtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG59XG4iLCJAaWYgKGNvbmZpZy5wYXJlbnRUeXBlIT09J2lubGluZScgJiYgY29uZmlnLm5hbWUpIHtcbiAgPGd1aS1maWVsZC1sYWJlbCBbY29uZmlnXT1cImNvbmZpZ1wiIFtpbmRleF09XCJjb25maWcuaW5kZXhcIiAvPlxufVxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -14,18 +14,18 @@ export class GuiFieldLabel {
|
|
|
14
14
|
this.styless =
|
|
15
15
|
(parentType === 'inline' && type !== 'inline') || type === 'group' || type === 'tabs';
|
|
16
16
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiFieldLabel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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:4rem;height:1.5rem;padding:0 .25rem;line-height:1.5rem;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 }); }
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiFieldLabel, decorators: [{
|
|
21
21
|
type: Component,
|
|
22
22
|
args: [{ selector: 'gui-field-label', host: {
|
|
23
23
|
'[class.gui-field-label]': '!styless',
|
|
24
24
|
'[title]': 'title',
|
|
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:
|
|
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:4rem;height:1.5rem;padding:0 .25rem;line-height:1.5rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.gui-field-label-with-description{text-decoration:underline dotted;cursor:help}\n"] }]
|
|
26
26
|
}], propDecorators: { config: [{
|
|
27
27
|
type: Input
|
|
28
28
|
}], index: [{
|
|
29
29
|
type: Input
|
|
30
30
|
}] } });
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbGFiZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmllbGQtbGFiZWwvZmllbGQtbGFiZWwudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmllbGQtbGFiZWwvZmllbGQtbGFiZWwuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQWdCdkMsTUFBTSxPQUFPLGFBQWE7SUFiMUI7UUFjVyxXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUkxQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsWUFBTyxHQUFHLEtBQUssQ0FBQztLQVFqQjtJQU5DLFdBQVc7UUFDVCxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2RixJQUFJLENBQUMsT0FBTztZQUNWLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDO0lBQzFGLENBQUM7OEdBZFUsYUFBYTtrR0FBYixhQUFhLCtOQ3hCMUIsa1NBU0Esd1NEYVksVUFBVTs7MkZBRVQsYUFBYTtrQkFiekIsU0FBUzsrQkFDRSxpQkFBaUIsUUFHckI7d0JBQ0oseUJBQXlCLEVBQUUsVUFBVTt3QkFDckMsU0FBUyxFQUFFLE9BQU87cUJBQ25CLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsVUFBVSxDQUFDOzhCQUdaLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBlanNUbXBsIH0gZnJvbSAnLi4vZ3VpLXV0aWxzJztcbmltcG9ydCB7IEd1aUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdndWktZmllbGQtbGFiZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtbGFiZWwuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWVsZC1sYWJlbC5zY3NzJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZ3VpLWZpZWxkLWxhYmVsXSc6ICchc3R5bGVzcycsXG4gICAgJ1t0aXRsZV0nOiAndGl0bGUnLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdFRvb2x0aXBdLFxufSlcbmV4cG9ydCBjbGFzcyBHdWlGaWVsZExhYmVsIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29uZmlnOiBQYXJ0aWFsPEd1aUNvbnRyb2w+ID0ge307XG5cbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG5cbiAgdGl0bGUgPSAnJztcblxuICBzdHlsZXNzID0gZmFsc2U7XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgeyBpbmRleCwgbmFtZSwgcGFyZW50VHlwZSwgdHlwZSB9ID0gdGhpcy5jb25maWc7XG4gICAgdGhpcy50aXRsZSA9IGluZGV4ICE9IG51bGwgJiYgIWlzTmFOKGluZGV4KSA/IGVqc1RtcGwobmFtZSB8fCAnJywgeyBpOiBpbmRleCB9KSA6IG5hbWU7XG4gICAgdGhpcy5zdHlsZXNzID1cbiAgICAgIChwYXJlbnRUeXBlID09PSAnaW5saW5lJyAmJiB0eXBlICE9PSAnaW5saW5lJykgfHwgdHlwZSA9PT0gJ2dyb3VwJyB8fCB0eXBlID09PSAndGFicyc7XG4gIH1cbn1cbiIsIkBpZiAoIWNvbmZpZy5kZXNjcmlwdGlvbikge1xuICA8c3Bhbj57e3RpdGxlfX08L3NwYW4+XG59IEBlbHNlIHtcbiAgPHNwYW5cbiAgICBbY2xhc3MuZ3VpLWZpZWxkLWxhYmVsLXdpdGgtZGVzY3JpcHRpb25dPVwiY29uZmlnLmRlc2NyaXB0aW9uXCJcbiAgICBbbWF0VG9vbHRpcF09XCJjb25maWcuZGVzY3JpcHRpb25cIlxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICBtYXRUb29sdGlwQ2xhc3M9XCJndWktZmllbGQtbGFiZWwtdG9vbHRpcFwiPnt7dGl0bGV9fTwvc3Bhbj5cbn1cbiJdfQ==
|
|
@@ -26,10 +26,10 @@ 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: "18.2.0", ngImport: i0, type: GuiFileUploaderConfig, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiFileUploaderConfig, providedIn: 'root' }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiFileUploaderConfig, decorators: [{
|
|
33
33
|
type: Injectable,
|
|
34
34
|
args: [{
|
|
35
35
|
providedIn: 'root',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HttpResponse } from '@angular/common/http';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, forwardRef, } from '@angular/core';
|
|
3
|
-
import { FormsModule, NG_VALUE_ACCESSOR
|
|
3
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
4
|
import { MatIconButton } from '@angular/material/button';
|
|
5
5
|
import { MatFormField, MatHint, MatPrefix, MatSuffix } from '@angular/material/form-field';
|
|
6
6
|
import { MatIcon } from '@angular/material/icon';
|
|
@@ -8,6 +8,7 @@ import { MatInput } from '@angular/material/input';
|
|
|
8
8
|
import { of } from 'rxjs';
|
|
9
9
|
import { catchError, finalize } from 'rxjs/operators';
|
|
10
10
|
import { GuiFieldLabel } from '../field-label/field-label';
|
|
11
|
+
import { GuiIconButtonWrapper } from '../icon-button-wrapper/icon-button-wrapper';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "./file-uploader-config";
|
|
13
14
|
import * as i2 from "../gui-icons";
|
|
@@ -91,16 +92,16 @@ export class GuiFileUploader {
|
|
|
91
92
|
this.onTouched();
|
|
92
93
|
this.fileChange.emit(this.url);
|
|
93
94
|
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiFileUploader, deps: [{ token: i1.GuiFileUploaderConfig }, { token: i0.ChangeDetectorRef }, { token: i2.GuiIconsRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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: [
|
|
96
97
|
{
|
|
97
98
|
provide: NG_VALUE_ACCESSOR,
|
|
98
99
|
useExisting: forwardRef(() => GuiFileUploader),
|
|
99
100
|
multi: true,
|
|
100
101
|
},
|
|
101
|
-
], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field>\n <
|
|
102
|
+
], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field>\n <gui-icon-button-wrapper matPrefix>\n <mat-icon svgIcon=\"link\" />\n </gui-icon-button-wrapper>\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 <gui-icon-button-wrapper matSuffix>\n <button mat-icon-button color=\"warn\" [disabled]=\"disabled\" (click)=\"onClear()\">\n <mat-icon svgIcon=\"clear\" />\n </button>\n </gui-icon-button-wrapper>\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:7.5rem;margin:.25rem 0 0;padding:.25rem;background-color:var(--mdc-filled-text-field-container-color);border:1px solid transparent;border-radius:.25rem}.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:1.5rem;height:1.5rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { 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: "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"] }, { kind: "component", type: GuiIconButtonWrapper, selector: "gui-icon-button-wrapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
102
103
|
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiFileUploader, decorators: [{
|
|
104
105
|
type: Component,
|
|
105
106
|
args: [{ selector: 'gui-file-uploader', host: {
|
|
106
107
|
class: 'gui-field gui-file-uploader',
|
|
@@ -111,7 +112,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
111
112
|
multi: true,
|
|
112
113
|
},
|
|
113
114
|
], standalone: true, imports: [
|
|
114
|
-
ReactiveFormsModule,
|
|
115
115
|
FormsModule,
|
|
116
116
|
MatFormField,
|
|
117
117
|
MatIcon,
|
|
@@ -121,7 +121,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
121
121
|
MatSuffix,
|
|
122
122
|
MatHint,
|
|
123
123
|
GuiFieldLabel,
|
|
124
|
-
|
|
124
|
+
GuiIconButtonWrapper,
|
|
125
|
+
], template: "<mat-form-field>\n <gui-icon-button-wrapper matPrefix>\n <mat-icon svgIcon=\"link\" />\n </gui-icon-button-wrapper>\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 <gui-icon-button-wrapper matSuffix>\n <button mat-icon-button color=\"warn\" [disabled]=\"disabled\" (click)=\"onClear()\">\n <mat-icon svgIcon=\"clear\" />\n </button>\n </gui-icon-button-wrapper>\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:7.5rem;margin:.25rem 0 0;padding:.25rem;background-color:var(--mdc-filled-text-field-container-color);border:1px solid transparent;border-radius:.25rem}.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:1.5rem;height:1.5rem}\n"] }]
|
|
125
126
|
}], ctorParameters: () => [{ type: i1.GuiFileUploaderConfig }, { type: i0.ChangeDetectorRef }, { type: i2.GuiIconsRegistry }], propDecorators: { fileInput: [{
|
|
126
127
|
type: ViewChild,
|
|
127
128
|
args: ['fileInput']
|
|
@@ -138,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
138
139
|
}], fileChange: [{
|
|
139
140
|
type: Output
|
|
140
141
|
}] } });
|
|
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=
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7OztBQTBDbEYsTUFBTSxPQUFPLGVBQWU7SUFvQjFCLFlBQ1UsZUFBc0MsRUFDdEMsR0FBc0IsRUFDOUIsYUFBK0I7UUFGdkIsb0JBQWUsR0FBZixlQUFlLENB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MkZBR1gsZUFBZTtrQkE5QjNCLFNBQVM7K0JBQ0UsbUJBQW1CLFFBR3ZCO3dCQUNKLEtBQUssRUFBRSw2QkFBNkI7cUJBQ3JDLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLGNBQ1csSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixhQUFhO3dCQUNiLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLG9CQUFvQjtxQkFDckI7eUpBR3VCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFFYixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEhpbnQsIE1hdFByZWZpeCwgTWF0U3VmZml4IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgR3VpRmllbGRMYWJlbCB9IGZyb20gJy4uL2ZpZWxkLWxhYmVsL2ZpZWxkLWxhYmVsJztcbmltcG9ydCB7IEd1aUljb25zUmVnaXN0cnkgfSBmcm9tICcuLi9ndWktaWNvbnMnO1xuaW1wb3J0IHsgR3VpSWNvbkJ1dHRvbldyYXBwZXIgfSBmcm9tICcuLi9pY29uLWJ1dHRvbi13cmFwcGVyL2ljb24tYnV0dG9uLXdyYXBwZXInO1xuaW1wb3J0IHsgR3VpQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBHdWlGaWxlVXBsb2FkZXJDb25maWcgfSBmcm9tICcuL2ZpbGUtdXBsb2FkZXItY29uZmlnJztcblxuZXhwb3J0IHR5cGUgRmlsZVVwbG9hZFR5cGUgPSAnaW1hZ2UnIHwgJ3ZpZGVvJyB8ICdhdWRpbycgfCAnKic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVVwbG9hZENvbnRlbnQge1xuICBkYXRhOiBGaWxlO1xuICBwcm9ncmVzczogbnVtYmVyO1xuICBpblByb2dyZXNzOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdndWktZmlsZS11cGxvYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZGVyLmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmlsZS11cGxvYWRlci5zY3NzJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZ3VpLWZpZWxkIGd1aS1maWxlLXVwbG9hZGVyJyxcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gR3VpRmlsZVVwbG9hZGVyKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTWF0SWNvbixcbiAgICBNYXRQcmVmaXgsXG4gICAgTWF0SW5wdXQsXG4gICAgTWF0SWNvbkJ1dHRvbixcbiAgICBNYXRTdWZmaXgsXG4gICAgTWF0SGludCxcbiAgICBHdWlGaWVsZExhYmVsLFxuICAgIEd1aUljb25CdXR0b25XcmFwcGVyLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHdWlGaWxlVXBsb2FkZXIgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBASW5wdXQoKSBjb25maWc6IFBhcnRpYWw8R3VpQ29udHJvbD4gPSB7fTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgdHlwZTogRmlsZVVwbG9hZFR5cGUgPSAnKic7XG4gIEBJbnB1dCgpIG5hbWUgPSAnJztcbiAgQElucHV0KCkgYWNjZXB0ID0gJyc7XG5cbiAgQE91dHB1dCgpIGZpbGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvLyBtZWRpYSBzcmNcbiAgdXJsID0gJyc7XG5cbiAgLy8gZmlsZSB0byB1cGxvYWRcbiAgZmlsZSE6IEZpbGVVcGxvYWRDb250ZW50O1xuXG4gIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmaWxlVXBsb2FkZXJDZmc6IEd1aUZpbGVVcGxvYWRlckNvbmZpZyxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgaWNvbnNSZWdpc3RyeTogR3VpSWNvbnNSZWdpc3RyeVxuICApIHtcbiAgICBpY29uc1JlZ2lzdHJ5LmFkZCgnbGluaycsICdjbGVhcicsICdmaWxlJywgJ3VwbG9hZCcpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10pIHtcbiAgICAgIHRoaXMuYWNjZXB0ID0gdGhpcy50eXBlICsgJy8qJztcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVybCA9IHZhbHVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHVwbG9hZChmaWxlOiBGaWxlVXBsb2FkQ29udGVudCkge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZS5kYXRhIHx8ICcnKTtcblxuICAgIGZpbGUuaW5Qcm9ncmVzcyA9IHRydWU7XG5cbiAgICB0aGlzLmZpbGVVcGxvYWRlckNmZ1xuICAgICAgLnVwbG9hZChmb3JtRGF0YSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBmaWxlLmluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICByZXR1cm4gb2YoYCR7ZmlsZS5kYXRhPy5uYW1lIHx8ICdGaWxlJ30gdXBsb2FkIGZhaWxlZC5gKTtcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHt9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAocmVzIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlICYmIHJlcy5ib2R5KSB7XG4gICAgICAgICAgdGhpcy51cmwgPSByZXMuYm9keS5kYXRhO1xuXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnVybCk7XG4gICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcblxuICAgICAgICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMudXJsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb25VcmxDaGFuZ2UoZTogRXZlbnQpIHtcbiAgICB0aGlzLnVybCA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcblxuICAgIHRoaXMub25DaGFuZ2UodGhpcy51cmwpO1xuXG4gICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQodGhpcy51cmwpO1xuICB9XG5cbiAgb25GaWxlQ2hhbmdlKGU6IEV2ZW50KSB7XG4gICAgdGhpcy5maWxlID0ge1xuICAgICAgZGF0YTogKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzIVswXSxcbiAgICAgIGluUHJvZ3Jlc3M6IGZhbHNlLFxuICAgICAgcHJvZ3Jlc3M6IDAsXG4gICAgfTtcblxuICAgIHRoaXMudXBsb2FkKHRoaXMuZmlsZSk7XG5cbiAgICAvLyByZXNldCBpbnB1dCB2YWx1ZVxuICAgIChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSA9ICcnO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBvbkNsZWFyKCkge1xuICAgIHRoaXMudXJsID0gJyc7XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudXJsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQodGhpcy51cmwpO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQ+XG4gIDxndWktaWNvbi1idXR0b24td3JhcHBlciBtYXRQcmVmaXg+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJsaW5rXCIgLz5cbiAgPC9ndWktaWNvbi1idXR0b24td3JhcHBlcj5cblxuICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBbbmdNb2RlbF09XCJ1cmxcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXJ8fCcnXCJcbiAgICAoY2hhbmdlKT1cIm9uVXJsQ2hhbmdlKCRldmVudClcIiAoYmx1cik9XCJvbkJsdXIoKVwiPlxuXG4gIEBpZiAodXJsKSB7XG4gICAgPGd1aS1pY29uLWJ1dHRvbi13cmFwcGVyIG1hdFN1ZmZpeD5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwid2FyblwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIChjbGljayk9XCJvbkNsZWFyKClcIj5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJjbGVhclwiIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2d1aS1pY29uLWJ1dHRvbi13cmFwcGVyPlxuICB9XG48L21hdC1mb3JtLWZpZWxkPlxuXG48ZmlndXJlIGNsYXNzPVwiZ3VpLWZpbGUtY29udGVudFwiPlxuICBAaWYgKHVybCkge1xuICAgIEBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIEBjYXNlICgnaW1hZ2UnKSB7XG4gICAgICAgIDxpbWcgW3NyY109XCJ1cmxcIiAvPlxuICAgICAgfVxuICAgICAgQGNhc2UgKCd2aWRlbycpIHtcbiAgICAgICAgPHZpZGVvIFtzcmNdPVwidXJsXCI+PC92aWRlbz5cbiAgICAgIH1cbiAgICAgIEBjYXNlICgnYXVkaW8nKSB7XG4gICAgICAgIDxhdWRpbyBbc3JjXT1cInVybFwiIGNvbnRyb2xzPjwvYXVkaW8+XG4gICAgICB9XG4gICAgICBAZGVmYXVsdCB7XG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZmlsZVwiIC8+XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiZ3VpLWZpbGUtcGxhY2Vob2xkZXJcIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwidXBsb2FkXCIgLz5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxpbnB1dCAjZmlsZUlucHV0IHR5cGU9XCJmaWxlXCIgW2FjY2VwdF09XCJhY2NlcHRcIiBbbmFtZV09XCJuYW1lXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2hhbmdlKT1cIm9uRmlsZUNoYW5nZSgkZXZlbnQpXCI+XG48L2ZpZ3VyZT5cblxuQGlmIChjb25maWcucGFyZW50VHlwZT09PSdpbmxpbmUnKSB7XG4gIDxtYXQtaGludD5cbiAgICA8Z3VpLWZpZWxkLWxhYmVsIFtjb25maWddPVwiY29uZmlnXCIgLz5cbiAgPC9tYXQtaGludD5cbn1cbiJdfQ==
|
package/esm2022/fill/fill.mjs
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
|
-
import { FormsModule, NG_VALUE_ACCESSOR
|
|
2
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { MatFormField, MatHint, MatPrefix, MatSuffix } from '@angular/material/form-field';
|
|
4
4
|
import { MatInput } from '@angular/material/input';
|
|
5
5
|
import { MtxColorpicker, MtxColorpickerInput, MtxColorpickerToggle, } from '@ng-matero/extensions/colorpicker';
|
|
6
6
|
import { GuiFieldLabel } from '../field-label/field-label';
|
|
7
|
+
import { GuiIconButtonWrapper } from '../icon-button-wrapper/icon-button-wrapper';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
import * as i1 from "@angular/forms";
|
|
9
10
|
export class GuiFill {
|
|
@@ -32,16 +33,16 @@ export class GuiFill {
|
|
|
32
33
|
onValueChange() {
|
|
33
34
|
this.onChange(this.value);
|
|
34
35
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiFill, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: GuiFill, isStandalone: true, selector: "gui-fill", inputs: { config: "config", disabled: "disabled" }, host: { classAttribute: "gui-field gui-fill" }, providers: [
|
|
37
38
|
{
|
|
38
39
|
provide: NG_VALUE_ACCESSOR,
|
|
39
40
|
useExisting: forwardRef(() => GuiFill),
|
|
40
41
|
multi: true,
|
|
41
42
|
},
|
|
42
|
-
], ngImport: i0, template: "<mat-form-field>\n <ng-container matPrefix>\n <span class=\"gui-color-block-empty\"></span>\n <span class=\"gui-color-block\" [style.background]=\"value\"></span>\n </ng-container>\n\n <input matInput\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [placeholder]=\"config.placeholder||''\"\n [mtxColorpicker]=\"cp\"\n (colorChange)=\"onValueChange()\">\n <mtx-colorpicker #cp />\n <mtx-colorpicker-toggle
|
|
43
|
+
], ngImport: i0, template: "<mat-form-field>\n <ng-container matPrefix>\n <span class=\"gui-color-block-empty\"></span>\n <span class=\"gui-color-block\" [style.background]=\"value\"></span>\n </ng-container>\n\n <input matInput\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [placeholder]=\"config.placeholder||''\"\n [mtxColorpicker]=\"cp\"\n (colorChange)=\"onValueChange()\">\n\n <mtx-colorpicker #cp />\n <gui-icon-button-wrapper matSuffix>\n <mtx-colorpicker-toggle [for]=\"cp\" />\n </gui-icon-button-wrapper>\n\n @if (config.parentType==='inline') {\n <mat-hint>\n <gui-field-label [config]=\"config\" />\n </mat-hint>\n }\n</mat-form-field>\n", styles: [".gui-color-block,.gui-color-block-empty{position:relative;display:inline-block;width:1.5rem;height:1.5rem}.gui-color-block-empty{position:absolute;background-color:#fff;background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-position:0 0,0 .25rem,.25rem -.25rem,-.25rem 0;background-size:.5rem .5rem}.gui-color-block:after{display:inline-block;width:100%;height:100%;border:1px solid currentColor;border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-bottom-left-radius:var(--mdc-filled-text-field-container-shape);opacity:.12;content:\"\"}[dir=rtl] .gui-color-block:after{border-radius:0;border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:var(--mdc-filled-text-field-container-shape)}.gui-fill .mat-mdc-icon-button{display:inline-flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.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: "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: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MtxColorpickerInput, selector: "input[mtxColorpicker]", inputs: ["mtxColorpicker", "disabled", "value", "format"], outputs: ["colorChange", "colorInput"], exportAs: ["mtxColorpickerInput"] }, { kind: "component", type: MtxColorpicker, selector: "mtx-colorpicker", inputs: ["content", "disabled", "xPosition", "yPosition", "restoreFocus", "opened", "color", "format"], outputs: ["opened", "closed"], exportAs: ["mtxColorpicker"] }, { kind: "component", type: MtxColorpickerToggle, selector: "mtx-colorpicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["mtxColorpickerToggle"] }, { kind: "component", type: GuiFieldLabel, selector: "gui-field-label", inputs: ["config", "index"] }, { kind: "component", type: GuiIconButtonWrapper, selector: "gui-icon-button-wrapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
43
44
|
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GuiFill, decorators: [{
|
|
45
46
|
type: Component,
|
|
46
47
|
args: [{ selector: 'gui-fill', host: {
|
|
47
48
|
class: 'gui-field gui-fill',
|
|
@@ -52,7 +53,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
52
53
|
multi: true,
|
|
53
54
|
},
|
|
54
55
|
], standalone: true, imports: [
|
|
55
|
-
ReactiveFormsModule,
|
|
56
56
|
FormsModule,
|
|
57
57
|
MatFormField,
|
|
58
58
|
MatPrefix,
|
|
@@ -63,10 +63,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImpor
|
|
|
63
63
|
MtxColorpicker,
|
|
64
64
|
MtxColorpickerToggle,
|
|
65
65
|
GuiFieldLabel,
|
|
66
|
-
|
|
66
|
+
GuiIconButtonWrapper,
|
|
67
|
+
], template: "<mat-form-field>\n <ng-container matPrefix>\n <span class=\"gui-color-block-empty\"></span>\n <span class=\"gui-color-block\" [style.background]=\"value\"></span>\n </ng-container>\n\n <input matInput\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [placeholder]=\"config.placeholder||''\"\n [mtxColorpicker]=\"cp\"\n (colorChange)=\"onValueChange()\">\n\n <mtx-colorpicker #cp />\n <gui-icon-button-wrapper matSuffix>\n <mtx-colorpicker-toggle [for]=\"cp\" />\n </gui-icon-button-wrapper>\n\n @if (config.parentType==='inline') {\n <mat-hint>\n <gui-field-label [config]=\"config\" />\n </mat-hint>\n }\n</mat-form-field>\n", styles: [".gui-color-block,.gui-color-block-empty{position:relative;display:inline-block;width:1.5rem;height:1.5rem}.gui-color-block-empty{position:absolute;background-color:#fff;background-image:linear-gradient(45deg,#ccc 25%,transparent 25%),linear-gradient(-45deg,#ccc 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-position:0 0,0 .25rem,.25rem -.25rem,-.25rem 0;background-size:.5rem .5rem}.gui-color-block:after{display:inline-block;width:100%;height:100%;border:1px solid currentColor;border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-bottom-left-radius:var(--mdc-filled-text-field-container-shape);opacity:.12;content:\"\"}[dir=rtl] .gui-color-block:after{border-radius:0;border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:var(--mdc-filled-text-field-container-shape)}.gui-fill .mat-mdc-icon-button{display:inline-flex;justify-content:center;align-items:center}\n"] }]
|
|
67
68
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { config: [{
|
|
68
69
|
type: Input
|
|
69
70
|
}], disabled: [{
|
|
70
71
|
type: Input
|
|
71
72
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9maWxsL2ZpbGwudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmlsbC9maWxsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFDTCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLG9CQUFvQixHQUNyQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7O0FBa0NsRixNQUFNLE9BQU8sT0FBTztJQVNsQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVJqQyxXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFFSCxhQUFRLEdBQTRCLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM3QyxjQUFTLEdBQWUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRUksQ0FBQztJQUU5QyxVQUFVLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUEyQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OEdBL0JVLE9BQU87a0dBQVAsT0FBTywySkF0QlA7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztnQkFDdEMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ25DSCxpcUJBd0JBLDZpQ0RjSSxXQUFXLCttQkFDWCxZQUFZLDRMQUNaLFNBQVMscUhBQ1QsUUFBUSxpVUFDUixTQUFTLHFIQUNULE9BQU8sOEVBQ1AsbUJBQW1CLHdNQUNuQixjQUFjLGlPQUNkLG9CQUFvQiwrS0FDcEIsYUFBYSx5RkFDYixvQkFBb0I7OzJGQUdYLE9BQU87a0JBL0JuQixTQUFTOytCQUNFLFVBQVUsUUFHZDt3QkFDSixLQUFLLEVBQUUsb0JBQW9CO3FCQUM1QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQzs0QkFDdEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixTQUFTO3dCQUNULE9BQU87d0JBQ1AsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixvQkFBb0I7cUJBQ3JCO3NGQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRIaW50LCBNYXRQcmVmaXgsIE1hdFN1ZmZpeCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge1xuICBNdHhDb2xvcnBpY2tlcixcbiAgTXR4Q29sb3JwaWNrZXJJbnB1dCxcbiAgTXR4Q29sb3JwaWNrZXJUb2dnbGUsXG59IGZyb20gJ0BuZy1tYXRlcm8vZXh0ZW5zaW9ucy9jb2xvcnBpY2tlcic7XG5pbXBvcnQgeyBHdWlGaWVsZExhYmVsIH0gZnJvbSAnLi4vZmllbGQtbGFiZWwvZmllbGQtbGFiZWwnO1xuaW1wb3J0IHsgR3VpSWNvbkJ1dHRvbldyYXBwZXIgfSBmcm9tICcuLi9pY29uLWJ1dHRvbi13cmFwcGVyL2ljb24tYnV0dG9uLXdyYXBwZXInO1xuaW1wb3J0IHsgR3VpQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2d1aS1maWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGwuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWxsLnNjc3MnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdndWktZmllbGQgZ3VpLWZpbGwnLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHdWlGaWxsKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTWF0UHJlZml4LFxuICAgIE1hdElucHV0LFxuICAgIE1hdFN1ZmZpeCxcbiAgICBNYXRIaW50LFxuICAgIE10eENvbG9ycGlja2VySW5wdXQsXG4gICAgTXR4Q29sb3JwaWNrZXIsXG4gICAgTXR4Q29sb3JwaWNrZXJUb2dnbGUsXG4gICAgR3VpRmllbGRMYWJlbCxcbiAgICBHdWlJY29uQnV0dG9uV3JhcHBlcixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3VpRmlsbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgY29uZmlnOiBQYXJ0aWFsPEd1aUNvbnRyb2w+ID0ge307XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgdmFsdWUgPSAnJztcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQ+XG4gIDxuZy1jb250YWluZXIgbWF0UHJlZml4PlxuICAgIDxzcGFuIGNsYXNzPVwiZ3VpLWNvbG9yLWJsb2NrLWVtcHR5XCI+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiZ3VpLWNvbG9yLWJsb2NrXCIgW3N0eWxlLmJhY2tncm91bmRdPVwidmFsdWVcIj48L3NwYW4+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxpbnB1dCBtYXRJbnB1dFxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlcnx8JydcIlxuICAgIFttdHhDb2xvcnBpY2tlcl09XCJjcFwiXG4gICAgKGNvbG9yQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoKVwiPlxuXG4gIDxtdHgtY29sb3JwaWNrZXIgI2NwIC8+XG4gIDxndWktaWNvbi1idXR0b24td3JhcHBlciBtYXRTdWZmaXg+XG4gICAgPG10eC1jb2xvcnBpY2tlci10b2dnbGUgW2Zvcl09XCJjcFwiIC8+XG4gIDwvZ3VpLWljb24tYnV0dG9uLXdyYXBwZXI+XG5cbiAgQGlmIChjb25maWcucGFyZW50VHlwZT09PSdpbmxpbmUnKSB7XG4gICAgPG1hdC1oaW50PlxuICAgICAgPGd1aS1maWVsZC1sYWJlbCBbY29uZmlnXT1cImNvbmZpZ1wiIC8+XG4gICAgPC9tYXQtaGludD5cbiAgfVxuPC9tYXQtZm9ybS1maWVsZD5cbiJdfQ==
|