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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/fesm2022/yuuvis-client-framework-actions.mjs +16 -16
  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 +6 -6
  8. package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
  9. package/fesm2022/yuuvis-client-framework-common.mjs +66 -74
  10. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
  11. package/fesm2022/yuuvis-client-framework-datepicker.mjs +33 -32
  12. package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -1
  13. package/fesm2022/yuuvis-client-framework-forms.mjs +48 -48
  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 +31 -27
  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 +26 -26
  26. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
  27. package/fesm2022/yuuvis-client-framework-object-flavor.mjs +24 -24
  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 +10 -10
  32. package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
  33. package/fesm2022/yuuvis-client-framework-object-summary.mjs +23 -23
  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 +34 -34
  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 +49 -41
  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
  60. package/tile-list/lib/tile-list/tile-list.component.d.ts +2 -0
@@ -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.12", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
86
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.12", 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.12", 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.12", 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.12", 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.12", 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.12", ngImport: i0, type: ObjectTypeIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
183
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.12", 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.12", 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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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, input, linkedSignal, HostListener, Input, Directive, contentChildren, effect, output, HostAttributeToken, ViewEncapsulation, Component, NgModule } from '@angular/core';
2
+ import { inject, ElementRef, input, linkedSignal, HostListener, Input, Directive, contentChildren, effect, untracked, output, HostAttributeToken, ViewEncapsulation, Component, NgModule } from '@angular/core';
3
3
  import { ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
4
4
  import { Directionality } from '@angular/cdk/bidi';
5
5
  import { CommonModule } from '@angular/common';
@@ -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.12", ngImport: i0, type: ListItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
57
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.2.12", 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.12", ngImport: i0, type: ListItemDirective, decorators: [{
60
60
  type: Directive,
61
61
  args: [{
62
62
  selector: '[yuvListItem]',
@@ -90,24 +90,27 @@ class ListComponent {
90
90
  this.#dir = inject(Directionality);
91
91
  this.items = contentChildren(ListItemDirective);
92
92
  this.#itemsEffect = effect(() => {
93
+ const items = this.items();
93
94
  if (this._keyManager)
94
95
  this._keyManager.destroy();
95
- this._keyManager = this.horizontal
96
- ? new ActiveDescendantKeyManager(this.items()).withWrap().withHorizontalOrientation(this.#dir.value)
97
- : new ActiveDescendantKeyManager(this.items()).withWrap();
98
- this._keyManager.change.subscribe((activeIndex) => {
99
- if (activeIndex !== null) {
100
- this.#updateActiveItemState();
101
- this.itemFocus.emit(activeIndex);
96
+ untracked(() => {
97
+ this._keyManager = this.horizontal
98
+ ? new ActiveDescendantKeyManager(items).withWrap().withHorizontalOrientation(this.#dir.value)
99
+ : new ActiveDescendantKeyManager(items).withWrap();
100
+ this._keyManager.change.subscribe((activeIndex) => {
101
+ if (activeIndex !== null) {
102
+ this.#updateActiveItemState();
103
+ this.itemFocus.emit(activeIndex);
104
+ }
105
+ });
106
+ items.forEach((item, index) => {
107
+ item.onClick = (evt) => this.select(index, evt.shiftKey, evt.ctrlKey);
108
+ item.activeInput.set(false);
109
+ });
110
+ if (this._lastSelection !== undefined && this._lastSelection <= items.length) {
111
+ this.select(this._lastSelection);
102
112
  }
103
113
  });
104
- this.items().forEach((item, index) => {
105
- item.onClick = (evt) => this.select(index, evt.shiftKey, evt.ctrlKey);
106
- item.activeInput.set(false);
107
- });
108
- if (this._lastSelection !== undefined && this._lastSelection <= this.items().length) {
109
- this.select(this._lastSelection);
110
- }
111
114
  });
112
115
  this._selection = [];
113
116
  this.multiselect = input(false);
@@ -148,9 +151,10 @@ class ListComponent {
148
151
  select(index, shiftKey = false, ctrlKey = false) {
149
152
  if (this.disableSelection())
150
153
  return;
151
- if (this._keyManager) {
154
+ if (index >= this.items().length)
155
+ index = this.items().length - 1;
156
+ if (this._keyManager)
152
157
  this._keyManager.setActiveItem(index);
153
- }
154
158
  this.#select(index, shiftKey, ctrlKey);
155
159
  this.#emitSelection();
156
160
  }
@@ -208,10 +212,10 @@ class ListComponent {
208
212
  ngOnDestroy() {
209
213
  this._keyManager?.destroy();
210
214
  }
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 }); }
215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
216
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.12", 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
217
  }
214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ListComponent, decorators: [{
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: ListComponent, decorators: [{
215
219
  type: Component,
216
220
  args: [{ selector: 'yuv-list', standalone: true, imports: [CommonModule, A11yModule], template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, host: {
217
221
  role: 'listbox',
@@ -227,11 +231,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
227
231
  }] } });
228
232
 
229
233
  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] }); }
234
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: YuvListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
235
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.12", ngImport: i0, type: YuvListModule, imports: [ListComponent, ListItemDirective], exports: [ListComponent, ListItemDirective] }); }
236
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: YuvListModule, imports: [ListComponent] }); }
233
237
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: YuvListModule, decorators: [{
238
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: YuvListModule, decorators: [{
235
239
  type: NgModule,
236
240
  args: [{
237
241
  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 {\n Component,\n HostAttributeToken,\n HostListener,\n OnDestroy,\n ViewEncapsulation,\n contentChildren,\n effect,\n inject,\n input,\n output,\n untracked\n} from '@angular/core';\nimport { ListItemDirective } from './list-item.directive';\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 const items = this.items();\n\n if (this._keyManager) this._keyManager.destroy();\n\n untracked(() => {\n this._keyManager = this.horizontal\n ? new ActiveDescendantKeyManager(items).withWrap().withHorizontalOrientation(this.#dir.value)\n : new ActiveDescendantKeyManager(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 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 <= items.length) {\n this.select(this._lastSelection);\n }\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 (index >= this.items().length) index = this.items().length - 1;\n if (this._keyManager) 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.12", 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.12", 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.12", 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.12", ngImport: i0, type: YuvMasterDetailsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
96
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.12", ngImport: i0, type: YuvMasterDetailsModule, imports: [YuvMasterDetailsComponent], exports: [YuvMasterDetailsComponent] }); }
97
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.12", 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.12", 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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"}