@yuuvis/client-framework 0.7.4 → 0.9.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 (98) hide show
  1. package/actions/lib/actions/delete-action/delete-action.d.ts +1 -0
  2. package/common/index.d.ts +1 -0
  3. package/common/lib/services/error-messages/error-messages.service.d.ts +7 -0
  4. package/common/lib/services/index.d.ts +1 -0
  5. package/esm2022/actions/lib/actions/delete-action/delete-action.mjs +4 -10
  6. package/esm2022/actions/lib/components/contextmenu/contextmenu.component.mjs +2 -2
  7. package/esm2022/common/index.mjs +2 -1
  8. package/esm2022/common/lib/directives/drag-select.directive.mjs +2 -2
  9. package/esm2022/common/lib/services/error-messages/error-messages.service.mjs +68 -0
  10. package/esm2022/common/lib/services/index.mjs +2 -0
  11. package/esm2022/forms/index.mjs +13 -8
  12. package/esm2022/forms/lib/elements/data-grid/data-grid/data-grid.component.mjs +172 -0
  13. package/esm2022/forms/lib/elements/data-grid/edit-table-data/edit-data.component.mjs +95 -0
  14. package/esm2022/forms/lib/elements/data-grid/model/data-grid.interface.mjs +9 -0
  15. package/esm2022/forms/lib/elements/datetime-range/datetime-range.component.mjs +32 -32
  16. package/esm2022/forms/lib/elements/index.mjs +11 -0
  17. package/esm2022/forms/lib/elements/number/number.component.mjs +3 -3
  18. package/esm2022/forms/lib/elements/number-range/number-range.component.mjs +3 -3
  19. package/esm2022/forms/lib/elements/organization/organization.component.mjs +47 -29
  20. package/esm2022/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.mjs +38 -0
  21. package/esm2022/forms/lib/elements/range-select-date/range-select-date.component.mjs +181 -0
  22. package/esm2022/forms/lib/elements/range-select-date/range-select-date.interface.mjs +2 -0
  23. package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.component.mjs +98 -0
  24. package/esm2022/forms/lib/elements/range-select-filesize/range-select-filesize.interface.mjs +2 -0
  25. package/esm2022/forms/lib/elements/string/string.component.mjs +10 -3
  26. package/esm2022/icons/lib/icons.mjs +3 -2
  27. package/esm2022/list/lib/list.component.mjs +6 -4
  28. package/esm2022/metadata-form/lib/metadata-default-templates/metadata-default-templates.component.mjs +5 -4
  29. package/esm2022/metadata-form/lib/metadata-form-element-registry.service.mjs +1 -1
  30. package/esm2022/metadata-form/lib/metadata-form-field/metadata-form-field.component.mjs +9 -52
  31. package/esm2022/object-details/index.mjs +2 -1
  32. package/esm2022/object-details/lib/object-audit/object-audit.component.mjs +3 -3
  33. package/esm2022/object-details/lib/object-metadata/object-metadata.component.mjs +5 -4
  34. package/esm2022/object-details/lib/retention-badge/retention-badge.component.mjs +27 -0
  35. package/esm2022/object-flavor/lib/object-flavor/object-flavor.component.mjs +2 -2
  36. package/esm2022/object-flavor/lib/object-flavor-picker/object-flavor-picker.component.mjs +2 -2
  37. package/esm2022/object-form/index.mjs +1 -1
  38. package/esm2022/object-form/lib/object-form.component.mjs +2 -1
  39. package/esm2022/object-form/lib/object-form.service.mjs +5 -2
  40. package/esm2022/object-summary/lib/object-summary/object-summary.component.mjs +15 -13
  41. package/esm2022/pagination/lib/pagination.component.mjs +4 -6
  42. package/esm2022/sequence-list/index.mjs +1 -3
  43. package/esm2022/sequence-list/lib/sequence-list.component.mjs +11 -16
  44. package/esm2022/sequence-list/lib/sequence-list.interface.mjs +1 -1
  45. package/esm2022/tile-list/lib/tile/tile.component.mjs +3 -3
  46. package/esm2022/tile-list/lib/tile-config/tile-config.component.mjs +2 -2
  47. package/esm2022/tile-list/lib/tile-extension/extensions/email.extension.mjs +1 -1
  48. package/fesm2022/yuuvis-client-framework-actions.mjs +4 -10
  49. package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
  50. package/fesm2022/yuuvis-client-framework-common.mjs +69 -4
  51. package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
  52. package/fesm2022/yuuvis-client-framework-forms.mjs +1335 -755
  53. package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
  54. package/fesm2022/yuuvis-client-framework-icons.mjs +2 -1
  55. package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
  56. package/fesm2022/yuuvis-client-framework-list.mjs +5 -3
  57. package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
  58. package/fesm2022/yuuvis-client-framework-metadata-form.mjs +12 -55
  59. package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
  60. package/fesm2022/yuuvis-client-framework-object-details.mjs +28 -7
  61. package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
  62. package/fesm2022/yuuvis-client-framework-object-flavor.mjs +2 -2
  63. package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
  64. package/fesm2022/yuuvis-client-framework-object-form.mjs +5 -1
  65. package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
  66. package/fesm2022/yuuvis-client-framework-object-summary.mjs +14 -12
  67. package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
  68. package/fesm2022/yuuvis-client-framework-pagination.mjs +3 -5
  69. package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
  70. package/fesm2022/yuuvis-client-framework-sequence-list.mjs +17 -296
  71. package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
  72. package/fesm2022/yuuvis-client-framework-tile-list.mjs +3 -3
  73. package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
  74. package/forms/index.d.ts +5 -7
  75. package/forms/lib/elements/data-grid/data-grid/data-grid.component.d.ts +38 -0
  76. package/forms/lib/elements/data-grid/edit-table-data/edit-data.component.d.ts +21 -0
  77. package/forms/lib/elements/data-grid/model/data-grid.interface.d.ts +14 -0
  78. package/forms/lib/elements/datetime-range/datetime-range.component.d.ts +2 -1
  79. package/forms/lib/elements/index.d.ts +10 -0
  80. package/forms/lib/elements/organization/organization.component.d.ts +13 -4
  81. package/forms/lib/elements/range-select-date/date-range-picker/date-range-picker.component.d.ts +13 -0
  82. package/forms/lib/elements/range-select-date/range-select-date.component.d.ts +33 -0
  83. package/forms/lib/elements/range-select-date/range-select-date.interface.d.ts +5 -0
  84. package/forms/lib/elements/range-select-filesize/range-select-filesize.component.d.ts +28 -0
  85. package/forms/lib/elements/range-select-filesize/range-select-filesize.interface.d.ts +5 -0
  86. package/list/lib/list.component.d.ts +2 -1
  87. package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +1 -1
  88. package/object-details/index.d.ts +1 -0
  89. package/object-details/lib/retention-badge/retention-badge.component.d.ts +12 -0
  90. package/package.json +10 -10
  91. package/sequence-list/index.d.ts +0 -2
  92. package/sequence-list/lib/sequence-list.component.d.ts +2 -2
  93. package/sequence-list/lib/sequence-list.interface.d.ts +5 -4
  94. package/styles/client-framework.scss +55 -18
  95. package/esm2022/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.mjs +0 -183
  96. package/esm2022/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.mjs +0 -114
  97. package/sequence-list/lib/sequence-list-template-manage/sequence-list-template-manage.component.d.ts +0 -52
  98. package/sequence-list/lib/sequence-list-templates/sequence-list-templates.component.d.ts +0 -36
@@ -44,10 +44,10 @@ export class TileComponent {
44
44
  .subscribe();
45
45
  }
46
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TileComponent, isStandalone: true, selector: "yuv-tile", inputs: { tile: { classPropertyName: "tile", publicName: "tile", isSignal: true, isRequired: true, transformFunction: null }, actionContext: { classPropertyName: "actionContext", publicName: "actionContext", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div data-slot=\"icon\">\n <ng-container *yuvRenderer=\"rendererInputs().icon\"></ng-container>\n</div>\n\n<div class=\"slots\">\n <div data-slot=\"title\">\n <ng-container *yuvRenderer=\"rendererInputs().title\"></ng-container>\n </div>\n \n <div data-slot=\"actions\">\n @for (a of actions(); track a.id) {\n <button [title]=\"a.label\" (click)=\"executeAction(a, $event)\"><yvc-icon [svg]=\"a.icon\"></yvc-icon></button>\n }\n </div>\n \n <div data-slot=\"description\">\n <ng-container *yuvRenderer=\"rendererInputs().description\"></ng-container>\n </div>\n \n <div data-slot=\"aside\">\n <ng-container *yuvRenderer=\"rendererInputs().aside\"></ng-container>\n </div>\n \n <div data-slot=\"meta\">\n <ng-container *yuvRenderer=\"rendererInputs().meta\"></ng-container>\n </div>\n \n <div data-slot=\"badges\">{{ tile().badges }}</div>\n \n <div class=\"extension\">\n <ng-container *yuvTileExtension=\"{ typeId: tile().objectTypeId, data: tile().instanceData }\"></ng-container>\n </div>\n</div>\n", styles: [":host{--_tile-background: var(--tile-background, transparent);--_tile-icon-fill: var(--tile-icon-fill, currentColor);--_tile-padding: var(--tile-padding, var(--app-pane-padding));--_tile-action-icon-size: var(--tile-action-icon-size);--_tile-icon-size: var(--tile-icon-size);--_transition-duration: var(--transition-duration, .1s);display:flex;align-items:center;background-color:var(--_tile-background);padding:var(--_tile-padding);transition:background-color var(--_transition-duration)}:host .slots{display:grid;grid-template-rows:repeat(4,auto);grid-template-columns:1fr repeat(2,auto);grid-template-areas:\"title title actions\" \"description aside aside\" \"meta meta badges\" \"ext ext ext\";flex:1}:host [data-slot]{align-items:center;-webkit-user-select:none;user-select:none;display:grid}:host [data-slot=icon]{--icon-renderer-icon-size: var(--_tile-icon-size);color:var(--_tile-icon-fill);width:3rem;grid-area:icon;display:flex;align-items:center;justify-content:center}:host [data-slot=title]{font-weight:700;grid-area:title}:host [data-slot=description]{grid-area:description}:host [data-slot=meta]{grid-area:meta}:host [data-slot=aside]{flex:0 0 auto;grid-area:aside}:host [data-slot=actions]{opacity:0;transition:opacity var(--_transition-duration);pointer-events:none}:host:hover [data-slot=actions]{opacity:1;pointer-events:all}:host [data-slot=actions]{grid-area:actions;flex:0 0 auto;display:flex;align-items:start}:host [data-slot=actions] button{padding:0;gap:2px}:host [data-slot=actions] button yvc-icon{--icon-size: var(--_tile-action-icon-size)}:host [data-slot=badges]{grid-area:badges;justify-self:end;flex:0 0 auto}:host .extension{grid-area:ext}\n"], dependencies: [{ kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "directive", type: RendererDirective, selector: "[yuvRenderer]", inputs: ["yuvRenderer"] }, { kind: "directive", type: TileExtensionDirective, selector: "[yuvTileExtension]", inputs: ["yuvTileExtension"] }] }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TileComponent, isStandalone: true, selector: "yuv-tile", inputs: { tile: { classPropertyName: "tile", publicName: "tile", isSignal: true, isRequired: true, transformFunction: null }, actionContext: { classPropertyName: "actionContext", publicName: "actionContext", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div data-slot=\"icon\">\n <ng-container *yuvRenderer=\"rendererInputs().icon\"></ng-container>\n</div>\n\n<div class=\"slots\">\n <div data-slot=\"title\">\n <ng-container *yuvRenderer=\"rendererInputs().title\"></ng-container>\n </div>\n \n <div data-slot=\"actions\">\n @for (a of actions(); track a.id) {\n <button [title]=\"a.label\" (click)=\"executeAction(a, $event)\"><yvc-icon inert=\"true\" [svg]=\"a.icon\"></yvc-icon></button>\n }\n </div>\n \n <div data-slot=\"description\">\n <ng-container *yuvRenderer=\"rendererInputs().description\"></ng-container>\n </div>\n \n <div data-slot=\"aside\">\n <ng-container *yuvRenderer=\"rendererInputs().aside\"></ng-container>\n </div>\n \n <div data-slot=\"meta\">\n <ng-container *yuvRenderer=\"rendererInputs().meta\"></ng-container>\n </div>\n \n <div data-slot=\"badges\">{{ tile().badges }}</div>\n \n <div class=\"extension\">\n <ng-container *yuvTileExtension=\"{ typeId: tile().objectTypeId, data: tile().instanceData }\"></ng-container>\n </div>\n</div>\n", styles: [":host{--_tile-background: var(--tile-background, transparent);--_tile-icon-fill: var(--tile-icon-fill, currentColor);--_tile-padding: var(--tile-padding, var(--app-pane-padding));--_tile-action-icon-size: var(--tile-action-icon-size);--_tile-icon-size: var(--tile-icon-size);--_transition-duration: var(--transition-duration, .1s);display:flex;align-items:center;background-color:var(--_tile-background);padding:var(--_tile-padding);transition:background-color var(--_transition-duration)}:host .slots{display:grid;grid-template-rows:repeat(4,auto);grid-template-columns:1fr repeat(2,auto);grid-template-areas:\"title title actions\" \"description aside aside\" \"meta meta badges\" \"ext ext ext\";flex:1}:host [data-slot]{align-items:center;-webkit-user-select:none;user-select:none;display:grid}:host [data-slot=icon]{--icon-renderer-icon-size: var(--_tile-icon-size);color:var(--_tile-icon-fill);width:3rem;grid-area:icon;display:flex;align-items:center;justify-content:center}:host [data-slot=title]{font-weight:700;grid-area:title}:host [data-slot=description]{grid-area:description}:host [data-slot=meta]{grid-area:meta}:host [data-slot=aside]{flex:0 0 auto;grid-area:aside}:host [data-slot=actions]{opacity:0;transition:opacity var(--_transition-duration);pointer-events:none}:host:hover [data-slot=actions]{opacity:1;pointer-events:all}:host [data-slot=actions]{grid-area:actions;flex:0 0 auto;display:flex;align-items:start}:host [data-slot=actions] button{padding:0;gap:2px}:host [data-slot=actions] button yvc-icon{--icon-size: var(--_tile-action-icon-size)}:host [data-slot=badges]{grid-area:badges;justify-self:end;flex:0 0 auto}:host .extension{grid-area:ext}\n"], dependencies: [{ kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "directive", type: RendererDirective, selector: "[yuvRenderer]", inputs: ["yuvRenderer"] }, { kind: "directive", type: TileExtensionDirective, selector: "[yuvTileExtension]", inputs: ["yuvTileExtension"] }] }); }
48
48
  }
49
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileComponent, decorators: [{
50
50
  type: Component,
51
- args: [{ selector: 'yuv-tile', standalone: true, imports: [YvcIconModule, RendererDirective, TileExtensionDirective], template: "<div data-slot=\"icon\">\n <ng-container *yuvRenderer=\"rendererInputs().icon\"></ng-container>\n</div>\n\n<div class=\"slots\">\n <div data-slot=\"title\">\n <ng-container *yuvRenderer=\"rendererInputs().title\"></ng-container>\n </div>\n \n <div data-slot=\"actions\">\n @for (a of actions(); track a.id) {\n <button [title]=\"a.label\" (click)=\"executeAction(a, $event)\"><yvc-icon [svg]=\"a.icon\"></yvc-icon></button>\n }\n </div>\n \n <div data-slot=\"description\">\n <ng-container *yuvRenderer=\"rendererInputs().description\"></ng-container>\n </div>\n \n <div data-slot=\"aside\">\n <ng-container *yuvRenderer=\"rendererInputs().aside\"></ng-container>\n </div>\n \n <div data-slot=\"meta\">\n <ng-container *yuvRenderer=\"rendererInputs().meta\"></ng-container>\n </div>\n \n <div data-slot=\"badges\">{{ tile().badges }}</div>\n \n <div class=\"extension\">\n <ng-container *yuvTileExtension=\"{ typeId: tile().objectTypeId, data: tile().instanceData }\"></ng-container>\n </div>\n</div>\n", styles: [":host{--_tile-background: var(--tile-background, transparent);--_tile-icon-fill: var(--tile-icon-fill, currentColor);--_tile-padding: var(--tile-padding, var(--app-pane-padding));--_tile-action-icon-size: var(--tile-action-icon-size);--_tile-icon-size: var(--tile-icon-size);--_transition-duration: var(--transition-duration, .1s);display:flex;align-items:center;background-color:var(--_tile-background);padding:var(--_tile-padding);transition:background-color var(--_transition-duration)}:host .slots{display:grid;grid-template-rows:repeat(4,auto);grid-template-columns:1fr repeat(2,auto);grid-template-areas:\"title title actions\" \"description aside aside\" \"meta meta badges\" \"ext ext ext\";flex:1}:host [data-slot]{align-items:center;-webkit-user-select:none;user-select:none;display:grid}:host [data-slot=icon]{--icon-renderer-icon-size: var(--_tile-icon-size);color:var(--_tile-icon-fill);width:3rem;grid-area:icon;display:flex;align-items:center;justify-content:center}:host [data-slot=title]{font-weight:700;grid-area:title}:host [data-slot=description]{grid-area:description}:host [data-slot=meta]{grid-area:meta}:host [data-slot=aside]{flex:0 0 auto;grid-area:aside}:host [data-slot=actions]{opacity:0;transition:opacity var(--_transition-duration);pointer-events:none}:host:hover [data-slot=actions]{opacity:1;pointer-events:all}:host [data-slot=actions]{grid-area:actions;flex:0 0 auto;display:flex;align-items:start}:host [data-slot=actions] button{padding:0;gap:2px}:host [data-slot=actions] button yvc-icon{--icon-size: var(--_tile-action-icon-size)}:host [data-slot=badges]{grid-area:badges;justify-self:end;flex:0 0 auto}:host .extension{grid-area:ext}\n"] }]
51
+ args: [{ selector: 'yuv-tile', standalone: true, imports: [YvcIconModule, RendererDirective, TileExtensionDirective], template: "<div data-slot=\"icon\">\n <ng-container *yuvRenderer=\"rendererInputs().icon\"></ng-container>\n</div>\n\n<div class=\"slots\">\n <div data-slot=\"title\">\n <ng-container *yuvRenderer=\"rendererInputs().title\"></ng-container>\n </div>\n \n <div data-slot=\"actions\">\n @for (a of actions(); track a.id) {\n <button [title]=\"a.label\" (click)=\"executeAction(a, $event)\"><yvc-icon inert=\"true\" [svg]=\"a.icon\"></yvc-icon></button>\n }\n </div>\n \n <div data-slot=\"description\">\n <ng-container *yuvRenderer=\"rendererInputs().description\"></ng-container>\n </div>\n \n <div data-slot=\"aside\">\n <ng-container *yuvRenderer=\"rendererInputs().aside\"></ng-container>\n </div>\n \n <div data-slot=\"meta\">\n <ng-container *yuvRenderer=\"rendererInputs().meta\"></ng-container>\n </div>\n \n <div data-slot=\"badges\">{{ tile().badges }}</div>\n \n <div class=\"extension\">\n <ng-container *yuvTileExtension=\"{ typeId: tile().objectTypeId, data: tile().instanceData }\"></ng-container>\n </div>\n</div>\n", styles: [":host{--_tile-background: var(--tile-background, transparent);--_tile-icon-fill: var(--tile-icon-fill, currentColor);--_tile-padding: var(--tile-padding, var(--app-pane-padding));--_tile-action-icon-size: var(--tile-action-icon-size);--_tile-icon-size: var(--tile-icon-size);--_transition-duration: var(--transition-duration, .1s);display:flex;align-items:center;background-color:var(--_tile-background);padding:var(--_tile-padding);transition:background-color var(--_transition-duration)}:host .slots{display:grid;grid-template-rows:repeat(4,auto);grid-template-columns:1fr repeat(2,auto);grid-template-areas:\"title title actions\" \"description aside aside\" \"meta meta badges\" \"ext ext ext\";flex:1}:host [data-slot]{align-items:center;-webkit-user-select:none;user-select:none;display:grid}:host [data-slot=icon]{--icon-renderer-icon-size: var(--_tile-icon-size);color:var(--_tile-icon-fill);width:3rem;grid-area:icon;display:flex;align-items:center;justify-content:center}:host [data-slot=title]{font-weight:700;grid-area:title}:host [data-slot=description]{grid-area:description}:host [data-slot=meta]{grid-area:meta}:host [data-slot=aside]{flex:0 0 auto;grid-area:aside}:host [data-slot=actions]{opacity:0;transition:opacity var(--_transition-duration);pointer-events:none}:host:hover [data-slot=actions]{opacity:1;pointer-events:all}:host [data-slot=actions]{grid-area:actions;flex:0 0 auto;display:flex;align-items:start}:host [data-slot=actions] button{padding:0;gap:2px}:host [data-slot=actions] button yvc-icon{--icon-size: var(--_tile-action-icon-size)}:host [data-slot=badges]{grid-area:badges;justify-self:end;flex:0 0 auto}:host .extension{grid-area:ext}\n"] }]
52
52
  }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWEsVUFBVSxFQUFzQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hGLE9BQU8sRUFBeUIsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7OztBQVU5RixNQUFNLE9BQU8sYUFBYTtJQVAxQjtRQVFFLFVBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvQyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBWSxDQUFDO1FBQ2xDLGtCQUFhLEdBQUcsS0FBSyxFQUFpQixDQUFDO1FBRXZDLFlBQU8sR0FBRyxRQUFRLENBQVcsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sV0FBVyxHQUFhLEVBQUUsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBcUIsRUFBRSxFQUFFO29CQUNyRCxNQUFNLEVBQUUsR0FBdUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztvQkFDNUYsSUFBSSxFQUFFO3dCQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzdCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJO2dCQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQ3hCLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVztnQkFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJO2dCQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7YUFDekIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0tBV0o7SUFUQyxhQUFhLENBQUMsQ0FBUyxFQUFFLEdBQVU7UUFDakMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsVUFBVTthQUNaLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0MsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzsrR0FwQ1UsYUFBYTttR0FBYixhQUFhLG9WQ2hCMUIsMGhDQWlDQSxxc0REckJZLGFBQWEsK0hBQUUsaUJBQWlCLG1GQUFFLHNCQUFzQjs7NEZBSXZELGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERtc09iamVjdCwgRG1zU2VydmljZSwgT2JqZWN0Q29uZmlnQWN0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvbkNvbnRleHQsIEFjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2FjdGlvbnMnO1xuaW1wb3J0IHsgUmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvcmVuZGVyZXInO1xuaW1wb3J0IHsgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGlsZUV4dGVuc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL3RpbGUtZXh0ZW5zaW9uL2RpcmVjdGl2ZS90aWxlLWV4dGVuc2lvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGlsZURhdGEgfSBmcm9tICcuLi90aWxlLWxpc3QvdGlsZS1saXN0LmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di10aWxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1l2Y0ljb25Nb2R1bGUsIFJlbmRlcmVyRGlyZWN0aXZlLCBUaWxlRXh0ZW5zaW9uRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGlsZS5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgVGlsZUNvbXBvbmVudCB7XG4gIGVsUmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIGRtc1NlcnZpY2UgPSBpbmplY3QoRG1zU2VydmljZSk7XG4gIHByaXZhdGUgYWN0aW9uU2VydmljZSA9IGluamVjdChBY3Rpb25zU2VydmljZSk7XG5cbiAgdGlsZSA9IGlucHV0LnJlcXVpcmVkPFRpbGVEYXRhPigpO1xuICBhY3Rpb25Db250ZXh0ID0gaW5wdXQ8QWN0aW9uQ29udGV4dD4oKTtcblxuICBhY3Rpb25zID0gY29tcHV0ZWQ8QWN0aW9uW10+KCgpID0+IHtcbiAgICBjb25zdCBhY3Rpb25zTGlzdDogQWN0aW9uW10gPSBbXTtcbiAgICBpZiAodGhpcy50aWxlKCkuYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnRpbGUoKS5hY3Rpb25zPy5mb3JFYWNoKChhOiBPYmplY3RDb25maWdBY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgYWE6IEFjdGlvbiB8IHVuZGVmaW5lZCA9IHRoaXMuYWN0aW9uU2VydmljZS5nZXRBY3Rpb25CeUlkKGEuaWQsIHRoaXMuYWN0aW9uQ29udGV4dCgpKTtcbiAgICAgICAgaWYgKGFhKSBhY3Rpb25zTGlzdC5wdXNoKGFhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYWN0aW9uc0xpc3Q7XG4gIH0pO1xuICByZW5kZXJlcklucHV0cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogdGhpcy50aWxlKCkuaWNvbixcbiAgICAgIHRpdGxlOiB0aGlzLnRpbGUoKS50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnRpbGUoKS5kZXNjcmlwdGlvbixcbiAgICAgIG1ldGE6IHRoaXMudGlsZSgpLm1ldGEsXG4gICAgICBhc2lkZTogdGhpcy50aWxlKCkuYXNpZGVcbiAgICB9O1xuICB9KTtcblxuICBleGVjdXRlQWN0aW9uKGE6IEFjdGlvbiwgZXZ0OiBFdmVudCkge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuZG1zU2VydmljZVxuICAgICAgLmdldERtc09iamVjdCh0aGlzLnRpbGUoKS5pZClcbiAgICAgIC5waXBlKHN3aXRjaE1hcCgobzogRG1zT2JqZWN0KSA9PiBhLnJ1bihbb10pKSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBkYXRhLXNsb3Q9XCJpY29uXCI+XG4gIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicmVuZGVyZXJJbnB1dHMoKS5pY29uXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInNsb3RzXCI+XG4gIDxkaXYgZGF0YS1zbG90PVwidGl0bGVcIj5cbiAgICA8bmctY29udGFpbmVyICp5dXZSZW5kZXJlcj1cInJlbmRlcmVySW5wdXRzKCkudGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIFxuICA8ZGl2IGRhdGEtc2xvdD1cImFjdGlvbnNcIj5cbiAgICBAZm9yIChhIG9mIGFjdGlvbnMoKTsgdHJhY2sgYS5pZCkge1xuICAgICAgPGJ1dHRvbiBbdGl0bGVdPVwiYS5sYWJlbFwiIChjbGljayk9XCJleGVjdXRlQWN0aW9uKGEsICRldmVudClcIj48eXZjLWljb24gW3N2Z109XCJhLmljb25cIj48L3l2Yy1pY29uPjwvYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIFxuICA8ZGl2IGRhdGEtc2xvdD1cImRlc2NyaXB0aW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqeXV2UmVuZGVyZXI9XCJyZW5kZXJlcklucHV0cygpLmRlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICBcbiAgPGRpdiBkYXRhLXNsb3Q9XCJhc2lkZVwiPlxuICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicmVuZGVyZXJJbnB1dHMoKS5hc2lkZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgXG4gIDxkaXYgZGF0YS1zbG90PVwibWV0YVwiPlxuICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicmVuZGVyZXJJbnB1dHMoKS5tZXRhXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICBcbiAgPGRpdiBkYXRhLXNsb3Q9XCJiYWRnZXNcIj57eyB0aWxlKCkuYmFkZ2VzIH19PC9kaXY+XG4gIFxuICA8ZGl2IGNsYXNzPVwiZXh0ZW5zaW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqeXV2VGlsZUV4dGVuc2lvbj1cInsgdHlwZUlkOiB0aWxlKCkub2JqZWN0VHlwZUlkLCBkYXRhOiB0aWxlKCkuaW5zdGFuY2VEYXRhIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUvdGlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUvdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWEsVUFBVSxFQUFzQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hGLE9BQU8sRUFBeUIsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7OztBQVU5RixNQUFNLE9BQU8sYUFBYTtJQVAxQjtRQVFFLFVBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvQyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBWSxDQUFDO1FBQ2xDLGtCQUFhLEdBQUcsS0FBSyxFQUFpQixDQUFDO1FBRXZDLFlBQU8sR0FBRyxRQUFRLENBQVcsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sV0FBVyxHQUFhLEVBQUUsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBcUIsRUFBRSxFQUFFO29CQUNyRCxNQUFNLEVBQUUsR0FBdUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztvQkFDNUYsSUFBSSxFQUFFO3dCQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzdCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJO2dCQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQ3hCLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVztnQkFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJO2dCQUN0QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7YUFDekIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0tBV0o7SUFUQyxhQUFhLENBQUMsQ0FBUyxFQUFFLEdBQVU7UUFDakMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsVUFBVTthQUNaLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0MsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzsrR0FwQ1UsYUFBYTttR0FBYixhQUFhLG9WQ2hCMUIseWlDQWlDQSxxc0REckJZLGFBQWEsK0hBQUUsaUJBQWlCLG1GQUFFLHNCQUFzQjs7NEZBSXZELGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERtc09iamVjdCwgRG1zU2VydmljZSwgT2JqZWN0Q29uZmlnQWN0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvbkNvbnRleHQsIEFjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2FjdGlvbnMnO1xuaW1wb3J0IHsgUmVuZGVyZXJEaXJlY3RpdmUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvcmVuZGVyZXInO1xuaW1wb3J0IHsgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGlsZUV4dGVuc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL3RpbGUtZXh0ZW5zaW9uL2RpcmVjdGl2ZS90aWxlLWV4dGVuc2lvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGlsZURhdGEgfSBmcm9tICcuLi90aWxlLWxpc3QvdGlsZS1saXN0LmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di10aWxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1l2Y0ljb25Nb2R1bGUsIFJlbmRlcmVyRGlyZWN0aXZlLCBUaWxlRXh0ZW5zaW9uRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGlsZS5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgVGlsZUNvbXBvbmVudCB7XG4gIGVsUmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIGRtc1NlcnZpY2UgPSBpbmplY3QoRG1zU2VydmljZSk7XG4gIHByaXZhdGUgYWN0aW9uU2VydmljZSA9IGluamVjdChBY3Rpb25zU2VydmljZSk7XG5cbiAgdGlsZSA9IGlucHV0LnJlcXVpcmVkPFRpbGVEYXRhPigpO1xuICBhY3Rpb25Db250ZXh0ID0gaW5wdXQ8QWN0aW9uQ29udGV4dD4oKTtcblxuICBhY3Rpb25zID0gY29tcHV0ZWQ8QWN0aW9uW10+KCgpID0+IHtcbiAgICBjb25zdCBhY3Rpb25zTGlzdDogQWN0aW9uW10gPSBbXTtcbiAgICBpZiAodGhpcy50aWxlKCkuYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnRpbGUoKS5hY3Rpb25zPy5mb3JFYWNoKChhOiBPYmplY3RDb25maWdBY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgYWE6IEFjdGlvbiB8IHVuZGVmaW5lZCA9IHRoaXMuYWN0aW9uU2VydmljZS5nZXRBY3Rpb25CeUlkKGEuaWQsIHRoaXMuYWN0aW9uQ29udGV4dCgpKTtcbiAgICAgICAgaWYgKGFhKSBhY3Rpb25zTGlzdC5wdXNoKGFhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYWN0aW9uc0xpc3Q7XG4gIH0pO1xuICByZW5kZXJlcklucHV0cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWNvbjogdGhpcy50aWxlKCkuaWNvbixcbiAgICAgIHRpdGxlOiB0aGlzLnRpbGUoKS50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnRpbGUoKS5kZXNjcmlwdGlvbixcbiAgICAgIG1ldGE6IHRoaXMudGlsZSgpLm1ldGEsXG4gICAgICBhc2lkZTogdGhpcy50aWxlKCkuYXNpZGVcbiAgICB9O1xuICB9KTtcblxuICBleGVjdXRlQWN0aW9uKGE6IEFjdGlvbiwgZXZ0OiBFdmVudCkge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuZG1zU2VydmljZVxuICAgICAgLmdldERtc09iamVjdCh0aGlzLnRpbGUoKS5pZClcbiAgICAgIC5waXBlKHN3aXRjaE1hcCgobzogRG1zT2JqZWN0KSA9PiBhLnJ1bihbb10pKSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBkYXRhLXNsb3Q9XCJpY29uXCI+XG4gIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicmVuZGVyZXJJbnB1dHMoKS5pY29uXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInNsb3RzXCI+XG4gIDxkaXYgZGF0YS1zbG90PVwidGl0bGVcIj5cbiAgICA8bmctY29udGFpbmVyICp5dXZSZW5kZXJlcj1cInJlbmRlcmVySW5wdXRzKCkudGl0bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIFxuICA8ZGl2IGRhdGEtc2xvdD1cImFjdGlvbnNcIj5cbiAgICBAZm9yIChhIG9mIGFjdGlvbnMoKTsgdHJhY2sgYS5pZCkge1xuICAgICAgPGJ1dHRvbiBbdGl0bGVdPVwiYS5sYWJlbFwiIChjbGljayk9XCJleGVjdXRlQWN0aW9uKGEsICRldmVudClcIj48eXZjLWljb24gaW5lcnQ9XCJ0cnVlXCIgW3N2Z109XCJhLmljb25cIj48L3l2Yy1pY29uPjwvYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIFxuICA8ZGl2IGRhdGEtc2xvdD1cImRlc2NyaXB0aW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqeXV2UmVuZGVyZXI9XCJyZW5kZXJlcklucHV0cygpLmRlc2NyaXB0aW9uXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICBcbiAgPGRpdiBkYXRhLXNsb3Q9XCJhc2lkZVwiPlxuICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicmVuZGVyZXJJbnB1dHMoKS5hc2lkZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgXG4gIDxkaXYgZGF0YS1zbG90PVwibWV0YVwiPlxuICAgIDxuZy1jb250YWluZXIgKnl1dlJlbmRlcmVyPVwicmVuZGVyZXJJbnB1dHMoKS5tZXRhXCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICBcbiAgPGRpdiBkYXRhLXNsb3Q9XCJiYWRnZXNcIj57eyB0aWxlKCkuYmFkZ2VzIH19PC9kaXY+XG4gIFxuICA8ZGl2IGNsYXNzPVwiZXh0ZW5zaW9uXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqeXV2VGlsZUV4dGVuc2lvbj1cInsgdHlwZUlkOiB0aWxlKCkub2JqZWN0VHlwZUlkLCBkYXRhOiB0aWxlKCkuaW5zdGFuY2VEYXRhIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -135,7 +135,7 @@ export class TileConfigComponent {
135
135
  }
136
136
  }
137
137
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
138
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TileConfigComponent, isStandalone: true, selector: "yuv-tile-config", inputs: { bucket: { classPropertyName: "bucket", publicName: "bucket", isSignal: true, isRequired: false, transformFunction: null }, bucketLabel: { classPropertyName: "bucketLabel", publicName: "bucketLabel", isSignal: true, isRequired: false, transformFunction: null }, configTypes: { classPropertyName: "configTypes", publicName: "configTypes", isSignal: true, isRequired: false, transformFunction: null }, configFlavors: { classPropertyName: "configFlavors", publicName: "configFlavors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { save: "save", cancel: "cancel" }, ngImport: i0, template: "<header>\n <h1>{{ 'yuv.tile-config.title' | translate }}</h1>\n <div class=\"bucket\">{{ bucketLabel() }}</div>\n @if (cancel) {\n <button class=\"icon\" (click)=\"cancel.emit()\">\n <yvc-icon [svg]=\"icons.clear\"></yvc-icon>\n </button>\n }\n</header>\n\n<yvc-split-view [gutterSize]=\"1\" [layoutSettingsID]=\"'yuv.framework.tile-config.layout'\">\n <!-- list of types -->\n <ng-template yvcSplitArea [size]=\"30\">\n <div class=\"types\">\n <yuv-list (itemSelect)=\"itemSelected($event)\">\n @for (t of types() || []; track t.id) {\n <div yuvListItem>\n @if (t.icon) {\n <yvc-icon [svg]=\"t.icon\"></yvc-icon>\n } @else {\n <yuv-object-type-icon [objectTypeId]=\"t.id\"></yuv-object-type-icon>\n }\n {{ t.id | translate }}\n </div>\n }\n </yuv-list>\n </div>\n </ng-template>\n\n <!-- selected type details-->\n <ng-template yvcSplitArea [size]=\"70\">\n <div class=\"details\">\n @if (selectedType) {\n <header>{{ selectedType.id | translate }}</header>\n <div class=\"dummy-preview\">\n <yuv-tile-config-tile [disableIconSlot]=\"true\" [disableBadgesSlot]=\"true\" [objectConfig]=\"objectConfig!\" (slotSelect)=\"slotSelect($event)\"></yuv-tile-config-tile>\n </div>\n <main>\n @if (selectedSlot === 'icon') {\n <h2>{{ 'yuv.tile-config.slot.icon.headline' | translate }}</h2>\n <yuv-icon-select [objectType]=\"selectedType\" (iconSelect)=\"iconSelected($event)\"></yuv-icon-select>\n } @else if (selectedSlot === 'badges') {\n <div class=\"placeholder empty\">\n <p>Future feature: Select badges (like: is favorite, ratings, ...)</p>\n </div>\n } @else if (!selectedSlot) {\n } @else if (selectedSlot === 'actions') {\n <h2>{{ 'yuv.tile-config.slot.action.headline' | translate }}</h2>\n <yuv-tile-action-select\n [objectType]=\"selectedType\"\n [selectedActionIds]=\"getSelectedActions()\"\n (actionSelect)=\"actionSelected($event)\"\n ></yuv-tile-action-select>\n } @else {\n <h2>{{ 'yuv.tile-config.slot.property.headline' | translate }}</h2>\n <yuv-tile-property-select\n [objectType]=\"selectedType\"\n [selectedProperty]=\"getConfigProperty(selectedSlot)\"\n (propertySelect)=\"propertySelected(selectedSlot, $event)\"\n ></yuv-tile-property-select>\n }\n </main>\n <footer>\n <button class=\"primary\" (click)=\"saveConfig()\">{{ 'yuv.tile-config.button.save' | translate }}</button>\n </footer>\n } @else {\n <div class=\"placeholder empty\">\n <h2>{{ 'yuv.tile-config.details.empty.title' | translate }}</h2>\n <p>{{ 'yuv.tile-config.details.empty.description' | translate }}</p>\n </div>\n }\n </div>\n </ng-template>\n</yvc-split-view>\n", styles: [":host{display:flex;height:100%;flex-flow:column}:host header{flex:0 0 auto;display:grid;grid-template-rows:auto auto;grid-template-columns:1fr auto;grid-template-areas:\"title close\" \"bucket close\";padding:var(--app-pane-padding);border-block-end:1px solid var(--panel-divider-color)}:host header h1{grid-area:title;padding:0;margin:0 0 .5rem;font-size:var(--font-title);font-weight:400}:host header .bucket{grid-area:bucket}:host header button{grid-area:close;align-self:start;--icon-size: 18px}:host yvc-split-view{flex:1}:host .details{box-sizing:border-box}:host div.types{box-sizing:border-box;height:100%;overflow-y:auto;background-color:var(--panel-background-lightgrey)}:host div.types div[yuvListItem]{display:flex;gap:var(--app-pane-padding);align-items:center;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);cursor:pointer}:host div.types div[yuvListItem]:not([aria-selected=true]):hover,:host div.types div[yuvListItem]:not([aria-selected=true])[aria-current=true]{background-color:var(--item-focus-background-color)}:host div.types div[yuvListItem][aria-selected=true]{background-color:var(--color-accent);color:var(--color-accent-tone)}:host div.types div[yuvListItem] yvc-icon,:host div.types div[yuvListItem] yuv-object-type-icon{flex:0 0 auto;color:currentColor;opacity:.54}:host .details{height:100%;display:flex;flex-flow:column;overflow:hidden;background-color:var(--panel-background-lightgrey)}:host .details header{flex:0 0 auto;border-bottom:1px solid var(--panel-divider-color);padding:var(--app-pane-padding);font-size:var(--font-title)}:host .details .dummy-preview{flex:0 0 auto;padding:var(--app-pane-padding);background-color:var(--panel-background-grey);border-bottom:1px solid var(--panel-divider-color)}:host .details .dummy-preview yuv-tile-config-tile{border:1px solid var(--panel-divider-color);background-color:var(--panel-background)}:host .details main{flex:1;overflow-y:auto;padding:var(--app-pane-padding)}:host .details main h2{margin:0;padding-block-end:var(--app-pane-padding);font-size:var(--font-subhead)}:host .details .placeholder.empty{height:100%;display:grid;place-content:center;color:var(--text-color-hint)}:host .details footer{flex:0 0 auto;padding:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end;gap:calc(var(--app-pane-padding) / 4)}\n"], dependencies: [{ kind: "ngmodule", type: YvcSplitViewModule }, { kind: "component", type: i1.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i1.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: ObjectTypeIconComponent, selector: "yuv-object-type-icon", inputs: ["objectTypeId"] }, { kind: "component", type: TileConfigTileComponent, selector: "yuv-tile-config-tile", inputs: ["disableIconSlot", "disableBadgesSlot", "objectConfig"], outputs: ["slotSelect"] }, { kind: "component", type: IconSelectComponent, selector: "yuv-icon-select", inputs: ["objectType"], outputs: ["iconSelect"] }, { kind: "component", type: PropertySelectComponent, selector: "yuv-tile-property-select", inputs: ["objectType", "selectedProperty"], outputs: ["propertySelect"] }, { kind: "component", type: ActionSelectComponent, selector: "yuv-tile-action-select", inputs: ["objectType", "selectedActionIds"], outputs: ["actionSelect"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i2.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: ListComponent, selector: "yuv-list", inputs: ["multiselect", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }] }); }
138
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TileConfigComponent, isStandalone: true, selector: "yuv-tile-config", inputs: { bucket: { classPropertyName: "bucket", publicName: "bucket", isSignal: true, isRequired: false, transformFunction: null }, bucketLabel: { classPropertyName: "bucketLabel", publicName: "bucketLabel", isSignal: true, isRequired: false, transformFunction: null }, configTypes: { classPropertyName: "configTypes", publicName: "configTypes", isSignal: true, isRequired: false, transformFunction: null }, configFlavors: { classPropertyName: "configFlavors", publicName: "configFlavors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { save: "save", cancel: "cancel" }, ngImport: i0, template: "<header>\n <h1>{{ 'yuv.tile-config.title' | translate }}</h1>\n <div class=\"bucket\">{{ bucketLabel() }}</div>\n @if (cancel) {\n <button class=\"icon\" (click)=\"cancel.emit()\">\n <yvc-icon [svg]=\"icons.clear\"></yvc-icon>\n </button>\n }\n</header>\n\n<yvc-split-view [gutterSize]=\"1\" [layoutSettingsID]=\"'yuv.framework.tile-config.layout'\">\n <!-- list of types -->\n <ng-template yvcSplitArea [size]=\"30\">\n <div class=\"types\">\n <yuv-list (itemSelect)=\"itemSelected($event)\">\n @for (t of types() || []; track t.id) {\n <div yuvListItem>\n @if (t.icon) {\n <yvc-icon [svg]=\"t.icon\"></yvc-icon>\n } @else {\n <yuv-object-type-icon [objectTypeId]=\"t.id\"></yuv-object-type-icon>\n }\n {{ t.id | translate }}\n </div>\n }\n </yuv-list>\n </div>\n </ng-template>\n\n <!-- selected type details-->\n <ng-template yvcSplitArea [size]=\"70\">\n <div class=\"details\">\n @if (selectedType) {\n <header>{{ selectedType.id | translate }}</header>\n <div class=\"dummy-preview\">\n <yuv-tile-config-tile [disableIconSlot]=\"true\" [disableBadgesSlot]=\"true\" [objectConfig]=\"objectConfig!\" (slotSelect)=\"slotSelect($event)\"></yuv-tile-config-tile>\n </div>\n <main>\n @if (selectedSlot === 'icon') {\n <h2>{{ 'yuv.tile-config.slot.icon.headline' | translate }}</h2>\n <yuv-icon-select [objectType]=\"selectedType\" (iconSelect)=\"iconSelected($event)\"></yuv-icon-select>\n } @else if (selectedSlot === 'badges') {\n <div class=\"placeholder empty\">\n <p>Future feature: Select badges (like: is favorite, ratings, ...)</p>\n </div>\n } @else if (!selectedSlot) {\n } @else if (selectedSlot === 'actions') {\n <h2>{{ 'yuv.tile-config.slot.action.headline' | translate }}</h2>\n <yuv-tile-action-select\n [objectType]=\"selectedType\"\n [selectedActionIds]=\"getSelectedActions()\"\n (actionSelect)=\"actionSelected($event)\"\n ></yuv-tile-action-select>\n } @else {\n <h2>{{ 'yuv.tile-config.slot.property.headline' | translate }}</h2>\n <yuv-tile-property-select\n [objectType]=\"selectedType\"\n [selectedProperty]=\"getConfigProperty(selectedSlot)\"\n (propertySelect)=\"propertySelected(selectedSlot, $event)\"\n ></yuv-tile-property-select>\n }\n </main>\n <footer>\n <button class=\"primary\" (click)=\"saveConfig()\">{{ 'yuv.tile-config.button.save' | translate }}</button>\n </footer>\n } @else {\n <div class=\"placeholder empty\">\n <h2>{{ 'yuv.tile-config.details.empty.title' | translate }}</h2>\n <p>{{ 'yuv.tile-config.details.empty.description' | translate }}</p>\n </div>\n }\n </div>\n </ng-template>\n</yvc-split-view>\n", styles: [":host{display:flex;height:100%;flex-flow:column}:host header{flex:0 0 auto;display:grid;grid-template-rows:auto auto;grid-template-columns:1fr auto;grid-template-areas:\"title close\" \"bucket close\";padding:var(--app-pane-padding);border-block-end:1px solid var(--panel-divider-color)}:host header h1{grid-area:title;padding:0;margin:0 0 .5rem;font-size:var(--font-title);font-weight:400}:host header .bucket{grid-area:bucket}:host header button{grid-area:close;align-self:start;--icon-size: 18px}:host yvc-split-view{flex:1}:host .details{box-sizing:border-box}:host div.types{box-sizing:border-box;height:100%;overflow-y:auto;background-color:var(--panel-background-lightgrey)}:host div.types div[yuvListItem]{display:flex;gap:var(--app-pane-padding);align-items:center;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);cursor:pointer}:host div.types div[yuvListItem]:not([aria-selected=true]):hover,:host div.types div[yuvListItem]:not([aria-selected=true])[aria-current=true]{background-color:var(--item-focus-background-color)}:host div.types div[yuvListItem][aria-selected=true]{background-color:var(--color-accent);color:var(--color-accent-tone)}:host div.types div[yuvListItem] yvc-icon,:host div.types div[yuvListItem] yuv-object-type-icon{flex:0 0 auto;color:currentColor;opacity:.54}:host .details{height:100%;display:flex;flex-flow:column;overflow:hidden;background-color:var(--panel-background-lightgrey)}:host .details header{flex:0 0 auto;border-bottom:1px solid var(--panel-divider-color);padding:var(--app-pane-padding);font-size:var(--font-title)}:host .details .dummy-preview{flex:0 0 auto;padding:var(--app-pane-padding);background-color:var(--panel-background-grey);border-bottom:1px solid var(--panel-divider-color)}:host .details .dummy-preview yuv-tile-config-tile{border:1px solid var(--panel-divider-color);background-color:var(--panel-background)}:host .details main{flex:1;overflow-y:auto;padding:var(--app-pane-padding)}:host .details main h2{margin:0;padding-block-end:var(--app-pane-padding);font-size:var(--font-subhead)}:host .details .placeholder.empty{height:100%;display:grid;place-content:center;color:var(--text-color-hint)}:host .details footer{flex:0 0 auto;padding:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end;gap:calc(var(--app-pane-padding) / 4)}\n"], dependencies: [{ kind: "ngmodule", type: YvcSplitViewModule }, { kind: "component", type: i1.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i1.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "component", type: ObjectTypeIconComponent, selector: "yuv-object-type-icon", inputs: ["objectTypeId"] }, { kind: "component", type: TileConfigTileComponent, selector: "yuv-tile-config-tile", inputs: ["disableIconSlot", "disableBadgesSlot", "objectConfig"], outputs: ["slotSelect"] }, { kind: "component", type: IconSelectComponent, selector: "yuv-icon-select", inputs: ["objectType"], outputs: ["iconSelect"] }, { kind: "component", type: PropertySelectComponent, selector: "yuv-tile-property-select", inputs: ["objectType", "selectedProperty"], outputs: ["propertySelect"] }, { kind: "component", type: ActionSelectComponent, selector: "yuv-tile-action-select", inputs: ["objectType", "selectedActionIds"], outputs: ["actionSelect"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i2.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: ListComponent, selector: "yuv-list", inputs: ["multiselect", "selfHandleSelection", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }] }); }
139
139
  }
140
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TileConfigComponent, decorators: [{
141
141
  type: Component,
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
153
153
  ListItemDirective
154
154
  ], template: "<header>\n <h1>{{ 'yuv.tile-config.title' | translate }}</h1>\n <div class=\"bucket\">{{ bucketLabel() }}</div>\n @if (cancel) {\n <button class=\"icon\" (click)=\"cancel.emit()\">\n <yvc-icon [svg]=\"icons.clear\"></yvc-icon>\n </button>\n }\n</header>\n\n<yvc-split-view [gutterSize]=\"1\" [layoutSettingsID]=\"'yuv.framework.tile-config.layout'\">\n <!-- list of types -->\n <ng-template yvcSplitArea [size]=\"30\">\n <div class=\"types\">\n <yuv-list (itemSelect)=\"itemSelected($event)\">\n @for (t of types() || []; track t.id) {\n <div yuvListItem>\n @if (t.icon) {\n <yvc-icon [svg]=\"t.icon\"></yvc-icon>\n } @else {\n <yuv-object-type-icon [objectTypeId]=\"t.id\"></yuv-object-type-icon>\n }\n {{ t.id | translate }}\n </div>\n }\n </yuv-list>\n </div>\n </ng-template>\n\n <!-- selected type details-->\n <ng-template yvcSplitArea [size]=\"70\">\n <div class=\"details\">\n @if (selectedType) {\n <header>{{ selectedType.id | translate }}</header>\n <div class=\"dummy-preview\">\n <yuv-tile-config-tile [disableIconSlot]=\"true\" [disableBadgesSlot]=\"true\" [objectConfig]=\"objectConfig!\" (slotSelect)=\"slotSelect($event)\"></yuv-tile-config-tile>\n </div>\n <main>\n @if (selectedSlot === 'icon') {\n <h2>{{ 'yuv.tile-config.slot.icon.headline' | translate }}</h2>\n <yuv-icon-select [objectType]=\"selectedType\" (iconSelect)=\"iconSelected($event)\"></yuv-icon-select>\n } @else if (selectedSlot === 'badges') {\n <div class=\"placeholder empty\">\n <p>Future feature: Select badges (like: is favorite, ratings, ...)</p>\n </div>\n } @else if (!selectedSlot) {\n } @else if (selectedSlot === 'actions') {\n <h2>{{ 'yuv.tile-config.slot.action.headline' | translate }}</h2>\n <yuv-tile-action-select\n [objectType]=\"selectedType\"\n [selectedActionIds]=\"getSelectedActions()\"\n (actionSelect)=\"actionSelected($event)\"\n ></yuv-tile-action-select>\n } @else {\n <h2>{{ 'yuv.tile-config.slot.property.headline' | translate }}</h2>\n <yuv-tile-property-select\n [objectType]=\"selectedType\"\n [selectedProperty]=\"getConfigProperty(selectedSlot)\"\n (propertySelect)=\"propertySelected(selectedSlot, $event)\"\n ></yuv-tile-property-select>\n }\n </main>\n <footer>\n <button class=\"primary\" (click)=\"saveConfig()\">{{ 'yuv.tile-config.button.save' | translate }}</button>\n </footer>\n } @else {\n <div class=\"placeholder empty\">\n <h2>{{ 'yuv.tile-config.details.empty.title' | translate }}</h2>\n <p>{{ 'yuv.tile-config.details.empty.description' | translate }}</p>\n </div>\n }\n </div>\n </ng-template>\n</yvc-split-view>\n", styles: [":host{display:flex;height:100%;flex-flow:column}:host header{flex:0 0 auto;display:grid;grid-template-rows:auto auto;grid-template-columns:1fr auto;grid-template-areas:\"title close\" \"bucket close\";padding:var(--app-pane-padding);border-block-end:1px solid var(--panel-divider-color)}:host header h1{grid-area:title;padding:0;margin:0 0 .5rem;font-size:var(--font-title);font-weight:400}:host header .bucket{grid-area:bucket}:host header button{grid-area:close;align-self:start;--icon-size: 18px}:host yvc-split-view{flex:1}:host .details{box-sizing:border-box}:host div.types{box-sizing:border-box;height:100%;overflow-y:auto;background-color:var(--panel-background-lightgrey)}:host div.types div[yuvListItem]{display:flex;gap:var(--app-pane-padding);align-items:center;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding);cursor:pointer}:host div.types div[yuvListItem]:not([aria-selected=true]):hover,:host div.types div[yuvListItem]:not([aria-selected=true])[aria-current=true]{background-color:var(--item-focus-background-color)}:host div.types div[yuvListItem][aria-selected=true]{background-color:var(--color-accent);color:var(--color-accent-tone)}:host div.types div[yuvListItem] yvc-icon,:host div.types div[yuvListItem] yuv-object-type-icon{flex:0 0 auto;color:currentColor;opacity:.54}:host .details{height:100%;display:flex;flex-flow:column;overflow:hidden;background-color:var(--panel-background-lightgrey)}:host .details header{flex:0 0 auto;border-bottom:1px solid var(--panel-divider-color);padding:var(--app-pane-padding);font-size:var(--font-title)}:host .details .dummy-preview{flex:0 0 auto;padding:var(--app-pane-padding);background-color:var(--panel-background-grey);border-bottom:1px solid var(--panel-divider-color)}:host .details .dummy-preview yuv-tile-config-tile{border:1px solid var(--panel-divider-color);background-color:var(--panel-background)}:host .details main{flex:1;overflow-y:auto;padding:var(--app-pane-padding)}:host .details main h2{margin:0;padding-block-end:var(--app-pane-padding);font-size:var(--font-subhead)}:host .details .placeholder.empty{height:100%;display:grid;place-content:center;color:var(--text-color-hint)}:host .details footer{flex:0 0 auto;padding:calc(var(--app-pane-padding) / 2);display:flex;justify-content:flex-end;gap:calc(var(--app-pane-padding) / 4)}\n"] }]
155
155
  }] });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay90aWxlLWxpc3Qvc3JjL2xpYi90aWxlLWNvbmZpZy90aWxlLWNvbmZpZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUtY29uZmlnL3RpbGUtY29uZmlnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBT0wsbUJBQW1CLEVBRW5CLGFBQWEsRUFDYixlQUFlLEVBRWhCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7O0FBcUJ4RixN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WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBHZW5lcmljT2JqZWN0VHlwZSxcbiAgT2JqZWN0Q29uZmlnLFxuICBPYmplY3RDb25maWdBY3Rpb24sXG4gIE9iamVjdENvbmZpZ0JhZGdlLFxuICBPYmplY3RDb25maWdJY29uLFxuICBPYmplY3RDb25maWdQcm9wZXJ0eSxcbiAgT2JqZWN0Q29uZmlnU2VydmljZSxcbiAgT2JqZWN0VHlwZUZpZWxkLFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBUcmFuc2xhdGVNb2R1bGUsXG4gIFZpcnR1YWxPYmplY3RUeXBlXG59IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2FjdGlvbnMnO1xuaW1wb3J0IHsgT2JqZWN0VHlwZUljb25Db21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvaWNvbnMnO1xuaW1wb3J0IHsgTGlzdENvbXBvbmVudCwgTGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvbGlzdCc7XG5pbXBvcnQgeyBPYmplY3RGbGF2b3IgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1zaGVsbC1jb3JlJztcbmltcG9ydCB7IElDT05TLCBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgWXZjU3BsaXRWaWV3TW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL3NwbGl0LXZpZXcnO1xuaW1wb3J0IHsgQWN0aW9uU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9hY3Rpb24tc2VsZWN0L2FjdGlvbi1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25TZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2ljb24tc2VsZWN0L2ljb24tc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktc2VsZWN0L3Byb3BlcnR5LXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGlsZUNvbmZpZ1RpbGVDb21wb25lbnQgfSBmcm9tICcuL3RpbGUtY29uZmlnLXRpbGUvdGlsZS1jb25maWctdGlsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtdGlsZS1jb25maWcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBZdmNTcGxpdFZpZXdNb2R1bGUsXG4gICAgT2JqZWN0VHlwZUljb25Db21wb25lbnQsXG4gICAgVGlsZUNvbmZpZ1RpbGVDb21wb25lbnQsXG4gICAgSWNvblNlbGVjdENvbXBvbmVudCxcbiAgICBQcm9wZXJ0eVNlbGVjdENvbXBvbmVudCxcbiAgICBBY3Rpb25TZWxlY3RDb21wb25lbnQsXG4gICAgWXZjSWNvbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBMaXN0SXRlbURpcmVjdGl2ZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlsZS1jb25maWcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLWNvbmZpZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRpbGVDb25maWdDb21wb25lbnQge1xuICAjb2JqZWN0Q29uZmlnU2VydmljZSA9IGluamVjdChPYmplY3RDb25maWdTZXJ2aWNlKTtcbiAgI3N5c3RlbSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcblxuICAvKipcbiAgICogVGlsZSBjb25maWd1cmF0aW9ucyBhcmUgc3RvcmVkIGdsb2JhbGx5IGZvciBhbGwgYXBwcy4gSWYgeW91IHdhbnQgYVxuICAgKiBzZXBhcmF0ZSBjb25maWcgZm9yIHlvdXIgYXBwL2NvbXBvbmVudCB5b3UgY2FuIHNwZWNpZnkgYSBidWNrZXQuIEEgYnVja2V0XG4gICAqIGlzIGJhc2ljYWxseSBhbiBJRCB3aGVyZSB5b3VyIGN1c3RvbSB0aWxlIGNvbmZpZyB3aWxsIGJlIHN0b3JlZCBhbmRcbiAgICogcmV0cmlldmVkLiBCdWNrZXRzIHNob3VsZCBiZSB1bmlxdWUgc28gYmUgc3VyZSB0byB1c2UgYSB1bmlxdWUgbmFtZXNwYWNlLlxuICAgKi9cbiAgYnVja2V0ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBidWNrZXRMYWJlbCA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBjb25maWdUeXBlcyA9IGlucHV0PFZpcnR1YWxPYmplY3RUeXBlW10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbmZpZ0ZsYXZvcnMgPSBpbnB1dDxPYmplY3RGbGF2b3JbXT4oW10pO1xuXG4gIHR5cGVzOiBTaWduYWw8eyBpZDogc3RyaW5nOyBpY29uPzogc3RyaW5nOyBmbGF2b3I/OiBib29sZWFuOyBkYXRhOiBPYmplY3RGbGF2b3IgfCBWaXJ0dWFsT2JqZWN0VHlwZSB9W10+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGN0ID0gdGhpcy5jb25maWdUeXBlcygpIHx8IFtdO1xuICAgIGNvbnN0IGNmOiBWaXJ0dWFsT2JqZWN0VHlwZVtdID0gW107XG4gICAgLy8gVE9ETzogZW5hYmxlIHdoZW4gZmxhdm9ycyBhcmUgc3VwcG9ydGVkIGluIHRpbGUgY29uZmlnXG4gICAgLy8gY29uc3QgY2YgPSB0aGlzLmNvbmZpZ0ZsYXZvcnMoKSB8fCBbXTtcbiAgICByZXR1cm4gWy4uLmN0Lm1hcCgodCkgPT4gKHsgaWQ6IHQuaWQsIGljb246IHQuaWNvbiwgZGF0YTogdCB9KSksIC4uLmNmLm1hcCgoZikgPT4gKHsgaWQ6IGYuaWQsIGljb246IGYuaWNvbiwgZmxhdm9yOiB0cnVlLCBkYXRhOiBmIH0pKV07XG4gIH0pO1xuXG4gIHNhdmUgPSBvdXRwdXQoKTtcbiAgY2FuY2VsID0gb3V0cHV0KCk7XG5cbiAgc2VsZWN0ZWRUeXBlPzogVmlydHVhbE9iamVjdFR5cGU7XG4gIHNlbGVjdGVkVHlwZVByb3BlcnRpZXM6IE9iamVjdFR5cGVGaWVsZFtdID0gW107XG5cbiAgcHJpdmF0ZSBfZW1wdHlPYmplY3RDb25maWc6IE9iamVjdENvbmZpZyA9IHtcbiAgICBvYmplY3RUeXBlSWQ6ICcnLFxuICAgIHRpdGxlOiB7IHByb3BlcnR5TmFtZTogJycsIGxhYmVsOiAnJyB9LFxuICAgIGRlc2NyaXB0aW9uOiB7IHByb3BlcnR5TmFtZTogJycsIGxhYmVsOiAnJyB9LFxuICAgIG1ldGE6IHsgcHJvcGVydHlOYW1lOiAnJywgbGFiZWw6ICcnIH0sXG4gICAgYXNpZGU6IHsgcHJvcGVydHlOYW1lOiAnJywgbGFiZWw6ICcnIH0sXG4gICAgYWN0aW9uczogW10sXG4gICAgYmFkZ2VzOiBbXVxuICB9O1xuXG4gIG9iamVjdENvbmZpZz86IE9iamVjdENvbmZpZztcbiAgc2VsZWN0ZWRTbG90Pzogc3RyaW5nO1xuICBmbGF2b3JzOiBPYmplY3RGbGF2b3JbXSA9IFtdO1xuXG4gIGljb25zID0ge1xuICAgIGNsZWFyOiBJQ09OUy5jbGVhclxuICB9O1xuXG4gIC8vIGdldE9iamVjdEZsYXZvckVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gIC8vICAgdGhpcy5mbGF2b3JzID0gdGhpcy5jb25maWdGbGF2b3JzKCk7XG4gIC8vIH0pO1xuXG4gIGdldENvbmZpZ1ZhbHVlKHA6IHN0cmluZyk6IE9iamVjdENvbmZpZ0ljb24gfCBPYmplY3RDb25maWdQcm9wZXJ0eSB8IE9iamVjdENvbmZpZ0FjdGlvbiB8IE9iamVjdENvbmZpZ0JhZGdlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vYmplY3RDb25maWcgPyAodGhpcy5vYmplY3RDb25maWcgYXMgYW55KVtwXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldENvbmZpZ1Byb3BlcnR5KHA6IHN0cmluZyk6IE9iamVjdENvbmZpZ1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDb25maWdWYWx1ZShwKSBhcyBPYmplY3RDb25maWdQcm9wZXJ0eTtcbiAgfVxuXG4gIGdldFNlbGVjdGVkQWN0aW9ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0Q29uZmlnPy5hY3Rpb25zID8gdGhpcy5vYmplY3RDb25maWcuYWN0aW9ucy5tYXAoKGEpID0+IGEuaWQpIDogW107XG4gIH1cblxuICBzbG90U2VsZWN0KGl0ZW06IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRTbG90ID0gaXRlbTtcbiAgfVxuXG4gIGl0ZW1TZWxlY3RlZChpZHg6IG51bWJlcltdKSB7XG4gICAgY29uc3QgdCA9IHRoaXMudHlwZXMoKVtpZHhbMF1dO1xuICAgIGlmICghdCkgcmV0dXJuO1xuICAgIGlmICh0LmZsYXZvcikgdGhpcy4jc2VsZWN0Rmxhdm9yKHQuZGF0YSBhcyBPYmplY3RGbGF2b3IpO1xuICAgIGVsc2UgdGhpcy4jc2VsZWN0VHlwZSh0LmRhdGEgYXMgVmlydHVhbE9iamVjdFR5cGUpO1xuICB9XG5cbiAgI3NlbGVjdEZsYXZvcihmbGF2b3I6IE9iamVjdEZsYXZvcikge1xuICAgIGNvbnN0IHQ6IEdlbmVyaWNPYmplY3RUeXBlIHwgdW5kZWZpbmVkID0gdGhpcy4jc3lzdGVtLmdldE9iamVjdFR5cGUoZmxhdm9yLnNvdCk7XG4gICAgaWYgKHQpXG4gICAgICB0aGlzLiNzZWxlY3RUeXBlKHtcbiAgICAgICAgaWQ6IGZsYXZvci5pZCxcbiAgICAgICAgb2JqZWN0VHlwZTogZmxhdm9yLm9iamVjdFR5cGVJRCxcbiAgICAgICAgc290czogW2ZsYXZvci5zb3RdXG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jICNzZWxlY3RUeXBlKHQ6IFZpcnR1YWxPYmplY3RUeXBlKSB7XG4gICAgdGhpcy5zZWxlY3RlZFR5cGUgPSB0O1xuXG4gICAgLy8gbG9hZCB0aWxlIGNvbmZpZ1xuICAgIHRoaXMub2JqZWN0Q29uZmlnID0gYXdhaXQgdGhpcy4jb2JqZWN0Q29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWcodCwgdGhpcy5idWNrZXQoKSB8fCAnJyk7XG5cbiAgICBpZiAoIXRoaXMub2JqZWN0Q29uZmlnKSB7XG4gICAgICB0aGlzLm9iamVjdENvbmZpZyA9IHtcbiAgICAgICAgLi4udGhpcy5fZW1wdHlPYmplY3RDb25maWcsXG4gICAgICAgIG9iamVjdFR5cGVJZDogdC5pZFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBpY29uU2VsZWN0ZWQoaWNvbjogc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLm9iamVjdENvbmZpZykgdGhpcy5vYmplY3RDb25maWcuaWNvbiA9IGljb24gPyB7IHN2ZzogaWNvbiB9IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJvcGVydHlTZWxlY3RlZCh0aWxlU2xvdDogc3RyaW5nLCBmaWVsZD86IFBhcnRpYWw8T2JqZWN0VHlwZUZpZWxkPikge1xuICAgIGNvbnN0IHA6IGFueSA9IHt9O1xuICAgIHBbdGlsZVNsb3RdID0gZmllbGRcbiAgICAgID8ge1xuICAgICAgICAgIGxhYmVsOiBmaWVsZC5sYWJlbCxcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGZpZWxkLmlkXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5vYmplY3RDb25maWcgPSBzdHJ1Y3R1cmVkQ2xvbmUoe1xuICAgICAgLi4udGhpcy5vYmplY3RDb25maWcsXG4gICAgICAuLi5wXG4gICAgfSk7XG4gIH1cblxuICBhY3Rpb25TZWxlY3RlZChhY3Rpb246IEFjdGlvbikge1xuICAgIGlmICh0aGlzLm9iamVjdENvbmZpZykge1xuICAgICAgaWYgKCF0aGlzLm9iamVjdENvbmZpZz8uYWN0aW9ucykgdGhpcy5vYmplY3RDb25maWcuYWN0aW9ucyA9IFtdO1xuXG4gICAgICBjb25zdCBpZHggPSB0aGlzLm9iamVjdENvbmZpZy5hY3Rpb25zLmZpbmRJbmRleCgoYSkgPT4gYS5pZCA9PT0gYWN0aW9uLmlkKTtcbiAgICAgIGlmIChpZHggIT09IC0xKSB0aGlzLm9iamVjdENvbmZpZy5hY3Rpb25zLnNwbGljZShpZHgsIDEpO1xuICAgICAgZWxzZSB0aGlzLm9iamVjdENvbmZpZy5hY3Rpb25zLnB1c2goeyBpZDogYWN0aW9uLmlkIH0pO1xuICAgICAgdGhpcy5vYmplY3RDb25maWcgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5vYmplY3RDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHNhdmVDb25maWcoKSB7XG4gICAgdGhpcy5fc2F2ZVRpbGVDb25maWcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NhdmVUaWxlQ29uZmlnKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkVHlwZSAmJiB0aGlzLm9iamVjdENvbmZpZykge1xuICAgICAgdGhpcy4jb2JqZWN0Q29uZmlnU2VydmljZS5zYXZlT2JqZWN0Q29uZmlnKHRoaXMuc2VsZWN0ZWRUeXBlLCB0aGlzLm9iamVjdENvbmZpZywgdGhpcy5idWNrZXQoKSkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnNhdmUuZW1pdCgpKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxoZWFkZXI+XG4gIDxoMT57eyAneXV2LnRpbGUtY29uZmlnLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDE+XG4gIDxkaXYgY2xhc3M9XCJidWNrZXRcIj57eyBidWNrZXRMYWJlbCgpIH19PC9kaXY+XG4gIEBpZiAoY2FuY2VsKSB7XG4gICAgPGJ1dHRvbiBjbGFzcz1cImljb25cIiAoY2xpY2spPVwiY2FuY2VsLmVtaXQoKVwiPlxuICAgICAgPHl2Yy1pY29uIFtzdmddPVwiaWNvbnMuY2xlYXJcIj48L3l2Yy1pY29uPlxuICAgIDwvYnV0dG9uPlxuICB9XG48L2hlYWRlcj5cblxuPHl2Yy1zcGxpdC12aWV3IFtndXR0ZXJTaXplXT1cIjFcIiBbbGF5b3V0U2V0dGluZ3NJRF09XCIneXV2LmZyYW1ld29yay50aWxlLWNvbmZpZy5sYXlvdXQnXCI+XG4gIDwhLS0gbGlzdCBvZiB0eXBlcyAtLT5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCIzMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0eXBlc1wiPlxuICAgICAgPHl1di1saXN0IChpdGVtU2VsZWN0KT1cIml0ZW1TZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIEBmb3IgKHQgb2YgdHlwZXMoKSB8fCBbXTsgdHJhY2sgdC5pZCkge1xuICAgICAgICAgIDxkaXYgeXV2TGlzdEl0ZW0+XG4gICAgICAgICAgICBAaWYgKHQuaWNvbikge1xuICAgICAgICAgICAgICA8eXZjLWljb24gW3N2Z109XCJ0Lmljb25cIj48L3l2Yy1pY29uPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDx5dXYtb2JqZWN0LXR5cGUtaWNvbiBbb2JqZWN0VHlwZUlkXT1cInQuaWRcIj48L3l1di1vYmplY3QtdHlwZS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge3sgdC5pZCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L3l1di1saXN0PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gc2VsZWN0ZWQgdHlwZSBkZXRhaWxzLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNzBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc1wiPlxuICAgICAgQGlmIChzZWxlY3RlZFR5cGUpIHtcbiAgICAgICAgPGhlYWRlcj57eyBzZWxlY3RlZFR5cGUuaWQgfCB0cmFuc2xhdGUgfX08L2hlYWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImR1bW15LXByZXZpZXdcIj5cbiAgICAgICAgICA8eXV2LXRpbGUtY29uZmlnLXRpbGUgW2Rpc2FibGVJY29uU2xvdF09XCJ0cnVlXCIgW2Rpc2FibGVCYWRnZXNTbG90XT1cInRydWVcIiBbb2JqZWN0Q29uZmlnXT1cIm9iamVjdENvbmZpZyFcIiAoc2xvdFNlbGVjdCk9XCJzbG90U2VsZWN0KCRldmVudClcIj48L3l1di10aWxlLWNvbmZpZy10aWxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1haW4+XG4gICAgICAgICAgQGlmIChzZWxlY3RlZFNsb3QgPT09ICdpY29uJykge1xuICAgICAgICAgICAgPGgyPnt7ICd5dXYudGlsZS1jb25maWcuc2xvdC5pY29uLmhlYWRsaW5lJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICAgICAgICA8eXV2LWljb24tc2VsZWN0IFtvYmplY3RUeXBlXT1cInNlbGVjdGVkVHlwZVwiIChpY29uU2VsZWN0KT1cImljb25TZWxlY3RlZCgkZXZlbnQpXCI+PC95dXYtaWNvbi1zZWxlY3Q+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoc2VsZWN0ZWRTbG90ID09PSAnYmFkZ2VzJykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyIGVtcHR5XCI+XG4gICAgICAgICAgICAgIDxwPkZ1dHVyZSBmZWF0dXJlOiBTZWxlY3QgYmFkZ2VzIChsaWtlOiBpcyBmYXZvcml0ZSwgcmF0aW5ncywgLi4uKTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2UgaWYgKCFzZWxlY3RlZFNsb3QpIHtcbiAgICAgICAgICB9IEBlbHNlIGlmIChzZWxlY3RlZFNsb3QgPT09ICdhY3Rpb25zJykge1xuICAgICAgICAgICAgPGgyPnt7ICd5dXYudGlsZS1jb25maWcuc2xvdC5hY3Rpb24uaGVhZGxpbmUnIHwgdHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICAgIDx5dXYtdGlsZS1hY3Rpb24tc2VsZWN0XG4gICAgICAgICAgICAgIFtvYmplY3RUeXBlXT1cInNlbGVjdGVkVHlwZVwiXG4gICAgICAgICAgICAgIFtzZWxlY3RlZEFjdGlvbklkc109XCJnZXRTZWxlY3RlZEFjdGlvbnMoKVwiXG4gICAgICAgICAgICAgIChhY3Rpb25TZWxlY3QpPVwiYWN0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC95dXYtdGlsZS1hY3Rpb24tc2VsZWN0PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGgyPnt7ICd5dXYudGlsZS1jb25maWcuc2xvdC5wcm9wZXJ0eS5oZWFkbGluZScgfCB0cmFuc2xhdGUgfX08L2gyPlxuICAgICAgICAgICAgPHl1di10aWxlLXByb3BlcnR5LXNlbGVjdFxuICAgICAgICAgICAgICBbb2JqZWN0VHlwZV09XCJzZWxlY3RlZFR5cGVcIlxuICAgICAgICAgICAgICBbc2VsZWN0ZWRQcm9wZXJ0eV09XCJnZXRDb25maWdQcm9wZXJ0eShzZWxlY3RlZFNsb3QpXCJcbiAgICAgICAgICAgICAgKHByb3BlcnR5U2VsZWN0KT1cInByb3BlcnR5U2VsZWN0ZWQoc2VsZWN0ZWRTbG90LCAkZXZlbnQpXCJcbiAgICAgICAgICAgID48L3l1di10aWxlLXByb3BlcnR5LXNlbGVjdD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbWFpbj5cbiAgICAgICAgPGZvb3Rlcj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlQ29uZmlnKClcIj57eyAneXV2LnRpbGUtY29uZmlnLmJ1dHRvbi5zYXZlJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICAgICAgICA8L2Zvb3Rlcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXIgZW1wdHlcIj5cbiAgICAgICAgICA8aDI+e3sgJ3l1di50aWxlLWNvbmZpZy5kZXRhaWxzLmVtcHR5LnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICAgICAgPHA+e3sgJ3l1di50aWxlLWNvbmZpZy5kZXRhaWxzLmVtcHR5LmRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3l2Yy1zcGxpdC12aWV3PlxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay90aWxlLWxpc3Qvc3JjL2xpYi90aWxlLWNvbmZpZy90aWxlLWNvbmZpZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdC9zcmMvbGliL3RpbGUtY29uZmlnL3RpbGUtY29uZmlnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBT0wsbUJBQW1CLEVBRW5CLGFBQWEsRUFDYixlQUFlLEVBRWhCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpGLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7O0FBcUJ4RixN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WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBHZW5lcmljT2JqZWN0VHlwZSxcbiAgT2JqZWN0Q29uZmlnLFxuICBPYmplY3RDb25maWdBY3Rpb24sXG4gIE9iamVjdENvbmZpZ0JhZGdlLFxuICBPYmplY3RDb25maWdJY29uLFxuICBPYmplY3RDb25maWdQcm9wZXJ0eSxcbiAgT2JqZWN0Q29uZmlnU2VydmljZSxcbiAgT2JqZWN0VHlwZUZpZWxkLFxuICBTeXN0ZW1TZXJ2aWNlLFxuICBUcmFuc2xhdGVNb2R1bGUsXG4gIFZpcnR1YWxPYmplY3RUeXBlXG59IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2FjdGlvbnMnO1xuaW1wb3J0IHsgT2JqZWN0VHlwZUljb25Db21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvaWNvbnMnO1xuaW1wb3J0IHsgTGlzdENvbXBvbmVudCwgTGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvbGlzdCc7XG5pbXBvcnQgeyBPYmplY3RGbGF2b3IgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1zaGVsbC1jb3JlJztcbmltcG9ydCB7IElDT05TLCBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgWXZjU3BsaXRWaWV3TW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL3NwbGl0LXZpZXcnO1xuaW1wb3J0IHsgQWN0aW9uU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9hY3Rpb24tc2VsZWN0L2FjdGlvbi1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEljb25TZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2ljb24tc2VsZWN0L2ljb24tc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9wZXJ0eVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vcHJvcGVydHktc2VsZWN0L3Byb3BlcnR5LXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGlsZUNvbmZpZ1RpbGVDb21wb25lbnQgfSBmcm9tICcuL3RpbGUtY29uZmlnLXRpbGUvdGlsZS1jb25maWctdGlsZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5dXYtdGlsZS1jb25maWcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBZdmNTcGxpdFZpZXdNb2R1bGUsXG4gICAgT2JqZWN0VHlwZUljb25Db21wb25lbnQsXG4gICAgVGlsZUNvbmZpZ1RpbGVDb21wb25lbnQsXG4gICAgSWNvblNlbGVjdENvbXBvbmVudCxcbiAgICBQcm9wZXJ0eVNlbGVjdENvbXBvbmVudCxcbiAgICBBY3Rpb25TZWxlY3RDb21wb25lbnQsXG4gICAgWXZjSWNvbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBMaXN0SXRlbURpcmVjdGl2ZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlsZS1jb25maWcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aWxlLWNvbmZpZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRpbGVDb25maWdDb21wb25lbnQge1xuICAjb2JqZWN0Q29uZmlnU2VydmljZSA9IGluamVjdChPYmplY3RDb25maWdTZXJ2aWNlKTtcbiAgI3N5c3RlbSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcblxuICAvKipcbiAgICogVGlsZSBjb25maWd1cmF0aW9ucyBhcmUgc3RvcmVkIGdsb2JhbGx5IGZvciBhbGwgYXBwcy4gSWYgeW91IHdhbnQgYVxuICAgKiBzZXBhcmF0ZSBjb25maWcgZm9yIHlvdXIgYXBwL2NvbXBvbmVudCB5b3UgY2FuIHNwZWNpZnkgYSBidWNrZXQuIEEgYnVja2V0XG4gICAqIGlzIGJhc2ljYWxseSBhbiBJRCB3aGVyZSB5b3VyIGN1c3RvbSB0aWxlIGNvbmZpZyB3aWxsIGJlIHN0b3JlZCBhbmRcbiAgICogcmV0cmlldmVkLiBCdWNrZXRzIHNob3VsZCBiZSB1bmlxdWUgc28gYmUgc3VyZSB0byB1c2UgYSB1bmlxdWUgbmFtZXNwYWNlLlxuICAgKi9cbiAgYnVja2V0ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBidWNrZXRMYWJlbCA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBjb25maWdUeXBlcyA9IGlucHV0PFZpcnR1YWxPYmplY3RUeXBlW10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbmZpZ0ZsYXZvcnMgPSBpbnB1dDxPYmplY3RGbGF2b3JbXT4oW10pO1xuXG4gIHR5cGVzOiBTaWduYWw8eyBpZDogc3RyaW5nOyBpY29uPzogc3RyaW5nOyBmbGF2b3I/OiBib29sZWFuOyBkYXRhOiBPYmplY3RGbGF2b3IgfCBWaXJ0dWFsT2JqZWN0VHlwZSB9W10+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGN0ID0gdGhpcy5jb25maWdUeXBlcygpIHx8IFtdO1xuICAgIGNvbnN0IGNmOiBWaXJ0dWFsT2JqZWN0VHlwZVtdID0gW107XG4gICAgLy8gVE9ETzogZW5hYmxlIHdoZW4gZmxhdm9ycyBhcmUgc3VwcG9ydGVkIGluIHRpbGUgY29uZmlnXG4gICAgLy8gY29uc3QgY2YgPSB0aGlzLmNvbmZpZ0ZsYXZvcnMoKSB8fCBbXTtcbiAgICByZXR1cm4gWy4uLmN0Lm1hcCgodCkgPT4gKHsgaWQ6IHQuaWQsIGljb246IHQuaWNvbiwgZGF0YTogdCB9KSksIC4uLmNmLm1hcCgoZikgPT4gKHsgaWQ6IGYuaWQsIGljb246IGYuaWNvbiwgZmxhdm9yOiB0cnVlLCBkYXRhOiBmIH0pKV07XG4gIH0pO1xuXG4gIHNhdmUgPSBvdXRwdXQoKTtcbiAgY2FuY2VsID0gb3V0cHV0KCk7XG5cbiAgc2VsZWN0ZWRUeXBlPzogVmlydHVhbE9iamVjdFR5cGU7XG4gIHNlbGVjdGVkVHlwZVByb3BlcnRpZXM6IE9iamVjdFR5cGVGaWVsZFtdID0gW107XG5cbiAgcHJpdmF0ZSBfZW1wdHlPYmplY3RDb25maWc6IE9iamVjdENvbmZpZyA9IHtcbiAgICBvYmplY3RUeXBlSWQ6ICcnLFxuICAgIHRpdGxlOiB7IHByb3BlcnR5TmFtZTogJycsIGxhYmVsOiAnJyB9LFxuICAgIGRlc2NyaXB0aW9uOiB7IHByb3BlcnR5TmFtZTogJycsIGxhYmVsOiAnJyB9LFxuICAgIG1ldGE6IHsgcHJvcGVydHlOYW1lOiAnJywgbGFiZWw6ICcnIH0sXG4gICAgYXNpZGU6IHsgcHJvcGVydHlOYW1lOiAnJywgbGFiZWw6ICcnIH0sXG4gICAgYWN0aW9uczogW10sXG4gICAgYmFkZ2VzOiBbXVxuICB9O1xuXG4gIG9iamVjdENvbmZpZz86IE9iamVjdENvbmZpZztcbiAgc2VsZWN0ZWRTbG90Pzogc3RyaW5nO1xuICBmbGF2b3JzOiBPYmplY3RGbGF2b3JbXSA9IFtdO1xuXG4gIGljb25zID0ge1xuICAgIGNsZWFyOiBJQ09OUy5jbGVhclxuICB9O1xuXG4gIC8vIGdldE9iamVjdEZsYXZvckVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gIC8vICAgdGhpcy5mbGF2b3JzID0gdGhpcy5jb25maWdGbGF2b3JzKCk7XG4gIC8vIH0pO1xuXG4gIGdldENvbmZpZ1ZhbHVlKHA6IHN0cmluZyk6IE9iamVjdENvbmZpZ0ljb24gfCBPYmplY3RDb25maWdQcm9wZXJ0eSB8IE9iamVjdENvbmZpZ0FjdGlvbiB8IE9iamVjdENvbmZpZ0JhZGdlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vYmplY3RDb25maWcgPyAodGhpcy5vYmplY3RDb25maWcgYXMgYW55KVtwXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldENvbmZpZ1Byb3BlcnR5KHA6IHN0cmluZyk6IE9iamVjdENvbmZpZ1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDb25maWdWYWx1ZShwKSBhcyBPYmplY3RDb25maWdQcm9wZXJ0eTtcbiAgfVxuXG4gIGdldFNlbGVjdGVkQWN0aW9ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0Q29uZmlnPy5hY3Rpb25zID8gdGhpcy5vYmplY3RDb25maWcuYWN0aW9ucy5tYXAoKGEpID0+IGEuaWQpIDogW107XG4gIH1cblxuICBzbG90U2VsZWN0KGl0ZW06IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRTbG90ID0gaXRlbTtcbiAgfVxuXG4gIGl0ZW1TZWxlY3RlZChpZHg6IG51bWJlcltdKSB7XG4gICAgY29uc3QgdCA9IHRoaXMudHlwZXMoKVtpZHhbMF1dO1xuICAgIGlmICghdCkgcmV0dXJuO1xuICAgIGlmICh0LmZsYXZvcikgdGhpcy4jc2VsZWN0Rmxhdm9yKHQuZGF0YSBhcyBPYmplY3RGbGF2b3IpO1xuICAgIGVsc2UgdGhpcy4jc2VsZWN0VHlwZSh0LmRhdGEgYXMgVmlydHVhbE9iamVjdFR5cGUpO1xuICB9XG5cbiAgI3NlbGVjdEZsYXZvcihmbGF2b3I6IE9iamVjdEZsYXZvcikge1xuICAgIGNvbnN0IHQ6IEdlbmVyaWNPYmplY3RUeXBlIHwgdW5kZWZpbmVkID0gdGhpcy4jc3lzdGVtLmdldE9iamVjdFR5cGUoZmxhdm9yLnNvdCk7XG4gICAgaWYgKHQpXG4gICAgICB0aGlzLiNzZWxlY3RUeXBlKHtcbiAgICAgICAgaWQ6IGZsYXZvci5pZCxcbiAgICAgICAgb2JqZWN0VHlwZTogZmxhdm9yLm9iamVjdFR5cGVJRCxcbiAgICAgICAgc290czogW2ZsYXZvci5zb3RdXG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jICNzZWxlY3RUeXBlKHQ6IFZpcnR1YWxPYmplY3RUeXBlKSB7XG4gICAgdGhpcy5zZWxlY3RlZFR5cGUgPSB0O1xuXG4gICAgLy8gbG9hZCB0aWxlIGNvbmZpZ1xuICAgIHRoaXMub2JqZWN0Q29uZmlnID0gYXdhaXQgdGhpcy4jb2JqZWN0Q29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWcodCwgdGhpcy5idWNrZXQoKSB8fCAnJyk7XG5cbiAgICBpZiAoIXRoaXMub2JqZWN0Q29uZmlnKSB7XG4gICAgICB0aGlzLm9iamVjdENvbmZpZyA9IHtcbiAgICAgICAgLi4udGhpcy5fZW1wdHlPYmplY3RDb25maWcsXG4gICAgICAgIG9iamVjdFR5cGVJZDogdC5pZFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBpY29uU2VsZWN0ZWQoaWNvbjogc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLm9iamVjdENvbmZpZykgdGhpcy5vYmplY3RDb25maWcuaWNvbiA9IGljb24gPyB7IHN2ZzogaWNvbiB9IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJvcGVydHlTZWxlY3RlZCh0aWxlU2xvdDogc3RyaW5nLCBmaWVsZD86IFBhcnRpYWw8T2JqZWN0VHlwZUZpZWxkPikge1xuICAgIGNvbnN0IHA6IGFueSA9IHt9O1xuICAgIHBbdGlsZVNsb3RdID0gZmllbGRcbiAgICAgID8ge1xuICAgICAgICAgIGxhYmVsOiBmaWVsZC5sYWJlbCxcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGZpZWxkLmlkXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5vYmplY3RDb25maWcgPSBzdHJ1Y3R1cmVkQ2xvbmUoe1xuICAgICAgLi4udGhpcy5vYmplY3RDb25maWcsXG4gICAgICAuLi5wXG4gICAgfSk7XG4gIH1cblxuICBhY3Rpb25TZWxlY3RlZChhY3Rpb246IEFjdGlvbikge1xuICAgIGlmICh0aGlzLm9iamVjdENvbmZpZykge1xuICAgICAgaWYgKCF0aGlzLm9iamVjdENvbmZpZz8uYWN0aW9ucykgdGhpcy5vYmplY3RDb25maWcuYWN0aW9ucyA9IFtdO1xuXG4gICAgICBjb25zdCBpZHggPSB0aGlzLm9iamVjdENvbmZpZy5hY3Rpb25zLmZpbmRJbmRleCgoYSkgPT4gYS5pZCA9PT0gYWN0aW9uLmlkKTtcbiAgICAgIGlmIChpZHggIT09IC0xKSB0aGlzLm9iamVjdENvbmZpZy5hY3Rpb25zLnNwbGljZShpZHgsIDEpO1xuICAgICAgZWxzZSB0aGlzLm9iamVjdENvbmZpZy5hY3Rpb25zLnB1c2goeyBpZDogYWN0aW9uLmlkIH0pO1xuICAgICAgdGhpcy5vYmplY3RDb25maWcgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5vYmplY3RDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIHNhdmVDb25maWcoKSB7XG4gICAgdGhpcy5fc2F2ZVRpbGVDb25maWcoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NhdmVUaWxlQ29uZmlnKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkVHlwZSAmJiB0aGlzLm9iamVjdENvbmZpZykge1xuICAgICAgdGhpcy4jb2JqZWN0Q29uZmlnU2VydmljZS5zYXZlT2JqZWN0Q29uZmlnKHRoaXMuc2VsZWN0ZWRUeXBlLCB0aGlzLm9iamVjdENvbmZpZywgdGhpcy5idWNrZXQoKSkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnNhdmUuZW1pdCgpKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxoZWFkZXI+XG4gIDxoMT57eyAneXV2LnRpbGUtY29uZmlnLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDE+XG4gIDxkaXYgY2xhc3M9XCJidWNrZXRcIj57eyBidWNrZXRMYWJlbCgpIH19PC9kaXY+XG4gIEBpZiAoY2FuY2VsKSB7XG4gICAgPGJ1dHRvbiBjbGFzcz1cImljb25cIiAoY2xpY2spPVwiY2FuY2VsLmVtaXQoKVwiPlxuICAgICAgPHl2Yy1pY29uIFtzdmddPVwiaWNvbnMuY2xlYXJcIj48L3l2Yy1pY29uPlxuICAgIDwvYnV0dG9uPlxuICB9XG48L2hlYWRlcj5cblxuPHl2Yy1zcGxpdC12aWV3IFtndXR0ZXJTaXplXT1cIjFcIiBbbGF5b3V0U2V0dGluZ3NJRF09XCIneXV2LmZyYW1ld29yay50aWxlLWNvbmZpZy5sYXlvdXQnXCI+XG4gIDwhLS0gbGlzdCBvZiB0eXBlcyAtLT5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCIzMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0eXBlc1wiPlxuICAgICAgPHl1di1saXN0IChpdGVtU2VsZWN0KT1cIml0ZW1TZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIEBmb3IgKHQgb2YgdHlwZXMoKSB8fCBbXTsgdHJhY2sgdC5pZCkge1xuICAgICAgICAgIDxkaXYgeXV2TGlzdEl0ZW0+XG4gICAgICAgICAgICBAaWYgKHQuaWNvbikge1xuICAgICAgICAgICAgICA8eXZjLWljb24gW3N2Z109XCJ0Lmljb25cIj48L3l2Yy1pY29uPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDx5dXYtb2JqZWN0LXR5cGUtaWNvbiBbb2JqZWN0VHlwZUlkXT1cInQuaWRcIj48L3l1di1vYmplY3QtdHlwZS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge3sgdC5pZCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L3l1di1saXN0PlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gc2VsZWN0ZWQgdHlwZSBkZXRhaWxzLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNzBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc1wiPlxuICAgICAgQGlmIChzZWxlY3RlZFR5cGUpIHtcbiAgICAgICAgPGhlYWRlcj57eyBzZWxlY3RlZFR5cGUuaWQgfCB0cmFuc2xhdGUgfX08L2hlYWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImR1bW15LXByZXZpZXdcIj5cbiAgICAgICAgICA8eXV2LXRpbGUtY29uZmlnLXRpbGUgW2Rpc2FibGVJY29uU2xvdF09XCJ0cnVlXCIgW2Rpc2FibGVCYWRnZXNTbG90XT1cInRydWVcIiBbb2JqZWN0Q29uZmlnXT1cIm9iamVjdENvbmZpZyFcIiAoc2xvdFNlbGVjdCk9XCJzbG90U2VsZWN0KCRldmVudClcIj48L3l1di10aWxlLWNvbmZpZy10aWxlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG1haW4+XG4gICAgICAgICAgQGlmIChzZWxlY3RlZFNsb3QgPT09ICdpY29uJykge1xuICAgICAgICAgICAgPGgyPnt7ICd5dXYudGlsZS1jb25maWcuc2xvdC5pY29uLmhlYWRsaW5lJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICAgICAgICA8eXV2LWljb24tc2VsZWN0IFtvYmplY3RUeXBlXT1cInNlbGVjdGVkVHlwZVwiIChpY29uU2VsZWN0KT1cImljb25TZWxlY3RlZCgkZXZlbnQpXCI+PC95dXYtaWNvbi1zZWxlY3Q+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoc2VsZWN0ZWRTbG90ID09PSAnYmFkZ2VzJykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyIGVtcHR5XCI+XG4gICAgICAgICAgICAgIDxwPkZ1dHVyZSBmZWF0dXJlOiBTZWxlY3QgYmFkZ2VzIChsaWtlOiBpcyBmYXZvcml0ZSwgcmF0aW5ncywgLi4uKTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2UgaWYgKCFzZWxlY3RlZFNsb3QpIHtcbiAgICAgICAgICB9IEBlbHNlIGlmIChzZWxlY3RlZFNsb3QgPT09ICdhY3Rpb25zJykge1xuICAgICAgICAgICAgPGgyPnt7ICd5dXYudGlsZS1jb25maWcuc2xvdC5hY3Rpb24uaGVhZGxpbmUnIHwgdHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICAgIDx5dXYtdGlsZS1hY3Rpb24tc2VsZWN0XG4gICAgICAgICAgICAgIFtvYmplY3RUeXBlXT1cInNlbGVjdGVkVHlwZVwiXG4gICAgICAgICAgICAgIFtzZWxlY3RlZEFjdGlvbklkc109XCJnZXRTZWxlY3RlZEFjdGlvbnMoKVwiXG4gICAgICAgICAgICAgIChhY3Rpb25TZWxlY3QpPVwiYWN0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC95dXYtdGlsZS1hY3Rpb24tc2VsZWN0PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGgyPnt7ICd5dXYudGlsZS1jb25maWcuc2xvdC5wcm9wZXJ0eS5oZWFkbGluZScgfCB0cmFuc2xhdGUgfX08L2gyPlxuICAgICAgICAgICAgPHl1di10aWxlLXByb3BlcnR5LXNlbGVjdFxuICAgICAgICAgICAgICBbb2JqZWN0VHlwZV09XCJzZWxlY3RlZFR5cGVcIlxuICAgICAgICAgICAgICBbc2VsZWN0ZWRQcm9wZXJ0eV09XCJnZXRDb25maWdQcm9wZXJ0eShzZWxlY3RlZFNsb3QpXCJcbiAgICAgICAgICAgICAgKHByb3BlcnR5U2VsZWN0KT1cInByb3BlcnR5U2VsZWN0ZWQoc2VsZWN0ZWRTbG90LCAkZXZlbnQpXCJcbiAgICAgICAgICAgID48L3l1di10aWxlLXByb3BlcnR5LXNlbGVjdD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbWFpbj5cbiAgICAgICAgPGZvb3Rlcj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIChjbGljayk9XCJzYXZlQ29uZmlnKClcIj57eyAneXV2LnRpbGUtY29uZmlnLmJ1dHRvbi5zYXZlJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICAgICAgICA8L2Zvb3Rlcj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicGxhY2Vob2xkZXIgZW1wdHlcIj5cbiAgICAgICAgICA8aDI+e3sgJ3l1di50aWxlLWNvbmZpZy5kZXRhaWxzLmVtcHR5LnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICAgICAgPHA+e3sgJ3l1di50aWxlLWNvbmZpZy5kZXRhaWxzLmVtcHR5LmRlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L3l2Yy1zcGxpdC12aWV3PlxuIl19
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
39
39
  '[class.attachments]': 'hasAttachements()'
40
40
  }, styles: [":host{display:flex;justify-content:end;margin-top:.5rem}:host .icon{height:1rem}\n"] }]
41
41
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay90aWxlLWxpc3Qvc3JjL2xpYi90aWxlLWV4dGVuc2lvbi9leHRlbnNpb25zL2VtYWlsLmV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQWtDM0UsTUFBTSxPQUFPLDJCQUEyQjtJQS9CeEM7UUFnQ0UsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztRQUM3QixnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RSxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQztLQVFsRjtJQU5DLE9BQU8sQ0FBQyxDQUFTLEVBQUUsR0FBVTtRQUMzQixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXRCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQVZVLDJCQUEyQjttR0FBM0IsMkJBQTJCLHdSQTNCNUI7Ozs7Ozs7OztHQVNUOzs0RkFrQlUsMkJBQTJCO2tCQS9CdkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDLFlBQ1I7Ozs7Ozs7OztHQVNULFFBY0s7d0JBQ0oscUJBQXFCLEVBQUUsbUJBQW1CO3FCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaWxlRXh0ZW5zaW9uQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtc2hlbGwtY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3l1di1lbWFpbC10aWxlLWV4dGVuc2lvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGhhc0F0dGFjaGVtZW50cygpKSB7XG4gICAgICA8c3Bhbj57eyBhdHRhY2htZW50cygpLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgIDxzdmcgY2xhc3M9XCJpY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCIjNWY2MzY4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCI+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk03MjAtMzMwcTAgMTA0LTczIDE3N1Q0NzAtODBxLTEwNCAwLTE3Ny03M3QtNzMtMTc3di0zNzBxMC03NSA1Mi41LTEyNy41VDQwMC04ODBxNzUgMCAxMjcuNSA1Mi41VDU4MC03MDB2MzUwcTAgNDYtMzIgNzh0LTc4IDMycS00NiAwLTc4LTMydC0zMi03OHYtMzcwaDgwdjM3MHEwIDEzIDguNSAyMS41VDQ3MC0zMjBxMTMgMCAyMS41LTguNVQ1MDAtMzUwdi0zNTBxLTEtNDItMjkuNS03MVQ0MDAtODAwcS00MiAwLTcxIDI5dC0yOSA3MXYzNzBxLTEgNzEgNDkgMTIwLjVUNDcwLTE2MHE3MCAwIDExOS00OS41VDY0MC0zMzB2LTM5MGg4MHYzOTBaXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIH1cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGVuZDtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuXG4gICAgICAgIC5pY29uIHtcbiAgICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmF0dGFjaG1lbnRzXSc6ICdoYXNBdHRhY2hlbWVudHMoKSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBFbWFpbFRpbGVFeHRlbnNpb25Db21wb25lbnQgaW1wbGVtZW50cyBUaWxlRXh0ZW5zaW9uQ29tcG9uZW50IHtcbiAgZGF0YSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcbiAgYXR0YWNobWVudHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGEoKVsnYXBwU3lzdGVtbWFpbDphdHRhY2htZW50cyddIHx8IFtdKTtcbiAgaGFzQXR0YWNoZW1lbnRzID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLmRhdGEoKVsnYXBwU3lzdGVtbWFpbDphdHRhY2htZW50Q291bnQnXSk7XG5cbiAgb25DbGljayhhOiBzdHJpbmcsIGV2dDogRXZlbnQpIHtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBhbGVydChgWW91IGNsaWNrZWQgJyR7YX0nIG15IGZyaWVuZC5gKTtcbiAgfVxufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuZXh0ZW5zaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWZyYW1ld29yay90aWxlLWxpc3Qvc3JjL2xpYi90aWxlLWV4dGVuc2lvbi9leHRlbnNpb25zL2VtYWlsLmV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWtDM0QsTUFBTSxPQUFPLDJCQUEyQjtJQS9CeEM7UUFnQ0UsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztRQUM3QixnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RSxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQztLQVFsRjtJQU5DLE9BQU8sQ0FBQyxDQUFTLEVBQUUsR0FBVTtRQUMzQixHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckIsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXRCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6QyxDQUFDOytHQVZVLDJCQUEyQjttR0FBM0IsMkJBQTJCLHdSQTNCNUI7Ozs7Ozs7OztHQVNUOzs0RkFrQlUsMkJBQTJCO2tCQS9CdkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsT0FBTyxDQUFDLFlBQ1I7Ozs7Ozs7OztHQVNULFFBY0s7d0JBQ0oscUJBQXFCLEVBQUUsbUJBQW1CO3FCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpbGVFeHRlbnNpb25Db21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1zaGVsbC1jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneXV2LWVtYWlsLXRpbGUtZXh0ZW5zaW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3NdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoaGFzQXR0YWNoZW1lbnRzKCkpIHtcbiAgICAgIDxzcGFuPnt7IGF0dGFjaG1lbnRzKCkubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgPHN2ZyBjbGFzcz1cImljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cIiM1ZjYzNjhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIj5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTcyMC0zMzBxMCAxMDQtNzMgMTc3VDQ3MC04MHEtMTA0IDAtMTc3LTczdC03My0xNzd2LTM3MHEwLTc1IDUyLjUtMTI3LjVUNDAwLTg4MHE3NSAwIDEyNy41IDUyLjVUNTgwLTcwMHYzNTBxMCA0Ni0zMiA3OHQtNzggMzJxLTQ2IDAtNzgtMzJ0LTMyLTc4di0zNzBoODB2MzcwcTAgMTMgOC41IDIxLjVUNDcwLTMyMHExMyAwIDIxLjUtOC41VDUwMC0zNTB2LTM1MHEtMS00Mi0yOS41LTcxVDQwMC04MDBxLTQyIDAtNzEgMjl0LTI5IDcxdjM3MHEtMSA3MSA0OSAxMjAuNVQ0NzAtMTYwcTcwIDAgMTE5LTQ5LjVUNjQwLTMzMHYtMzkwaDgwdjM5MFpcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZW5kO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgLmljb24ge1xuICAgICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuYXR0YWNobWVudHNdJzogJ2hhc0F0dGFjaGVtZW50cygpJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIEVtYWlsVGlsZUV4dGVuc2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIFRpbGVFeHRlbnNpb25Db21wb25lbnQge1xuICBkYXRhID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xuICBhdHRhY2htZW50cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGF0YSgpWydhcHBTeXN0ZW1tYWlsOmF0dGFjaG1lbnRzJ10gfHwgW10pO1xuICBoYXNBdHRhY2hlbWVudHMgPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMuZGF0YSgpWydhcHBTeXN0ZW1tYWlsOmF0dGFjaG1lbnRDb3VudCddKTtcblxuICBvbkNsaWNrKGE6IHN0cmluZywgZXZ0OiBFdmVudCkge1xuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGFsZXJ0KGBZb3UgY2xpY2tlZCAnJHthfScgbXkgZnJpZW5kLmApO1xuICB9XG59XG4iXX0=
@@ -4,7 +4,7 @@ import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i2 from '@ngx-translate/core';
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
- import { DmsService, TranslateService, TranslateModule as TranslateModule$1, RetentionField, ClipboardService, Utils } from '@yuuvis/client-core';
7
+ import { DmsService, TranslateService, TranslateModule as TranslateModule$1, RetentionService, ClipboardService, Utils } from '@yuuvis/client-core';
8
8
  import { of, map, forkJoin } from 'rxjs';
9
9
  import { YvcOverlayRef, YvcOverlayService } from '@yuuvis/components/overlay';
10
10
  import * as i2$1 from '@angular/cdk/a11y';
@@ -117,6 +117,7 @@ class DeleteAction extends AbstractContextAction {
117
117
  super(...arguments);
118
118
  this.translate = inject(TranslateService);
119
119
  this.overlay = inject(YvcOverlayService);
120
+ this.retention = inject(RetentionService);
120
121
  this.id = BASE_ACTION.delete;
121
122
  this.label = this.translate.instant('yuv.action-menu.action.delete.dms.object.label');
122
123
  this.description = this.translate.instant('yuv.action-menu.action.delete.dms.object.description');
@@ -130,14 +131,7 @@ class DeleteAction extends AbstractContextAction {
130
131
  }
131
132
  isExecutable(items) {
132
133
  const e = items[0];
133
- let isRetentionActive = false;
134
- if (e && e.data[RetentionField.RETENTION_START] && e.data[RetentionField.RETENTION_END]) {
135
- const currentDate = new Date();
136
- const retentionStart = new Date(e.data[RetentionField.RETENTION_START]);
137
- const retentionEnd = new Date(e.data[RetentionField.RETENTION_END]);
138
- isRetentionActive = retentionStart <= currentDate && currentDate <= retentionEnd;
139
- }
140
- return of(e && !!e.permissions && e.permissions.deleteObject && !isRetentionActive);
134
+ return of(e && !!e.permissions && e.permissions.deleteObject && !this.retention.getRetentionState(e).underRetention);
141
135
  }
142
136
  run(items) {
143
137
  return this.overlay
@@ -214,7 +208,7 @@ class ContextmenuComponent {
214
208
  this.callback(this.actions()[index[0]]);
215
209
  }
216
210
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextmenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
217
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ContextmenuComponent, isStandalone: true, selector: "yuv-contextmenu", ngImport: i0, template: "<yuv-list (itemSelect)=\"onItemSelect($event)\" cdkTrapFocus>\n @for (a of actions(); track a.id) {\n <div yuvListItem><yvc-icon [svg]=\"a.icon\"></yvc-icon> {{ a.label }}</div>\n }\n</yuv-list>\n", styles: [":host{--contextmenu-item-padding: calc(var(--app-pane-padding) / 2);--contextmenu-item-icon-size: 20px}:host [yuvListItem]{cursor:pointer;border-width:0 0 1px 0;display:flex;align-items:center;padding:var(--contextmenu-item-padding);gap:calc(var(--contextmenu-item-padding) * 1.5)}:host [yuvListItem] yvc-icon{--icon-size: var(--contextmenu-item-icon-size);flex:0 0 auto;color:var(--text-color-caption)}:host [yuvListItem]:hover,:host [yuvListItem][aria-current=true]{background-color:var(--item-focus-background-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ListComponent, selector: "yuv-list", inputs: ["multiselect", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1$1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] }); }
211
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ContextmenuComponent, isStandalone: true, selector: "yuv-contextmenu", ngImport: i0, template: "<yuv-list (itemSelect)=\"onItemSelect($event)\" cdkTrapFocus>\n @for (a of actions(); track a.id) {\n <div yuvListItem><yvc-icon [svg]=\"a.icon\"></yvc-icon> {{ a.label }}</div>\n }\n</yuv-list>\n", styles: [":host{--contextmenu-item-padding: calc(var(--app-pane-padding) / 2);--contextmenu-item-icon-size: 20px}:host [yuvListItem]{cursor:pointer;border-width:0 0 1px 0;display:flex;align-items:center;padding:var(--contextmenu-item-padding);gap:calc(var(--contextmenu-item-padding) * 1.5)}:host [yuvListItem] yvc-icon{--icon-size: var(--contextmenu-item-icon-size);flex:0 0 auto;color:var(--text-color-caption)}:host [yuvListItem]:hover,:host [yuvListItem][aria-current=true]{background-color:var(--item-focus-background-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: ListComponent, selector: "yuv-list", inputs: ["multiselect", "selfHandleSelection", "disableSelection"], outputs: ["itemSelect", "itemFocus"] }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1$1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] }); }
218
212
  }
219
213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContextmenuComponent, decorators: [{
220
214
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"yuuvis-client-framework-actions.mjs","sources":["../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.module.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.icon.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.interface.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete/delete.component.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete/delete.component.html","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/download-action/download-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/copy-action/copy-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/components/contextmenu/contextmenu.component.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/components/contextmenu/contextmenu.component.html","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/cut-action/cut-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.service.ts","../../../../../libs/yuuvis/client-framework/actions/src/yuuvis-client-framework-actions.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n imports: [CommonModule, TranslateModule]\n})\nexport class ActionsModule {}\n","export const ACTION_ICON = {\n download: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20px\" viewBox=\"0 -960 960 960\" width=\"20px\" fill=\"#e8eaed\"><path d=\"M480-336 288-528l51-51 105 105v-342h72v342l105-105 51 51-192 192ZM263.72-192Q234-192 213-213.15T192-264v-72h72v72h432v-72h72v72q0 29.7-21.16 50.85Q725.68-192 695.96-192H263.72Z\"/></svg>',\n delete: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20px\" viewBox=\"0 -960 960 960\" width=\"20px\" fill=\"#e8eaed\"><path d=\"M312-144q-29.7 0-50.85-21.15Q240-186.3 240-216v-480h-48v-72h192v-48h192v48h192v72h-48v479.57Q720-186 698.85-165T648-144H312Zm336-552H312v480h336v-480ZM384-288h72v-336h-72v336Zm120 0h72v-336h-72v336ZM312-696v480-480Z\"/></svg>',\n copy: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20px\" viewBox=\"0 -960 960 960\" width=\"20px\" fill=\"#e8eaed\"><path d=\"M360-240q-29.7 0-50.85-21.15Q288-282.3 288-312v-480q0-29.7 21.15-50.85Q330.3-864 360-864h384q29.7 0 50.85 21.15Q816-821.7 816-792v480q0 29.7-21.15 50.85Q773.7-240 744-240H360Zm0-72h384v-480H360v480ZM216-96q-29.7 0-50.85-21.15Q144-138.3 144-168v-552h72v552h456v72H216Zm144-216v-480 480Z\"/></svg>',\n cut: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20px\" viewBox=\"0 -960 960 960\" width=\"20px\" fill=\"#e8eaed\"><path d=\"M744-144 480-407l-87 88q8 16 11.5 32.85 3.5 16.86 3.5 33.71 0 65.44-45 110.94T252-96q-64.35 0-110.18-45.5Q96-187 96-252t45.5-110.5Q187-408 252.44-408q16.85 0 33.71 4Q303-400 319-392l88-87-88-88q-16 8-32.85 11.5-16.86 3.5-33.71 3.5-65.44 0-110.94-45.5T96-708q0-65 45.5-110.5T252-864q65 0 110.5 45.5T408-707.56q0 16.85-3.5 33.71Q401-657 393-641l471 469v28H744ZM595-520l-74-74 223-222h120v28L595-520ZM252.25-624q34.75 0 59.25-24.75t24.5-59.5q0-34.75-24.75-59.25t-59.5-24.5q-34.75 0-59.25 24.75t-24.5 59.5q0 34.75 24.75 59.25t59.5 24.5ZM480-456q9.6 0 16.8-7.2 7.2-7.2 7.2-16.8 0-9.6-7.2-16.8-7.2-7.2-16.8-7.2-9.6 0-16.8 7.2-7.2 7.2-7.2 16.8 0 9.6 7.2 16.8 7.2 7.2 16.8 7.2ZM252.25-168q34.75 0 59.25-24.75t24.5-59.5q0-34.75-24.75-59.25t-59.5-24.5q-34.75 0-59.25 24.75t-24.5 59.5q0 34.75 24.75 59.25t59.5 24.5Z\"/></svg>',\n manageFlavor: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"m489-460 91-55 91 55-24-104 80-69-105-9-42-98-42 98-105 9 80 69-24 104Zm19 260h224q-7 26-24 42t-44 20L228-85q-33 5-59.5-15.5T138-154L85-591q-4-33 16-59t53-30l46-6v80l-36 5 54 437 290-36Zm-148-80q-33 0-56.5-23.5T280-360v-440q0-33 23.5-56.5T360-880h440q33 0 56.5 23.5T880-800v440q0 33-23.5 56.5T800-280H360Zm0-80h440v-440H360v440Zm220-220ZM218-164Z\"/></svg>'\n}","import { DmsObject } from '@yuuvis/client-core';\nimport { Observable } from 'rxjs';\n\nexport type ActionClass = { new (...args: any[]): any };\n\nexport class AbstractContextAction {\n context?: ActionContext;\n constructor(context?: ActionContext) {\n this.context = context;\n }\n}\n\nexport interface BaseAction {\n /**\n * Equals the selector of the actions selector (will be set by the action service)\n */\n id: string;\n /**\n * label to be displayed inside the action menu\n */\n label: string;\n /**\n * description to be displayed inside the action menu\n */\n description: string;\n /**\n * @ignore\n */\n icon: string;\n /**\n * actions priority defining the position of the action within the whole list of actions\n */\n priority: number;\n /**\n * group of actions the action should be part of ('common' or 'further')\n */\n group: string;\n /**\n * number of selected items supported by the action\n * (SelectionRange.SINGLE_SELECT, SelectionRange.MULTI_SELECT, SelectionRange.MULTI_SELECT_ONLY )\n */\n range: SelectionRange;\n\n /**\n * Types that are supported by the action\n */\n supports: ActionSupport;\n\n /**\n * Determining whether or not the action is executable for the given selection\n * @param item Current selection\n * @returns true if the action is executable for the current selection, false otherwise\n */\n isExecutable: (items: DmsObject[]) => Observable<boolean>;\n}\n\nexport interface ActionSupport {\n // object types\n types?: string[];\n // object types\n sots?: string[];\n // pattern to match the type name against\n pattern?: string;\n}\n\nexport interface ActionContext {\n /**\n * As actions deal with DmsObjects the subject property is the property that\n * should be used to display the name of the object. This may be used for\n * showing the name of the object in a confirmation/error dialog or similar.\n */\n subjectProperty?: string;\n /**\n * The appId is the id of the application that the action is executed in.\n */\n appId?: string;\n}\n\nexport interface Action extends BaseAction {\n run: (items: DmsObject[]) => Observable<boolean>;\n}\n\nexport interface ActionOptions {\n context?: ActionContext;\n exclude?: string[] | RegExp;\n}\n\nexport enum SelectionRange {\n SINGLE_SELECT,\n MULTI_SELECT,\n MULTI_SELECT_ONLY,\n ANY\n}\n\nexport const BASE_ACTION = {\n copy: 'yuv.base.copy',\n cut: 'yuv.base.cut',\n download: 'yuv.base.download',\n delete: 'yuv.base.delete'\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { DmsObject, DmsService, ObjectDeleteError, ObjectDeleteResult, TranslateModule, TranslateService } from '@yuuvis/client-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\nimport { ActionContext } from '../../../actions.interface';\n\n/**\n * @ignore\n */\n\n@Component({\n selector: 'yuv-delete',\n standalone: true,\n imports: [CommonModule, TranslateModule],\n templateUrl: './delete.component.html',\n styleUrls: ['./delete.component.scss']\n})\nexport class DeleteComponent {\n readonly #dmsService = inject(DmsService);\n readonly #oref = inject(YvcOverlayRef);\n private readonly translate = inject(TranslateService);\n\n errors?: {\n status: number;\n subject: string;\n message: string;\n }[] = [];\n deleting = false;\n deleteItems: DmsObject[] = this.#oref.data.items;\n context: ActionContext = this.#oref.data.context;\n\n run() {\n this.errors = [];\n if (this.deleteItems.length) {\n this.deleting = true;\n this.#dmsService\n .deleteDmsObjects(\n this.deleteItems.map((o) => ({\n id: o.id,\n subject: o.data[this.context.subjectProperty || o.id] as string\n }))\n )\n .subscribe({\n next: (res: ObjectDeleteResult[]) => {\n this.errors = res\n .filter((r) => !!r._error)\n .map((r: any) => ({\n status: r._error.status,\n subject: this.context?.subjectProperty ? r.properties[this.context.subjectProperty].value : r.id,\n message: this.#getErrorMessage(r._error)\n }));\n !this.errors.length && this.#oref.close();\n },\n complete: () => (this.deleting = false)\n });\n }\n }\n\n #getErrorMessage(error: ObjectDeleteError): string {\n switch (error.status) {\n case 403:\n return this.translate.instant('yuv.action-menu.action.delete.error.403');\n case 404:\n return this.translate.instant('yuv.action-menu.action.delete.error.404');\n default:\n return this.translate.instant('yuv.action-menu.action.delete.error.default');\n }\n }\n\n cancel() {\n this.#oref.close();\n }\n}\n","<div class=\"yuv-delete\" [ngClass]=\"{ deleting }\">\n <div class=\"yuv-loader-linear\"></div>\n\n @if (errors?.length) {\n <ul class=\"errors\">\n @for (e of errors; track $index) {\n <li class=\"error\">\n <span class=\"subject\">{{ e.subject }}</span>\n <span class=\"message\">{{ e.message }}</span>\n </li>\n }\n </ul>\n } @else {\n <p>{{ 'yuv.action-menu.action.delete.dms.object.confirm.message' | translate }}</p>\n }\n\n <div class=\"form-buttons\">\n <button [disabled]=\"deleting || errors?.length\" class=\"primary\" (click)=\"run()\">{{ 'yuv.action-menu.action.delete.dms.object.confirm.ok' | translate }}</button>\n <button [disabled]=\"deleting\" class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.action-menu.action.delete.dms.object.confirm.cancel' | translate }}</button>\n </div>\n</div>\n","import { inject } from '@angular/core';\nimport { DmsObject, RetentionField, TranslateService } from '@yuuvis/client-core';\nimport { YvcOverlayService } from '@yuuvis/components/overlay';\nimport { map, Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\nimport { DeleteComponent } from './delete/delete.component';\n\nexport class DeleteAction extends AbstractContextAction implements Action {\n private translate = inject(TranslateService);\n private overlay = inject(YvcOverlayService);\n\n id = BASE_ACTION.delete;\n label = this.translate.instant('yuv.action-menu.action.delete.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.delete.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.delete;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n const e = items[0];\n let isRetentionActive = false;\n if (e && e.data[RetentionField.RETENTION_START] && e.data[RetentionField.RETENTION_END]) {\n const currentDate = new Date();\n const retentionStart = new Date(e.data[RetentionField.RETENTION_START] as string);\n const retentionEnd = new Date(e.data[RetentionField.RETENTION_END] as string);\n isRetentionActive = retentionStart <= currentDate && currentDate <= retentionEnd;\n }\n return of(e && !!e.permissions && e.permissions.deleteObject && !isRetentionActive);\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n return this.overlay\n .open(DeleteComponent, {\n items,\n context: this.context\n })\n .afterClosed$.pipe(map(() => true));\n }\n}\n","import { inject } from '@angular/core';\nimport { DmsObject, DmsService, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class DownloadAction extends AbstractContextAction implements Action {\n private translate = inject(TranslateService);\n private dmsService = inject(DmsService);\n\n id = BASE_ACTION.download;\n label = this.translate.instant('yuv.action-menu.action.download.dms.object.content.label');\n description = this.translate.instant('yuv.action-menu.action.download.dms.object.content.description');\n priority = 2;\n icon = ACTION_ICON.download;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(selection: DmsObject[]) {\n const noContentMatch = (Array.isArray(selection) ? selection : [selection]).find((e) => !e.content);\n if (selection.length < 1) return of(false);\n return of(!noContentMatch);\n }\n\n run(selection: DmsObject[]): Observable<boolean> {\n this.dmsService.downloadContent(Array.isArray(selection) ? selection : [selection]);\n return of(true);\n }\n}\n","import { inject } from '@angular/core';\nimport { ClipboardService, DmsObject, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class CopyAction extends AbstractContextAction implements Action {\n private clipboardService = inject(ClipboardService);\n private translate = inject(TranslateService);\n\n id = BASE_ACTION.copy;\n label = this.translate.instant('yuv.action-menu.action.copy.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.copy.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.copy;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n const notAllowed = items.some((item) => !item.permissions?.writeIndexData);\n return of(items.length > 0 && !notAllowed);\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n this.clipboardService.addObjects(items, 'copy', this.context?.appId);\n return of(true);\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, Signal } from '@angular/core';\nimport { ListComponent, ListItemDirective } from '@yuuvis/client-framework/list';\nimport { YvcIconModule } from '@yuuvis/components/icon';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\nimport { Action } from '../../actions.interface';\n\n@Component({\n selector: 'yuv-contextmenu',\n standalone: true,\n imports: [CommonModule, ListComponent, ListItemDirective, YvcIconModule, A11yModule],\n templateUrl: './contextmenu.component.html',\n styleUrl: './contextmenu.component.scss'\n})\nexport class ContextmenuComponent {\n private oRef = inject(YvcOverlayRef);\n actions: Signal<Action[]> = this.oRef.data.actions;\n callback: (action: Action) => void = this.oRef.data.callback;\n\n onItemSelect(index: number[]) {\n this.oRef?.close();\n this.callback(this.actions()[index[0]]);\n }\n}\n","<yuv-list (itemSelect)=\"onItemSelect($event)\" cdkTrapFocus>\n @for (a of actions(); track a.id) {\n <div yuvListItem><yvc-icon [svg]=\"a.icon\"></yvc-icon> {{ a.label }}</div>\n }\n</yuv-list>\n","import { inject } from '@angular/core';\nimport { ClipboardService, DmsObject, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class CutAction extends AbstractContextAction implements Action {\n private clipboardService = inject(ClipboardService);\n private translate = inject(TranslateService);\n\n id = BASE_ACTION.cut;\n label = this.translate.instant('yuv.action-menu.action.cut.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.cut.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.cut;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n return of(items.length > 0 && items.every((item) => item.permissions?.writeContent && item.permissions?.writeIndexData && item.permissions?.deleteObject));\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n this.clipboardService.addObjects(items, 'cut', this.context?.appId);\n return of(true);\n }\n}\n","import { Injectable, Injector, Signal, inject, runInInjectionContext } from '@angular/core';\nimport { DmsObject, Utils } from '@yuuvis/client-core';\nimport { Observable, forkJoin, map, of } from 'rxjs';\nimport { Action, ActionClass, ActionContext, ActionOptions } from './actions.interface';\nimport { DeleteAction } from './actions/delete-action/delete-action';\nimport { DownloadAction } from './actions/download-action/download-action';\nimport { CopyAction } from './actions/copy-action/copy-action';\nimport { YvcOverlayService } from '@yuuvis/components/overlay';\nimport { ContextmenuComponent } from './components/contextmenu/contextmenu.component';\nimport { FlexibleConnectedPositionStrategyOrigin } from '@angular/cdk/overlay';\nimport { CutAction } from './actions/cut-action/cut-action';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActionsService {\n private readonly injector = inject(Injector);\n private overlay = inject(YvcOverlayService);\n\n private _registeredActions: Record<string, ActionClass> = {};\n\n registerActions(a: { id: string; action: ActionClass }[]) {\n Array.isArray(a) && a.forEach((a) => (this._registeredActions[a.id] = a.action));\n }\n\n concealActions(actionIDs: string[]) {\n Array.isArray(actionIDs) && actionIDs.forEach((id) => delete this._registeredActions[id]);\n }\n\n /**\n * Returns all actions that are executable for the given selection.\n * @param selection Array of DmsObjects to check for executable actions\n * @param options options to filter the actions\n * @returns Observable of actions that are executable for the given selection\n */\n getActions(selection: DmsObject[], options?: ActionOptions): Observable<Action[]> {\n // TODO: check if selection is empty or if nessasery at all\n // if (!selection || selection.length === 0) return of([]);\n const s: Observable<{ action: Action; executable: boolean }>[] = this.getAvailableActions(options?.context)\n .filter((ac) =>\n options?.exclude\n ? Array.isArray(options.exclude)\n ? !options.exclude.includes(ac.id)\n : options.exclude instanceof RegExp\n ? !options.exclude.test(ac.id)\n : true\n : true\n )\n .map((action: Action) =>\n action.isExecutable(selection).pipe(\n map((executable: boolean) => ({\n action,\n executable\n }))\n )\n );\n\n return forkJoin(s).pipe(map((res: { action: Action; executable: boolean }[]) => res.filter((r) => r.executable).map((r) => r.action)));\n }\n\n /**\n * Get all available actions. This includes the default actions and all registered actions but\n * without checking if they are executable.\n * @param context Context passed to the actions\n * @returns Array of available actions\n */\n getAvailableActions(context?: ActionContext): Action[] {\n let a: Action[] = [];\n\n runInInjectionContext(this.injector, () => {\n a = [...this._getDefaulActions(context), ...Object.values(this._registeredActions).map((ac: ActionClass) => new ac(context))];\n });\n return a;\n }\n\n getActionsForType(objectTypeId: string, context?: ActionContext): Action[] {\n return this.getAvailableActions(context).filter((a: Action) => this._actionsSupportsType(a, objectTypeId));\n }\n\n getActionById(id: string, context?: ActionContext): Action | undefined {\n return this.getAvailableActions(context).find((a) => a.id === id);\n }\n\n getActionsById(ids: string[], context?: ActionContext): Action[] {\n return this.getAvailableActions(context).filter((a) => ids.includes(a.id));\n }\n\n openContextMenu(actions: Signal<Action[]>, callback: (action: Action) => void, element: FlexibleConnectedPositionStrategyOrigin) {\n this.overlay.open(ContextmenuComponent, { actions, callback }, {}, element);\n }\n\n private _actionsSupportsType(action: Action, objectTypeId: string): boolean {\n const matchesTypes = action.supports.types ? action.supports.types.includes(objectTypeId) : false;\n const matchesSOTs = action.supports.sots ? action.supports.sots.includes(objectTypeId) : false;\n const matchesPattern = action.supports.pattern ? Utils.patternToRegExp(action.supports.pattern).test(objectTypeId) : false;\n return matchesTypes || matchesSOTs || matchesPattern;\n }\n\n private _getDefaulActions(context?: ActionContext): Action[] {\n return [new DeleteAction(context), new DownloadAction(context), new CopyAction(context), new CutAction(context)];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TranslateModule","i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"yuuvis-client-framework-actions.mjs","sources":["../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.module.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.icon.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.interface.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete/delete.component.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete/delete.component.html","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/delete-action/delete-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/download-action/download-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/copy-action/copy-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/components/contextmenu/contextmenu.component.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/components/contextmenu/contextmenu.component.html","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions/cut-action/cut-action.ts","../../../../../libs/yuuvis/client-framework/actions/src/lib/actions.service.ts","../../../../../libs/yuuvis/client-framework/actions/src/yuuvis-client-framework-actions.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n imports: [CommonModule, TranslateModule]\n})\nexport class ActionsModule {}\n","export const ACTION_ICON = {\n download: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20px\" viewBox=\"0 -960 960 960\" width=\"20px\" fill=\"#e8eaed\"><path d=\"M480-336 288-528l51-51 105 105v-342h72v342l105-105 51 51-192 192ZM263.72-192Q234-192 213-213.15T192-264v-72h72v72h432v-72h72v72q0 29.7-21.16 50.85Q725.68-192 695.96-192H263.72Z\"/></svg>',\n delete: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20px\" viewBox=\"0 -960 960 960\" width=\"20px\" fill=\"#e8eaed\"><path d=\"M312-144q-29.7 0-50.85-21.15Q240-186.3 240-216v-480h-48v-72h192v-48h192v48h192v72h-48v479.57Q720-186 698.85-165T648-144H312Zm336-552H312v480h336v-480ZM384-288h72v-336h-72v336Zm120 0h72v-336h-72v336ZM312-696v480-480Z\"/></svg>',\n copy: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20px\" viewBox=\"0 -960 960 960\" width=\"20px\" fill=\"#e8eaed\"><path d=\"M360-240q-29.7 0-50.85-21.15Q288-282.3 288-312v-480q0-29.7 21.15-50.85Q330.3-864 360-864h384q29.7 0 50.85 21.15Q816-821.7 816-792v480q0 29.7-21.15 50.85Q773.7-240 744-240H360Zm0-72h384v-480H360v480ZM216-96q-29.7 0-50.85-21.15Q144-138.3 144-168v-552h72v552h456v72H216Zm144-216v-480 480Z\"/></svg>',\n cut: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"20px\" viewBox=\"0 -960 960 960\" width=\"20px\" fill=\"#e8eaed\"><path d=\"M744-144 480-407l-87 88q8 16 11.5 32.85 3.5 16.86 3.5 33.71 0 65.44-45 110.94T252-96q-64.35 0-110.18-45.5Q96-187 96-252t45.5-110.5Q187-408 252.44-408q16.85 0 33.71 4Q303-400 319-392l88-87-88-88q-16 8-32.85 11.5-16.86 3.5-33.71 3.5-65.44 0-110.94-45.5T96-708q0-65 45.5-110.5T252-864q65 0 110.5 45.5T408-707.56q0 16.85-3.5 33.71Q401-657 393-641l471 469v28H744ZM595-520l-74-74 223-222h120v28L595-520ZM252.25-624q34.75 0 59.25-24.75t24.5-59.5q0-34.75-24.75-59.25t-59.5-24.5q-34.75 0-59.25 24.75t-24.5 59.5q0 34.75 24.75 59.25t59.5 24.5ZM480-456q9.6 0 16.8-7.2 7.2-7.2 7.2-16.8 0-9.6-7.2-16.8-7.2-7.2-16.8-7.2-9.6 0-16.8 7.2-7.2 7.2-7.2 16.8 0 9.6 7.2 16.8 7.2 7.2 16.8 7.2ZM252.25-168q34.75 0 59.25-24.75t24.5-59.5q0-34.75-24.75-59.25t-59.5-24.5q-34.75 0-59.25 24.75t-24.5 59.5q0 34.75 24.75 59.25t59.5 24.5Z\"/></svg>',\n manageFlavor: '<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#e8eaed\"><path d=\"m489-460 91-55 91 55-24-104 80-69-105-9-42-98-42 98-105 9 80 69-24 104Zm19 260h224q-7 26-24 42t-44 20L228-85q-33 5-59.5-15.5T138-154L85-591q-4-33 16-59t53-30l46-6v80l-36 5 54 437 290-36Zm-148-80q-33 0-56.5-23.5T280-360v-440q0-33 23.5-56.5T360-880h440q33 0 56.5 23.5T880-800v440q0 33-23.5 56.5T800-280H360Zm0-80h440v-440H360v440Zm220-220ZM218-164Z\"/></svg>'\n}","import { DmsObject } from '@yuuvis/client-core';\nimport { Observable } from 'rxjs';\n\nexport type ActionClass = { new (...args: any[]): any };\n\nexport class AbstractContextAction {\n context?: ActionContext;\n constructor(context?: ActionContext) {\n this.context = context;\n }\n}\n\nexport interface BaseAction {\n /**\n * Equals the selector of the actions selector (will be set by the action service)\n */\n id: string;\n /**\n * label to be displayed inside the action menu\n */\n label: string;\n /**\n * description to be displayed inside the action menu\n */\n description: string;\n /**\n * @ignore\n */\n icon: string;\n /**\n * actions priority defining the position of the action within the whole list of actions\n */\n priority: number;\n /**\n * group of actions the action should be part of ('common' or 'further')\n */\n group: string;\n /**\n * number of selected items supported by the action\n * (SelectionRange.SINGLE_SELECT, SelectionRange.MULTI_SELECT, SelectionRange.MULTI_SELECT_ONLY )\n */\n range: SelectionRange;\n\n /**\n * Types that are supported by the action\n */\n supports: ActionSupport;\n\n /**\n * Determining whether or not the action is executable for the given selection\n * @param item Current selection\n * @returns true if the action is executable for the current selection, false otherwise\n */\n isExecutable: (items: DmsObject[]) => Observable<boolean>;\n}\n\nexport interface ActionSupport {\n // object types\n types?: string[];\n // object types\n sots?: string[];\n // pattern to match the type name against\n pattern?: string;\n}\n\nexport interface ActionContext {\n /**\n * As actions deal with DmsObjects the subject property is the property that\n * should be used to display the name of the object. This may be used for\n * showing the name of the object in a confirmation/error dialog or similar.\n */\n subjectProperty?: string;\n /**\n * The appId is the id of the application that the action is executed in.\n */\n appId?: string;\n}\n\nexport interface Action extends BaseAction {\n run: (items: DmsObject[]) => Observable<boolean>;\n}\n\nexport interface ActionOptions {\n context?: ActionContext;\n exclude?: string[] | RegExp;\n}\n\nexport enum SelectionRange {\n SINGLE_SELECT,\n MULTI_SELECT,\n MULTI_SELECT_ONLY,\n ANY\n}\n\nexport const BASE_ACTION = {\n copy: 'yuv.base.copy',\n cut: 'yuv.base.cut',\n download: 'yuv.base.download',\n delete: 'yuv.base.delete'\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { DmsObject, DmsService, ObjectDeleteError, ObjectDeleteResult, TranslateModule, TranslateService } from '@yuuvis/client-core';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\nimport { ActionContext } from '../../../actions.interface';\n\n/**\n * @ignore\n */\n\n@Component({\n selector: 'yuv-delete',\n standalone: true,\n imports: [CommonModule, TranslateModule],\n templateUrl: './delete.component.html',\n styleUrls: ['./delete.component.scss']\n})\nexport class DeleteComponent {\n readonly #dmsService = inject(DmsService);\n readonly #oref = inject(YvcOverlayRef);\n private readonly translate = inject(TranslateService);\n\n errors?: {\n status: number;\n subject: string;\n message: string;\n }[] = [];\n deleting = false;\n deleteItems: DmsObject[] = this.#oref.data.items;\n context: ActionContext = this.#oref.data.context;\n\n run() {\n this.errors = [];\n if (this.deleteItems.length) {\n this.deleting = true;\n this.#dmsService\n .deleteDmsObjects(\n this.deleteItems.map((o) => ({\n id: o.id,\n subject: o.data[this.context.subjectProperty || o.id] as string\n }))\n )\n .subscribe({\n next: (res: ObjectDeleteResult[]) => {\n this.errors = res\n .filter((r) => !!r._error)\n .map((r: any) => ({\n status: r._error.status,\n subject: this.context?.subjectProperty ? r.properties[this.context.subjectProperty].value : r.id,\n message: this.#getErrorMessage(r._error)\n }));\n !this.errors.length && this.#oref.close();\n },\n complete: () => (this.deleting = false)\n });\n }\n }\n\n #getErrorMessage(error: ObjectDeleteError): string {\n switch (error.status) {\n case 403:\n return this.translate.instant('yuv.action-menu.action.delete.error.403');\n case 404:\n return this.translate.instant('yuv.action-menu.action.delete.error.404');\n default:\n return this.translate.instant('yuv.action-menu.action.delete.error.default');\n }\n }\n\n cancel() {\n this.#oref.close();\n }\n}\n","<div class=\"yuv-delete\" [ngClass]=\"{ deleting }\">\n <div class=\"yuv-loader-linear\"></div>\n\n @if (errors?.length) {\n <ul class=\"errors\">\n @for (e of errors; track $index) {\n <li class=\"error\">\n <span class=\"subject\">{{ e.subject }}</span>\n <span class=\"message\">{{ e.message }}</span>\n </li>\n }\n </ul>\n } @else {\n <p>{{ 'yuv.action-menu.action.delete.dms.object.confirm.message' | translate }}</p>\n }\n\n <div class=\"form-buttons\">\n <button [disabled]=\"deleting || errors?.length\" class=\"primary\" (click)=\"run()\">{{ 'yuv.action-menu.action.delete.dms.object.confirm.ok' | translate }}</button>\n <button [disabled]=\"deleting\" class=\"secondary\" (click)=\"cancel()\">{{ 'yuv.action-menu.action.delete.dms.object.confirm.cancel' | translate }}</button>\n </div>\n</div>\n","import { inject } from '@angular/core';\nimport { DmsObject, RetentionField, RetentionService, TranslateService } from '@yuuvis/client-core';\nimport { YvcOverlayService } from '@yuuvis/components/overlay';\nimport { map, Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\nimport { DeleteComponent } from './delete/delete.component';\n\nexport class DeleteAction extends AbstractContextAction implements Action {\n private translate = inject(TranslateService);\n private overlay = inject(YvcOverlayService);\n private retention = inject(RetentionService);\n\n id = BASE_ACTION.delete;\n label = this.translate.instant('yuv.action-menu.action.delete.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.delete.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.delete;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n const e = items[0];\n return of(e && !!e.permissions && e.permissions.deleteObject && !this.retention.getRetentionState(e).underRetention);\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n return this.overlay\n .open(DeleteComponent, {\n items,\n context: this.context\n })\n .afterClosed$.pipe(map(() => true));\n }\n}\n","import { inject } from '@angular/core';\nimport { DmsObject, DmsService, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class DownloadAction extends AbstractContextAction implements Action {\n private translate = inject(TranslateService);\n private dmsService = inject(DmsService);\n\n id = BASE_ACTION.download;\n label = this.translate.instant('yuv.action-menu.action.download.dms.object.content.label');\n description = this.translate.instant('yuv.action-menu.action.download.dms.object.content.description');\n priority = 2;\n icon = ACTION_ICON.download;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(selection: DmsObject[]) {\n const noContentMatch = (Array.isArray(selection) ? selection : [selection]).find((e) => !e.content);\n if (selection.length < 1) return of(false);\n return of(!noContentMatch);\n }\n\n run(selection: DmsObject[]): Observable<boolean> {\n this.dmsService.downloadContent(Array.isArray(selection) ? selection : [selection]);\n return of(true);\n }\n}\n","import { inject } from '@angular/core';\nimport { ClipboardService, DmsObject, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class CopyAction extends AbstractContextAction implements Action {\n private clipboardService = inject(ClipboardService);\n private translate = inject(TranslateService);\n\n id = BASE_ACTION.copy;\n label = this.translate.instant('yuv.action-menu.action.copy.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.copy.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.copy;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n const notAllowed = items.some((item) => !item.permissions?.writeIndexData);\n return of(items.length > 0 && !notAllowed);\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n this.clipboardService.addObjects(items, 'copy', this.context?.appId);\n return of(true);\n }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, Signal } from '@angular/core';\nimport { ListComponent, ListItemDirective } from '@yuuvis/client-framework/list';\nimport { YvcIconModule } from '@yuuvis/components/icon';\nimport { YvcOverlayRef } from '@yuuvis/components/overlay';\nimport { Action } from '../../actions.interface';\n\n@Component({\n selector: 'yuv-contextmenu',\n standalone: true,\n imports: [CommonModule, ListComponent, ListItemDirective, YvcIconModule, A11yModule],\n templateUrl: './contextmenu.component.html',\n styleUrl: './contextmenu.component.scss'\n})\nexport class ContextmenuComponent {\n private oRef = inject(YvcOverlayRef);\n actions: Signal<Action[]> = this.oRef.data.actions;\n callback: (action: Action) => void = this.oRef.data.callback;\n\n onItemSelect(index: number[]) {\n this.oRef?.close();\n this.callback(this.actions()[index[0]]);\n }\n}\n","<yuv-list (itemSelect)=\"onItemSelect($event)\" cdkTrapFocus>\n @for (a of actions(); track a.id) {\n <div yuvListItem><yvc-icon [svg]=\"a.icon\"></yvc-icon> {{ a.label }}</div>\n }\n</yuv-list>\n","import { inject } from '@angular/core';\nimport { ClipboardService, DmsObject, TranslateService } from '@yuuvis/client-core';\nimport { Observable, of } from 'rxjs';\nimport { ACTION_ICON } from '../../actions.icon';\nimport { AbstractContextAction, Action, ActionSupport, BASE_ACTION, SelectionRange } from '../../actions.interface';\n\nexport class CutAction extends AbstractContextAction implements Action {\n private clipboardService = inject(ClipboardService);\n private translate = inject(TranslateService);\n\n id = BASE_ACTION.cut;\n label = this.translate.instant('yuv.action-menu.action.cut.dms.object.label');\n description = this.translate.instant('yuv.action-menu.action.cut.dms.object.description');\n priority = 8;\n icon = ACTION_ICON.cut;\n group = 'common';\n range = SelectionRange.MULTI_SELECT;\n supports: ActionSupport = {\n pattern: '*'\n };\n\n isExecutable(items: DmsObject[]) {\n return of(items.length > 0 && items.every((item) => item.permissions?.writeContent && item.permissions?.writeIndexData && item.permissions?.deleteObject));\n }\n\n run(items: DmsObject[]): Observable<boolean> {\n this.clipboardService.addObjects(items, 'cut', this.context?.appId);\n return of(true);\n }\n}\n","import { Injectable, Injector, Signal, inject, runInInjectionContext } from '@angular/core';\nimport { DmsObject, Utils } from '@yuuvis/client-core';\nimport { Observable, forkJoin, map, of } from 'rxjs';\nimport { Action, ActionClass, ActionContext, ActionOptions } from './actions.interface';\nimport { DeleteAction } from './actions/delete-action/delete-action';\nimport { DownloadAction } from './actions/download-action/download-action';\nimport { CopyAction } from './actions/copy-action/copy-action';\nimport { YvcOverlayService } from '@yuuvis/components/overlay';\nimport { ContextmenuComponent } from './components/contextmenu/contextmenu.component';\nimport { FlexibleConnectedPositionStrategyOrigin } from '@angular/cdk/overlay';\nimport { CutAction } from './actions/cut-action/cut-action';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActionsService {\n private readonly injector = inject(Injector);\n private overlay = inject(YvcOverlayService);\n\n private _registeredActions: Record<string, ActionClass> = {};\n\n registerActions(a: { id: string; action: ActionClass }[]) {\n Array.isArray(a) && a.forEach((a) => (this._registeredActions[a.id] = a.action));\n }\n\n concealActions(actionIDs: string[]) {\n Array.isArray(actionIDs) && actionIDs.forEach((id) => delete this._registeredActions[id]);\n }\n\n /**\n * Returns all actions that are executable for the given selection.\n * @param selection Array of DmsObjects to check for executable actions\n * @param options options to filter the actions\n * @returns Observable of actions that are executable for the given selection\n */\n getActions(selection: DmsObject[], options?: ActionOptions): Observable<Action[]> {\n // TODO: check if selection is empty or if nessasery at all\n // if (!selection || selection.length === 0) return of([]);\n const s: Observable<{ action: Action; executable: boolean }>[] = this.getAvailableActions(options?.context)\n .filter((ac) =>\n options?.exclude\n ? Array.isArray(options.exclude)\n ? !options.exclude.includes(ac.id)\n : options.exclude instanceof RegExp\n ? !options.exclude.test(ac.id)\n : true\n : true\n )\n .map((action: Action) =>\n action.isExecutable(selection).pipe(\n map((executable: boolean) => ({\n action,\n executable\n }))\n )\n );\n\n return forkJoin(s).pipe(map((res: { action: Action; executable: boolean }[]) => res.filter((r) => r.executable).map((r) => r.action)));\n }\n\n /**\n * Get all available actions. This includes the default actions and all registered actions but\n * without checking if they are executable.\n * @param context Context passed to the actions\n * @returns Array of available actions\n */\n getAvailableActions(context?: ActionContext): Action[] {\n let a: Action[] = [];\n\n runInInjectionContext(this.injector, () => {\n a = [...this._getDefaulActions(context), ...Object.values(this._registeredActions).map((ac: ActionClass) => new ac(context))];\n });\n return a;\n }\n\n getActionsForType(objectTypeId: string, context?: ActionContext): Action[] {\n return this.getAvailableActions(context).filter((a: Action) => this._actionsSupportsType(a, objectTypeId));\n }\n\n getActionById(id: string, context?: ActionContext): Action | undefined {\n return this.getAvailableActions(context).find((a) => a.id === id);\n }\n\n getActionsById(ids: string[], context?: ActionContext): Action[] {\n return this.getAvailableActions(context).filter((a) => ids.includes(a.id));\n }\n\n openContextMenu(actions: Signal<Action[]>, callback: (action: Action) => void, element: FlexibleConnectedPositionStrategyOrigin) {\n this.overlay.open(ContextmenuComponent, { actions, callback }, {}, element);\n }\n\n private _actionsSupportsType(action: Action, objectTypeId: string): boolean {\n const matchesTypes = action.supports.types ? action.supports.types.includes(objectTypeId) : false;\n const matchesSOTs = action.supports.sots ? action.supports.sots.includes(objectTypeId) : false;\n const matchesPattern = action.supports.pattern ? Utils.patternToRegExp(action.supports.pattern).test(objectTypeId) : false;\n return matchesTypes || matchesSOTs || matchesPattern;\n }\n\n private _getDefaulActions(context?: ActionContext): Action[] {\n return [new DeleteAction(context), new DownloadAction(context), new CopyAction(context), new CutAction(context)];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TranslateModule","i1","i2"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, ElementRef, Directive, HostBinding, Input, EventEmitter, HostListener, Output, input, output, NgZone, contentChildren, computed, viewChild, contentChild, Component, forwardRef } from '@angular/core';
3
- import { Utils } from '@yuuvis/client-core';
2
+ import { inject, ElementRef, Directive, HostBinding, Input, EventEmitter, HostListener, Output, input, output, NgZone, contentChildren, computed, viewChild, contentChild, Component, forwardRef, Injectable } from '@angular/core';
3
+ import { Utils, TranslateService } from '@yuuvis/client-core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { Subject, fromEvent, merge, timer, of, filter as filter$1 } from 'rxjs';
6
6
  import { debounceTime, filter, map, switchMap } from 'rxjs/operators';
@@ -567,7 +567,7 @@ class DragSelectDirective {
567
567
  #selectStartY;
568
568
  #selection;
569
569
  onPointerDown(event) {
570
- if (this.yuvDragSelect()?.disabled)
570
+ if (this.yuvDragSelect()?.disabled || event.target.tagName === 'BUTTON')
571
571
  return;
572
572
  event.preventDefault();
573
573
  this.#selectStartX = event.pageX;
@@ -1012,9 +1012,74 @@ function injectNgControl() {
1012
1012
  throw new Error('...');
1013
1013
  }
1014
1014
 
1015
+ class ErrorMessagesService {
1016
+ constructor() {
1017
+ this.translate = inject(TranslateService);
1018
+ }
1019
+ getErrorLabel(error, params) {
1020
+ console.log('getErrorLabel', error, params);
1021
+ switch (error) {
1022
+ case 'daterange':
1023
+ return this.translate.instant('yuv.object-form-element.error.daterange.invalid', params);
1024
+ case 'daterangeorder':
1025
+ return this.translate.instant('yuv.object-form-element.error.daterangeorder.invalid', params);
1026
+ case 'numberrange':
1027
+ return this.translate.instant('yuv.object-form-element.error.numberrange.invalid', params);
1028
+ case 'numberrangeorder':
1029
+ return this.translate.instant('yuv.object-form-element.error.numberrangeorder.invalid', params);
1030
+ case 'number':
1031
+ return this.translate.instant('yuv.object-form-element.error.number', params);
1032
+ case 'precision':
1033
+ return this.translate.instant('yuv.object-form-element.error.number.precision', params);
1034
+ case 'scale':
1035
+ return this.translate.instant('yuv.object-form-element.error.number.scale', params);
1036
+ case 'regex':
1037
+ return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);
1038
+ case 'pattern':
1039
+ return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);
1040
+ case 'classif icationemail':
1041
+ return this.translate.instant('yuv.object-form-element.error.string.classification.email', params);
1042
+ case 'classificationphone':
1043
+ return this.translate.instant('yuv.object-form-element.error.string.classification.phone', params);
1044
+ case 'classificationurl':
1045
+ return this.translate.instant('yuv.object-form-element.error.string.classification.url', params);
1046
+ case 'onlyWhitespaces':
1047
+ return this.translate.instant('yuv.object-form-element.error.string.whitespaces', params);
1048
+ case 'datecontrol':
1049
+ return this.translate.instant('yuv.object-form-element.error.date.invalid', params);
1050
+ case 'required':
1051
+ console.log('required', params);
1052
+ return this.translate.instant('yuv.object-form-element.error.required', params);
1053
+ case 'maxlength':
1054
+ return this.translate.instant('yuv.object-form-element.error.maxlength', params);
1055
+ case 'minlength':
1056
+ return this.translate.instant('yuv.object-form-element.error.minlength', params);
1057
+ case 'minmax':
1058
+ return this.translate.instant('yuv.object-form-element.error.minmax', params);
1059
+ case 'minvalue':
1060
+ return this.translate.instant('yuv.object-form-element.error.minvalue', params);
1061
+ case 'maxvalue':
1062
+ return this.translate.instant('yuv.object-form-element.error.maxvalue', params);
1063
+ case 'empty':
1064
+ return this.translate.instant('yuv.object-form-element.recent-activities.list.empty', params);
1065
+ default:
1066
+ console.log('default', error, params);
1067
+ return this.translate.instant(error, params);
1068
+ }
1069
+ }
1070
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ErrorMessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1071
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ErrorMessagesService, providedIn: 'root' }); }
1072
+ }
1073
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ErrorMessagesService, decorators: [{
1074
+ type: Injectable,
1075
+ args: [{
1076
+ providedIn: 'root'
1077
+ }]
1078
+ }] });
1079
+
1015
1080
  /**
1016
1081
  * Generated bundle index. Do not edit.
1017
1082
  */
1018
1083
 
1019
- export { BusyOverlayDirective, ClickDoubleDirective, ContainerSizeDirective, DragSelectDirective, DragSelectItemDirective, FileDropZoneDirective, FocusIndicatorComponent, FocusWithinDirective, LightDismissDirective, LongPressDirective, NoopValueAccessorDirective, TokenInputComponent, injectNgControl };
1084
+ export { BusyOverlayDirective, ClickDoubleDirective, ContainerSizeDirective, DragSelectDirective, DragSelectItemDirective, ErrorMessagesService, FileDropZoneDirective, FocusIndicatorComponent, FocusWithinDirective, LightDismissDirective, LongPressDirective, NoopValueAccessorDirective, TokenInputComponent, injectNgControl };
1020
1085
  //# sourceMappingURL=yuuvis-client-framework-common.mjs.map