UNPKG

@acrodata/gui

Version:

JSON powered GUI for configurable panels.

86 lines 10.5 kB
import { Inject, Injectable, InjectionToken, Optional } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/material/icon"; import * as i2 from "@angular/platform-browser"; export const svgIcons = { horizontal: ` <svg viewBox="0 0 24 24"> <path d="M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"></path> </svg> `, vertical: ` <svg viewBox="0 0 24 24"> <path d="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z"></path> </svg> `, add: ` <svg viewBox="0 0 24 24"> <path d="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"></path> </svg> `, delete: ` <svg viewBox="0 0 24 24"> <path d="M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z"></path> </svg> `, copy: ` <svg viewBox="0 0 24 24"> <path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path> </svg> `, link: ` <svg viewBox="0 0 24 24"> <path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"></path> </svg> `, clear: ` <svg viewBox="0 0 24 24"> <path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path> </svg> `, file: ` <svg viewBox="0 0 24 24"> <path d="M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"></path> </svg> `, upload: ` <svg viewBox="0 0 24 24"> <path d="M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 2L6.46 7.46L7.88 8.88L11 5.75V15H13V5.75L16.13 8.88L17.55 7.45L12 2Z"></path> </svg> `, expand: ` <svg viewBox="0 0 24 24"> <path fill="currentColor" d="M10,21V19H6.41L10.91,14.5L9.5,13.09L5,17.59V14H3V21H10M14.5,10.91L19,6.41V10H21V3H14V5H17.59L13.09,9.5L14.5,10.91Z"></path> </svg>`, wrap: ` <svg viewBox="0 0 24 24"> <path fill="currentColor" d="M21,5H3V7H21V5M3,19H10V17H3V19M3,13H18C19,13 20,13.43 20,15C20,16.57 19,17 18,17H16V15L12,18L16,21V19H18C20.95,19 22,17.73 22,15C22,12.28 21,11 18,11H3V13Z"></path> </svg>`, }; /** Injection token that can be used to provide the default icons. */ export const GUI_ICONS_CONFIG = new InjectionToken('gui-icons-config'); export class GuiIconsRegistry { constructor(_iconRegistry, _sanitizer, _defaultIcons) { this._iconRegistry = _iconRegistry; this._sanitizer = _sanitizer; this._defaultIcons = _defaultIcons; } add(...iconNames) { const icons = Object.assign(svgIcons, this._defaultIcons); iconNames.forEach(k => { this._iconRegistry.addSvgIconLiteral(k, this._sanitizer.bypassSecurityTrustHtml(icons[k])); }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuiIconsRegistry, deps: [{ token: i1.MatIconRegistry }, { token: i2.DomSanitizer }, { token: GUI_ICONS_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuiIconsRegistry, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GuiIconsRegistry, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.MatIconRegistry }, { type: i2.DomSanitizer }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [GUI_ICONS_CONFIG] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpLWljb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvZ3VpL2d1aS1pY29ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBSTdFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixVQUFVLEVBQUU7Ozs7R0FJWDtJQUNELFFBQVEsRUFBRTs7OztHQUlUO0lBQ0QsR0FBRyxFQUFFOzs7O0dBSUo7SUFDRCxNQUFNLEVBQUU7Ozs7R0FJUDtJQUNELElBQUksRUFBRTs7OztHQUlMO0lBQ0QsSUFBSSxFQUFFOzs7O0dBSUw7SUFDRCxLQUFLLEVBQUU7Ozs7R0FJTjtJQUNELElBQUksRUFBRTs7OztHQUlMO0lBQ0QsTUFBTSxFQUFFOzs7O0dBSVA7SUFDRCxNQUFNLEVBQUU7OztTQUdEO0lBQ1AsSUFBSSxFQUFFOzs7U0FHQztDQUNSLENBQUM7QUFNRixxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWlCLGtCQUFrQixDQUFDLENBQUM7QUFHdkYsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUNVLGFBQThCLEVBQzlCLFVBQXdCLEVBQ2MsYUFBOEI7UUFGcEUsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQzlCLGVBQVUsR0FBVixVQUFVLENBQWM7UUFDYyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7SUFDM0UsQ0FBQztJQUVKLEdBQUcsQ0FBQyxHQUFHLFNBQXdCO1FBQzdCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBWlUsZ0JBQWdCLDZFQUlMLGdCQUFnQjttSEFKM0IsZ0JBQWdCLGNBREgsTUFBTTs7NEZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQUs3QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5leHBvcnQgY29uc3Qgc3ZnSWNvbnMgPSB7XG4gIGhvcml6b250YWw6IGBcbiAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGggZD1cIk0xNiwxMkEyLDIgMCAwLDEgMTgsMTBBMiwyIDAgMCwxIDIwLDEyQTIsMiAwIDAsMSAxOCwxNEEyLDIgMCAwLDEgMTYsMTJNMTAsMTJBMiwyIDAgMCwxIDEyLDEwQTIsMiAwIDAsMSAxNCwxMkEyLDIgMCAwLDEgMTIsMTRBMiwyIDAgMCwxIDEwLDEyTTQsMTJBMiwyIDAgMCwxIDYsMTBBMiwyIDAgMCwxIDgsMTJBMiwyIDAgMCwxIDYsMTRBMiwyIDAgMCwxIDQsMTJaXCI+PC9wYXRoPlxuICA8L3N2Zz5cbiAgYCxcbiAgdmVydGljYWw6IGBcbiAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGggZD1cIk0xMiwxNkEyLDIgMCAwLDEgMTQsMThBMiwyIDAgMCwxIDEyLDIwQTIsMiAwIDAsMSAxMCwxOEEyLDIgMCAwLDEgMTIsMTZNMTIsMTBBMiwyIDAgMCwxIDE0LDEyQTIsMiAwIDAsMSAxMiwxNEEyLDIgMCAwLDEgMTAsMTJBMiwyIDAgMCwxIDEyLDEwTTEyLDRBMiwyIDAgMCwxIDE0LDZBMiwyIDAgMCwxIDEyLDhBMiwyIDAgMCwxIDEwLDZBMiwyIDAgMCwxIDEyLDRaXCI+PC9wYXRoPlxuICA8L3N2Zz5cbiAgYCxcbiAgYWRkOiBgXG4gIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoIGQ9XCJNMTksMTNIMTNWMTlIMTFWMTNINVYxMUgxMVY1SDEzVjExSDE5VjEzWlwiPjwvcGF0aD5cbiAgPC9zdmc+XG4gIGAsXG4gIGRlbGV0ZTogYFxuICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aCBkPVwiTTksM1Y0SDRWNkg1VjE5QTIsMiAwIDAsMCA3LDIxSDE3QTIsMiAwIDAsMCAxOSwxOVY2SDIwVjRIMTVWM0g5TTcsNkgxN1YxOUg3VjZNOSw4VjE3SDExVjhIOU0xMyw4VjE3SDE1VjhIMTNaXCI+PC9wYXRoPlxuICA8L3N2Zz5cbiAgYCxcbiAgY29weTogYFxuICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xOSwyMUg4VjdIMTlNMTksNUg4QTIsMiAwIDAsMCA2LDdWMjFBMiwyIDAgMCwwIDgsMjNIMTlBMiwyIDAgMCwwIDIxLDIxVjdBMiwyIDAgMCwwIDE5LDVNMTYsMUg0QTIsMiAwIDAsMCAyLDNWMTdINFYzSDE2VjFaXCI+PC9wYXRoPlxuICA8L3N2Zz5cbiAgYCxcbiAgbGluazogYFxuICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aCBkPVwiTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01elwiPjwvcGF0aD5cbiAgPC9zdmc+XG4gIGAsXG4gIGNsZWFyOiBgXG4gIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoIGQ9XCJNMTksNi40MUwxNy41OSw1TDEyLDEwLjU5TDYuNDEsNUw1LDYuNDFMMTAuNTksMTJMNSwxNy41OUw2LjQxLDE5TDEyLDEzLjQxTDE3LjU5LDE5TDE5LDE3LjU5TDEzLjQxLDEyTDE5LDYuNDFaXCI+PC9wYXRoPlxuICA8L3N2Zz5cbiAgYCxcbiAgZmlsZTogYFxuICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aCBkPVwiTTE0LDJINkEyLDIgMCAwLDAgNCw0VjIwQTIsMiAwIDAsMCA2LDIySDE4QTIsMiAwIDAsMCAyMCwyMFY4TDE0LDJNMTgsMjBINlY0SDEzVjlIMThWMjBaXCI+PC9wYXRoPlxuICA8L3N2Zz5cbiAgYCxcbiAgdXBsb2FkOiBgXG4gIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoIGQ9XCJNMiAxMkg0VjE3SDIwVjEySDIyVjE3QzIyIDE4LjExIDIxLjExIDE5IDIwIDE5SDRDMi45IDE5IDIgMTguMTEgMiAxN1YxMk0xMiAyTDYuNDYgNy40Nkw3Ljg4IDguODhMMTEgNS43NVYxNUgxM1Y1Ljc1TDE2LjEzIDguODhMMTcuNTUgNy40NUwxMiAyWlwiPjwvcGF0aD5cbiAgPC9zdmc+XG4gIGAsXG4gIGV4cGFuZDogYFxuICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0xMCwyMVYxOUg2LjQxTDEwLjkxLDE0LjVMOS41LDEzLjA5TDUsMTcuNTlWMTRIM1YyMUgxME0xNC41LDEwLjkxTDE5LDYuNDFWMTBIMjFWM0gxNFY1SDE3LjU5TDEzLjA5LDkuNUwxNC41LDEwLjkxWlwiPjwvcGF0aD5cbiAgPC9zdmc+YCxcbiAgd3JhcDogYFxuICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk0yMSw1SDNWN0gyMVY1TTMsMTlIMTBWMTdIM1YxOU0zLDEzSDE4QzE5LDEzIDIwLDEzLjQzIDIwLDE1QzIwLDE2LjU3IDE5LDE3IDE4LDE3SDE2VjE1TDEyLDE4TDE2LDIxVjE5SDE4QzIwLjk1LDE5IDIyLDE3LjczIDIyLDE1QzIyLDEyLjI4IDIxLDExIDE4LDExSDNWMTNaXCI+PC9wYXRoPlxuICA8L3N2Zz5gLFxufTtcblxuZXhwb3J0IHR5cGUgR3VpSWNvblR5cGUgPSBrZXlvZiB0eXBlb2Ygc3ZnSWNvbnM7XG5cbmV4cG9ydCB0eXBlIEd1aUljb25zQ29uZmlnID0gUmVjb3JkPEd1aUljb25UeXBlLCBzdHJpbmc+O1xuXG4vKiogSW5qZWN0aW9uIHRva2VuIHRoYXQgY2FuIGJlIHVzZWQgdG8gcHJvdmlkZSB0aGUgZGVmYXVsdCBpY29ucy4gKi9cbmV4cG9ydCBjb25zdCBHVUlfSUNPTlNfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEd1aUljb25zQ29uZmlnPignZ3VpLWljb25zLWNvbmZpZycpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEd1aUljb25zUmVnaXN0cnkge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9pY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSxcbiAgICBwcml2YXRlIF9zYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEdVSV9JQ09OU19DT05GSUcpIHByaXZhdGUgX2RlZmF1bHRJY29ucz86IEd1aUljb25zQ29uZmlnXG4gICkge31cblxuICBhZGQoLi4uaWNvbk5hbWVzOiBHdWlJY29uVHlwZVtdKSB7XG4gICAgY29uc3QgaWNvbnMgPSBPYmplY3QuYXNzaWduKHN2Z0ljb25zLCB0aGlzLl9kZWZhdWx0SWNvbnMpO1xuICAgIGljb25OYW1lcy5mb3JFYWNoKGsgPT4ge1xuICAgICAgdGhpcy5faWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb25MaXRlcmFsKGssIHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChpY29uc1trXSkpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=