@yuuvis/client-framework 2.0.0-beta.5 → 2.0.0-beta.9

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.
Files changed (59) hide show
  1. package/fesm2022/yuuvis-client-framework-actions.mjs +13 -13
  2. package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
  3. package/fesm2022/yuuvis-client-framework-app-bar.mjs +3 -3
  4. package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -1
  5. package/fesm2022/yuuvis-client-framework-autocomplete.mjs +7 -7
  6. package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -1
  7. package/fesm2022/yuuvis-client-framework-clipboard.mjs +3 -3
  8. package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
  9. package/fesm2022/yuuvis-client-framework-common.mjs +58 -58
  10. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
  11. package/fesm2022/yuuvis-client-framework-datepicker.mjs +31 -31
  12. package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -1
  13. package/fesm2022/yuuvis-client-framework-forms.mjs +40 -40
  14. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
  15. package/fesm2022/yuuvis-client-framework-icons.mjs +9 -9
  16. package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
  17. package/fesm2022/yuuvis-client-framework-list.mjs +10 -10
  18. package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
  19. package/fesm2022/yuuvis-client-framework-master-details.mjs +7 -7
  20. package/fesm2022/yuuvis-client-framework-master-details.mjs.map +1 -1
  21. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +7 -7
  22. package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -1
  23. package/fesm2022/yuuvis-client-framework-metadata-form.mjs +15 -15
  24. package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
  25. package/fesm2022/yuuvis-client-framework-object-details.mjs +18 -18
  26. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
  27. package/fesm2022/yuuvis-client-framework-object-flavor.mjs +18 -18
  28. package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
  29. package/fesm2022/yuuvis-client-framework-object-form.mjs +28 -28
  30. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
  31. package/fesm2022/yuuvis-client-framework-object-preview.mjs +9 -9
  32. package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
  33. package/fesm2022/yuuvis-client-framework-object-summary.mjs +13 -13
  34. package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
  35. package/fesm2022/yuuvis-client-framework-overflow-menu.mjs +7 -7
  36. package/fesm2022/yuuvis-client-framework-overflow-menu.mjs.map +1 -1
  37. package/fesm2022/yuuvis-client-framework-pagination.mjs +3 -3
  38. package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
  39. package/fesm2022/yuuvis-client-framework-panel.mjs +3 -3
  40. package/fesm2022/yuuvis-client-framework-panel.mjs.map +1 -1
  41. package/fesm2022/yuuvis-client-framework-popout.mjs +7 -7
  42. package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -1
  43. package/fesm2022/yuuvis-client-framework-renderer.mjs +33 -33
  44. package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
  45. package/fesm2022/yuuvis-client-framework-sequence-list.mjs +3 -3
  46. package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
  47. package/fesm2022/yuuvis-client-framework-simple-search.mjs +3 -3
  48. package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
  49. package/fesm2022/yuuvis-client-framework-split-view.mjs +10 -10
  50. package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -1
  51. package/fesm2022/yuuvis-client-framework-tile-list.mjs +33 -33
  52. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
  53. package/fesm2022/yuuvis-client-framework-tree.mjs +9 -9
  54. package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
  55. package/fesm2022/yuuvis-client-framework-upload-progress.mjs +6 -6
  56. package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
  57. package/fesm2022/yuuvis-client-framework.mjs +4 -4
  58. package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
  59. package/package.json +5 -5
@@ -82,10 +82,10 @@ class IconService {
82
82
  // TODO: find a more sofisticated way to validate
83
83
  return svg.indexOf('<svg') !== -1;
84
84
  }
85
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
86
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IconService, providedIn: 'root' }); }
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
86
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: IconService, providedIn: 'root' }); }
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IconService, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: IconService, decorators: [{
89
89
  type: Injectable,
90
90
  args: [{
91
91
  providedIn: 'root'
@@ -153,10 +153,10 @@ class YuvIconComponent {
153
153
  this.#render();
154
154
  }
155
155
  }
156
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvIconComponent, deps: [{ token: i0.ElementRef }, { token: i1.HttpClient }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
157
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.1", type: YuvIconComponent, isStandalone: true, selector: "yuv-icon", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, svg: { classPropertyName: "svg", publicName: "svg", isSignal: true, isRequired: false, transformFunction: null }, svgSrc: { classPropertyName: "svgSrc", publicName: "svgSrc", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "yuv-icon" }, ngImport: i0, template: '', isInline: true, styles: [".yuv-icon{--_icon-size: var(--icon-size, 24px);width:var(--_icon-size);height:var(--_icon-size);display:inline-flex;font-size:1px;color:currentColor}.yuv-icon svg{pointer-events:none;fill:currentColor;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvIconComponent, deps: [{ token: i0.ElementRef }, { token: i1.HttpClient }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
157
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.11", type: YuvIconComponent, isStandalone: true, selector: "yuv-icon", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, svg: { classPropertyName: "svg", publicName: "svg", isSignal: true, isRequired: false, transformFunction: null }, svgSrc: { classPropertyName: "svgSrc", publicName: "svgSrc", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "yuv-icon" }, ngImport: i0, template: '', isInline: true, styles: [".yuv-icon{--_icon-size: var(--icon-size, 24px);width:var(--_icon-size);height:var(--_icon-size);display:inline-flex;font-size:1px;color:currentColor}.yuv-icon svg{pointer-events:none;fill:currentColor;width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
158
158
  }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvIconComponent, decorators: [{
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvIconComponent, decorators: [{
160
160
  type: Component,
161
161
  args: [{ selector: 'yuv-icon', standalone: true, template: '', host: { class: 'yuv-icon' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".yuv-icon{--_icon-size: var(--icon-size, 24px);width:var(--_icon-size);height:var(--_icon-size);display:inline-flex;font-size:1px;color:currentColor}.yuv-icon svg{pointer-events:none;fill:currentColor;width:100%;height:100%}\n"] }]
162
162
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.HttpClient }, { type: undefined, decorators: [{
@@ -179,10 +179,10 @@ class ObjectTypeIconComponent {
179
179
  this.title = params?.value ? this.system.getLocalizedLabel(params.value) : '';
180
180
  return true;
181
181
  }
182
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ObjectTypeIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
183
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: ObjectTypeIconComponent, isStandalone: true, selector: "yuv-object-type-icon", inputs: { objectTypeId: "objectTypeId" }, ngImport: i0, template: "@if(svg){\n<yuv-icon title=\"{{title}}\" [svg]=\"svg\"></yuv-icon>}", styles: [":host{display:grid;place-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: YuvIconComponent, selector: "yuv-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
182
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ObjectTypeIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
183
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.11", type: ObjectTypeIconComponent, isStandalone: true, selector: "yuv-object-type-icon", inputs: { objectTypeId: "objectTypeId" }, ngImport: i0, template: "@if(svg){\n<yuv-icon title=\"{{title}}\" [svg]=\"svg\"></yuv-icon>}", styles: [":host{display:grid;place-items:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: YuvIconComponent, selector: "yuv-icon", inputs: ["label", "svg", "svgSrc"] }] }); }
184
184
  }
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ObjectTypeIconComponent, decorators: [{
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ObjectTypeIconComponent, decorators: [{
186
186
  type: Component,
187
187
  args: [{ selector: 'yuv-object-type-icon', standalone: true, imports: [CommonModule, YuvIconComponent], template: "@if(svg){\n<yuv-icon title=\"{{title}}\" [svg]=\"svg\"></yuv-icon>}", styles: [":host{display:grid;place-items:center}\n"] }]
188
188
  }], propDecorators: { objectTypeId: [{
@@ -1 +1 @@
1
- {"version":3,"file":"yuuvis-client-framework-icons.mjs","sources":["../../../../../libs/yuuvis/client-framework/icons/src/lib/icons.ts","../../../../../libs/yuuvis/client-framework/icons/src/lib/icon.service.ts","../../../../../libs/yuuvis/client-framework/icons/src/lib/icon.component.ts","../../../../../libs/yuuvis/client-framework/icons/src/lib/object-type-icon/object-type-icon.component.ts","../../../../../libs/yuuvis/client-framework/icons/src/lib/object-type-icon/object-type-icon.component.html","../../../../../libs/yuuvis/client-framework/icons/src/yuuvis-client-framework-icons.ts"],"sourcesContent":["// Several 'general purpose' icons\nexport const YUV_ICONS: any = {\n add: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\t<path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\t<path d=\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z\" /></svg>',\n arrowLast:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"/><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/></svg>',\n arrowNext:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>',\n arrowDown:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z\"/></svg>',\n attention:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M480-79q-16 0-30.5-6T423-102L102-423q-11-12-17-26.5T79-480q0-16 6-31t17-26l321-321q12-12 26.5-17.5T480-881q16 0 31 5.5t26 17.5l321 321q12 11 17.5 26t5.5 31q0 16-5.5 30.5T858-423L537-102q-11 11-26 17t-31 6Zm0-80 321-321-321-321-321 321 321 321Zm-40-281h80v-240h-80v240Zm40 120q17 0 28.5-11.5T520-360q0-17-11.5-28.5T480-400q-17 0-28.5 11.5T440-360q0 17 11.5 28.5T480-320Zm0-160Z\"/></svg>',\n back: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"m313-440 224 224-57 56-320-320 320-320 57 56-224 224h487v80H313Z\"/></svg>',\n check:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z\"/></svg>',\n edit: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z\"/></svg>',\n dragHandle:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M360-160q-33 0-56.5-23.5T280-240q0-33 23.5-56.5T360-320q33 0 56.5 23.5T440-240q0 33-23.5 56.5T360-160Zm240 0q-33 0-56.5-23.5T520-240q0-33 23.5-56.5T600-320q33 0 56.5 23.5T680-240q0 33-23.5 56.5T600-160ZM360-400q-33 0-56.5-23.5T280-480q0-33 23.5-56.5T360-560q33 0 56.5 23.5T440-480q0 33-23.5 56.5T360-400Zm240 0q-33 0-56.5-23.5T520-480q0-33 23.5-56.5T600-560q33 0 56.5 23.5T680-480q0 33-23.5 56.5T600-400ZM360-640q-33 0-56.5-23.5T280-720q0-33 23.5-56.5T360-800q33 0 56.5 23.5T440-720q0 33-23.5 56.5T360-640Zm240 0q-33 0-56.5-23.5T520-720q0-33 23.5-56.5T600-800q33 0 56.5 23.5T680-720q0 33-23.5 56.5T600-640Z\"/></svg>',\n envelope:\n '<svg width=\"24\" height=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0z\"/><path d=\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z\"/></svg>',\n favorite:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"m354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143ZM233-120l65-281L80-590l288-25 112-265 112 265 288 25-218 189 65 281-247-149-247 149Zm247-350Z\"/></svg>',\n filter:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"/><path d=\"M17.01 14h-.8l-.27-.27c.98-1.14 1.57-2.61 1.57-4.23 0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4 4.16-4H6.51C6.51 7 8.53 5 11.01 5s4.5 2.01 4.5 4.5c0 2.48-2.02 4.5-4.5 4.5-.65 0-1.26-.14-1.82-.38L7.71 15.1c.97.57 2.09.9 3.3.9 1.61 0 3.08-.59 4.22-1.57l.27.27v.79l5.01 4.99L22 19l-4.99-5z\"/></svg>',\n folder:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h240l80 80h320q33 0 56.5 23.5T880-640v400q0 33-23.5 56.5T800-160H160Zm0-80h640v-400H447l-80-80H160v480Zm0 0v-480 480Z\"/></svg>',\n globe:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z\"/></svg>',\n group:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 -960 960 960\" width=\"20\"><path d=\"M96-192v-92q0-26 12.5-47.5T143-366q54-32 114.5-49T384-432q66 0 126.5 17T625-366q22 13 34.5 34.5T672-284v92H96Zm648 0v-92q0-42-19.5-78T672-421q39 8 75.5 21.5T817-366q22 13 34.5 34.5T864-284v92H744ZM384-480q-60 0-102-42t-42-102q0-60 42-102t102-42q60 0 102 42t42 102q0 60-42 102t-102 42Zm336-144q0 60-42 102t-102 42q-8 0-15-.5t-15-2.5q25-29 39.5-64.5T600-624q0-41-14.5-76.5T546-765q8-2 15-2.5t15-.5q60 0 102 42t42 102Z\"/></svg>',\n notification:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M160-200v-80h80v-280q0-83 50-147.5T420-792v-28q0-25 17.5-42.5T480-880q25 0 42.5 17.5T540-820v28q80 20 130 84.5T720-560v280h80v80H160Zm320-300Zm0 420q-33 0-56.5-23.5T400-160h160q0 33-23.5 56.5T480-80ZM320-280h320v-280q0-66-47-113t-113-47q-66 0-113 47t-47 113v280Z\"/></svg>',\n phone:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"48\" height=\"48\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 0 0-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99z\"/></svg>',\n pin: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"m640-480 80 80v80H520v240l-40 40-40-40v-240H240v-80l80-80v-280h-40v-80h400v80h-40v280Zm-286 80h252l-46-46v-314H400v314l-46 46Zm126 0Z\"/></svg>',\n refresh:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z\"/></svg>',\n search:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/></svg>',\n settings:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" enable-background=\"new 0 0 24 24\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><g><path d=\"M0,0h24v24H0V0z\" fill=\"none\"/><path d=\"M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z\"/></g></svg>',\n star: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"m354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143ZM233-120l65-281L80-590l288-25 112-265 112 265 288 25-218 189 65 281-247-149-247 149Zm247-350Z\"/></svg>',\n starFilled:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" style=\"enable-background:new 0 0 24 24\" viewBox=\"0 0 24 24\"><path d=\"m5.8 21 1.6-7L2 9.2l7.2-.6L12 2l2.8 6.6 7.2.6-5.4 4.8 1.6 7-6.2-3.7L5.8 21z\"/></svg>',\n trash:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z\"/></svg>',\n user: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 -960 960 960\" width=\"20\"><path d=\"M480-480q-60 0-102-42t-42-102q0-60 42-102t102-42q60 0 102 42t42 102q0 60-42 102t-102 42ZM192-192v-96q0-23 12.5-43.5T239-366q55-32 116.5-49T480-432q63 0 124.5 17T721-366q22 13 34.5 34t12.5 44v96H192Z\"/></svg>',\n warning:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"m40-120 440-760 440 760H40Zm138-80h604L480-720 178-200Zm302-40q17 0 28.5-11.5T520-280q0-17-11.5-28.5T480-320q-17 0-28.5 11.5T440-280q0 17 11.5 28.5T480-240Zm-40-120h80v-200h-80v200Zm40-100Z\"/></svg>',\n info: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"#5f6368\" viewBox=\"0 -960 960 960\"><path d=\"M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"/></svg>',\n more: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"#5f6368\" viewBox=\"0 -960 960 960\"><path d=\"M480-160q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm0-240q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm0-240q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Z\"/></svg>'\n};\n","import { Injectable } from '@angular/core';\nimport { YUV_ICONS } from './icons';\n\n/**\n * Service managing icons. Use `getIcon(id)` to retrieve the SVG string for that key.\n * By default these SVGs will be served from the resources provided by this module.\n * It contains several general [purpose icons](icons.ts). If you want to extend the\n * list of icons or overwrite an existing icon use `registerIcon(s)` functions. If the\n * id of an icon to be registered already exists it will be overwritten otherwise added\n * to the list of available icons. Once registered icons are available across the whole\n * application.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class IconService {\n private _iconRegistry: { [id: string]: string } = {};\n // icon returnned if nothing has been found\n private _brokenIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path fill=\"red\" d=\"M212.309-140.001q-30.308 0-51.308-21t-21-51.308v-535.382q0-30.308 21-51.308t51.308-21h535.382q30.308 0 51.308 21t21 51.308v535.382q0 30.308-21 51.308t-51.308 21H212.309ZM240-442.768l160-160 160 160 160-160 40 40v-184.923q0-5.385-3.462-8.847-3.462-3.462-8.847-3.462H212.309q-5.385 0-8.847 3.462-3.462 3.462-3.462 8.847v264.923l40 40ZM212.309-200h535.382q5.385 0 8.847-3.462 3.462-3.462 3.462-8.847v-265.538l-40-40-160 160-160-160-160 160-40-40v185.538q0 5.385 3.462 8.847 3.462 3.462 8.847 3.462ZM200-200V-477.847v59.998V-760v560Z\"/></svg>';\n\n /**\n * Get an icon. Based on its ID the service will try to retrieve the svg string\n * from its internal icon registry or the default icons provided by the module\n * @param id ID of the icon\n * @returns SVG string or undefined if the icon could not be found\n */\n getIcon(id: string): string | undefined {\n return this._iconRegistry[id] || YUV_ICONS[id] || this._brokenIcon;\n }\n\n /**\n * Register a new icon or overwrite an existing icon.\n * @param id ID of the icon\n * @param svg SVG string bound to that ID\n */\n registerIcon(id: string, svg: string) {\n if (this._isValidSVG(svg)) this._iconRegistry[id] = svg;\n else console.error(`Invalid SVG string for id ${id}`);\n }\n\n /**\n * Register multiple icons at once\n * @param icons Array of icons\n */\n registerIcons(icons: { id: string; svg: string }[]) {\n icons.forEach((i) => this.registerIcon(i.id, i.svg));\n }\n\n private _isValidSVG(svg: string): boolean {\n // TODO: find a more sofisticated way to validate\n return svg.indexOf('<svg') !== -1;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, effect, ElementRef, Inject, input, OnInit, Optional, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'yuv-icon',\n standalone: true,\n template: '',\n styles: `\n .yuv-icon {\n --_icon-size: var(--icon-size, 24px);\n\n width: var(--_icon-size);\n height: var(--_icon-size);\n display: inline-flex;\n font-size: 1px;\n color: currentColor;\n\n svg {\n pointer-events: none;\n fill: currentColor;\n width: 100%;\n height: 100%;\n }\n }\n `,\n host: { class: 'yuv-icon' },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YuvIconComponent implements OnInit {\n private _svgIcon: SVGElement | undefined;\n #initialized = false;\n\n label = input<string | undefined>();\n\n #svg?: string | SVGElement;\n #svgSrc?: string;\n\n svg = input<string | SVGElement>();\n #svgEffect = effect(() => {\n this.#svg = this.svg();\n if (this.#svg) this.#render();\n });\n svgSrc = input<string>();\n #svgSrcEffect = effect(() => {\n this.#svgSrc = this.svgSrc();\n if (this.#svgSrc) this.#render();\n });\n \n constructor(\n private element: ElementRef,\n private http: HttpClient,\n @Optional() @Inject(DOCUMENT) private document: any\n ) {}\n\n #render() {\n if (!this.#initialized) return;\n this._removeSVG();\n\n if (this.#svgSrc)\n this.http.get(this.#svgSrc as string, { responseType: 'text' }).subscribe({\n next: (svg) => this._createSvg(svg)\n });\n else if (this.#svg) this._createSvg(this.#svg);\n }\n\n private _createSvg(svgData: any) {\n this._svgIcon = this._svgElementFromString(svgData);\n this.element.nativeElement.appendChild(this._svgIcon);\n }\n\n private _removeSVG() {\n if (this._svgIcon) {\n this.element.nativeElement.removeChild(this._svgIcon);\n }\n }\n\n private _svgElementFromString(svgData: string): SVGElement {\n const div = this.document.createElement('DIV');\n div.innerHTML = svgData;\n const svg: SVGElement = div.querySelector('svg');\n\n const label = this.label();\n if (svg) {\n label ? svg.setAttribute('aria-label', label) : svg.setAttribute('aria-hidden', 'true');\n }\n\n return svg || this.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n }\n\n ngOnInit(): void {\n if (!this.#initialized) {\n this.#initialized = true;\n this.#render();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, inject } from '@angular/core';\nimport { BackendService, SystemService } from '@yuuvis/client-core';\nimport { YuvIconComponent } from '../icon.component';\n\n@Component({\n selector: 'yuv-object-type-icon',\n standalone: true,\n imports: [CommonModule, YuvIconComponent],\n templateUrl: './object-type-icon.component.html',\n styleUrls: ['./object-type-icon.component.scss']\n})\nexport class ObjectTypeIconComponent {\n private system = inject(SystemService);\n private backend = inject(BackendService);\n\n @Input() set objectTypeId(id: string) {\n this.refresh({ value: id });\n }\n\n svg?: string;\n title?: string;\n\n refresh(params: any): boolean {\n this.backend.getViaCache(params?.value ? this.system.getObjectTypeIconUri(params.value) : '').subscribe((res) => (this.svg = res));\n this.title = params?.value ? this.system.getLocalizedLabel(params.value) : '';\n return true;\n }\n}\n","@if(svg){\n<yuv-icon title=\"{{title}}\" [svg]=\"svg\"></yuv-icon>}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yuuvis-client-framework-icons.mjs","sources":["../../../../../libs/yuuvis/client-framework/icons/src/lib/icons.ts","../../../../../libs/yuuvis/client-framework/icons/src/lib/icon.service.ts","../../../../../libs/yuuvis/client-framework/icons/src/lib/icon.component.ts","../../../../../libs/yuuvis/client-framework/icons/src/lib/object-type-icon/object-type-icon.component.ts","../../../../../libs/yuuvis/client-framework/icons/src/lib/object-type-icon/object-type-icon.component.html","../../../../../libs/yuuvis/client-framework/icons/src/yuuvis-client-framework-icons.ts"],"sourcesContent":["// Several 'general purpose' icons\nexport const YUV_ICONS: any = {\n add: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\t<path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\t<path d=\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7z\" /></svg>',\n arrowLast:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"/><path fill=\"none\" d=\"M0 0h24v24H0V0z\"/></svg>',\n arrowNext:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/><path d=\"M0 0h24v24H0z\" fill=\"none\"/></svg>',\n arrowDown:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z\"/></svg>',\n attention:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M480-79q-16 0-30.5-6T423-102L102-423q-11-12-17-26.5T79-480q0-16 6-31t17-26l321-321q12-12 26.5-17.5T480-881q16 0 31 5.5t26 17.5l321 321q12 11 17.5 26t5.5 31q0 16-5.5 30.5T858-423L537-102q-11 11-26 17t-31 6Zm0-80 321-321-321-321-321 321 321 321Zm-40-281h80v-240h-80v240Zm40 120q17 0 28.5-11.5T520-360q0-17-11.5-28.5T480-400q-17 0-28.5 11.5T440-360q0 17 11.5 28.5T480-320Zm0-160Z\"/></svg>',\n back: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"m313-440 224 224-57 56-320-320 320-320 57 56-224 224h487v80H313Z\"/></svg>',\n check:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z\"/></svg>',\n edit: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z\"/></svg>',\n dragHandle:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M360-160q-33 0-56.5-23.5T280-240q0-33 23.5-56.5T360-320q33 0 56.5 23.5T440-240q0 33-23.5 56.5T360-160Zm240 0q-33 0-56.5-23.5T520-240q0-33 23.5-56.5T600-320q33 0 56.5 23.5T680-240q0 33-23.5 56.5T600-160ZM360-400q-33 0-56.5-23.5T280-480q0-33 23.5-56.5T360-560q33 0 56.5 23.5T440-480q0 33-23.5 56.5T360-400Zm240 0q-33 0-56.5-23.5T520-480q0-33 23.5-56.5T600-560q33 0 56.5 23.5T680-480q0 33-23.5 56.5T600-400ZM360-640q-33 0-56.5-23.5T280-720q0-33 23.5-56.5T360-800q33 0 56.5 23.5T440-720q0 33-23.5 56.5T360-640Zm240 0q-33 0-56.5-23.5T520-720q0-33 23.5-56.5T600-800q33 0 56.5 23.5T680-720q0 33-23.5 56.5T600-640Z\"/></svg>',\n envelope:\n '<svg width=\"24\" height=\"24\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0z\"/><path d=\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z\"/></svg>',\n favorite:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"m354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143ZM233-120l65-281L80-590l288-25 112-265 112 265 288 25-218 189 65 281-247-149-247 149Zm247-350Z\"/></svg>',\n filter:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path fill=\"none\" d=\"M0 0h24v24H0V0zm0 0h24v24H0V0z\"/><path d=\"M17.01 14h-.8l-.27-.27c.98-1.14 1.57-2.61 1.57-4.23 0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4 4.16-4H6.51C6.51 7 8.53 5 11.01 5s4.5 2.01 4.5 4.5c0 2.48-2.02 4.5-4.5 4.5-.65 0-1.26-.14-1.82-.38L7.71 15.1c.97.57 2.09.9 3.3.9 1.61 0 3.08-.59 4.22-1.57l.27.27v.79l5.01 4.99L22 19l-4.99-5z\"/></svg>',\n folder:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h240l80 80h320q33 0 56.5 23.5T880-640v400q0 33-23.5 56.5T800-160H160Zm0-80h640v-400H447l-80-80H160v480Zm0 0v-480 480Z\"/></svg>',\n globe:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z\"/></svg>',\n group:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 -960 960 960\" width=\"20\"><path d=\"M96-192v-92q0-26 12.5-47.5T143-366q54-32 114.5-49T384-432q66 0 126.5 17T625-366q22 13 34.5 34.5T672-284v92H96Zm648 0v-92q0-42-19.5-78T672-421q39 8 75.5 21.5T817-366q22 13 34.5 34.5T864-284v92H744ZM384-480q-60 0-102-42t-42-102q0-60 42-102t102-42q60 0 102 42t42 102q0 60-42 102t-102 42Zm336-144q0 60-42 102t-102 42q-8 0-15-.5t-15-2.5q25-29 39.5-64.5T600-624q0-41-14.5-76.5T546-765q8-2 15-2.5t15-.5q60 0 102 42t42 102Z\"/></svg>',\n notification:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M160-200v-80h80v-280q0-83 50-147.5T420-792v-28q0-25 17.5-42.5T480-880q25 0 42.5 17.5T540-820v28q80 20 130 84.5T720-560v280h80v80H160Zm320-300Zm0 420q-33 0-56.5-23.5T400-160h160q0 33-23.5 56.5T480-80ZM320-280h320v-280q0-66-47-113t-113-47q-66 0-113 47t-47 113v280Z\"/></svg>',\n phone:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"48\" height=\"48\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M20.01 15.38c-1.23 0-2.42-.2-3.53-.56a.977.977 0 0 0-1.01.24l-1.57 1.97c-2.83-1.35-5.48-3.9-6.89-6.83l1.95-1.66c.27-.28.35-.67.24-1.02-.37-1.11-.56-2.3-.56-3.53 0-.54-.45-.99-.99-.99H4.19C3.65 3 3 3.24 3 3.99 3 13.28 10.73 21 20.01 21c.71 0 .99-.63.99-1.18v-3.45c0-.54-.45-.99-.99-.99z\"/></svg>',\n pin: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"m640-480 80 80v80H520v240l-40 40-40-40v-240H240v-80l80-80v-280h-40v-80h400v80h-40v280Zm-286 80h252l-46-46v-314H400v314l-46 46Zm126 0Z\"/></svg>',\n refresh:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z\"/></svg>',\n search:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"/></svg>',\n settings:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" enable-background=\"new 0 0 24 24\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><g><path d=\"M0,0h24v24H0V0z\" fill=\"none\"/><path d=\"M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z\"/></g></svg>',\n star: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"><path d=\"m354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143ZM233-120l65-281L80-590l288-25 112-265 112 265 288 25-218 189 65 281-247-149-247 149Zm247-350Z\"/></svg>',\n starFilled:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" xml:space=\"preserve\" style=\"enable-background:new 0 0 24 24\" viewBox=\"0 0 24 24\"><path d=\"m5.8 21 1.6-7L2 9.2l7.2-.6L12 2l2.8 6.6 7.2.6-5.4 4.8 1.6 7-6.2-3.7L5.8 21z\"/></svg>',\n trash:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"M280-120q-33 0-56.5-23.5T200-200v-520h-40v-80h200v-40h240v40h200v80h-40v520q0 33-23.5 56.5T680-120H280Zm400-600H280v520h400v-520ZM360-280h80v-360h-80v360Zm160 0h80v-360h-80v360ZM280-720v520-520Z\"/></svg>',\n user: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20\" viewBox=\"0 -960 960 960\" width=\"20\"><path d=\"M480-480q-60 0-102-42t-42-102q0-60 42-102t102-42q60 0 102 42t42 102q0 60-42 102t-102 42ZM192-192v-96q0-23 12.5-43.5T239-366q55-32 116.5-49T480-432q63 0 124.5 17T721-366q22 13 34.5 34t12.5 44v96H192Z\"/></svg>',\n warning:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"m40-120 440-760 440 760H40Zm138-80h604L480-720 178-200Zm302-40q17 0 28.5-11.5T520-280q0-17-11.5-28.5T480-320q-17 0-28.5 11.5T440-280q0 17 11.5 28.5T480-240Zm-40-120h80v-200h-80v200Zm40-100Z\"/></svg>',\n info: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"#5f6368\" viewBox=\"0 -960 960 960\"><path d=\"M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"/></svg>',\n more: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"#5f6368\" viewBox=\"0 -960 960 960\"><path d=\"M480-160q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm0-240q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm0-240q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Z\"/></svg>'\n};\n","import { Injectable } from '@angular/core';\nimport { YUV_ICONS } from './icons';\n\n/**\n * Service managing icons. Use `getIcon(id)` to retrieve the SVG string for that key.\n * By default these SVGs will be served from the resources provided by this module.\n * It contains several general [purpose icons](icons.ts). If you want to extend the\n * list of icons or overwrite an existing icon use `registerIcon(s)` functions. If the\n * id of an icon to be registered already exists it will be overwritten otherwise added\n * to the list of available icons. Once registered icons are available across the whole\n * application.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class IconService {\n private _iconRegistry: { [id: string]: string } = {};\n // icon returnned if nothing has been found\n private _brokenIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path fill=\"red\" d=\"M212.309-140.001q-30.308 0-51.308-21t-21-51.308v-535.382q0-30.308 21-51.308t51.308-21h535.382q30.308 0 51.308 21t21 51.308v535.382q0 30.308-21 51.308t-51.308 21H212.309ZM240-442.768l160-160 160 160 160-160 40 40v-184.923q0-5.385-3.462-8.847-3.462-3.462-8.847-3.462H212.309q-5.385 0-8.847 3.462-3.462 3.462-3.462 8.847v264.923l40 40ZM212.309-200h535.382q5.385 0 8.847-3.462 3.462-3.462 3.462-8.847v-265.538l-40-40-160 160-160-160-160 160-40-40v185.538q0 5.385 3.462 8.847 3.462 3.462 8.847 3.462ZM200-200V-477.847v59.998V-760v560Z\"/></svg>';\n\n /**\n * Get an icon. Based on its ID the service will try to retrieve the svg string\n * from its internal icon registry or the default icons provided by the module\n * @param id ID of the icon\n * @returns SVG string or undefined if the icon could not be found\n */\n getIcon(id: string): string | undefined {\n return this._iconRegistry[id] || YUV_ICONS[id] || this._brokenIcon;\n }\n\n /**\n * Register a new icon or overwrite an existing icon.\n * @param id ID of the icon\n * @param svg SVG string bound to that ID\n */\n registerIcon(id: string, svg: string) {\n if (this._isValidSVG(svg)) this._iconRegistry[id] = svg;\n else console.error(`Invalid SVG string for id ${id}`);\n }\n\n /**\n * Register multiple icons at once\n * @param icons Array of icons\n */\n registerIcons(icons: { id: string; svg: string }[]) {\n icons.forEach((i) => this.registerIcon(i.id, i.svg));\n }\n\n private _isValidSVG(svg: string): boolean {\n // TODO: find a more sofisticated way to validate\n return svg.indexOf('<svg') !== -1;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { ChangeDetectionStrategy, Component, effect, ElementRef, Inject, input, OnInit, Optional, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'yuv-icon',\n standalone: true,\n template: '',\n styles: `\n .yuv-icon {\n --_icon-size: var(--icon-size, 24px);\n\n width: var(--_icon-size);\n height: var(--_icon-size);\n display: inline-flex;\n font-size: 1px;\n color: currentColor;\n\n svg {\n pointer-events: none;\n fill: currentColor;\n width: 100%;\n height: 100%;\n }\n }\n `,\n host: { class: 'yuv-icon' },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class YuvIconComponent implements OnInit {\n private _svgIcon: SVGElement | undefined;\n #initialized = false;\n\n label = input<string | undefined>();\n\n #svg?: string | SVGElement;\n #svgSrc?: string;\n\n svg = input<string | SVGElement>();\n #svgEffect = effect(() => {\n this.#svg = this.svg();\n if (this.#svg) this.#render();\n });\n svgSrc = input<string>();\n #svgSrcEffect = effect(() => {\n this.#svgSrc = this.svgSrc();\n if (this.#svgSrc) this.#render();\n });\n \n constructor(\n private element: ElementRef,\n private http: HttpClient,\n @Optional() @Inject(DOCUMENT) private document: any\n ) {}\n\n #render() {\n if (!this.#initialized) return;\n this._removeSVG();\n\n if (this.#svgSrc)\n this.http.get(this.#svgSrc as string, { responseType: 'text' }).subscribe({\n next: (svg) => this._createSvg(svg)\n });\n else if (this.#svg) this._createSvg(this.#svg);\n }\n\n private _createSvg(svgData: any) {\n this._svgIcon = this._svgElementFromString(svgData);\n this.element.nativeElement.appendChild(this._svgIcon);\n }\n\n private _removeSVG() {\n if (this._svgIcon) {\n this.element.nativeElement.removeChild(this._svgIcon);\n }\n }\n\n private _svgElementFromString(svgData: string): SVGElement {\n const div = this.document.createElement('DIV');\n div.innerHTML = svgData;\n const svg: SVGElement = div.querySelector('svg');\n\n const label = this.label();\n if (svg) {\n label ? svg.setAttribute('aria-label', label) : svg.setAttribute('aria-hidden', 'true');\n }\n\n return svg || this.document.createElementNS('http://www.w3.org/2000/svg', 'path');\n }\n\n ngOnInit(): void {\n if (!this.#initialized) {\n this.#initialized = true;\n this.#render();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, inject } from '@angular/core';\nimport { BackendService, SystemService } from '@yuuvis/client-core';\nimport { YuvIconComponent } from '../icon.component';\n\n@Component({\n selector: 'yuv-object-type-icon',\n standalone: true,\n imports: [CommonModule, YuvIconComponent],\n templateUrl: './object-type-icon.component.html',\n styleUrls: ['./object-type-icon.component.scss']\n})\nexport class ObjectTypeIconComponent {\n private system = inject(SystemService);\n private backend = inject(BackendService);\n\n @Input() set objectTypeId(id: string) {\n this.refresh({ value: id });\n }\n\n svg?: string;\n title?: string;\n\n refresh(params: any): boolean {\n this.backend.getViaCache(params?.value ? this.system.getObjectTypeIconUri(params.value) : '').subscribe((res) => (this.svg = res));\n this.title = params?.value ? this.system.getLocalizedLabel(params.value) : '';\n return true;\n }\n}\n","@if(svg){\n<yuv-icon title=\"{{title}}\" [svg]=\"svg\"></yuv-icon>}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -53,10 +53,10 @@ class ListItemDirective {
53
53
  if (offsetX || offsetY)
54
54
  this.#elRef.nativeElement.parentElement.scrollBy(offsetX, offsetY);
55
55
  }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ListItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
57
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.1", type: ListItemDirective, isStandalone: true, selector: "[yuvListItem]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "attr.aria-current": "activeInput()", "attr.aria-selected": "selectedInput()" } }, ngImport: i0 }); }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ListItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
57
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.11", type: ListItemDirective, isStandalone: true, selector: "[yuvListItem]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "attr.aria-current": "activeInput()", "attr.aria-selected": "selectedInput()" } }, ngImport: i0 }); }
58
58
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ListItemDirective, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ListItemDirective, decorators: [{
60
60
  type: Directive,
61
61
  args: [{
62
62
  selector: '[yuvListItem]',
@@ -208,10 +208,10 @@ class ListComponent {
208
208
  ngOnDestroy() {
209
209
  this._keyManager?.destroy();
210
210
  }
211
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
212
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.1", type: ListComponent, isStandalone: true, selector: "yuv-list", inputs: { multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, selfHandleSelection: { classPropertyName: "selfHandleSelection", publicName: "selfHandleSelection", isSignal: true, isRequired: false, transformFunction: null }, disableSelection: { classPropertyName: "disableSelection", publicName: "disableSelection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelect: "itemSelect", itemFocus: "itemFocus" }, host: { attributes: { "role": "listbox", "tabindex": "0" }, listeners: { "keydown": "onKeydown($event)", "focus": "onFocus()" }, properties: { "class.self-handle-selection": "selfHandleSelection()" } }, queries: [{ propertyName: "items", predicate: ListItemDirective, isSignal: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["yuv-list{display:block;max-height:100%;overflow-y:auto;outline:none}yuv-list:not(.self-handle-selection) [yuvListItem]{position:relative;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}yuv-list:not(.self-handle-selection) [yuvListItem]:hover{background-color:var(--list-item-hover-background)}yuv-list:not(.self-handle-selection) [yuvListItem][aria-current=true]{background-color:var(--ymt-focus-background);color:var(--ymt-on-focus-background)}yuv-list:not(.self-handle-selection) [yuvListItem][aria-selected=true]{background-color:var(--ymt-selection-background);color:var(--ymt-on-selection-background);font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: A11yModule }], encapsulation: i0.ViewEncapsulation.None }); }
211
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
212
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.11", type: ListComponent, isStandalone: true, selector: "yuv-list", inputs: { multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, selfHandleSelection: { classPropertyName: "selfHandleSelection", publicName: "selfHandleSelection", isSignal: true, isRequired: false, transformFunction: null }, disableSelection: { classPropertyName: "disableSelection", publicName: "disableSelection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelect: "itemSelect", itemFocus: "itemFocus" }, host: { attributes: { "role": "listbox", "tabindex": "0" }, listeners: { "keydown": "onKeydown($event)", "focus": "onFocus()" }, properties: { "class.self-handle-selection": "selfHandleSelection()" } }, queries: [{ propertyName: "items", predicate: ListItemDirective, isSignal: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["yuv-list{display:block;max-height:100%;overflow-y:auto;outline:none}yuv-list:not(.self-handle-selection) [yuvListItem]{position:relative;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease}yuv-list:not(.self-handle-selection) [yuvListItem]:hover{background-color:var(--list-item-hover-background)}yuv-list:not(.self-handle-selection) [yuvListItem][aria-current=true]{background-color:var(--ymt-focus-background);color:var(--ymt-on-focus-background)}yuv-list:not(.self-handle-selection) [yuvListItem][aria-selected=true]{background-color:var(--ymt-selection-background);color:var(--ymt-on-selection-background);font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: A11yModule }], encapsulation: i0.ViewEncapsulation.None }); }
213
213
  }
214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ListComponent, decorators: [{
214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: ListComponent, decorators: [{
215
215
  type: Component,
216
216
  args: [{ selector: 'yuv-list', standalone: true, imports: [CommonModule, A11yModule], template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, host: {
217
217
  role: 'listbox',
@@ -227,11 +227,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
227
227
  }] } });
228
228
 
229
229
  class YuvListModule {
230
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
231
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: YuvListModule, imports: [ListComponent, ListItemDirective], exports: [ListComponent, ListItemDirective] }); }
232
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvListModule, imports: [ListComponent] }); }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
231
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.11", ngImport: i0, type: YuvListModule, imports: [ListComponent, ListItemDirective], exports: [ListComponent, ListItemDirective] }); }
232
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvListModule, imports: [ListComponent] }); }
233
233
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvListModule, decorators: [{
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvListModule, decorators: [{
235
235
  type: NgModule,
236
236
  args: [{
237
237
  imports: [ListComponent, ListItemDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"yuuvis-client-framework-list.mjs","sources":["../../../../../libs/yuuvis/client-framework/list/src/lib/list-item.directive.ts","../../../../../libs/yuuvis/client-framework/list/src/lib/list.component.ts","../../../../../libs/yuuvis/client-framework/list/src/lib/list.module.ts","../../../../../libs/yuuvis/client-framework/list/src/yuuvis-client-framework-list.ts"],"sourcesContent":["import { Highlightable } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, HostListener, inject, input, Input, linkedSignal } from '@angular/core';\n\n@Directive({\n selector: '[yuvListItem]',\n standalone: true,\n host: {\n '[attr.aria-current]': 'activeInput()',\n '[attr.aria-selected]': 'selectedInput()'\n }\n})\nexport class ListItemDirective implements Highlightable {\n #elRef = inject(ElementRef);\n\n onClick?: (evt: MouseEvent) => void;\n\n // TO SATISFY THE HIGHLIGHTABLE INTERFACE\n @Input()\n disabled?: boolean | undefined;\n\n active = input<boolean>(false);\n\n selected = input<boolean>(false);\n\n selectedInput = linkedSignal({\n source: this.selected,\n computation: (newOptions: any, previous: any) => (newOptions !== previous ? newOptions : previous)\n });\n\n activeInput = linkedSignal({\n source: this.active,\n computation: (newOptions: any, previous: any) => (newOptions !== previous ? newOptions : previous)\n });\n\n @HostListener('click', ['$event']) onHostClick(evt: MouseEvent) {\n if (!this.disabled && this.onClick) {\n this.#elRef.nativeElement.parentElement.focus();\n this.onClick(evt);\n }\n }\n\n setActiveStyles(): void {\n this.activeInput.set(true);\n this.#scrollIntoView();\n }\n\n setInactiveStyles(): void {\n this.activeInput.set(false);\n }\n\n #scrollIntoView() {\n const el = this.#elRef.nativeElement as HTMLElement;\n const { bottom, top, left, right } = el.getBoundingClientRect();\n const containerRect = this.#elRef.nativeElement.parentElement.getBoundingClientRect();\n\n const offsetY =\n top <= containerRect.top\n ? containerRect.top - top > 0\n ? (containerRect.top - top) * -1\n : 0\n : bottom - containerRect.bottom > 0\n ? bottom - containerRect.bottom\n : 0;\n const offsetX =\n left <= containerRect.left\n ? containerRect.left - left > 0\n ? (containerRect.left - left) * -1\n : 0\n : right - containerRect.right > 0\n ? right - containerRect.right\n : 0;\n\n if (offsetX || offsetY) (this.#elRef.nativeElement.parentElement as HTMLElement).scrollBy(offsetX, offsetY);\n }\n}\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { CommonModule } from '@angular/common';\nimport { Component, HostAttributeToken, HostListener, OnDestroy, ViewEncapsulation, contentChildren, effect, inject, input, output } from '@angular/core';\nimport { ListItemDirective } from './list-item.directive';\nimport { CdkMenu } from '@angular/cdk/menu';\n\n/**\n * Component rendering a simple list of items. It supports keyboard\n * navigation as well as accessability. To create a list just wrapp\n * `yuvListItem` elements into this component:\n *\n * ```ts\n * <yuv-list (itemSelect)=\"itemSelected($event)\">\n * <div yuvListItem>Entry #1</div>\n * <div yuvListItem>Entry #2</div>\n * </yuv-list>\n * ```\n */\n@Component({\n selector: 'yuv-list',\n standalone: true,\n imports: [CommonModule, A11yModule],\n template: '<ng-content></ng-content>',\n styleUrl: './list.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'listbox',\n tabindex: '0',\n '[class.self-handle-selection]': 'selfHandleSelection()'\n }\n})\nexport class ListComponent implements OnDestroy {\n #dir = inject(Directionality);\n\n @HostListener('keydown', ['$event']) onKeydown(event: KeyboardEvent) {\n if (this.disableSelection()) return;\n if (event.code === 'Escape') {\n this.clear();\n }\n\n if (event.code === 'Space' || (this.selectOnEnter && event.code === 'Enter')) {\n const aii: number = this._keyManager.activeItemIndex !== null ? this._keyManager.activeItemIndex : -1;\n if (aii >= 0) {\n this.#select(aii);\n this.#emitSelection();\n }\n } else this._keyManager?.onKeydown(event);\n }\n\n @HostListener('focus') onFocus() {\n if (this.items().length > 0) {\n const indexToFocus = this._selection.length > 0 ? this._selection[0] : 0;\n this._keyManager.setActiveItem(indexToFocus);\n this.itemFocus.emit(indexToFocus);\n this.#updateActiveItemState();\n }\n }\n\n items = contentChildren(ListItemDirective);\n\n #itemsEffect = effect(() => {\n if (this._keyManager) this._keyManager.destroy();\n this._keyManager = this.horizontal\n ? new ActiveDescendantKeyManager(this.items()).withWrap().withHorizontalOrientation(this.#dir.value)\n : new ActiveDescendantKeyManager(this.items()).withWrap();\n\n this._keyManager.change.subscribe((activeIndex) => {\n if (activeIndex !== null) {\n this.#updateActiveItemState();\n this.itemFocus.emit(activeIndex);\n }\n });\n\n this.items().forEach((item, index) => {\n item.onClick = (evt: MouseEvent) => this.select(index, evt.shiftKey, evt.ctrlKey);\n item.activeInput.set(false);\n });\n if (this._lastSelection !== undefined && this._lastSelection <= this.items().length) {\n this.select(this._lastSelection);\n }\n });\n\n private _keyManager!: ActiveDescendantKeyManager<ListItemDirective>;\n private _selection: number[] = [];\n private _lastSelection?: number;\n\n multiselect = input<boolean>(false);\n selfHandleSelection = input<boolean>(false);\n\n itemSelect = output<number[]>();\n itemFocus = output<number>();\n\n // autoselectFirst: boolean = (inject(new HostAttributeToken('autoselectFirst'), { optional: true }) || 'false') === 'true';\n selectOnEnter: boolean = (inject(new HostAttributeToken('selectOnEnter'), { optional: true }) || 'false') === 'true';\n horizontal: boolean = (inject(new HostAttributeToken('horizontal'), { optional: true }) || 'false') === 'true';\n disableSelection = input<boolean>(false);\n\n select(index: number, shiftKey = false, ctrlKey = false) {\n if (this.disableSelection()) return;\n if (this._keyManager) {\n this._keyManager.setActiveItem(index);\n }\n this.#select(index, shiftKey, ctrlKey);\n this.#emitSelection();\n }\n\n /**\n * Clear the current selection.\n * @param silent If `true`, the `itemSelect` event will not be emitted.\n */\n clear(silent = false) {\n if (this._selection.length !== 0) {\n this.#select(-1);\n this._keyManager.setActiveItem(-1);\n if (!silent) this.#emitSelection();\n }\n }\n\n #select(index: number, shiftKey = false, ctrlKey = false) {\n if (index === -1) this._selection = [];\n else {\n if (this.multiselect()) {\n this._selection = this._selection.filter((i) => i !== index);\n if (ctrlKey) {\n this._selection.push(index);\n } else if (shiftKey) {\n if (this._lastSelection) {\n for (let i = this._lastSelection < index ? this._lastSelection : index; i < (this._lastSelection > index ? this._lastSelection : index); i++) {\n this._selection.push(i);\n }\n } else {\n this._selection = [index];\n }\n } else {\n this._selection = [index];\n }\n } else this._selection = [index];\n }\n this._lastSelection = this._selection.length === 0 ? undefined : index;\n this._selection.sort();\n\n this.items().forEach((item: ListItemDirective, i: number) => item.selectedInput.set(this._selection.includes(i)));\n }\n\n #updateActiveItemState() {\n const activeIndex = this._keyManager.activeItemIndex;\n this.items().forEach((item: ListItemDirective, i: number) => {\n item.activeInput.set(i === activeIndex);\n });\n }\n\n #emitSelection() {\n this.itemSelect.emit(this._selection);\n }\n\n ngOnDestroy(): void {\n this._keyManager?.destroy();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ListItemDirective } from './list-item.directive';\nimport { ListComponent } from './list.component';\n\n@NgModule({\n imports: [ListComponent, ListItemDirective],\n exports: [ListComponent, ListItemDirective]\n})\nexport class YuvListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yuuvis-client-framework-list.mjs","sources":["../../../../../libs/yuuvis/client-framework/list/src/lib/list-item.directive.ts","../../../../../libs/yuuvis/client-framework/list/src/lib/list.component.ts","../../../../../libs/yuuvis/client-framework/list/src/lib/list.module.ts","../../../../../libs/yuuvis/client-framework/list/src/yuuvis-client-framework-list.ts"],"sourcesContent":["import { Highlightable } from '@angular/cdk/a11y';\nimport { Directive, ElementRef, HostListener, inject, input, Input, linkedSignal } from '@angular/core';\n\n@Directive({\n selector: '[yuvListItem]',\n standalone: true,\n host: {\n '[attr.aria-current]': 'activeInput()',\n '[attr.aria-selected]': 'selectedInput()'\n }\n})\nexport class ListItemDirective implements Highlightable {\n #elRef = inject(ElementRef);\n\n onClick?: (evt: MouseEvent) => void;\n\n // TO SATISFY THE HIGHLIGHTABLE INTERFACE\n @Input()\n disabled?: boolean | undefined;\n\n active = input<boolean>(false);\n\n selected = input<boolean>(false);\n\n selectedInput = linkedSignal({\n source: this.selected,\n computation: (newOptions: any, previous: any) => (newOptions !== previous ? newOptions : previous)\n });\n\n activeInput = linkedSignal({\n source: this.active,\n computation: (newOptions: any, previous: any) => (newOptions !== previous ? newOptions : previous)\n });\n\n @HostListener('click', ['$event']) onHostClick(evt: MouseEvent) {\n if (!this.disabled && this.onClick) {\n this.#elRef.nativeElement.parentElement.focus();\n this.onClick(evt);\n }\n }\n\n setActiveStyles(): void {\n this.activeInput.set(true);\n this.#scrollIntoView();\n }\n\n setInactiveStyles(): void {\n this.activeInput.set(false);\n }\n\n #scrollIntoView() {\n const el = this.#elRef.nativeElement as HTMLElement;\n const { bottom, top, left, right } = el.getBoundingClientRect();\n const containerRect = this.#elRef.nativeElement.parentElement.getBoundingClientRect();\n\n const offsetY =\n top <= containerRect.top\n ? containerRect.top - top > 0\n ? (containerRect.top - top) * -1\n : 0\n : bottom - containerRect.bottom > 0\n ? bottom - containerRect.bottom\n : 0;\n const offsetX =\n left <= containerRect.left\n ? containerRect.left - left > 0\n ? (containerRect.left - left) * -1\n : 0\n : right - containerRect.right > 0\n ? right - containerRect.right\n : 0;\n\n if (offsetX || offsetY) (this.#elRef.nativeElement.parentElement as HTMLElement).scrollBy(offsetX, offsetY);\n }\n}\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { CommonModule } from '@angular/common';\nimport { Component, HostAttributeToken, HostListener, OnDestroy, ViewEncapsulation, contentChildren, effect, inject, input, output } from '@angular/core';\nimport { ListItemDirective } from './list-item.directive';\nimport { CdkMenu } from '@angular/cdk/menu';\n\n/**\n * Component rendering a simple list of items. It supports keyboard\n * navigation as well as accessability. To create a list just wrapp\n * `yuvListItem` elements into this component:\n *\n * ```ts\n * <yuv-list (itemSelect)=\"itemSelected($event)\">\n * <div yuvListItem>Entry #1</div>\n * <div yuvListItem>Entry #2</div>\n * </yuv-list>\n * ```\n */\n@Component({\n selector: 'yuv-list',\n standalone: true,\n imports: [CommonModule, A11yModule],\n template: '<ng-content></ng-content>',\n styleUrl: './list.component.scss',\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'listbox',\n tabindex: '0',\n '[class.self-handle-selection]': 'selfHandleSelection()'\n }\n})\nexport class ListComponent implements OnDestroy {\n #dir = inject(Directionality);\n\n @HostListener('keydown', ['$event']) onKeydown(event: KeyboardEvent) {\n if (this.disableSelection()) return;\n if (event.code === 'Escape') {\n this.clear();\n }\n\n if (event.code === 'Space' || (this.selectOnEnter && event.code === 'Enter')) {\n const aii: number = this._keyManager.activeItemIndex !== null ? this._keyManager.activeItemIndex : -1;\n if (aii >= 0) {\n this.#select(aii);\n this.#emitSelection();\n }\n } else this._keyManager?.onKeydown(event);\n }\n\n @HostListener('focus') onFocus() {\n if (this.items().length > 0) {\n const indexToFocus = this._selection.length > 0 ? this._selection[0] : 0;\n this._keyManager.setActiveItem(indexToFocus);\n this.itemFocus.emit(indexToFocus);\n this.#updateActiveItemState();\n }\n }\n\n items = contentChildren(ListItemDirective);\n\n #itemsEffect = effect(() => {\n if (this._keyManager) this._keyManager.destroy();\n this._keyManager = this.horizontal\n ? new ActiveDescendantKeyManager(this.items()).withWrap().withHorizontalOrientation(this.#dir.value)\n : new ActiveDescendantKeyManager(this.items()).withWrap();\n\n this._keyManager.change.subscribe((activeIndex) => {\n if (activeIndex !== null) {\n this.#updateActiveItemState();\n this.itemFocus.emit(activeIndex);\n }\n });\n\n this.items().forEach((item, index) => {\n item.onClick = (evt: MouseEvent) => this.select(index, evt.shiftKey, evt.ctrlKey);\n item.activeInput.set(false);\n });\n if (this._lastSelection !== undefined && this._lastSelection <= this.items().length) {\n this.select(this._lastSelection);\n }\n });\n\n private _keyManager!: ActiveDescendantKeyManager<ListItemDirective>;\n private _selection: number[] = [];\n private _lastSelection?: number;\n\n multiselect = input<boolean>(false);\n selfHandleSelection = input<boolean>(false);\n\n itemSelect = output<number[]>();\n itemFocus = output<number>();\n\n // autoselectFirst: boolean = (inject(new HostAttributeToken('autoselectFirst'), { optional: true }) || 'false') === 'true';\n selectOnEnter: boolean = (inject(new HostAttributeToken('selectOnEnter'), { optional: true }) || 'false') === 'true';\n horizontal: boolean = (inject(new HostAttributeToken('horizontal'), { optional: true }) || 'false') === 'true';\n disableSelection = input<boolean>(false);\n\n select(index: number, shiftKey = false, ctrlKey = false) {\n if (this.disableSelection()) return;\n if (this._keyManager) {\n this._keyManager.setActiveItem(index);\n }\n this.#select(index, shiftKey, ctrlKey);\n this.#emitSelection();\n }\n\n /**\n * Clear the current selection.\n * @param silent If `true`, the `itemSelect` event will not be emitted.\n */\n clear(silent = false) {\n if (this._selection.length !== 0) {\n this.#select(-1);\n this._keyManager.setActiveItem(-1);\n if (!silent) this.#emitSelection();\n }\n }\n\n #select(index: number, shiftKey = false, ctrlKey = false) {\n if (index === -1) this._selection = [];\n else {\n if (this.multiselect()) {\n this._selection = this._selection.filter((i) => i !== index);\n if (ctrlKey) {\n this._selection.push(index);\n } else if (shiftKey) {\n if (this._lastSelection) {\n for (let i = this._lastSelection < index ? this._lastSelection : index; i < (this._lastSelection > index ? this._lastSelection : index); i++) {\n this._selection.push(i);\n }\n } else {\n this._selection = [index];\n }\n } else {\n this._selection = [index];\n }\n } else this._selection = [index];\n }\n this._lastSelection = this._selection.length === 0 ? undefined : index;\n this._selection.sort();\n\n this.items().forEach((item: ListItemDirective, i: number) => item.selectedInput.set(this._selection.includes(i)));\n }\n\n #updateActiveItemState() {\n const activeIndex = this._keyManager.activeItemIndex;\n this.items().forEach((item: ListItemDirective, i: number) => {\n item.activeInput.set(i === activeIndex);\n });\n }\n\n #emitSelection() {\n this.itemSelect.emit(this._selection);\n }\n\n ngOnDestroy(): void {\n this._keyManager?.destroy();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ListItemDirective } from './list-item.directive';\nimport { ListComponent } from './list.component';\n\n@NgModule({\n imports: [ListComponent, ListItemDirective],\n exports: [ListComponent, ListItemDirective]\n})\nexport class YuvListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -72,10 +72,10 @@ class YuvMasterDetailsComponent {
72
72
  console.error('MasterDetailsComponent is supposed to contain a master and a details pane.');
73
73
  }
74
74
  }
75
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvMasterDetailsComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: YuvMasterDetailsComponent, isStandalone: true, selector: "yuv-master-details", inputs: { detailsActive: { classPropertyName: "detailsActive", publicName: "detailsActive", isSignal: true, isRequired: false, transformFunction: null }, layoutSettingsID: { classPropertyName: "layoutSettingsID", publicName: "layoutSettingsID", isSignal: false, isRequired: false, transformFunction: null }, layoutOptions: { classPropertyName: "layoutOptions", publicName: "layoutOptions", isSignal: false, isRequired: false, transformFunction: null }, undockableDetails: { classPropertyName: "undockableDetails", publicName: "undockableDetails", isSignal: true, isRequired: false, transformFunction: null }, panelStyle: { classPropertyName: "panelStyle", publicName: "panelStyle", isSignal: true, isRequired: false, transformFunction: null }, gutterSize: { classPropertyName: "gutterSize", publicName: "gutterSize", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { detailsActive: "detailsActiveChange" }, host: { attributes: { "class.detailsActive": "detailsActive()" }, properties: { "attr.data-mode": "this.mode" } }, queries: [{ propertyName: "masterPane", first: true, predicate: ["yuvMasterPane"], descendants: true, isSignal: true }, { propertyName: "detailsPane", first: true, predicate: ["yuvDetailsPane"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (mode === 'aside') {\n <yuv-split-view [disabled]=\"!layoutOptions.resizable\" [gutterSize]=\"gutterSize() || 1\"\n [layoutSettingsID]=\"layoutSettingsID\">\n <ng-template yuvSplitArea [size]=\"layoutOptions.masterSize\" [minSize]=\"layoutOptions.masterMinSize\">\n <div class=\"yuv-md-panel master\" [ngStyle]=\"panelStyle()\">\n <ng-container *ngTemplateOutlet=\"masterPane()\"></ng-container>\n </div>\n </ng-template>\n <ng-template yuvSplitArea [size]=\"layoutOptions.detailsSize\" [minSize]=\"layoutOptions.detailsMinSize\"\n [visible]=\"detailsActive()\">\n <div class=\"yuv-md-panel details\" [ngStyle]=\"panelStyle()\">\n @if (undockableDetails()) {\n <yuv-popout (popIn)=\"onPopIn()\" (popOut)=\"detailsActive.set(false)\"><ng-container\n *ngTemplateOutlet=\"tplDetailsPanel\"></ng-container></yuv-popout>\n } @else {\n <ng-container *ngTemplateOutlet=\"tplDetailsPanel\"></ng-container>\n }\n </div>\n </ng-template>\n </yuv-split-view>\n} @else {\n <div class=\"yuvMasterPane\"><ng-container *ngTemplateOutlet=\"masterPane()\"></ng-container></div>\n <div class=\"yuvDetailsPane\" [hidden]=\"!detailsActive()\"><ng-container *ngTemplateOutlet=\"detailsPane()\"></ng-container>\n</div>\n}\n\n\n<ng-template #tplDetailsPanel>\n <ng-container *ngTemplateOutlet=\"detailsPane()\"></ng-container>\n</ng-template>\n\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:1fr}:host ::ng-deep .yuv-md-panel{height:100%;box-sizing:border-box;overflow:auto}:host ::ng-deep .yuv-md-panel>yuv-popout .popoutWrapper,:host ::ng-deep .yuv-md-panel>yuv-popout .innerWrapper{height:100%}:host[data-mode=ontop].detailsActive .yuvMasterPane{display:none}:host[data-mode=ontop] .yuvMasterPane,:host[data-mode=ontop] .yuvDetailsPane{grid-row:1;grid-column:1;overflow:hidden;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: YuvSplitViewModule }, { kind: "directive", type: i2.SplitAreaDirective, selector: "[yuvSplitArea]", inputs: ["size", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: i2.SplitViewComponent, selector: "yuv-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "ngmodule", type: YuvPopoutModule }, { kind: "component", type: i3.PopoutComponent, selector: "yuv-popout", inputs: ["triggerPosition", "triggerIcon", "triggerTooltip", "popoutWindowConfig", "disabled"], outputs: ["popOut", "popIn"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvMasterDetailsComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.11", type: YuvMasterDetailsComponent, isStandalone: true, selector: "yuv-master-details", inputs: { detailsActive: { classPropertyName: "detailsActive", publicName: "detailsActive", isSignal: true, isRequired: false, transformFunction: null }, layoutSettingsID: { classPropertyName: "layoutSettingsID", publicName: "layoutSettingsID", isSignal: false, isRequired: false, transformFunction: null }, layoutOptions: { classPropertyName: "layoutOptions", publicName: "layoutOptions", isSignal: false, isRequired: false, transformFunction: null }, undockableDetails: { classPropertyName: "undockableDetails", publicName: "undockableDetails", isSignal: true, isRequired: false, transformFunction: null }, panelStyle: { classPropertyName: "panelStyle", publicName: "panelStyle", isSignal: true, isRequired: false, transformFunction: null }, gutterSize: { classPropertyName: "gutterSize", publicName: "gutterSize", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { detailsActive: "detailsActiveChange" }, host: { attributes: { "class.detailsActive": "detailsActive()" }, properties: { "attr.data-mode": "this.mode" } }, queries: [{ propertyName: "masterPane", first: true, predicate: ["yuvMasterPane"], descendants: true, isSignal: true }, { propertyName: "detailsPane", first: true, predicate: ["yuvDetailsPane"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (mode === 'aside') {\n <yuv-split-view [disabled]=\"!layoutOptions.resizable\" [gutterSize]=\"gutterSize() || 1\"\n [layoutSettingsID]=\"layoutSettingsID\">\n <ng-template yuvSplitArea [size]=\"layoutOptions.masterSize\" [minSize]=\"layoutOptions.masterMinSize\">\n <div class=\"yuv-md-panel master\" [ngStyle]=\"panelStyle()\">\n <ng-container *ngTemplateOutlet=\"masterPane()\"></ng-container>\n </div>\n </ng-template>\n <ng-template yuvSplitArea [size]=\"layoutOptions.detailsSize\" [minSize]=\"layoutOptions.detailsMinSize\"\n [visible]=\"detailsActive()\">\n <div class=\"yuv-md-panel details\" [ngStyle]=\"panelStyle()\">\n @if (undockableDetails()) {\n <yuv-popout (popIn)=\"onPopIn()\" (popOut)=\"detailsActive.set(false)\"><ng-container\n *ngTemplateOutlet=\"tplDetailsPanel\"></ng-container></yuv-popout>\n } @else {\n <ng-container *ngTemplateOutlet=\"tplDetailsPanel\"></ng-container>\n }\n </div>\n </ng-template>\n </yuv-split-view>\n} @else {\n <div class=\"yuvMasterPane\"><ng-container *ngTemplateOutlet=\"masterPane()\"></ng-container></div>\n <div class=\"yuvDetailsPane\" [hidden]=\"!detailsActive()\"><ng-container *ngTemplateOutlet=\"detailsPane()\"></ng-container>\n</div>\n}\n\n\n<ng-template #tplDetailsPanel>\n <ng-container *ngTemplateOutlet=\"detailsPane()\"></ng-container>\n</ng-template>\n\n", styles: [":host{display:grid;grid-template-rows:1fr;grid-template-columns:1fr}:host ::ng-deep .yuv-md-panel{height:100%;box-sizing:border-box;overflow:auto}:host ::ng-deep .yuv-md-panel>yuv-popout .popoutWrapper,:host ::ng-deep .yuv-md-panel>yuv-popout .innerWrapper{height:100%}:host[data-mode=ontop].detailsActive .yuvMasterPane{display:none}:host[data-mode=ontop] .yuvMasterPane,:host[data-mode=ontop] .yuvDetailsPane{grid-row:1;grid-column:1;overflow:hidden;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: YuvSplitViewModule }, { kind: "directive", type: i2.SplitAreaDirective, selector: "[yuvSplitArea]", inputs: ["size", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: i2.SplitViewComponent, selector: "yuv-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "ngmodule", type: YuvPopoutModule }, { kind: "component", type: i3.PopoutComponent, selector: "yuv-popout", inputs: ["triggerPosition", "triggerIcon", "triggerTooltip", "popoutWindowConfig", "disabled"], outputs: ["popOut", "popIn"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
77
77
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvMasterDetailsComponent, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvMasterDetailsComponent, decorators: [{
79
79
  type: Component,
80
80
  args: [{ selector: 'yuv-master-details', standalone: true, imports: [CommonModule, YuvSplitViewModule, YuvPopoutModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
81
81
  'class.detailsActive': 'detailsActive()'
@@ -92,11 +92,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
92
92
  }] } });
93
93
 
94
94
  class YuvMasterDetailsModule {
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvMasterDetailsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
96
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: YuvMasterDetailsModule, imports: [YuvMasterDetailsComponent], exports: [YuvMasterDetailsComponent] }); }
97
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvMasterDetailsModule, imports: [YuvMasterDetailsComponent] }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvMasterDetailsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
96
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.11", ngImport: i0, type: YuvMasterDetailsModule, imports: [YuvMasterDetailsComponent], exports: [YuvMasterDetailsComponent] }); }
97
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvMasterDetailsModule, imports: [YuvMasterDetailsComponent] }); }
98
98
  }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvMasterDetailsModule, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvMasterDetailsModule, decorators: [{
100
100
  type: NgModule,
101
101
  args: [{
102
102
  imports: [YuvMasterDetailsComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"yuuvis-client-framework-master-details.mjs","sources":["../../../../../libs/yuuvis/client-framework/master-details/src/lib/master-details.component.ts","../../../../../libs/yuuvis/client-framework/master-details/src/lib/master-details.component.html","../../../../../libs/yuuvis/client-framework/master-details/src/lib/master-details.module.ts","../../../../../libs/yuuvis/client-framework/master-details/src/yuuvis-client-framework-master-details.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n contentChild,\n ElementRef,\n HostBinding,\n input,\n Input,\n model,\n TemplateRef\n} from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { YuvPopoutModule } from '@yuuvis/client-framework/popout';\nimport { YuvSplitViewModule } from '@yuuvis/client-framework/split-view';\nimport { MasterDetailsLayoutOptions } from './master-details.interface';\n\n/**\n * Component rendering a master/details view.\n *\n * @example\n * <yuv-master-details [(detailsActive)]=\"detailsActive\">\n * <ng-template #yuvMasterPane>Main Pane</ng-template>\n * <ng-template #yuvDetailsPane>Details Pane</ng-template>\n * </yuv-master-details>\n */\n@Component({\n selector: 'yuv-master-details',\n templateUrl: './master-details.component.html',\n styleUrls: ['./master-details.component.scss'],\n standalone: true,\n imports: [CommonModule, YuvSplitViewModule, YuvPopoutModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class.detailsActive': 'detailsActive()'\n }\n})\nexport class YuvMasterDetailsComponent implements AfterViewInit {\n masterPane = contentChild.required<TemplateRef<any>>('yuvMasterPane');\n detailsPane = contentChild.required<TemplateRef<any>>('yuvDetailsPane');\n\n private _defaultLayoutOptions: MasterDetailsLayoutOptions = {\n masterSize: 80,\n masterMinSize: undefined,\n detailsSize: 20,\n detailsMinSize: undefined,\n resizable: true\n };\n /**\n * Enable/disable details pane (also use as two-way-bound variable: [(detailsActive)])\n */\n detailsActive = model<boolean>(false);\n /**\n * Layout settings is the state of the master details that could be persisted.\n * Setting a `layoutSettingsID` will save the current state (details area visibilkity and\n * split area sizes etc.) to the local storage. If the component is created, it will load\n * those settings and re-apply them.\n */\n @Input() layoutSettingsID?: string;\n private _layoutOptions: MasterDetailsLayoutOptions = this._defaultLayoutOptions;\n /**\n * Layout options to be applied.\n */\n @Input() set layoutOptions(lo: Partial<MasterDetailsLayoutOptions>) {\n this._layoutOptions = lo ? { ...this._defaultLayoutOptions, ...lo } : this._defaultLayoutOptions;\n }\n get layoutOptions(): MasterDetailsLayoutOptions {\n return this._layoutOptions;\n }\n undockableDetails = input<boolean>(false);\n /**\n * Styles tp be applied to the panels\n */\n panelStyle = input<{ [key: string]: string } | undefined>(undefined);\n /**\n * Size of the gutter in Pixel.\n */\n gutterSize = input<number | undefined>(undefined);\n\n /**\n * The mode od how to render the details pane. By default it will be rendered next to the master\n * pane (resizable by split view). Choosing 'ontop' mode will overlay the details over the master pane\n * which may be a good choice for smaller screens.\n */\n @Input() @HostBinding('attr.data-mode') mode: 'aside' | 'ontop' = 'aside';\n\n constructor(\n private elRef: ElementRef,\n private cd: ChangeDetectorRef\n ) {}\n\n // onLayoutSettingsChanged(ls: SplitViewLayoutSettings) {\n // // if (this.layoutSettingsID) {\n // // }\n // }\n\n onPopIn() {\n this.detailsActive.set(true);\n this.cd.detectChanges();\n }\n\n ngAfterViewInit() {\n if (!this.masterPane() || !this.detailsPane()) {\n console.error('MasterDetailsComponent is supposed to contain a master and a details pane.');\n }\n }\n}\n","@if (mode === 'aside') {\n <yuv-split-view [disabled]=\"!layoutOptions.resizable\" [gutterSize]=\"gutterSize() || 1\"\n [layoutSettingsID]=\"layoutSettingsID\">\n <ng-template yuvSplitArea [size]=\"layoutOptions.masterSize\" [minSize]=\"layoutOptions.masterMinSize\">\n <div class=\"yuv-md-panel master\" [ngStyle]=\"panelStyle()\">\n <ng-container *ngTemplateOutlet=\"masterPane()\"></ng-container>\n </div>\n </ng-template>\n <ng-template yuvSplitArea [size]=\"layoutOptions.detailsSize\" [minSize]=\"layoutOptions.detailsMinSize\"\n [visible]=\"detailsActive()\">\n <div class=\"yuv-md-panel details\" [ngStyle]=\"panelStyle()\">\n @if (undockableDetails()) {\n <yuv-popout (popIn)=\"onPopIn()\" (popOut)=\"detailsActive.set(false)\"><ng-container\n *ngTemplateOutlet=\"tplDetailsPanel\"></ng-container></yuv-popout>\n } @else {\n <ng-container *ngTemplateOutlet=\"tplDetailsPanel\"></ng-container>\n }\n </div>\n </ng-template>\n </yuv-split-view>\n} @else {\n <div class=\"yuvMasterPane\"><ng-container *ngTemplateOutlet=\"masterPane()\"></ng-container></div>\n <div class=\"yuvDetailsPane\" [hidden]=\"!detailsActive()\"><ng-container *ngTemplateOutlet=\"detailsPane()\"></ng-container>\n</div>\n}\n\n\n<ng-template #tplDetailsPanel>\n <ng-container *ngTemplateOutlet=\"detailsPane()\"></ng-container>\n</ng-template>\n\n","import { NgModule } from '@angular/core';\nimport { YuvMasterDetailsComponent } from './master-details.component';\n\n@NgModule({\n imports: [YuvMasterDetailsComponent],\n exports: [YuvMasterDetailsComponent]\n})\nexport class YuvMasterDetailsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yuuvis-client-framework-master-details.mjs","sources":["../../../../../libs/yuuvis/client-framework/master-details/src/lib/master-details.component.ts","../../../../../libs/yuuvis/client-framework/master-details/src/lib/master-details.component.html","../../../../../libs/yuuvis/client-framework/master-details/src/lib/master-details.module.ts","../../../../../libs/yuuvis/client-framework/master-details/src/yuuvis-client-framework-master-details.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n contentChild,\n ElementRef,\n HostBinding,\n input,\n Input,\n model,\n TemplateRef\n} from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { YuvPopoutModule } from '@yuuvis/client-framework/popout';\nimport { YuvSplitViewModule } from '@yuuvis/client-framework/split-view';\nimport { MasterDetailsLayoutOptions } from './master-details.interface';\n\n/**\n * Component rendering a master/details view.\n *\n * @example\n * <yuv-master-details [(detailsActive)]=\"detailsActive\">\n * <ng-template #yuvMasterPane>Main Pane</ng-template>\n * <ng-template #yuvDetailsPane>Details Pane</ng-template>\n * </yuv-master-details>\n */\n@Component({\n selector: 'yuv-master-details',\n templateUrl: './master-details.component.html',\n styleUrls: ['./master-details.component.scss'],\n standalone: true,\n imports: [CommonModule, YuvSplitViewModule, YuvPopoutModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class.detailsActive': 'detailsActive()'\n }\n})\nexport class YuvMasterDetailsComponent implements AfterViewInit {\n masterPane = contentChild.required<TemplateRef<any>>('yuvMasterPane');\n detailsPane = contentChild.required<TemplateRef<any>>('yuvDetailsPane');\n\n private _defaultLayoutOptions: MasterDetailsLayoutOptions = {\n masterSize: 80,\n masterMinSize: undefined,\n detailsSize: 20,\n detailsMinSize: undefined,\n resizable: true\n };\n /**\n * Enable/disable details pane (also use as two-way-bound variable: [(detailsActive)])\n */\n detailsActive = model<boolean>(false);\n /**\n * Layout settings is the state of the master details that could be persisted.\n * Setting a `layoutSettingsID` will save the current state (details area visibilkity and\n * split area sizes etc.) to the local storage. If the component is created, it will load\n * those settings and re-apply them.\n */\n @Input() layoutSettingsID?: string;\n private _layoutOptions: MasterDetailsLayoutOptions = this._defaultLayoutOptions;\n /**\n * Layout options to be applied.\n */\n @Input() set layoutOptions(lo: Partial<MasterDetailsLayoutOptions>) {\n this._layoutOptions = lo ? { ...this._defaultLayoutOptions, ...lo } : this._defaultLayoutOptions;\n }\n get layoutOptions(): MasterDetailsLayoutOptions {\n return this._layoutOptions;\n }\n undockableDetails = input<boolean>(false);\n /**\n * Styles tp be applied to the panels\n */\n panelStyle = input<{ [key: string]: string } | undefined>(undefined);\n /**\n * Size of the gutter in Pixel.\n */\n gutterSize = input<number | undefined>(undefined);\n\n /**\n * The mode od how to render the details pane. By default it will be rendered next to the master\n * pane (resizable by split view). Choosing 'ontop' mode will overlay the details over the master pane\n * which may be a good choice for smaller screens.\n */\n @Input() @HostBinding('attr.data-mode') mode: 'aside' | 'ontop' = 'aside';\n\n constructor(\n private elRef: ElementRef,\n private cd: ChangeDetectorRef\n ) {}\n\n // onLayoutSettingsChanged(ls: SplitViewLayoutSettings) {\n // // if (this.layoutSettingsID) {\n // // }\n // }\n\n onPopIn() {\n this.detailsActive.set(true);\n this.cd.detectChanges();\n }\n\n ngAfterViewInit() {\n if (!this.masterPane() || !this.detailsPane()) {\n console.error('MasterDetailsComponent is supposed to contain a master and a details pane.');\n }\n }\n}\n","@if (mode === 'aside') {\n <yuv-split-view [disabled]=\"!layoutOptions.resizable\" [gutterSize]=\"gutterSize() || 1\"\n [layoutSettingsID]=\"layoutSettingsID\">\n <ng-template yuvSplitArea [size]=\"layoutOptions.masterSize\" [minSize]=\"layoutOptions.masterMinSize\">\n <div class=\"yuv-md-panel master\" [ngStyle]=\"panelStyle()\">\n <ng-container *ngTemplateOutlet=\"masterPane()\"></ng-container>\n </div>\n </ng-template>\n <ng-template yuvSplitArea [size]=\"layoutOptions.detailsSize\" [minSize]=\"layoutOptions.detailsMinSize\"\n [visible]=\"detailsActive()\">\n <div class=\"yuv-md-panel details\" [ngStyle]=\"panelStyle()\">\n @if (undockableDetails()) {\n <yuv-popout (popIn)=\"onPopIn()\" (popOut)=\"detailsActive.set(false)\"><ng-container\n *ngTemplateOutlet=\"tplDetailsPanel\"></ng-container></yuv-popout>\n } @else {\n <ng-container *ngTemplateOutlet=\"tplDetailsPanel\"></ng-container>\n }\n </div>\n </ng-template>\n </yuv-split-view>\n} @else {\n <div class=\"yuvMasterPane\"><ng-container *ngTemplateOutlet=\"masterPane()\"></ng-container></div>\n <div class=\"yuvDetailsPane\" [hidden]=\"!detailsActive()\"><ng-container *ngTemplateOutlet=\"detailsPane()\"></ng-container>\n</div>\n}\n\n\n<ng-template #tplDetailsPanel>\n <ng-container *ngTemplateOutlet=\"detailsPane()\"></ng-container>\n</ng-template>\n\n","import { NgModule } from '@angular/core';\nimport { YuvMasterDetailsComponent } from './master-details.component';\n\n@NgModule({\n imports: [YuvMasterDetailsComponent],\n exports: [YuvMasterDetailsComponent]\n})\nexport class YuvMasterDetailsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -13,10 +13,10 @@ import { StringComponent, DataGridComponent, OrganizationComponent, CatalogCompo
13
13
  import { ObjectMetadataElementTemplateDirective, ObjectMetadataElementLabelDirective, ObjectMetadataElementErrorDirective } from '@yuuvis/client-framework/metadata-form';
14
14
 
15
15
  class MetadataDefaultTemplatesComponent {
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: MetadataDefaultTemplatesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: MetadataDefaultTemplatesComponent, isStandalone: true, selector: "yuv-metadata-default-templates", ngImport: i0, template: "<!-- form element templates -->\n\n<!-- STRING -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n <yuv-string\n [required]=\"ctx.field.required\"\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n [rows]=\"ctx.field.rows\"\n [classifications]=\"ctx.field.classifications\"\n [regex]=\"ctx.field.regex\"\n [readonly]=\"ctx.field.readonly\"\n [minLength]=\"ctx.field.minLength\"\n [maxLength]=\"ctx.field.maxLength\"\n >\n </yuv-string>\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- STRING CATALOG -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string:catalog\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n <yuv-catalog\n [required]=\"ctx.field.required\"\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [multiple]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-catalog>\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- ORGANIZATION -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string:organization\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n <yuv-organization\n [required]=\"ctx.field.required\"\n [situation]=\"ctx.situation\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n (userSelect)=\"ctx.field.dataMeta = $event\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-organization>\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- INTEGER -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"integer\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [required]=\"ctx.field.required\"\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [required]=\"ctx.field.required\"\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [pattern]=\"ctx.field.pattern\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n ></yuv-number-range>\n }\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- DECIMAL -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"decimal\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [required]=\"ctx.field.required\"\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [grouping]=\"ctx.field.grouping\"\n [pattern]=\"ctx.field.pattern\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n >\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [required]=\"ctx.field.required\"\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [pattern]=\"ctx.field.pattern\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-number-range>\n }\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- BOOLEAN -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean\" let-ctx>\n <mat-checkbox\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [disabled]=\"ctx.field.readonly\"\n [indeterminate]=\"ctx.field.tristate === false ? false : true\"\n >\n </mat-checkbox>\n <label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</label>\n</ng-template>\n\n<!-- BOOLEAN SWITCH -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean:switch\" let-ctx>\n <mat-slide-toggle [formControl]=\"ctx.ctrl\" switch=\"true\" [attr.data-name]=\"ctx.field.name\" [disabled]=\"ctx.field.readonly\"></mat-slide-toggle>\n <label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</label>\n</ng-template>\n\n<!-- DATETIME -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"datetime\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-datetime\n [required]=\"ctx.field.required\"\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime>\n } @else {\n <yuv-datetime-range\n [required]=\"ctx.field.required\"\n [situation]=\"ctx.situation\"\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime-range>\n }\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- TABLE -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"table\" let-ctx>\n <yuv-data-grid\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ctrl\"\n [formElement]=\"ctx.field\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-data-grid>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: StringComponent, selector: "yuv-string", inputs: ["multiselect", "rows", "readonly", "autofocus", "classifications", "situation", "regex", "minLength", "maxLength"] }, { kind: "component", type: DataGridComponent, selector: "yuv-data-grid", inputs: ["situation", "formElement", "formControl", "classifications", "readonly", "size"] }, { kind: "component", type: OrganizationComponent, selector: "yuv-organization", inputs: ["situation", "multiselect", "classifications", "readonly", "excludeMe", "withMetadata"] }, { kind: "component", type: CatalogComponent, selector: "yuv-catalog", inputs: ["readonly", "multiple", "options", "classifications", "situation"] }, { kind: "component", type: NumberComponent, selector: "yuv-number", inputs: ["scale", "precision", "grouping", "groupPattern", "readonly", "minValue", "maxValue", "classifications"] }, { kind: "component", type: NumberRangeComponent, selector: "yuv-number-range", inputs: ["scale", "precision", "grouping", "pattern", "readonly", "classifications", "minValue", "maxValue"] }, { kind: "component", type: DatetimeComponent, selector: "yuv-datetime", inputs: ["locale", "onlyFutureDates", "readonly", "calendar", "withTime"] }, { kind: "component", type: DatetimeRangeComponent, selector: "yuv-datetime-range", inputs: ["withTime", "readonly", "operator", "situation"] }, { kind: "directive", type: ObjectMetadataElementTemplateDirective, selector: "[yuvMetadataElementTemplate]", inputs: ["yuvMetadataElementTemplate", "propertyType", "situation"] }, { kind: "directive", type: ObjectMetadataElementLabelDirective, selector: "[yuvObjectMetadataElementLabel]", inputs: ["yuvObjectMetadataElementLabel"] }, { kind: "directive", type: ObjectMetadataElementErrorDirective, selector: "[yuvObjectMetadataElementError]", inputs: ["yuvObjectMetadataElementError"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }] }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MetadataDefaultTemplatesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.11", type: MetadataDefaultTemplatesComponent, isStandalone: true, selector: "yuv-metadata-default-templates", ngImport: i0, template: "<!-- form element templates -->\n\n<!-- STRING -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n <yuv-string\n [required]=\"ctx.field.required\"\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n [rows]=\"ctx.field.rows\"\n [classifications]=\"ctx.field.classifications\"\n [regex]=\"ctx.field.regex\"\n [readonly]=\"ctx.field.readonly\"\n [minLength]=\"ctx.field.minLength\"\n [maxLength]=\"ctx.field.maxLength\"\n >\n </yuv-string>\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- STRING CATALOG -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string:catalog\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n <yuv-catalog\n [required]=\"ctx.field.required\"\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [multiple]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-catalog>\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- ORGANIZATION -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"string:organization\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n <yuv-organization\n [required]=\"ctx.field.required\"\n [situation]=\"ctx.situation\"\n [multiselect]=\"ctx.field.cardinality === 'multi' || ctx.situation === 'SEARCH'\"\n (userSelect)=\"ctx.field.dataMeta = $event\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-organization>\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- INTEGER -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"integer\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [required]=\"ctx.field.required\"\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [required]=\"ctx.field.required\"\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"0\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [pattern]=\"ctx.field.pattern\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n ></yuv-number-range>\n }\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- DECIMAL -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"decimal\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-number\n [required]=\"ctx.field.required\"\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [grouping]=\"ctx.field.grouping\"\n [pattern]=\"ctx.field.pattern\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n >\n >\n </yuv-number>\n } @else {\n <yuv-number-range\n [required]=\"ctx.field.required\"\n [readonly]=\"ctx.field.readonly\"\n [precision]=\"ctx.field.precision\"\n [scale]=\"ctx.field.scale\"\n [pattern]=\"ctx.field.pattern\"\n [grouping]=\"ctx.field.grouping\"\n [minValue]=\"ctx.field.minValue\"\n [maxValue]=\"ctx.field.maxValue\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-number-range>\n }\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- BOOLEAN -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean\" let-ctx>\n <mat-checkbox\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n [disabled]=\"ctx.field.readonly\"\n [indeterminate]=\"ctx.field.tristate === false ? false : true\"\n >\n </mat-checkbox>\n <label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</label>\n</ng-template>\n\n<!-- BOOLEAN SWITCH -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"boolean:switch\" let-ctx>\n <mat-slide-toggle [formControl]=\"ctx.ctrl\" switch=\"true\" [attr.data-name]=\"ctx.field.name\" [disabled]=\"ctx.field.readonly\"></mat-slide-toggle>\n <label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</label>\n</ng-template>\n\n<!-- DATETIME -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"datetime\" let-ctx>\n <mat-form-field>\n <mat-label [yuvObjectMetadataElementLabel]=\"ctx.ctrl\">{{ ctx.label }}</mat-label>\n @if (ctx.situation !== 'SEARCH') {\n <yuv-datetime\n [required]=\"ctx.field.required\"\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime>\n } @else {\n <yuv-datetime-range\n [required]=\"ctx.field.required\"\n [situation]=\"ctx.situation\"\n [readonly]=\"ctx.field.readonly\"\n [withTime]=\"ctx.field.resolution !== 'date'\"\n [formControl]=\"ctx.ctrl\"\n [attr.data-name]=\"ctx.field.name\"\n ></yuv-datetime-range>\n }\n <mat-hint>{{ ctx.description }}</mat-hint>\n <mat-error [yuvObjectMetadataElementError]=\"ctx.ctrl\"></mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- TABLE -->\n<ng-template yuvMetadataElementTemplate=\"default\" propertyType=\"table\" let-ctx>\n <yuv-data-grid\n [situation]=\"ctx.situation\"\n [formControl]=\"ctx.ctrl\"\n [formElement]=\"ctx.field\"\n [attr.data-name]=\"ctx.field.name\"\n [classifications]=\"ctx.field.classifications\"\n [readonly]=\"ctx.field.readonly\"\n >\n </yuv-data-grid>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: StringComponent, selector: "yuv-string", inputs: ["multiselect", "rows", "readonly", "autofocus", "classifications", "situation", "regex", "minLength", "maxLength"] }, { kind: "component", type: DataGridComponent, selector: "yuv-data-grid", inputs: ["situation", "formElement", "formControl", "classifications", "readonly", "size"] }, { kind: "component", type: OrganizationComponent, selector: "yuv-organization", inputs: ["situation", "multiselect", "classifications", "readonly", "excludeMe", "withMetadata"] }, { kind: "component", type: CatalogComponent, selector: "yuv-catalog", inputs: ["readonly", "multiple", "options", "classifications", "situation"] }, { kind: "component", type: NumberComponent, selector: "yuv-number", inputs: ["scale", "precision", "grouping", "groupPattern", "readonly", "minValue", "maxValue", "classifications"] }, { kind: "component", type: NumberRangeComponent, selector: "yuv-number-range", inputs: ["scale", "precision", "grouping", "pattern", "readonly", "classifications", "minValue", "maxValue"] }, { kind: "component", type: DatetimeComponent, selector: "yuv-datetime", inputs: ["locale", "onlyFutureDates", "readonly", "calendar", "withTime"] }, { kind: "component", type: DatetimeRangeComponent, selector: "yuv-datetime-range", inputs: ["withTime", "readonly", "operator", "situation"] }, { kind: "directive", type: ObjectMetadataElementTemplateDirective, selector: "[yuvMetadataElementTemplate]", inputs: ["yuvMetadataElementTemplate", "propertyType", "situation"] }, { kind: "directive", type: ObjectMetadataElementLabelDirective, selector: "[yuvObjectMetadataElementLabel]", inputs: ["yuvObjectMetadataElementLabel"] }, { kind: "directive", type: ObjectMetadataElementErrorDirective, selector: "[yuvObjectMetadataElementError]", inputs: ["yuvObjectMetadataElementError"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }] }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: MetadataDefaultTemplatesComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: MetadataDefaultTemplatesComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'yuv-metadata-default-templates', standalone: true, imports: [
22
22
  CommonModule,
@@ -40,11 +40,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
40
40
  }] });
41
41
 
42
42
  class YuvMetadataFormDefaultsModule {
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvMetadataFormDefaultsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
44
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: YuvMetadataFormDefaultsModule, imports: [MetadataDefaultTemplatesComponent], exports: [MetadataDefaultTemplatesComponent] }); }
45
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvMetadataFormDefaultsModule, imports: [MetadataDefaultTemplatesComponent] }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvMetadataFormDefaultsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
44
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.11", ngImport: i0, type: YuvMetadataFormDefaultsModule, imports: [MetadataDefaultTemplatesComponent], exports: [MetadataDefaultTemplatesComponent] }); }
45
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvMetadataFormDefaultsModule, imports: [MetadataDefaultTemplatesComponent] }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvMetadataFormDefaultsModule, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImport: i0, type: YuvMetadataFormDefaultsModule, decorators: [{
48
48
  type: NgModule,
49
49
  args: [{
50
50
  imports: [MetadataDefaultTemplatesComponent],