@acrodata/gui 2.5.2 → 2.6.1
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/button-toggle/button-toggle.scss +6 -2
- package/button-toggle/icon.d.ts +1 -1
- package/esm2022/button-toggle/button-toggle.mjs +3 -3
- package/esm2022/button-toggle/icon.mjs +5 -5
- package/esm2022/field-label/field-label.mjs +3 -3
- package/esm2022/file-uploader/file-uploader.mjs +3 -3
- package/esm2022/fill/fill-picker.mjs +161 -0
- package/esm2022/fill/fill.mjs +14 -4
- package/esm2022/gui-form.mjs +6 -6
- package/esm2022/gui-icons.mjs +15 -1
- package/esm2022/gui-module.mjs +7 -1
- package/esm2022/gui-utils.mjs +26 -1
- package/esm2022/interface.mjs +1 -1
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/select/select.mjs +3 -3
- package/fesm2022/acrodata-gui.mjs +226 -20
- package/fesm2022/acrodata-gui.mjs.map +1 -1
- package/file-uploader/file-uploader.scss +1 -0
- package/fill/fill-picker.d.ts +36 -0
- package/fill/fill-picker.scss +150 -0
- package/fill/fill.d.ts +7 -5
- package/fill/fill.scss +20 -24
- package/gui-form.d.ts +1 -1
- package/gui-icons.d.ts +3 -0
- package/gui-module.d.ts +13 -12
- package/gui-utils.d.ts +2 -1
- package/interface.d.ts +1 -1
- package/package.json +5 -2
- package/public-api.d.ts +1 -0
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
.mat-button-toggle-group-appearance-standard {
|
|
14
|
-
.mat-button-toggle-appearance-standard
|
|
14
|
+
.mat-button-toggle-appearance-standard + .mat-button-toggle-appearance-standard {
|
|
15
15
|
border-width: 0;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -29,7 +29,11 @@
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
.mat-button-toggle-button {
|
|
33
|
+
display: flex;
|
|
34
|
+
}
|
|
35
|
+
|
|
32
36
|
&.mat-button-toggle-checked img {
|
|
33
|
-
opacity: .64;
|
|
37
|
+
opacity: 0.64;
|
|
34
38
|
}
|
|
35
39
|
}
|
package/button-toggle/icon.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class GuiIcon {
|
|
3
3
|
src: string;
|
|
4
|
-
isUrl(): boolean;
|
|
4
|
+
get isUrl(): boolean;
|
|
5
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<GuiIcon, never>;
|
|
6
6
|
static ɵcmp: i0.ɵɵComponentDeclaration<GuiIcon, "gui-icon", never, { "src": { "alias": "src"; "required": false; }; }, {}, never, never, true, never>;
|
|
7
7
|
}
|
|
@@ -40,7 +40,7 @@ export class GuiButtonToggle {
|
|
|
40
40
|
useExisting: forwardRef(() => GuiButtonToggle),
|
|
41
41
|
multi: true,
|
|
42
42
|
},
|
|
43
|
-
], ngImport: i0, template: "<mat-button-toggle-group\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [multiple]=\"config.multiple\"\n (change)=\"onValueChange()\"\n hideSingleSelectionIndicator\n hideMultipleSelectionIndicator\n>\n @for (opt of config.options; track
|
|
43
|
+
], ngImport: i0, template: "<mat-button-toggle-group\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [multiple]=\"config.multiple\"\n (change)=\"onValueChange()\"\n hideSingleSelectionIndicator\n hideMultipleSelectionIndicator\n>\n @for (opt of config.options; track $index) {\n <mat-button-toggle\n 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 >\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-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-width:0}.gui-button-toggle .mat-button-toggle-appearance-standard{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-button{display:flex}.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
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuiButtonToggle, decorators: [{
|
|
46
46
|
type: Component,
|
|
@@ -60,10 +60,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
60
60
|
GuiFlexDirective,
|
|
61
61
|
GuiIcon,
|
|
62
62
|
GuiFieldLabel,
|
|
63
|
-
], template: "<mat-button-toggle-group\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [multiple]=\"config.multiple\"\n (change)=\"onValueChange()\"\n hideSingleSelectionIndicator\n hideMultipleSelectionIndicator\n>\n @for (opt of config.options; track
|
|
63
|
+
], template: "<mat-button-toggle-group\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n [multiple]=\"config.multiple\"\n (change)=\"onValueChange()\"\n hideSingleSelectionIndicator\n hideMultipleSelectionIndicator\n>\n @for (opt of config.options; track $index) {\n <mat-button-toggle\n 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 >\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-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border-width:0}.gui-button-toggle .mat-button-toggle-appearance-standard{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-button{display:flex}.gui-icon-toggle.mat-button-toggle-checked img{opacity:.64}\n"] }]
|
|
64
64
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { config: [{
|
|
65
65
|
type: Input
|
|
66
66
|
}], disabled: [{
|
|
67
67
|
type: Input
|
|
68
68
|
}] } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXRvZ2dsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9idXR0b24tdG9nZ2xlL2J1dHRvbi10b2dnbGUudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvYnV0dG9uLXRvZ2dsZS9idXR0b24tdG9nZ2xlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQzs7O0FBNkJqQyxNQUFNLE9BQU8sZUFBZTtJQVMxQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVJqQyxXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUNqQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFVBQUssR0FBb0MsRUFBRSxDQUFDO1FBRXBDLGFBQVEsR0FBcUQsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ3RFLGNBQVMsR0FBZSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFSSxDQUFDO0lBRTlDLFVBQVUsQ0FBQyxLQUFzQztRQUMvQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFvRDtRQUNuRSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7K0dBL0JVLGVBQWU7bUdBQWYsZUFBZSw2S0FsQmY7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDOUMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQy9CSCxveUJBOEJBLCs1QkRJSSxXQUFXLCtWQUNYLG9CQUFvQixrVEFDcEIsZUFBZSw2UUFDZixPQUFPLDhFQUNQLGdCQUFnQixxRUFDaEIsT0FBTyxzRUFDUCxhQUFhOzs0RkFHSixlQUFlO2tCQTNCM0IsU0FBUzsrQkFDRSxtQkFBbUIsUUFHdkI7d0JBQ0osS0FBSyxFQUFFLDZCQUE2QjtxQkFDckMsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsYUFBYTtxQkFDZDtzRkFHUSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZSwgTWF0QnV0dG9uVG9nZ2xlR3JvdXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IE1hdEhpbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEd1aUZpZWxkTGFiZWwgfSBmcm9tICcuLi9maWVsZC1sYWJlbC9maWVsZC1sYWJlbCc7XG5pbXBvcnQgeyBHdWlGbGV4RGlyZWN0aXZlIH0gZnJvbSAnLi4vZ3VpLXV0aWxzJztcbmltcG9ydCB7IEd1aUJhc2ljVmFsdWUsIEd1aUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3VpSWNvbiB9IGZyb20gJy4vaWNvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2d1aS1idXR0b24tdG9nZ2xlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi10b2dnbGUuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9idXR0b24tdG9nZ2xlLnNjc3MnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdndWktZmllbGQgZ3VpLWJ1dHRvbi10b2dnbGUnLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHdWlCdXR0b25Ub2dnbGUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZUdyb3VwLFxuICAgIE1hdEJ1dHRvblRvZ2dsZSxcbiAgICBNYXRIaW50LFxuICAgIEd1aUZsZXhEaXJlY3RpdmUsXG4gICAgR3VpSWNvbixcbiAgICBHdWlGaWVsZExhYmVsLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHdWlCdXR0b25Ub2dnbGUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxHdWlDb250cm9sPiA9IHt9O1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHZhbHVlOiBHdWlCYXNpY1ZhbHVlIHwgR3VpQmFzaWNWYWx1ZVtdID0gJyc7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBHdWlCYXNpY1ZhbHVlIHwgR3VpQmFzaWNWYWx1ZVtdKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IEd1aUJhc2ljVmFsdWUgfCBHdWlCYXNpY1ZhbHVlW10pIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IEd1aUJhc2ljVmFsdWUgfCBHdWlCYXNpY1ZhbHVlW10pID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UoKSB7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxufVxuIiwiPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXG4gIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbbXVsdGlwbGVdPVwiY29uZmlnLm11bHRpcGxlXCJcbiAgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKClcIlxuICBoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yXG4gIGhpZGVNdWx0aXBsZVNlbGVjdGlvbkluZGljYXRvclxuPlxuICBAZm9yIChvcHQgb2YgY29uZmlnLm9wdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZVxuICAgICAgZGlzYWJsZVJpcHBsZVxuICAgICAgW2NsYXNzLmd1aS1pY29uLXRvZ2dsZV09XCJjb25maWcudXNlSWNvblwiXG4gICAgICBbZmxleF09XCJvcHQuY29sXCJcbiAgICAgIFt2YWx1ZV09XCJvcHQudmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9wdC5kaXNhYmxlZFwiXG4gICAgICBbdGl0bGVdPVwiY29uZmlnLnVzZUljb24gPyBvcHQubGFiZWwgOiAnJ1wiXG4gICAgPlxuICAgICAgQGlmIChjb25maWcudXNlSWNvbikge1xuICAgICAgICA8Z3VpLWljb24gW3NyY109XCJvcHQuc3JjIVwiIC8+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAge3sgb3B0LmxhYmVsIH19XG4gICAgICB9XG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgfVxuPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbkBpZiAoY29uZmlnLnBhcmVudFR5cGUgPT09ICdpbmxpbmUnKSB7XG4gIDxtYXQtaGludD5cbiAgICA8Z3VpLWZpZWxkLWxhYmVsIFtjb25maWddPVwiY29uZmlnXCIgLz5cbiAgPC9tYXQtaGludD5cbn1cbiJdfQ==
|
|
@@ -4,12 +4,12 @@ export class GuiIcon {
|
|
|
4
4
|
constructor() {
|
|
5
5
|
this.src = '';
|
|
6
6
|
}
|
|
7
|
-
isUrl() {
|
|
8
|
-
return /^(https
|
|
7
|
+
get isUrl() {
|
|
8
|
+
return /^(https?:\/\/|\.?\/|data:)\w+/.test(this.src);
|
|
9
9
|
}
|
|
10
10
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuiIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11
11
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: GuiIcon, isStandalone: true, selector: "gui-icon", inputs: { src: "src" }, host: { classAttribute: "gui-icon" }, ngImport: i0, template: `
|
|
12
|
-
@if (isUrl
|
|
12
|
+
@if (isUrl) {
|
|
13
13
|
<img [src]="src" alt="" />
|
|
14
14
|
} @else {
|
|
15
15
|
<i [class]="src"></i>
|
|
@@ -19,7 +19,7 @@ export class GuiIcon {
|
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuiIcon, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'gui-icon', template: `
|
|
22
|
-
@if (isUrl
|
|
22
|
+
@if (isUrl) {
|
|
23
23
|
<img [src]="src" alt="" />
|
|
24
24
|
} @else {
|
|
25
25
|
<i [class]="src"></i>
|
|
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
30
30
|
}], propDecorators: { src: [{
|
|
31
31
|
type: Input
|
|
32
32
|
}] } });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9idXR0b24tdG9nZ2xlL2ljb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBbUI3RixNQUFNLE9BQU8sT0FBTztJQWpCcEI7UUFrQlcsUUFBRyxHQUFHLEVBQUUsQ0FBQztLQUtuQjtJQUhDLElBQUksS0FBSztRQUNQLE9BQU8sK0JBQStCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxDQUFDOytHQUxVLE9BQU87bUdBQVAsT0FBTyxrSUFmUjs7Ozs7O0dBTVQ7OzRGQVNVLE9BQU87a0JBakJuQixTQUFTOytCQUNFLFVBQVUsWUFDVjs7Ozs7O0dBTVQsUUFFSzt3QkFDSixLQUFLLEVBQUUsVUFBVTtxQkFDbEIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJOzhCQUdQLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdndWktaWNvbicsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChpc1VybCkge1xuICAgICAgPGltZyBbc3JjXT1cInNyY1wiIGFsdD1cIlwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8aSBbY2xhc3NdPVwic3JjXCI+PC9pPlxuICAgIH1cbiAgYCxcbiAgc3R5bGVVcmw6ICcuL2ljb24uc2NzcycsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2d1aS1pY29uJyxcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEd1aUljb24ge1xuICBASW5wdXQoKSBzcmMgPSAnJztcblxuICBnZXQgaXNVcmwoKSB7XG4gICAgcmV0dXJuIC9eKGh0dHBzPzpcXC9cXC98XFwuP1xcL3xkYXRhOilcXHcrLy50ZXN0KHRoaXMuc3JjKTtcbiAgfVxufVxuIl19
|
|
@@ -15,17 +15,17 @@ export class GuiFieldLabel {
|
|
|
15
15
|
(parentType === 'inline' && type !== 'inline') || type === 'group' || type === 'tabs';
|
|
16
16
|
}
|
|
17
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuiFieldLabel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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\"\n >\n {{ title }}\n </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}.gui-field-label-tooltip{white-space:pre-wrap}\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 }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", 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 matTooltipShowDelay=\"1000\"\n matTooltipClass=\"gui-field-label-tooltip\"\n >\n {{ title }}\n </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}.gui-field-label-tooltip{white-space:pre-wrap}\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
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", 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\"\n >\n {{ title }}\n </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}.gui-field-label-tooltip{white-space:pre-wrap}\n"] }]
|
|
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 matTooltipShowDelay=\"1000\"\n matTooltipClass=\"gui-field-label-tooltip\"\n >\n {{ title }}\n </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}.gui-field-label-tooltip{white-space:pre-wrap}\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbGFiZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmllbGQtbGFiZWwvZmllbGQtbGFiZWwudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmllbGQtbGFiZWwvZmllbGQtbGFiZWwuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQWdCdkMsTUFBTSxPQUFPLGFBQWE7SUFiMUI7UUFjVyxXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUkxQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsWUFBTyxHQUFHLEtBQUssQ0FBQztLQVFqQjtJQU5DLFdBQVc7UUFDVCxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN2RixJQUFJLENBQUMsT0FBTztZQUNWLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssUUFBUSxDQUFDLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDO0lBQzFGLENBQUM7K0dBZFUsYUFBYTttR0FBYixhQUFhLCtOQ3hCMUIsc1ZBYUEsc1ZEU1ksVUFBVTs7NEZBRVQsYUFBYTtrQkFiekIsU0FBUzsrQkFDRSxpQkFBaUIsUUFHckI7d0JBQ0oseUJBQXlCLEVBQUUsVUFBVTt3QkFDckMsU0FBUyxFQUFFLE9BQU87cUJBQ25CLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsVUFBVSxDQUFDOzhCQUdaLE1BQU07c0JBQWQsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBlanNUbXBsIH0gZnJvbSAnLi4vZ3VpLXV0aWxzJztcbmltcG9ydCB7IEd1aUNvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdndWktZmllbGQtbGFiZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQtbGFiZWwuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWVsZC1sYWJlbC5zY3NzJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuZ3VpLWZpZWxkLWxhYmVsXSc6ICchc3R5bGVzcycsXG4gICAgJ1t0aXRsZV0nOiAndGl0bGUnLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdFRvb2x0aXBdLFxufSlcbmV4cG9ydCBjbGFzcyBHdWlGaWVsZExhYmVsIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29uZmlnOiBQYXJ0aWFsPEd1aUNvbnRyb2w+ID0ge307XG5cbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XG5cbiAgdGl0bGUgPSAnJztcblxuICBzdHlsZXNzID0gZmFsc2U7XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgeyBpbmRleCwgbmFtZSwgcGFyZW50VHlwZSwgdHlwZSB9ID0gdGhpcy5jb25maWc7XG4gICAgdGhpcy50aXRsZSA9IGluZGV4ICE9IG51bGwgJiYgIWlzTmFOKGluZGV4KSA/IGVqc1RtcGwobmFtZSB8fCAnJywgeyBpOiBpbmRleCB9KSA6IG5hbWU7XG4gICAgdGhpcy5zdHlsZXNzID1cbiAgICAgIChwYXJlbnRUeXBlID09PSAnaW5saW5lJyAmJiB0eXBlICE9PSAnaW5saW5lJykgfHwgdHlwZSA9PT0gJ2dyb3VwJyB8fCB0eXBlID09PSAndGFicyc7XG4gIH1cbn1cbiIsIkBpZiAoIWNvbmZpZy5kZXNjcmlwdGlvbikge1xuICA8c3Bhbj57eyB0aXRsZSB9fTwvc3Bhbj5cbn0gQGVsc2Uge1xuICA8c3BhblxuICAgIFtjbGFzcy5ndWktZmllbGQtbGFiZWwtd2l0aC1kZXNjcmlwdGlvbl09XCJjb25maWcuZGVzY3JpcHRpb25cIlxuICAgIFttYXRUb29sdGlwXT1cImNvbmZpZy5kZXNjcmlwdGlvblwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCIxMDAwXCJcbiAgICBtYXRUb29sdGlwQ2xhc3M9XCJndWktZmllbGQtbGFiZWwtdG9vbHRpcFwiXG4gID5cbiAgICB7eyB0aXRsZSB9fVxuICA8L3NwYW4+XG59XG4iXX0=
|
|
@@ -96,7 +96,7 @@ export class GuiFileUploader {
|
|
|
96
96
|
useExisting: forwardRef(() => GuiFileUploader),
|
|
97
97
|
multi: true,
|
|
98
98
|
},
|
|
99
|
-
], 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\n matInput\n type=\"text\"\n [ngModel]=\"url\"\n [disabled]=\"disabled\"\n [placeholder]=\"config.placeholder || ''\"\n (change)=\"onUrlChange($event)\"\n (blur)=\"onBlur()\"\n />\n\n @if (url) {\n <gui-icon-button-wrapper matSuffix>\n <button mat-icon-button type=\"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\" alt=\"\" />\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\n #fileInput\n type=\"file\"\n [accept]=\"accept\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n />\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 }); }
|
|
99
|
+
], 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\n matInput\n type=\"text\"\n [ngModel]=\"url\"\n [disabled]=\"disabled\"\n [placeholder]=\"config.placeholder || ''\"\n (change)=\"onUrlChange($event)\"\n (blur)=\"onBlur()\"\n />\n\n @if (url) {\n <gui-icon-button-wrapper matSuffix>\n <button mat-icon-button type=\"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\" alt=\"\" />\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\n #fileInput\n type=\"file\"\n [accept]=\"accept\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n />\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;line-height:1}.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 }); }
|
|
100
100
|
}
|
|
101
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuiFileUploader, decorators: [{
|
|
102
102
|
type: Component,
|
|
@@ -119,7 +119,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
119
119
|
MatHint,
|
|
120
120
|
GuiFieldLabel,
|
|
121
121
|
GuiIconButtonWrapper,
|
|
122
|
-
], template: "<mat-form-field>\n <gui-icon-button-wrapper matPrefix>\n <mat-icon svgIcon=\"link\" />\n </gui-icon-button-wrapper>\n\n <input\n matInput\n type=\"text\"\n [ngModel]=\"url\"\n [disabled]=\"disabled\"\n [placeholder]=\"config.placeholder || ''\"\n (change)=\"onUrlChange($event)\"\n (blur)=\"onBlur()\"\n />\n\n @if (url) {\n <gui-icon-button-wrapper matSuffix>\n <button mat-icon-button type=\"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\" alt=\"\" />\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\n #fileInput\n type=\"file\"\n [accept]=\"accept\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n />\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"] }]
|
|
122
|
+
], template: "<mat-form-field>\n <gui-icon-button-wrapper matPrefix>\n <mat-icon svgIcon=\"link\" />\n </gui-icon-button-wrapper>\n\n <input\n matInput\n type=\"text\"\n [ngModel]=\"url\"\n [disabled]=\"disabled\"\n [placeholder]=\"config.placeholder || ''\"\n (change)=\"onUrlChange($event)\"\n (blur)=\"onBlur()\"\n />\n\n @if (url) {\n <gui-icon-button-wrapper matSuffix>\n <button mat-icon-button type=\"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\" alt=\"\" />\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\n #fileInput\n type=\"file\"\n [accept]=\"accept\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n (change)=\"onFileChange($event)\"\n />\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;line-height:1}.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"] }]
|
|
123
123
|
}], ctorParameters: () => [{ type: i1.GuiFileUploaderConfig }, { type: i0.ChangeDetectorRef }, { type: i2.GuiIconsRegistry }], propDecorators: { fileInput: [{
|
|
124
124
|
type: ViewChild,
|
|
125
125
|
args: ['fileInput']
|
|
@@ -136,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
136
136
|
}], fileChange: [{
|
|
137
137
|
type: Output
|
|
138
138
|
}] } });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7QUEwQ2xGLE1BQU0sT0FBTyxlQUFlO0lBb0IxQixZQUNVLGVBQXNDLEVBQ3RDLEdBQXNCLEVBQzlCLGFBQStCO1FBRnZCLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQUN0QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQW5CdkIsV0FBTSxHQUF3QixFQUFFLENBQUM7UUFDakMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixTQUFJ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LFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxTQUFTO3dCQUNULFFBQVE7d0JBQ1IsYUFBYTt3QkFDYixTQUFTO3dCQUNULE9BQU87d0JBQ1AsYUFBYTt3QkFDYixvQkFBb0I7cUJBQ3JCO3lKQUd1QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBRWIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEhpbnQsIE1hdFByZWZpeCwgTWF0U3VmZml4IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBHdWlGaWVsZExhYmVsIH0gZnJvbSAnLi4vZmllbGQtbGFiZWwvZmllbGQtbGFiZWwnO1xuaW1wb3J0IHsgR3VpSWNvbnNSZWdpc3RyeSB9IGZyb20gJy4uL2d1aS1pY29ucyc7XG5pbXBvcnQgeyBHdWlJY29uQnV0dG9uV3JhcHBlciB9IGZyb20gJy4uL2ljb24tYnV0dG9uLXdyYXBwZXIvaWNvbi1idXR0b24td3JhcHBlcic7XG5pbXBvcnQgeyBHdWlDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlJztcbmltcG9ydCB7IEd1aUZpbGVVcGxvYWRlckNvbmZpZyB9IGZyb20gJy4vZmlsZS11cGxvYWRlci1jb25maWcnO1xuXG5leHBvcnQgdHlwZSBGaWxlVXBsb2FkVHlwZSA9ICdpbWFnZScgfCAndmlkZW8nIHwgJ2F1ZGlvJyB8ICcqJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlVXBsb2FkQ29udGVudCB7XG4gIGRhdGE6IEZpbGU7XG4gIHByb2dyZXNzOiBudW1iZXI7XG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2d1aS1maWxlLXVwbG9hZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkZXIuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWxlLXVwbG9hZGVyLnNjc3MnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdndWktZmllbGQgZ3VpLWZpbGUtdXBsb2FkZXInLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHdWlGaWxlVXBsb2FkZXIpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZCxcbiAgICBNYXRJY29uLFxuICAgIE1hdFByZWZpeCxcbiAgICBNYXRJbnB1dCxcbiAgICBNYXRJY29uQnV0dG9uLFxuICAgIE1hdFN1ZmZpeCxcbiAgICBNYXRIaW50LFxuICAgIEd1aUZpZWxkTGFiZWwsXG4gICAgR3VpSWNvbkJ1dHRvbldyYXBwZXIsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEd1aUZpbGVVcGxvYWRlciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxHdWlDb250cm9sPiA9IHt9O1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB0eXBlOiBGaWxlVXBsb2FkVHlwZSA9ICcqJztcbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuICBASW5wdXQoKSBhY2NlcHQgPSAnJztcblxuICBAT3V0cHV0KCkgZmlsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIGZpbGUgdXJsIHRoYXQgcmV0dXJuZWQgZnJvbSB0aGUgc2VydmVyXG4gIHVybCA9ICcnO1xuXG4gIC8vIGZpbGUgdG8gdXBsb2FkXG4gIGZpbGVVcGxvYWQhOiBGaWxlVXBsb2FkQ29udGVudDtcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmlsZVVwbG9hZGVyQ2ZnOiBHdWlGaWxlVXBsb2FkZXJDb25maWcsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGljb25zUmVnaXN0cnk6IEd1aUljb25zUmVnaXN0cnlcbiAgKSB7XG4gICAgaWNvbnNSZWdpc3RyeS5hZGQoJ2xpbmsnLCAnY2xlYXInLCAnZmlsZScsICd1cGxvYWQnKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10gfHwgY2hhbmdlc1snYWNjZXB0J10gfHwgY2hhbmdlc1sndHlwZSddKSB7XG4gICAgICB0aGlzLmFjY2VwdCA9IHRoaXMuY29uZmlnLmFjY2VwdCB8fCB0aGlzLmFjY2VwdCB8fCB0aGlzLnR5cGUgKyAnLyonO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudXJsID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdXBsb2FkKGZpbGVVcGxvYWQ6IEZpbGVVcGxvYWRDb250ZW50KSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlVXBsb2FkLmRhdGEpO1xuXG4gICAgZmlsZVVwbG9hZC5pblByb2dyZXNzID0gdHJ1ZTtcblxuICAgIHRoaXMuZmlsZVVwbG9hZGVyQ2ZnXG4gICAgICAudXBsb2FkKGZvcm1EYXRhLCB0aGlzLmNvbmZpZylcbiAgICAgIC5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgZmlsZVVwbG9hZC5pblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLnVybCA9IHJlc3VsdDtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudXJsKTtcbiAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gICAgICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQodGhpcy51cmwpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uVXJsQ2hhbmdlKGU6IEV2ZW50KSB7XG4gICAgdGhpcy51cmwgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudXJsKTtcblxuICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMudXJsKTtcbiAgfVxuXG4gIG9uRmlsZUNoYW5nZShlOiBFdmVudCkge1xuICAgIHRoaXMuZmlsZVVwbG9hZCA9IHtcbiAgICAgIGRhdGE6IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcyFbMF0sXG4gICAgICBpblByb2dyZXNzOiBmYWxzZSxcbiAgICAgIHByb2dyZXNzOiAwLFxuICAgIH07XG5cbiAgICB0aGlzLnVwbG9hZCh0aGlzLmZpbGVVcGxvYWQpO1xuXG4gICAgLy8gcmVzZXQgaW5wdXQgdmFsdWVcbiAgICAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSAnJztcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25DbGVhcigpIHtcbiAgICB0aGlzLnVybCA9ICcnO1xuXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnVybCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcblxuICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMudXJsKTtcbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkPlxuICA8Z3VpLWljb24tYnV0dG9uLXdyYXBwZXIgbWF0UHJlZml4PlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibGlua1wiIC8+XG4gIDwvZ3VpLWljb24tYnV0dG9uLXdyYXBwZXI+XG5cbiAgPGlucHV0XG4gICAgbWF0SW5wdXRcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgW25nTW9kZWxdPVwidXJsXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgIChjaGFuZ2UpPVwib25VcmxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAvPlxuXG4gIEBpZiAodXJsKSB7XG4gICAgPGd1aS1pY29uLWJ1dHRvbi13cmFwcGVyIG1hdFN1ZmZpeD5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBjb2xvcj1cIndhcm5cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwib25DbGVhcigpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY2xlYXJcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9ndWktaWNvbi1idXR0b24td3JhcHBlcj5cbiAgfVxuPC9tYXQtZm9ybS1maWVsZD5cblxuPGZpZ3VyZSBjbGFzcz1cImd1aS1maWxlLWNvbnRlbnRcIj5cbiAgQGlmICh1cmwpIHtcbiAgICBAc3dpdGNoICh0eXBlKSB7XG4gICAgICBAY2FzZSAoJ2ltYWdlJykge1xuICAgICAgICA8aW1nIFtzcmNdPVwidXJsXCIgYWx0PVwiXCIgLz5cbiAgICAgIH1cbiAgICAgIEBjYXNlICgndmlkZW8nKSB7XG4gICAgICAgIDx2aWRlbyBbc3JjXT1cInVybFwiPjwvdmlkZW8+XG4gICAgICB9XG4gICAgICBAY2FzZSAoJ2F1ZGlvJykge1xuICAgICAgICA8YXVkaW8gW3NyY109XCJ1cmxcIiBjb250cm9scz48L2F1ZGlvPlxuICAgICAgfVxuICAgICAgQGRlZmF1bHQge1xuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImZpbGVcIiAvPlxuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImd1aS1maWxlLXBsYWNlaG9sZGVyXCI+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInVwbG9hZFwiIC8+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8aW5wdXRcbiAgICAjZmlsZUlucHV0XG4gICAgdHlwZT1cImZpbGVcIlxuICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuICAvPlxuPC9maWd1cmU+XG5cbkBpZiAoY29uZmlnLnBhcmVudFR5cGUgPT09ICdpbmxpbmUnKSB7XG4gIDxtYXQtaGludD5cbiAgICA8Z3VpLWZpZWxkLWxhYmVsIFtjb25maWddPVwiY29uZmlnXCIgLz5cbiAgPC9tYXQtaGludD5cbn1cbiJdfQ==
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9maWxlLXVwbG9hZGVyL2ZpbGUtdXBsb2FkZXIudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZGVyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7Ozs7QUEwQ2xGLE1BQU0sT0FBTyxlQUFlO0lBb0IxQixZQUNVLGVBQXNDLEVBQ3RDLEdBQXNCLEVBQzlCLGFBQStCO1FBRnZCLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQUN0QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQW5CdkIsV0FBTSxHQUF3QixFQUFFLENBQUM7UUFDakMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixTQUFJ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LFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxTQUFTO3dCQUNULFFBQVE7d0JBQ1IsYUFBYTt3QkFDYixTQUFTO3dCQUNULE9BQU87d0JBQ1AsYUFBYTt3QkFDYixvQkFBb0I7cUJBQ3JCO3lKQUd1QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBRWIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdEhpbnQsIE1hdFByZWZpeCwgTWF0U3VmZml4IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBHdWlGaWVsZExhYmVsIH0gZnJvbSAnLi4vZmllbGQtbGFiZWwvZmllbGQtbGFiZWwnO1xuaW1wb3J0IHsgR3VpSWNvbnNSZWdpc3RyeSB9IGZyb20gJy4uL2d1aS1pY29ucyc7XG5pbXBvcnQgeyBHdWlJY29uQnV0dG9uV3JhcHBlciB9IGZyb20gJy4uL2ljb24tYnV0dG9uLXdyYXBwZXIvaWNvbi1idXR0b24td3JhcHBlcic7XG5pbXBvcnQgeyBHdWlDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlJztcbmltcG9ydCB7IEd1aUZpbGVVcGxvYWRlckNvbmZpZyB9IGZyb20gJy4vZmlsZS11cGxvYWRlci1jb25maWcnO1xuXG5leHBvcnQgdHlwZSBGaWxlVXBsb2FkVHlwZSA9ICdpbWFnZScgfCAndmlkZW8nIHwgJ2F1ZGlvJyB8ICcqJztcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlVXBsb2FkQ29udGVudCB7XG4gIGRhdGE6IEZpbGU7XG4gIHByb2dyZXNzOiBudW1iZXI7XG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2d1aS1maWxlLXVwbG9hZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkZXIuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWxlLXVwbG9hZGVyLnNjc3MnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdndWktZmllbGQgZ3VpLWZpbGUtdXBsb2FkZXInLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHdWlGaWxlVXBsb2FkZXIpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZCxcbiAgICBNYXRJY29uLFxuICAgIE1hdFByZWZpeCxcbiAgICBNYXRJbnB1dCxcbiAgICBNYXRJY29uQnV0dG9uLFxuICAgIE1hdFN1ZmZpeCxcbiAgICBNYXRIaW50LFxuICAgIEd1aUZpZWxkTGFiZWwsXG4gICAgR3VpSWNvbkJ1dHRvbldyYXBwZXIsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEd1aUZpbGVVcGxvYWRlciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxHdWlDb250cm9sPiA9IHt9O1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB0eXBlOiBGaWxlVXBsb2FkVHlwZSA9ICcqJztcbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuICBASW5wdXQoKSBhY2NlcHQgPSAnJztcblxuICBAT3V0cHV0KCkgZmlsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIGZpbGUgdXJsIHRoYXQgcmV0dXJuZWQgZnJvbSB0aGUgc2VydmVyXG4gIHVybCA9ICcnO1xuXG4gIC8vIGZpbGUgdG8gdXBsb2FkXG4gIGZpbGVVcGxvYWQhOiBGaWxlVXBsb2FkQ29udGVudDtcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmlsZVVwbG9hZGVyQ2ZnOiBHdWlGaWxlVXBsb2FkZXJDb25maWcsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGljb25zUmVnaXN0cnk6IEd1aUljb25zUmVnaXN0cnlcbiAgKSB7XG4gICAgaWNvbnNSZWdpc3RyeS5hZGQoJ2xpbmsnLCAnY2xlYXInLCAnZmlsZScsICd1cGxvYWQnKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10gfHwgY2hhbmdlc1snYWNjZXB0J10gfHwgY2hhbmdlc1sndHlwZSddKSB7XG4gICAgICB0aGlzLmFjY2VwdCA9IHRoaXMuY29uZmlnLmFjY2VwdCB8fCB0aGlzLmFjY2VwdCB8fCB0aGlzLnR5cGUgKyAnLyonO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudXJsID0gdmFsdWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdXBsb2FkKGZpbGVVcGxvYWQ6IEZpbGVVcGxvYWRDb250ZW50KSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlVXBsb2FkLmRhdGEpO1xuXG4gICAgZmlsZVVwbG9hZC5pblByb2dyZXNzID0gdHJ1ZTtcblxuICAgIHRoaXMuZmlsZVVwbG9hZGVyQ2ZnXG4gICAgICAudXBsb2FkKGZvcm1EYXRhLCB0aGlzLmNvbmZpZylcbiAgICAgIC5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgZmlsZVVwbG9hZC5pblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLnVybCA9IHJlc3VsdDtcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudXJsKTtcbiAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuXG4gICAgICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQodGhpcy51cmwpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uVXJsQ2hhbmdlKGU6IEV2ZW50KSB7XG4gICAgdGhpcy51cmwgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG5cbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudXJsKTtcblxuICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMudXJsKTtcbiAgfVxuXG4gIG9uRmlsZUNoYW5nZShlOiBFdmVudCkge1xuICAgIHRoaXMuZmlsZVVwbG9hZCA9IHtcbiAgICAgIGRhdGE6IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcyFbMF0sXG4gICAgICBpblByb2dyZXNzOiBmYWxzZSxcbiAgICAgIHByb2dyZXNzOiAwLFxuICAgIH07XG5cbiAgICB0aGlzLnVwbG9hZCh0aGlzLmZpbGVVcGxvYWQpO1xuXG4gICAgLy8gcmVzZXQgaW5wdXQgdmFsdWVcbiAgICAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSAnJztcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG5cbiAgb25DbGVhcigpIHtcbiAgICB0aGlzLnVybCA9ICcnO1xuXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnVybCk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcblxuICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMudXJsKTtcbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkPlxuICA8Z3VpLWljb24tYnV0dG9uLXdyYXBwZXIgbWF0UHJlZml4PlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibGlua1wiIC8+XG4gIDwvZ3VpLWljb24tYnV0dG9uLXdyYXBwZXI+XG5cbiAgPGlucHV0XG4gICAgbWF0SW5wdXRcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgW25nTW9kZWxdPVwidXJsXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgIChjaGFuZ2UpPVwib25VcmxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAvPlxuXG4gIEBpZiAodXJsKSB7XG4gICAgPGd1aS1pY29uLWJ1dHRvbi13cmFwcGVyIG1hdFN1ZmZpeD5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBjb2xvcj1cIndhcm5cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAoY2xpY2spPVwib25DbGVhcigpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiY2xlYXJcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9ndWktaWNvbi1idXR0b24td3JhcHBlcj5cbiAgfVxuPC9tYXQtZm9ybS1maWVsZD5cblxuPGZpZ3VyZSBjbGFzcz1cImd1aS1maWxlLWNvbnRlbnRcIj5cbiAgQGlmICh1cmwpIHtcbiAgICBAc3dpdGNoICh0eXBlKSB7XG4gICAgICBAY2FzZSAoJ2ltYWdlJykge1xuICAgICAgICA8aW1nIFtzcmNdPVwidXJsXCIgYWx0PVwiXCIgLz5cbiAgICAgIH1cbiAgICAgIEBjYXNlICgndmlkZW8nKSB7XG4gICAgICAgIDx2aWRlbyBbc3JjXT1cInVybFwiPjwvdmlkZW8+XG4gICAgICB9XG4gICAgICBAY2FzZSAoJ2F1ZGlvJykge1xuICAgICAgICA8YXVkaW8gW3NyY109XCJ1cmxcIiBjb250cm9scz48L2F1ZGlvPlxuICAgICAgfVxuICAgICAgQGRlZmF1bHQge1xuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImZpbGVcIiAvPlxuICAgICAgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImd1aS1maWxlLXBsYWNlaG9sZGVyXCI+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cInVwbG9hZFwiIC8+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8aW5wdXRcbiAgICAjZmlsZUlucHV0XG4gICAgdHlwZT1cImZpbGVcIlxuICAgIFthY2NlcHRdPVwiYWNjZXB0XCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuICAvPlxuPC9maWd1cmU+XG5cbkBpZiAoY29uZmlnLnBhcmVudFR5cGUgPT09ICdpbmxpbmUnKSB7XG4gIDxtYXQtaGludD5cbiAgICA8Z3VpLWZpZWxkLWxhYmVsIFtjb25maWddPVwiY29uZmlnXCIgLz5cbiAgPC9tYXQtaGludD5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { GradientPicker } from '@acrodata/gradient-picker';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewEncapsulation, } from '@angular/core';
|
|
3
|
+
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { MatButtonToggle, MatButtonToggleGroup } from '@angular/material/button-toggle';
|
|
5
|
+
import { MatIcon } from '@angular/material/icon';
|
|
6
|
+
import { TinyColor } from '@ctrl/tinycolor';
|
|
7
|
+
import { ColorChromeModule } from 'ngx-color/chrome';
|
|
8
|
+
import { GuiFileUploader } from '../file-uploader/file-uploader';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "../gui-icons";
|
|
11
|
+
import * as i2 from "@angular/forms";
|
|
12
|
+
import * as i3 from "ngx-color/chrome";
|
|
13
|
+
export class GuiFillPicker {
|
|
14
|
+
constructor(cdr, iconsRegistry) {
|
|
15
|
+
this.cdr = cdr;
|
|
16
|
+
this.disabled = false;
|
|
17
|
+
this.type = 'all';
|
|
18
|
+
this.types = [
|
|
19
|
+
{ label: 'Solid', value: 'solid' },
|
|
20
|
+
{ label: 'Gradient', value: 'gradient' },
|
|
21
|
+
{ label: 'Image', value: 'image' },
|
|
22
|
+
];
|
|
23
|
+
this.selectedType = 'solid';
|
|
24
|
+
this.colorFormat = 'hex';
|
|
25
|
+
this.value = '';
|
|
26
|
+
this.onChange = () => { };
|
|
27
|
+
this.onTouched = () => { };
|
|
28
|
+
iconsRegistry.add('solid', 'gradient', 'image');
|
|
29
|
+
}
|
|
30
|
+
ngOnChanges(changes) {
|
|
31
|
+
if (changes['type']) {
|
|
32
|
+
if (this.type === 'gradient') {
|
|
33
|
+
this.selectedType = 'gradient';
|
|
34
|
+
}
|
|
35
|
+
else if (this.type === 'image') {
|
|
36
|
+
this.selectedType = 'image';
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.selectedType = 'solid';
|
|
40
|
+
}
|
|
41
|
+
this.setValueByType();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
writeValue(value) {
|
|
45
|
+
if (typeof value === 'string') {
|
|
46
|
+
value = value.trim();
|
|
47
|
+
if (!this.type) {
|
|
48
|
+
this.getTypeFromModel(value);
|
|
49
|
+
}
|
|
50
|
+
this.getValueFromModel(value);
|
|
51
|
+
this.cdr.markForCheck();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
registerOnChange(fn) {
|
|
55
|
+
this.onChange = fn;
|
|
56
|
+
}
|
|
57
|
+
registerOnTouched(fn) {
|
|
58
|
+
this.onTouched = fn;
|
|
59
|
+
}
|
|
60
|
+
setDisabledState(isDisabled) {
|
|
61
|
+
this.disabled = isDisabled;
|
|
62
|
+
this.cdr.markForCheck();
|
|
63
|
+
}
|
|
64
|
+
getColorFormat() {
|
|
65
|
+
const color = new TinyColor(this.value);
|
|
66
|
+
if (color.format === 'rgb' || color.format === 'hsl' || color.format === 'hsv') {
|
|
67
|
+
return color.format;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return 'hex';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
getTypeFromModel(value) {
|
|
74
|
+
if (value.includes('linear') || value.includes('radial') || value.includes('conic')) {
|
|
75
|
+
this.selectedType = 'gradient';
|
|
76
|
+
}
|
|
77
|
+
else if (value.startsWith('url')) {
|
|
78
|
+
this.selectedType = 'image';
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this.selectedType = 'solid';
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
getValueFromModel(value) {
|
|
85
|
+
if (this.selectedType === 'solid') {
|
|
86
|
+
this.value = value;
|
|
87
|
+
this.colorFormat = this.getColorFormat();
|
|
88
|
+
}
|
|
89
|
+
else if (this.selectedType === 'gradient') {
|
|
90
|
+
this.value = value;
|
|
91
|
+
}
|
|
92
|
+
else if (this.selectedType === 'image') {
|
|
93
|
+
const regex = /url\((?:'|")?([^'"]+?)(?:'|")?\)/;
|
|
94
|
+
this.value = value.match(regex)?.[1] || '';
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
setValueByType() {
|
|
98
|
+
if (this.selectedType === 'solid') {
|
|
99
|
+
this.value = '#000';
|
|
100
|
+
}
|
|
101
|
+
else if (this.selectedType === 'gradient') {
|
|
102
|
+
this.value = 'linear-gradient(transparent, #000)';
|
|
103
|
+
}
|
|
104
|
+
else if (this.selectedType === 'image') {
|
|
105
|
+
this.value = '';
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
onTypeChange() {
|
|
109
|
+
this.setValueByType();
|
|
110
|
+
this.onChange(this.value);
|
|
111
|
+
this.cdr.markForCheck();
|
|
112
|
+
}
|
|
113
|
+
onColorChange(e) {
|
|
114
|
+
this.value = {
|
|
115
|
+
hex: e.color.rgb.a === 1 ? e.color.hex : new TinyColor(e.color.rgb).toHex8String(),
|
|
116
|
+
rgb: new TinyColor(e.color.rgb).toRgbString(),
|
|
117
|
+
hsl: new TinyColor(e.color.hsl).toHslString(),
|
|
118
|
+
hsv: new TinyColor(e.color.hsv).toHsvString(),
|
|
119
|
+
}[this.colorFormat];
|
|
120
|
+
this.onChange(this.value);
|
|
121
|
+
}
|
|
122
|
+
onGradientChange() {
|
|
123
|
+
this.onChange(this.value);
|
|
124
|
+
}
|
|
125
|
+
onImageChange() {
|
|
126
|
+
this.onChange(`url("${this.value}")`);
|
|
127
|
+
}
|
|
128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuiFillPicker, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.GuiIconsRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
129
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: GuiFillPicker, isStandalone: true, selector: "gui-fill-picker", inputs: { disabled: "disabled", type: "type" }, host: { classAttribute: "gui-fill-picker" }, providers: [
|
|
130
|
+
{
|
|
131
|
+
provide: NG_VALUE_ACCESSOR,
|
|
132
|
+
useExisting: forwardRef(() => GuiFillPicker),
|
|
133
|
+
multi: true,
|
|
134
|
+
},
|
|
135
|
+
], usesOnChanges: true, ngImport: i0, template: "@if (type === 'all') {\n <div class=\"gui-fill-picker-header\">\n <mat-button-toggle-group\n [(ngModel)]=\"selectedType\"\n hideSingleSelectionIndicator\n (ngModelChange)=\"onTypeChange()\"\n >\n @for (t of types; track $index) {\n <mat-button-toggle [value]=\"t.value\" [title]=\"t.label\">\n <mat-icon [svgIcon]=\"t.value\" />\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n}\n\n<div class=\"gui-fill-picker-body\">\n @if (selectedType === 'solid') {\n <color-chrome [color]=\"value\" (onChangeComplete)=\"onColorChange($event)\" />\n } @else if (selectedType === 'gradient') {\n <gradient-picker [(ngModel)]=\"value\" (ngModelChange)=\"onGradientChange()\" />\n } @else if (selectedType === 'image') {\n <gui-file-uploader type=\"image\" [(ngModel)]=\"value\" (ngModelChange)=\"onImageChange()\" />\n }\n</div>\n", styles: [".gui-fill-picker{display:block;width:15rem;border-radius:.25rem;background-color:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);box-shadow:inset 0 0 1px #ffffffa3,0 2px 4px #00000029,0 8px 16px #0000001f,0 0 1px #0000001f}.gui-fill-picker color-chrome{display:block}.gui-fill-picker color-chrome .chrome-picker{width:auto;background:none;box-shadow:none;border-radius:0;font-family:inherit}.gui-fill-picker color-chrome .saturation{border-radius:.25rem;box-shadow:0 0 0 1px #ffffff1f,0 0 0 1px #0000001f}.gui-fill-picker color-chrome .chrome-body{padding:1rem 0 0}.gui-fill-picker color-chrome .chrome-swatch{box-shadow:0 0 0 1px #ffffff1f,0 0 0 1px #0000001f}.gui-fill-picker color-chrome .chrome-active{box-shadow:none}.gui-fill-picker color-chrome .alpha-checkboard{background-color:#fff;border-radius:2px}.gui-fill-picker color-chrome .alpha-gradient{border-radius:2px}.gui-fill-picker color-chrome .chrome-wrap{gap:.75rem;align-items:center}.gui-fill-picker color-chrome .chrome-fields{gap:.5rem;margin:0}.gui-fill-picker color-chrome .chrome-field{padding:0}.gui-fill-picker color-chrome .wrap{width:100%;line-height:1}.gui-fill-picker color-chrome .wrap input{background-color:transparent;box-shadow:none!important;color:var(--mdc-outlined-text-field-input-text-color)!important;border:1px solid var(--mdc-outlined-text-field-outline-color)!important}.gui-fill-picker color-chrome .chrome-toggle{display:flex;width:1.5rem;height:1.5rem;padding:.125rem;border-radius:2px}.gui-fill-picker color-chrome .chrome-toggle:hover{background:#0000000a}.gui-fill-picker color-chrome .chrome-icon{margin:0}.gui-fill-picker color-chrome .chrome-toggle-svg{width:1.25rem;height:1.25rem;border:none}.gui-fill-picker color-chrome .chrome-toggle-svg:hover{background:transparent}.gui-fill-picker color-chrome .chrome-toggle-svg path{fill:var(--mdc-icon-button-icon-color)}.gui-fill-picker .gradient-picker{--gp-container-width: auto;--gp-container-vertical-padding: 0;--gp-container-margin: -4px -12px;--gp-container-shape: 0;--gp-container-elevation-shadow: none;--gp-container-background-color: transparent;--gp-container-text-color: var(--mdc-filled-text-field-input-text-color);--gp-input-background-color: var(--mdc-filled-text-field-container-color)}.gui-fill-picker-header{padding:.375rem .375rem 0;line-height:1;--mat-standard-button-toggle-shape: 0;--mat-standard-button-toggle-height: 1}.gui-fill-picker-header .mat-button-toggle-group-appearance-standard{gap:.25rem;border:none}.gui-fill-picker-header .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none}.gui-fill-picker-header .mat-button-toggle-appearance-standard{border-radius:.25rem}.gui-fill-picker-header .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0}.gui-fill-picker-body{padding:.75rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.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: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ColorChromeModule }, { kind: "component", type: i3.ChromeComponent, selector: "color-chrome", inputs: ["disableAlpha"] }, { kind: "component", type: GradientPicker, selector: "gradient-picker", inputs: ["disabled"] }, { kind: "component", type: GuiFileUploader, selector: "gui-file-uploader", inputs: ["config", "disabled", "type", "name", "accept"], outputs: ["fileChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
136
|
+
}
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuiFillPicker, decorators: [{
|
|
138
|
+
type: Component,
|
|
139
|
+
args: [{ selector: 'gui-fill-picker', host: {
|
|
140
|
+
class: 'gui-fill-picker',
|
|
141
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
142
|
+
{
|
|
143
|
+
provide: NG_VALUE_ACCESSOR,
|
|
144
|
+
useExisting: forwardRef(() => GuiFillPicker),
|
|
145
|
+
multi: true,
|
|
146
|
+
},
|
|
147
|
+
], standalone: true, imports: [
|
|
148
|
+
FormsModule,
|
|
149
|
+
MatButtonToggleGroup,
|
|
150
|
+
MatButtonToggle,
|
|
151
|
+
MatIcon,
|
|
152
|
+
ColorChromeModule,
|
|
153
|
+
GradientPicker,
|
|
154
|
+
GuiFileUploader,
|
|
155
|
+
], template: "@if (type === 'all') {\n <div class=\"gui-fill-picker-header\">\n <mat-button-toggle-group\n [(ngModel)]=\"selectedType\"\n hideSingleSelectionIndicator\n (ngModelChange)=\"onTypeChange()\"\n >\n @for (t of types; track $index) {\n <mat-button-toggle [value]=\"t.value\" [title]=\"t.label\">\n <mat-icon [svgIcon]=\"t.value\" />\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n}\n\n<div class=\"gui-fill-picker-body\">\n @if (selectedType === 'solid') {\n <color-chrome [color]=\"value\" (onChangeComplete)=\"onColorChange($event)\" />\n } @else if (selectedType === 'gradient') {\n <gradient-picker [(ngModel)]=\"value\" (ngModelChange)=\"onGradientChange()\" />\n } @else if (selectedType === 'image') {\n <gui-file-uploader type=\"image\" [(ngModel)]=\"value\" (ngModelChange)=\"onImageChange()\" />\n }\n</div>\n", styles: [".gui-fill-picker{display:block;width:15rem;border-radius:.25rem;background-color:var(--mat-expansion-container-background-color);color:var(--mat-expansion-container-text-color);box-shadow:inset 0 0 1px #ffffffa3,0 2px 4px #00000029,0 8px 16px #0000001f,0 0 1px #0000001f}.gui-fill-picker color-chrome{display:block}.gui-fill-picker color-chrome .chrome-picker{width:auto;background:none;box-shadow:none;border-radius:0;font-family:inherit}.gui-fill-picker color-chrome .saturation{border-radius:.25rem;box-shadow:0 0 0 1px #ffffff1f,0 0 0 1px #0000001f}.gui-fill-picker color-chrome .chrome-body{padding:1rem 0 0}.gui-fill-picker color-chrome .chrome-swatch{box-shadow:0 0 0 1px #ffffff1f,0 0 0 1px #0000001f}.gui-fill-picker color-chrome .chrome-active{box-shadow:none}.gui-fill-picker color-chrome .alpha-checkboard{background-color:#fff;border-radius:2px}.gui-fill-picker color-chrome .alpha-gradient{border-radius:2px}.gui-fill-picker color-chrome .chrome-wrap{gap:.75rem;align-items:center}.gui-fill-picker color-chrome .chrome-fields{gap:.5rem;margin:0}.gui-fill-picker color-chrome .chrome-field{padding:0}.gui-fill-picker color-chrome .wrap{width:100%;line-height:1}.gui-fill-picker color-chrome .wrap input{background-color:transparent;box-shadow:none!important;color:var(--mdc-outlined-text-field-input-text-color)!important;border:1px solid var(--mdc-outlined-text-field-outline-color)!important}.gui-fill-picker color-chrome .chrome-toggle{display:flex;width:1.5rem;height:1.5rem;padding:.125rem;border-radius:2px}.gui-fill-picker color-chrome .chrome-toggle:hover{background:#0000000a}.gui-fill-picker color-chrome .chrome-icon{margin:0}.gui-fill-picker color-chrome .chrome-toggle-svg{width:1.25rem;height:1.25rem;border:none}.gui-fill-picker color-chrome .chrome-toggle-svg:hover{background:transparent}.gui-fill-picker color-chrome .chrome-toggle-svg path{fill:var(--mdc-icon-button-icon-color)}.gui-fill-picker .gradient-picker{--gp-container-width: auto;--gp-container-vertical-padding: 0;--gp-container-margin: -4px -12px;--gp-container-shape: 0;--gp-container-elevation-shadow: none;--gp-container-background-color: transparent;--gp-container-text-color: var(--mdc-filled-text-field-input-text-color);--gp-input-background-color: var(--mdc-filled-text-field-container-color)}.gui-fill-picker-header{padding:.375rem .375rem 0;line-height:1;--mat-standard-button-toggle-shape: 0;--mat-standard-button-toggle-height: 1}.gui-fill-picker-header .mat-button-toggle-group-appearance-standard{gap:.25rem;border:none}.gui-fill-picker-header .mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none}.gui-fill-picker-header .mat-button-toggle-appearance-standard{border-radius:.25rem}.gui-fill-picker-header .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{padding:0}.gui-fill-picker-body{padding:.75rem}\n"] }]
|
|
156
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.GuiIconsRegistry }], propDecorators: { disabled: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], type: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}] } });
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsbC1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWkvZmlsbC9maWxsLXBpY2tlci50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2d1aS9maWxsL2ZpbGwtcGlja2VyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR0wsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztBQStCakUsTUFBTSxPQUFPLGFBQWE7SUFtQnhCLFlBQ1UsR0FBc0IsRUFDOUIsYUFBK0I7UUFEdkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFuQnZCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsU0FBSSxHQUFnQixLQUFLLENBQUM7UUFFbkMsVUFBSyxHQUFHO1lBQ04sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDeEMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVB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RkFDZCxlQUFlOzs0RkFHTixhQUFhO2tCQTNCekIsU0FBUzsrQkFDRSxpQkFBaUIsUUFHckI7d0JBQ0osS0FBSyxFQUFFLGlCQUFpQjtxQkFDekIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUM7NEJBQzVDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLGNBQ1csSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLE9BQU87d0JBQ1AsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGVBQWU7cUJBQ2hCO3FIQUdRLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JhZGllbnRQaWNrZXIgfSBmcm9tICdAYWNyb2RhdGEvZ3JhZGllbnQtcGlja2VyJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlLCBNYXRCdXR0b25Ub2dnbGVHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgVGlueUNvbG9yIH0gZnJvbSAnQGN0cmwvdGlueWNvbG9yJztcbmltcG9ydCB7IENvbG9yRXZlbnQgfSBmcm9tICduZ3gtY29sb3InO1xuaW1wb3J0IHsgQ29sb3JDaHJvbWVNb2R1bGUgfSBmcm9tICduZ3gtY29sb3IvY2hyb21lJztcbmltcG9ydCB7IEd1aUZpbGVVcGxvYWRlciB9IGZyb20gJy4uL2ZpbGUtdXBsb2FkZXIvZmlsZS11cGxvYWRlcic7XG5pbXBvcnQgeyBHdWlJY29uc1JlZ2lzdHJ5IH0gZnJvbSAnLi4vZ3VpLWljb25zJztcbmltcG9ydCB7IEd1aUZpbGxNb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ3VpLWZpbGwtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGwtcGlja2VyLmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmlsbC1waWNrZXIuc2NzcycsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2d1aS1maWxsLXBpY2tlcicsXG4gIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEd1aUZpbGxQaWNrZXIpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvblRvZ2dsZUdyb3VwLFxuICAgIE1hdEJ1dHRvblRvZ2dsZSxcbiAgICBNYXRJY29uLFxuICAgIENvbG9yQ2hyb21lTW9kdWxlLFxuICAgIEdyYWRpZW50UGlja2VyLFxuICAgIEd1aUZpbGVVcGxvYWRlcixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3VpRmlsbFBpY2tlciBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSB0eXBlOiBHdWlGaWxsTW9kZSA9ICdhbGwnO1xuXG4gIHR5cGVzID0gW1xuICAgIHsgbGFiZWw6ICdTb2xpZCcsIHZhbHVlOiAnc29saWQnIH0sXG4gICAgeyBsYWJlbDogJ0dyYWRpZW50JywgdmFsdWU6ICdncmFkaWVudCcgfSxcbiAgICB7IGxhYmVsOiAnSW1hZ2UnLCB2YWx1ZTogJ2ltYWdlJyB9LFxuICBdO1xuXG4gIHNlbGVjdGVkVHlwZSA9ICdzb2xpZCc7XG5cbiAgY29sb3JGb3JtYXQ6ICdoZXgnIHwgJ3JnYicgfCAnaHNsJyB8ICdoc3YnID0gJ2hleCc7XG5cbiAgdmFsdWUgPSAnJztcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBpY29uc1JlZ2lzdHJ5OiBHdWlJY29uc1JlZ2lzdHJ5XG4gICkge1xuICAgIGljb25zUmVnaXN0cnkuYWRkKCdzb2xpZCcsICdncmFkaWVudCcsICdpbWFnZScpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10pIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdncmFkaWVudCcpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFR5cGUgPSAnZ3JhZGllbnQnO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFR5cGUgPSAnaW1hZ2UnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFR5cGUgPSAnc29saWQnO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRWYWx1ZUJ5VHlwZSgpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLnRyaW0oKTtcbiAgICAgIGlmICghdGhpcy50eXBlKSB7XG4gICAgICAgIHRoaXMuZ2V0VHlwZUZyb21Nb2RlbCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLmdldFZhbHVlRnJvbU1vZGVsKHZhbHVlKTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXRDb2xvckZvcm1hdCgpIHtcbiAgICBjb25zdCBjb2xvciA9IG5ldyBUaW55Q29sb3IodGhpcy52YWx1ZSk7XG4gICAgaWYgKGNvbG9yLmZvcm1hdCA9PT0gJ3JnYicgfHwgY29sb3IuZm9ybWF0ID09PSAnaHNsJyB8fCBjb2xvci5mb3JtYXQgPT09ICdoc3YnKSB7XG4gICAgICByZXR1cm4gY29sb3IuZm9ybWF0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2hleCc7XG4gICAgfVxuICB9XG5cbiAgZ2V0VHlwZUZyb21Nb2RlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlLmluY2x1ZGVzKCdsaW5lYXInKSB8fCB2YWx1ZS5pbmNsdWRlcygncmFkaWFsJykgfHwgdmFsdWUuaW5jbHVkZXMoJ2NvbmljJykpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gJ2dyYWRpZW50JztcbiAgICB9IGVsc2UgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ3VybCcpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVHlwZSA9ICdpbWFnZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gJ3NvbGlkJztcbiAgICB9XG4gIH1cblxuICBnZXRWYWx1ZUZyb21Nb2RlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUeXBlID09PSAnc29saWQnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmNvbG9yRm9ybWF0ID0gdGhpcy5nZXRDb2xvckZvcm1hdCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFR5cGUgPT09ICdncmFkaWVudCcpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUeXBlID09PSAnaW1hZ2UnKSB7XG4gICAgICBjb25zdCByZWdleCA9IC91cmxcXCgoPzonfFwiKT8oW14nXCJdKz8pKD86J3xcIik/XFwpLztcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZS5tYXRjaChyZWdleCk/LlsxXSB8fCAnJztcbiAgICB9XG4gIH1cblxuICBzZXRWYWx1ZUJ5VHlwZSgpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFR5cGUgPT09ICdzb2xpZCcpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAnIzAwMCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkVHlwZSA9PT0gJ2dyYWRpZW50Jykge1xuICAgICAgdGhpcy52YWx1ZSA9ICdsaW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQsICMwMDApJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUeXBlID09PSAnaW1hZ2UnKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgfVxuICB9XG5cbiAgb25UeXBlQ2hhbmdlKCkge1xuICAgIHRoaXMuc2V0VmFsdWVCeVR5cGUoKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25Db2xvckNoYW5nZShlOiBDb2xvckV2ZW50KSB7XG4gICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgIGhleDogZS5jb2xvci5yZ2IuYSA9PT0gMSA/IGUuY29sb3IuaGV4IDogbmV3IFRpbnlDb2xvcihlLmNvbG9yLnJnYikudG9IZXg4U3RyaW5nKCksXG4gICAgICByZ2I6IG5ldyBUaW55Q29sb3IoZS5jb2xvci5yZ2IpLnRvUmdiU3RyaW5nKCksXG4gICAgICBoc2w6IG5ldyBUaW55Q29sb3IoZS5jb2xvci5oc2wpLnRvSHNsU3RyaW5nKCksXG4gICAgICBoc3Y6IG5ldyBUaW55Q29sb3IoZS5jb2xvci5oc3YpLnRvSHN2U3RyaW5nKCksXG4gICAgfVt0aGlzLmNvbG9yRm9ybWF0XTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgb25HcmFkaWVudENoYW5nZSgpIHtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgb25JbWFnZUNoYW5nZSgpIHtcbiAgICB0aGlzLm9uQ2hhbmdlKGB1cmwoXCIke3RoaXMudmFsdWV9XCIpYCk7XG4gIH1cbn1cbiIsIkBpZiAodHlwZSA9PT0gJ2FsbCcpIHtcbiAgPGRpdiBjbGFzcz1cImd1aS1maWxsLXBpY2tlci1oZWFkZXJcIj5cbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcbiAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUeXBlXCJcbiAgICAgIGhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3JcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVHlwZUNoYW5nZSgpXCJcbiAgICA+XG4gICAgICBAZm9yICh0IG9mIHR5cGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIFt2YWx1ZV09XCJ0LnZhbHVlXCIgW3RpdGxlXT1cInQubGFiZWxcIj5cbiAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwidC52YWx1ZVwiIC8+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICB9XG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgPC9kaXY+XG59XG5cbjxkaXYgY2xhc3M9XCJndWktZmlsbC1waWNrZXItYm9keVwiPlxuICBAaWYgKHNlbGVjdGVkVHlwZSA9PT0gJ3NvbGlkJykge1xuICAgIDxjb2xvci1jaHJvbWUgW2NvbG9yXT1cInZhbHVlXCIgKG9uQ2hhbmdlQ29tcGxldGUpPVwib25Db2xvckNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgfSBAZWxzZSBpZiAoc2VsZWN0ZWRUeXBlID09PSAnZ3JhZGllbnQnKSB7XG4gICAgPGdyYWRpZW50LXBpY2tlciBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25HcmFkaWVudENoYW5nZSgpXCIgLz5cbiAgfSBAZWxzZSBpZiAoc2VsZWN0ZWRUeXBlID09PSAnaW1hZ2UnKSB7XG4gICAgPGd1aS1maWxlLXVwbG9hZGVyIHR5cGU9XCJpbWFnZVwiIFsobmdNb2RlbCldPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkltYWdlQ2hhbmdlKClcIiAvPlxuICB9XG48L2Rpdj5cbiJdfQ==
|