cax-design-system 2.3.0 → 2.4.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 (48) hide show
  1. package/README.md +1 -1
  2. package/calendar/calendar.d.ts +2 -1
  3. package/esm2022/autocomplete/autocomplete.mjs +2 -2
  4. package/esm2022/calendar/calendar.mjs +8 -3
  5. package/esm2022/image/image.mjs +3 -3
  6. package/esm2022/logo/logo.mjs +1 -1
  7. package/esm2022/navigation/navigation.mjs +33 -6
  8. package/esm2022/overlaypanel/overlaypanel.mjs +2 -2
  9. package/esm2022/table/components/column-filter-form-element/column-filter-form-element.mjs +2 -2
  10. package/esm2022/tableconfiguration/cax-design-system-tableconfiguration.mjs +5 -0
  11. package/esm2022/tableconfiguration/public_api.mjs +3 -0
  12. package/esm2022/tableconfiguration/tableconfiguration.mjs +55 -0
  13. package/esm2022/tableconfiguration/tableconfiguration.module.mjs +16 -0
  14. package/fesm2022/cax-design-system-autocomplete.mjs +2 -2
  15. package/fesm2022/cax-design-system-autocomplete.mjs.map +1 -1
  16. package/fesm2022/cax-design-system-calendar.mjs +7 -2
  17. package/fesm2022/cax-design-system-calendar.mjs.map +1 -1
  18. package/fesm2022/cax-design-system-image.mjs +2 -2
  19. package/fesm2022/cax-design-system-image.mjs.map +1 -1
  20. package/fesm2022/cax-design-system-logo.mjs.map +1 -1
  21. package/fesm2022/cax-design-system-navigation.mjs +32 -5
  22. package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
  23. package/fesm2022/cax-design-system-overlaypanel.mjs +2 -2
  24. package/fesm2022/cax-design-system-table.mjs +1 -1
  25. package/fesm2022/cax-design-system-table.mjs.map +1 -1
  26. package/fesm2022/cax-design-system-tableconfiguration.mjs +75 -0
  27. package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -0
  28. package/image/image.d.ts +2 -2
  29. package/logo/logo.d.ts +1 -1
  30. package/navigation/navigation.d.ts +11 -1
  31. package/package.json +174 -168
  32. package/resources/cax.min.scss +1 -1
  33. package/resources/cax.scss +44 -50
  34. package/resources/components/autocomplete/autocomplete.scss +4 -6
  35. package/resources/components/calendar/calendar.scss +19 -2
  36. package/resources/components/image/image.scss +4 -9
  37. package/resources/components/navigation/navigation.scss +16 -42
  38. package/resources/components/overlaypanel/overlaypanel.scss +1 -1
  39. package/resources/components/tableconfiguration/tableconfiguration.scss +115 -0
  40. package/resources/logo/dataX-dark.svg +11 -11
  41. package/resources/logo/dataX-icon-dark.svg +4 -5
  42. package/resources/logo/dataX-icon.svg +4 -5
  43. package/resources/logo/dataX.svg +11 -11
  44. package/tableconfiguration/index.d.ts +5 -0
  45. package/tableconfiguration/public_api.d.ts +2 -0
  46. package/tableconfiguration/tableconfiguration.d.ts +15 -0
  47. package/tableconfiguration/tableconfiguration.module.d.ts +7 -0
  48. package/resources/logo/usercard.png +0 -0
@@ -335,7 +335,7 @@ class Image {
335
335
  };
336
336
  }
337
337
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Image, deps: [{ token: DOCUMENT }, { token: i1.caxConfig }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
338
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: Image, isStandalone: true, selector: "cax-image", inputs: { imageClass: "imageClass", imageStyle: "imageStyle", styleClass: "styleClass", style: "style", src: "src", srcSet: "srcSet", sizes: "sizes", size: "size", previewImageSrc: "previewImageSrc", previewImageSrcSet: "previewImageSrcSet", previewImageSizes: "previewImageSizes", alt: "alt", width: "width", height: "height", loading: "loading", appendTo: "appendTo", preview: ["preview", "preview", booleanAttribute], showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions" }, outputs: { onShow: "onShow", onHide: "onHide", onImageError: "onImageError" }, host: { listeners: { "document:keydown.escape": "onKeydownHandler($event)" }, classAttribute: "cax-element" }, queries: [{ propertyName: "templates", predicate: CaxTemplate }], viewQueries: [{ propertyName: "mask", first: true, predicate: ["mask"], descendants: true }, { propertyName: "previewButton", first: true, predicate: ["previewButton"], descendants: true }, { propertyName: "closeButton", first: true, predicate: ["closeButton"], descendants: true }], ngImport: i0, template: "<span [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\">\r\n <img\r\n [attr.src]=\"src\"\r\n [attr.srcset]=\"srcSet\"\r\n [attr.sizes]=\"sizes\"\r\n [attr.alt]=\"alt\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height\"\r\n [attr.loading]=\"loading\"\r\n [ngStyle]=\"imageStyle\"\r\n [class]=\"imageClass\"\r\n [ngClass]=\"sizeClass()\"\r\n (error)=\"imageError($event)\"\r\n />\r\n <button *ngIf=\"preview\" [attr.aria-label]=\"zoomImageAriaLabel\" type=\"button\" class=\"cax-image-preview-indicator\" (click)=\"onImageClick()\" #previewButton [ngStyle]=\"{ height: height + 'px', width: width + 'px', border: 'none' }\">\r\n <ng-container *ngIf=\"indicatorTemplate; else defaultTemplate\">\r\n <ng-container *ngTemplateOutlet=\"indicatorTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultTemplate>\r\n <EyeIcon [styleClass]=\"'cax-image-preview-icon'\" />\r\n </ng-template>\r\n </button>\r\n <div #mask class=\"cax-image-mask cax-component-overlay cax-component-overlay-enter\" *ngIf=\"maskVisible\" [attr.aria-modal]=\"maskVisible\" role=\"dialog\" (click)=\"onMaskClick()\" (keydown)=\"onMaskKeydown($event)\" pFocusTrap>\r\n <div class=\"cax-image-toolbar\" (click)=\"handleToolbarClick($event)\">\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateRight()\" type=\"button\" [attr.aria-label]=\"rightAriaLabel()\">\r\n <RefreshIcon *ngIf=\"!rotateRightIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateRightIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateLeft()\" type=\"button\" [attr.aria-label]=\"leftAriaLabel()\">\r\n <UndoIcon *ngIf=\"!rotateLeftIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateLeftIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled\" [attr.aria-label]=\"zoomOutAriaLabel()\">\r\n <SearchMinusIcon *ngIf=\"!zoomOutIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomOutIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled\" [attr.aria-label]=\"zoomInAriaLabel()\">\r\n <SearchPlusIcon *ngIf=\"!zoomInIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomInIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" type=\"button\" (click)=\"closePreview()\" [attr.aria-label]=\"closeAriaLabel()\" #closeButton>\r\n <TimesIcon *ngIf=\"!closeIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"closeIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"previewVisible\"\r\n [@animation]=\"{ value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\"\r\n (@animation.start)=\"onAnimationStart($event)\"\r\n (@animation.done)=\"onAnimationEnd($event)\"\r\n >\r\n <img [attr.src]=\"previewImageSrc ? previewImageSrc : src\" [attr.srcset]=\"previewImageSrcSet\" [attr.sizes]=\"previewImageSizes\" class=\"cax-image-preview\" [ngStyle]=\"imagePreviewStyle()\" (click)=\"onPreviewImageClick()\" />\r\n </div>\r\n </div>\r\n</span>\r\n", styles: ["@layer cax{.cax-image-mask{display:flex;align-items:center;justify-content:center}.cax-image-preview-container{position:relative;display:inline-block;line-height:0}.cax-image-preview-indicator{position:absolute;left:0;top:0;width:100%;height:100%;outline:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.cax-image-preview-icon.pi{font-size:1.5rem}.cax-image-preview-icon.cax-icon{scale:1.5}.cax-image-preview-container:hover>.cax-image-preview-indicator{opacity:1;cursor:pointer}.cax-image-preview-container>img{cursor:pointer}.cax-image-toolbar{position:absolute;top:0;right:0;display:flex;z-index:1}.cax-image-action.cax-link{display:flex;justify-content:center;align-items:center}.cax-image-action.cax-link[disabled]{opacity:.5}.cax-image-preview{transition:transform .15s;max-width:100vw;max-height:100vh}.cax-image-xsm{height:40px;width:auto}.cax-image-sm{height:80px;width:auto}.cax-image-md{height:120px;width:auto}.cax-image-lg{height:160px;width:auto}.cax-image-xl{height:200px;width:auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: RefreshIcon, selector: "RefreshIcon" }, { kind: "component", type: EyeIcon, selector: "EyeIcon" }, { kind: "component", type: UndoIcon, selector: "UndoIcon" }, { kind: "component", type: SearchMinusIcon, selector: "SearchMinusIcon" }, { kind: "component", type: SearchPlusIcon, selector: "SearchPlusIcon" }, { kind: "component", type: TimesIcon, selector: "TimesIcon" }, { kind: "ngmodule", type: FocusTrapModule }], animations: [
338
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.9", type: Image, isStandalone: true, selector: "cax-image", inputs: { imageClass: "imageClass", imageStyle: "imageStyle", styleClass: "styleClass", style: "style", src: "src", srcSet: "srcSet", sizes: "sizes", size: "size", previewImageSrc: "previewImageSrc", previewImageSrcSet: "previewImageSrcSet", previewImageSizes: "previewImageSizes", alt: "alt", width: "width", height: "height", loading: "loading", appendTo: "appendTo", preview: ["preview", "preview", booleanAttribute], showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions" }, outputs: { onShow: "onShow", onHide: "onHide", onImageError: "onImageError" }, host: { listeners: { "document:keydown.escape": "onKeydownHandler($event)" }, classAttribute: "cax-element" }, queries: [{ propertyName: "templates", predicate: CaxTemplate }], viewQueries: [{ propertyName: "mask", first: true, predicate: ["mask"], descendants: true }, { propertyName: "previewButton", first: true, predicate: ["previewButton"], descendants: true }, { propertyName: "closeButton", first: true, predicate: ["closeButton"], descendants: true }], ngImport: i0, template: "<span [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\">\r\n <img\r\n [attr.src]=\"src\"\r\n [attr.srcset]=\"srcSet\"\r\n [attr.sizes]=\"sizes\"\r\n [attr.alt]=\"alt\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height\"\r\n [attr.loading]=\"loading\"\r\n [ngStyle]=\"imageStyle\"\r\n [class]=\"imageClass\"\r\n [ngClass]=\"sizeClass()\"\r\n (error)=\"imageError($event)\"\r\n />\r\n <button *ngIf=\"preview\" [attr.aria-label]=\"zoomImageAriaLabel\" type=\"button\" class=\"cax-image-preview-indicator\" (click)=\"onImageClick()\" #previewButton [ngStyle]=\"{ height: height + 'px', width: width + 'px', border: 'none' }\">\r\n <ng-container *ngIf=\"indicatorTemplate; else defaultTemplate\">\r\n <ng-container *ngTemplateOutlet=\"indicatorTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultTemplate>\r\n <EyeIcon [styleClass]=\"'cax-image-preview-icon'\" />\r\n </ng-template>\r\n </button>\r\n <div #mask class=\"cax-image-mask cax-component-overlay cax-component-overlay-enter\" *ngIf=\"maskVisible\" [attr.aria-modal]=\"maskVisible\" role=\"dialog\" (click)=\"onMaskClick()\" (keydown)=\"onMaskKeydown($event)\" pFocusTrap>\r\n <div class=\"cax-image-toolbar\" (click)=\"handleToolbarClick($event)\">\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateRight()\" type=\"button\" [attr.aria-label]=\"rightAriaLabel()\">\r\n <RefreshIcon *ngIf=\"!rotateRightIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateRightIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateLeft()\" type=\"button\" [attr.aria-label]=\"leftAriaLabel()\">\r\n <UndoIcon *ngIf=\"!rotateLeftIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateLeftIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled\" [attr.aria-label]=\"zoomOutAriaLabel()\">\r\n <SearchMinusIcon *ngIf=\"!zoomOutIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomOutIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled\" [attr.aria-label]=\"zoomInAriaLabel()\">\r\n <SearchPlusIcon *ngIf=\"!zoomInIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomInIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" type=\"button\" (click)=\"closePreview()\" [attr.aria-label]=\"closeAriaLabel()\" #closeButton>\r\n <TimesIcon *ngIf=\"!closeIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"closeIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"previewVisible\"\r\n [@animation]=\"{ value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\"\r\n (@animation.start)=\"onAnimationStart($event)\"\r\n (@animation.done)=\"onAnimationEnd($event)\"\r\n >\r\n <img [attr.src]=\"previewImageSrc ? previewImageSrc : src\" [attr.srcset]=\"previewImageSrcSet\" [attr.sizes]=\"previewImageSizes\" class=\"cax-image-preview\" [ngStyle]=\"imagePreviewStyle()\" (click)=\"onPreviewImageClick()\" />\r\n </div>\r\n </div>\r\n</span>\r\n", styles: ["@layer cax{.cax-image-mask{display:flex;align-items:center;justify-content:center}.cax-image-preview-container{position:relative;display:inline-block;line-height:0}.cax-image-preview-indicator{position:absolute;left:0;top:0;width:100%;height:100%;outline:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.cax-image-preview-icon.pi{font-size:1.5rem}.cax-image-preview-icon.cax-icon{scale:1.5}.cax-image-preview-container:hover>.cax-image-preview-indicator{opacity:1;cursor:pointer}.cax-image-preview-container>img{cursor:pointer}.cax-image-toolbar{position:absolute;top:0;right:0;display:flex;z-index:1}.cax-image-action.cax-link{display:flex;justify-content:center;align-items:center}.cax-image-action.cax-link[disabled]{opacity:.5}.cax-image-preview{transition:transform .15s;max-width:100vw;max-height:100vh}.cax-image-sm{height:32px;width:auto}.cax-image-md{height:40px;width:auto}.cax-image-lg{height:48px;width:auto}.cax-image-xl{height:56px;width:auto}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: RefreshIcon, selector: "RefreshIcon" }, { kind: "component", type: EyeIcon, selector: "EyeIcon" }, { kind: "component", type: UndoIcon, selector: "UndoIcon" }, { kind: "component", type: SearchMinusIcon, selector: "SearchMinusIcon" }, { kind: "component", type: SearchPlusIcon, selector: "SearchPlusIcon" }, { kind: "component", type: TimesIcon, selector: "TimesIcon" }, { kind: "ngmodule", type: FocusTrapModule }], animations: [
339
339
  trigger('animation', [
340
340
  transition('void => visible', [style({ transform: 'scale(0.7)', opacity: 0 }), animate('{{showTransitionParams}}')]),
341
341
  transition('visible => void', [animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))])
@@ -351,7 +351,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
351
351
  ])
352
352
  ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, FocusTrapModule], host: {
353
353
  class: 'cax-element'
354
- }, template: "<span [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\">\r\n <img\r\n [attr.src]=\"src\"\r\n [attr.srcset]=\"srcSet\"\r\n [attr.sizes]=\"sizes\"\r\n [attr.alt]=\"alt\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height\"\r\n [attr.loading]=\"loading\"\r\n [ngStyle]=\"imageStyle\"\r\n [class]=\"imageClass\"\r\n [ngClass]=\"sizeClass()\"\r\n (error)=\"imageError($event)\"\r\n />\r\n <button *ngIf=\"preview\" [attr.aria-label]=\"zoomImageAriaLabel\" type=\"button\" class=\"cax-image-preview-indicator\" (click)=\"onImageClick()\" #previewButton [ngStyle]=\"{ height: height + 'px', width: width + 'px', border: 'none' }\">\r\n <ng-container *ngIf=\"indicatorTemplate; else defaultTemplate\">\r\n <ng-container *ngTemplateOutlet=\"indicatorTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultTemplate>\r\n <EyeIcon [styleClass]=\"'cax-image-preview-icon'\" />\r\n </ng-template>\r\n </button>\r\n <div #mask class=\"cax-image-mask cax-component-overlay cax-component-overlay-enter\" *ngIf=\"maskVisible\" [attr.aria-modal]=\"maskVisible\" role=\"dialog\" (click)=\"onMaskClick()\" (keydown)=\"onMaskKeydown($event)\" pFocusTrap>\r\n <div class=\"cax-image-toolbar\" (click)=\"handleToolbarClick($event)\">\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateRight()\" type=\"button\" [attr.aria-label]=\"rightAriaLabel()\">\r\n <RefreshIcon *ngIf=\"!rotateRightIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateRightIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateLeft()\" type=\"button\" [attr.aria-label]=\"leftAriaLabel()\">\r\n <UndoIcon *ngIf=\"!rotateLeftIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateLeftIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled\" [attr.aria-label]=\"zoomOutAriaLabel()\">\r\n <SearchMinusIcon *ngIf=\"!zoomOutIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomOutIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled\" [attr.aria-label]=\"zoomInAriaLabel()\">\r\n <SearchPlusIcon *ngIf=\"!zoomInIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomInIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" type=\"button\" (click)=\"closePreview()\" [attr.aria-label]=\"closeAriaLabel()\" #closeButton>\r\n <TimesIcon *ngIf=\"!closeIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"closeIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"previewVisible\"\r\n [@animation]=\"{ value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\"\r\n (@animation.start)=\"onAnimationStart($event)\"\r\n (@animation.done)=\"onAnimationEnd($event)\"\r\n >\r\n <img [attr.src]=\"previewImageSrc ? previewImageSrc : src\" [attr.srcset]=\"previewImageSrcSet\" [attr.sizes]=\"previewImageSizes\" class=\"cax-image-preview\" [ngStyle]=\"imagePreviewStyle()\" (click)=\"onPreviewImageClick()\" />\r\n </div>\r\n </div>\r\n</span>\r\n", styles: ["@layer cax{.cax-image-mask{display:flex;align-items:center;justify-content:center}.cax-image-preview-container{position:relative;display:inline-block;line-height:0}.cax-image-preview-indicator{position:absolute;left:0;top:0;width:100%;height:100%;outline:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.cax-image-preview-icon.pi{font-size:1.5rem}.cax-image-preview-icon.cax-icon{scale:1.5}.cax-image-preview-container:hover>.cax-image-preview-indicator{opacity:1;cursor:pointer}.cax-image-preview-container>img{cursor:pointer}.cax-image-toolbar{position:absolute;top:0;right:0;display:flex;z-index:1}.cax-image-action.cax-link{display:flex;justify-content:center;align-items:center}.cax-image-action.cax-link[disabled]{opacity:.5}.cax-image-preview{transition:transform .15s;max-width:100vw;max-height:100vh}.cax-image-xsm{height:40px;width:auto}.cax-image-sm{height:80px;width:auto}.cax-image-md{height:120px;width:auto}.cax-image-lg{height:160px;width:auto}.cax-image-xl{height:200px;width:auto}}\n"] }]
354
+ }, template: "<span [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\">\r\n <img\r\n [attr.src]=\"src\"\r\n [attr.srcset]=\"srcSet\"\r\n [attr.sizes]=\"sizes\"\r\n [attr.alt]=\"alt\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height\"\r\n [attr.loading]=\"loading\"\r\n [ngStyle]=\"imageStyle\"\r\n [class]=\"imageClass\"\r\n [ngClass]=\"sizeClass()\"\r\n (error)=\"imageError($event)\"\r\n />\r\n <button *ngIf=\"preview\" [attr.aria-label]=\"zoomImageAriaLabel\" type=\"button\" class=\"cax-image-preview-indicator\" (click)=\"onImageClick()\" #previewButton [ngStyle]=\"{ height: height + 'px', width: width + 'px', border: 'none' }\">\r\n <ng-container *ngIf=\"indicatorTemplate; else defaultTemplate\">\r\n <ng-container *ngTemplateOutlet=\"indicatorTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultTemplate>\r\n <EyeIcon [styleClass]=\"'cax-image-preview-icon'\" />\r\n </ng-template>\r\n </button>\r\n <div #mask class=\"cax-image-mask cax-component-overlay cax-component-overlay-enter\" *ngIf=\"maskVisible\" [attr.aria-modal]=\"maskVisible\" role=\"dialog\" (click)=\"onMaskClick()\" (keydown)=\"onMaskKeydown($event)\" pFocusTrap>\r\n <div class=\"cax-image-toolbar\" (click)=\"handleToolbarClick($event)\">\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateRight()\" type=\"button\" [attr.aria-label]=\"rightAriaLabel()\">\r\n <RefreshIcon *ngIf=\"!rotateRightIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateRightIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateLeft()\" type=\"button\" [attr.aria-label]=\"leftAriaLabel()\">\r\n <UndoIcon *ngIf=\"!rotateLeftIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateLeftIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled\" [attr.aria-label]=\"zoomOutAriaLabel()\">\r\n <SearchMinusIcon *ngIf=\"!zoomOutIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomOutIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled\" [attr.aria-label]=\"zoomInAriaLabel()\">\r\n <SearchPlusIcon *ngIf=\"!zoomInIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomInIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" type=\"button\" (click)=\"closePreview()\" [attr.aria-label]=\"closeAriaLabel()\" #closeButton>\r\n <TimesIcon *ngIf=\"!closeIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"closeIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"previewVisible\"\r\n [@animation]=\"{ value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\"\r\n (@animation.start)=\"onAnimationStart($event)\"\r\n (@animation.done)=\"onAnimationEnd($event)\"\r\n >\r\n <img [attr.src]=\"previewImageSrc ? previewImageSrc : src\" [attr.srcset]=\"previewImageSrcSet\" [attr.sizes]=\"previewImageSizes\" class=\"cax-image-preview\" [ngStyle]=\"imagePreviewStyle()\" (click)=\"onPreviewImageClick()\" />\r\n </div>\r\n </div>\r\n</span>\r\n", styles: ["@layer cax{.cax-image-mask{display:flex;align-items:center;justify-content:center}.cax-image-preview-container{position:relative;display:inline-block;line-height:0}.cax-image-preview-indicator{position:absolute;left:0;top:0;width:100%;height:100%;outline:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}.cax-image-preview-icon.pi{font-size:1.5rem}.cax-image-preview-icon.cax-icon{scale:1.5}.cax-image-preview-container:hover>.cax-image-preview-indicator{opacity:1;cursor:pointer}.cax-image-preview-container>img{cursor:pointer}.cax-image-toolbar{position:absolute;top:0;right:0;display:flex;z-index:1}.cax-image-action.cax-link{display:flex;justify-content:center;align-items:center}.cax-image-action.cax-link[disabled]{opacity:.5}.cax-image-preview{transition:transform .15s;max-width:100vw;max-height:100vh}.cax-image-sm{height:32px;width:auto}.cax-image-md{height:40px;width:auto}.cax-image-lg{height:48px;width:auto}.cax-image-xl{height:56px;width:auto}}\n"] }]
355
355
  }], ctorParameters: () => [{ type: Document, decorators: [{
356
356
  type: Inject,
357
357
  args: [DOCUMENT]
@@ -1 +1 @@
1
- {"version":3,"file":"cax-design-system-image.mjs","sources":["../../src/app/components/image/image.ts","../../src/app/components/image/image.html","../../src/app/components/image/image.module.ts","../../src/app/components/image/cax-design-system-image.ts"],"sourcesContent":["import { AnimationEvent, animate, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n NgModule,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute\n} from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { caxConfig, CaxTemplate, SharedModule } from 'cax-design-system/api';\nimport { DomHandler } from 'cax-design-system/dom';\nimport { EyeIcon } from 'cax-design-system/icons/eye';\nimport { RefreshIcon } from 'cax-design-system/icons/refresh';\nimport { SearchMinusIcon } from 'cax-design-system/icons/searchminus';\nimport { SearchPlusIcon } from 'cax-design-system/icons/searchplus';\nimport { TimesIcon } from 'cax-design-system/icons/times';\nimport { UndoIcon } from 'cax-design-system/icons/undo';\nimport { ZIndexUtils } from 'cax-design-system/utils';\nimport { Nullable } from 'cax-design-system/ts-helpers';\nimport { FocusTrapModule } from 'cax-design-system/focustrap';\n\n/**\n * Displays an image with preview and tranformation options. For multiple image, see Galleria.\n * @group Components\n */\n@Component({\n selector: 'cax-image',\n templateUrl: './image.html',\n animations: [\n trigger('animation', [\n transition('void => visible', [style({ transform: 'scale(0.7)', opacity: 0 }), animate('{{showTransitionParams}}')]),\n transition('visible => void', [animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, FocusTrapModule],\n styleUrls: ['./image.scss'],\n host: {\n class: 'cax-element'\n }\n})\nexport class Image implements AfterContentInit {\n /**\n * Style class of the image element.\n * @group Props\n */\n @Input() imageClass: string | undefined;\n /**\n * Inline style of the image element.\n * @group Props\n */\n @Input() imageStyle: { [klass: string]: any } | null | undefined;\n /**\n * Class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * The source path for the main image.\n * @group Props\n */\n @Input() src: string | SafeUrl | undefined;\n /**\n * The srcset definition for the main image.\n * @group Props\n */\n @Input() srcSet: string | SafeUrl | undefined;\n /**\n * The sizes definition for the main image.\n * @group Props\n */\n @Input() sizes: 'string' | undefined;\n /**\n * The source path for the preview image.\n * @group Props\n */\n @Input() size: 'xsm' | 'sm' | 'md' | 'lg' | 'xl' | undefined;\n /**\n * The source path for the preview image.\n * @group Props\n */\n @Input() previewImageSrc: string | SafeUrl | undefined;\n /**\n * The srcset definition for the preview image.\n * @group Props\n */\n @Input() previewImageSrcSet: string | SafeUrl | undefined;\n /**\n * The sizes definition for the preview image.\n * @group Props\n */\n @Input() previewImageSizes: string | undefined;\n /**\n * Attribute of the preview image element.\n * @group Props\n */\n @Input() alt: string | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() width: string | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() height: string | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() loading: 'lazy' | 'eager' | undefined;\n /**\n * Target element to attach the dialog, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * Controls the preview functionality.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) preview: boolean = false;\n /**\n * Transition options of the show animation\n * @group Props\n */\n @Input() showTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation\n * @group Props\n */\n @Input() hideTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Triggered when the preview overlay is shown.\n * @group Emits\n */\n @Output() onShow: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Triggered when the preview overlay is hidden.\n * @group Emits\n */\n @Output() onHide: EventEmitter<any> = new EventEmitter<any>();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onImageError: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('mask') mask: ElementRef | undefined;\n\n @ViewChild('previewButton') previewButton: ElementRef | undefined;\n\n @ViewChild('closeButton') closeButton: ElementRef | undefined;\n\n @ContentChildren(CaxTemplate) templates: QueryList<CaxTemplate> | undefined;\n\n indicatorTemplate: TemplateRef<any> | undefined;\n\n rotateRightIconTemplate: TemplateRef<any> | undefined;\n\n rotateLeftIconTemplate: TemplateRef<any> | undefined;\n\n zoomOutIconTemplate: TemplateRef<any> | undefined;\n\n zoomInIconTemplate: TemplateRef<any> | undefined;\n\n closeIconTemplate: TemplateRef<any> | undefined;\n\n maskVisible: boolean = false;\n\n previewVisible: boolean = false;\n\n rotate: number = 0;\n\n scale: number = 1;\n\n previewClick: boolean = false;\n\n container: Nullable<HTMLElement>;\n\n wrapper: Nullable<HTMLElement>;\n\n public get isZoomOutDisabled(): boolean {\n return this.scale - this.zoomSettings.step <= this.zoomSettings.min;\n }\n\n public get isZoomInDisabled(): boolean {\n return this.scale + this.zoomSettings.step >= this.zoomSettings.max;\n }\n\n private zoomSettings = {\n default: 1,\n step: 0.1,\n max: 1.5,\n min: 0.5\n };\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private config: caxConfig,\n private cd: ChangeDetectorRef,\n public el: ElementRef\n ) {}\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'indicator':\n this.indicatorTemplate = item.template;\n break;\n\n case 'rotaterighticon':\n this.rotateRightIconTemplate = item.template;\n break;\n\n case 'rotatelefticon':\n this.rotateLeftIconTemplate = item.template;\n break;\n\n case 'zoomouticon':\n this.zoomOutIconTemplate = item.template;\n break;\n\n case 'zoominicon':\n this.zoomInIconTemplate = item.template;\n break;\n\n case 'closeicon':\n this.closeIconTemplate = item.template;\n break;\n\n default:\n this.indicatorTemplate = item.template;\n break;\n }\n });\n }\n\n onImageClick() {\n if (this.preview) {\n this.maskVisible = true;\n this.previewVisible = true;\n DomHandler.blockBodyScroll();\n }\n }\n\n onMaskClick() {\n if (!this.previewClick) {\n this.closePreview();\n }\n\n this.previewClick = false;\n }\n\n onMaskKeydown(event) {\n switch (event.code) {\n case 'Escape':\n this.onMaskClick();\n setTimeout(() => {\n DomHandler.focus(this.previewButton.nativeElement);\n }, 25);\n event.preventDefault();\n\n break;\n\n default:\n break;\n }\n }\n\n onPreviewImageClick() {\n this.previewClick = true;\n }\n\n rotateRight() {\n this.rotate += 90;\n this.previewClick = true;\n }\n\n rotateLeft() {\n this.rotate -= 90;\n this.previewClick = true;\n }\n\n zoomIn() {\n this.scale = this.scale + this.zoomSettings.step;\n this.previewClick = true;\n }\n\n zoomOut() {\n this.scale = this.scale - this.zoomSettings.step;\n this.previewClick = true;\n }\n\n onAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.container = event.element;\n this.wrapper = this.container?.parentElement;\n this.appendContainer();\n this.moveOnTop();\n\n setTimeout(() => {\n DomHandler.focus(this.closeButton.nativeElement);\n }, 25);\n break;\n\n case 'void':\n DomHandler.addClass(this.wrapper, 'cax-component-overlay-leave');\n break;\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'void':\n ZIndexUtils.clear(this.wrapper);\n this.maskVisible = false;\n this.container = null;\n this.wrapper = null;\n this.cd.markForCheck();\n this.onHide.emit({});\n break;\n case 'visible':\n this.onShow.emit({});\n break;\n }\n }\n\n moveOnTop() {\n ZIndexUtils.set('modal', this.wrapper, this.config.zIndex.modal);\n }\n\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body') this.document.body.appendChild(this.wrapper as HTMLElement);\n else DomHandler.appendChild(this.wrapper, this.appendTo);\n }\n }\n\n imagePreviewStyle() {\n return { transform: 'rotate(' + this.rotate + 'deg) scale(' + this.scale + ')' };\n }\n\n get zoomImageAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.zoomImage : undefined;\n }\n\n containerClass() {\n return {\n 'cax-image cax-component': true,\n 'cax-image-preview-container': this.preview\n };\n }\n\n handleToolbarClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n closePreview(): void {\n this.previewVisible = false;\n this.rotate = 0;\n this.scale = this.zoomSettings.default;\n DomHandler.unblockBodyScroll();\n }\n\n imageError(event: Event) {\n this.onImageError.emit(event);\n }\n\n rightAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.rotateRight : undefined;\n }\n\n leftAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.rotateLeft : undefined;\n }\n\n zoomInAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.zoomIn : undefined;\n }\n\n zoomOutAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.zoomOut : undefined;\n }\n\n closeAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.close : undefined;\n }\n\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n if (this.previewVisible) {\n this.closePreview();\n }\n }\n\n // custom methods\n sizeClass() {\n return {\n [`cax-image-${this.size}`]: this.size\n };\n }\n}\n","<span [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\">\r\n <img\r\n [attr.src]=\"src\"\r\n [attr.srcset]=\"srcSet\"\r\n [attr.sizes]=\"sizes\"\r\n [attr.alt]=\"alt\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height\"\r\n [attr.loading]=\"loading\"\r\n [ngStyle]=\"imageStyle\"\r\n [class]=\"imageClass\"\r\n [ngClass]=\"sizeClass()\"\r\n (error)=\"imageError($event)\"\r\n />\r\n <button *ngIf=\"preview\" [attr.aria-label]=\"zoomImageAriaLabel\" type=\"button\" class=\"cax-image-preview-indicator\" (click)=\"onImageClick()\" #previewButton [ngStyle]=\"{ height: height + 'px', width: width + 'px', border: 'none' }\">\r\n <ng-container *ngIf=\"indicatorTemplate; else defaultTemplate\">\r\n <ng-container *ngTemplateOutlet=\"indicatorTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultTemplate>\r\n <EyeIcon [styleClass]=\"'cax-image-preview-icon'\" />\r\n </ng-template>\r\n </button>\r\n <div #mask class=\"cax-image-mask cax-component-overlay cax-component-overlay-enter\" *ngIf=\"maskVisible\" [attr.aria-modal]=\"maskVisible\" role=\"dialog\" (click)=\"onMaskClick()\" (keydown)=\"onMaskKeydown($event)\" pFocusTrap>\r\n <div class=\"cax-image-toolbar\" (click)=\"handleToolbarClick($event)\">\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateRight()\" type=\"button\" [attr.aria-label]=\"rightAriaLabel()\">\r\n <RefreshIcon *ngIf=\"!rotateRightIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateRightIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateLeft()\" type=\"button\" [attr.aria-label]=\"leftAriaLabel()\">\r\n <UndoIcon *ngIf=\"!rotateLeftIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateLeftIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled\" [attr.aria-label]=\"zoomOutAriaLabel()\">\r\n <SearchMinusIcon *ngIf=\"!zoomOutIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomOutIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled\" [attr.aria-label]=\"zoomInAriaLabel()\">\r\n <SearchPlusIcon *ngIf=\"!zoomInIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomInIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" type=\"button\" (click)=\"closePreview()\" [attr.aria-label]=\"closeAriaLabel()\" #closeButton>\r\n <TimesIcon *ngIf=\"!closeIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"closeIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"previewVisible\"\r\n [@animation]=\"{ value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\"\r\n (@animation.start)=\"onAnimationStart($event)\"\r\n (@animation.done)=\"onAnimationEnd($event)\"\r\n >\r\n <img [attr.src]=\"previewImageSrc ? previewImageSrc : src\" [attr.srcset]=\"previewImageSrcSet\" [attr.sizes]=\"previewImageSizes\" class=\"cax-image-preview\" [ngStyle]=\"imagePreviewStyle()\" (click)=\"onPreviewImageClick()\" />\r\n </div>\r\n </div>\r\n</span>\r\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { Image } from './image';\n\n@NgModule({\n imports: [Image, SharedModule],\n exports: [Image, SharedModule]\n})\nexport class ImageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cax-design-system-image.mjs","sources":["../../src/app/components/image/image.ts","../../src/app/components/image/image.html","../../src/app/components/image/image.module.ts","../../src/app/components/image/cax-design-system-image.ts"],"sourcesContent":["import { AnimationEvent, animate, style, transition, trigger } from '@angular/animations';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute\n} from '@angular/core';\nimport { SafeUrl } from '@angular/platform-browser';\nimport { caxConfig, CaxTemplate, SharedModule } from 'cax-design-system/api';\nimport { DomHandler } from 'cax-design-system/dom';\nimport { EyeIcon } from 'cax-design-system/icons/eye';\nimport { RefreshIcon } from 'cax-design-system/icons/refresh';\nimport { SearchMinusIcon } from 'cax-design-system/icons/searchminus';\nimport { SearchPlusIcon } from 'cax-design-system/icons/searchplus';\nimport { TimesIcon } from 'cax-design-system/icons/times';\nimport { UndoIcon } from 'cax-design-system/icons/undo';\nimport { ZIndexUtils } from 'cax-design-system/utils';\nimport { Nullable } from 'cax-design-system/ts-helpers';\nimport { FocusTrapModule } from 'cax-design-system/focustrap';\n\n/**\n * Displays an image with preview and tranformation options. For multiple image, see Galleria.\n * @group Components\n */\n@Component({\n selector: 'cax-image',\n templateUrl: './image.html',\n animations: [\n trigger('animation', [\n transition('void => visible', [style({ transform: 'scale(0.7)', opacity: 0 }), animate('{{showTransitionParams}}')]),\n transition('visible => void', [animate('{{hideTransitionParams}}', style({ transform: 'scale(0.7)', opacity: 0 }))])\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, SharedModule, RefreshIcon, EyeIcon, UndoIcon, SearchMinusIcon, SearchPlusIcon, TimesIcon, FocusTrapModule],\n styleUrls: ['./image.scss'],\n host: {\n class: 'cax-element'\n }\n})\nexport class Image implements AfterContentInit {\n /**\n * Style class of the image element.\n * @group Props\n */\n @Input() imageClass: string | undefined;\n /**\n * Inline style of the image element.\n * @group Props\n */\n @Input() imageStyle: { [klass: string]: any } | null | undefined;\n /**\n * Class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() style: { [klass: string]: any } | null | undefined;\n /**\n * The source path for the main image.\n * @group Props\n */\n @Input() src: string | SafeUrl | undefined;\n /**\n * The srcset definition for the main image.\n * @group Props\n */\n @Input() srcSet: string | SafeUrl | undefined;\n /**\n * The sizes definition for the main image.\n * @group Props\n */\n @Input() sizes: 'string' | undefined;\n /**\n * The source path for the preview image.\n * @group Props\n */\n @Input() size: 'sm' | 'md' | 'lg' | 'xl' | undefined;\n /**\n * The source path for the preview image.\n * @group Props\n */\n @Input() previewImageSrc: string | SafeUrl | undefined;\n /**\n * The srcset definition for the preview image.\n * @group Props\n */\n @Input() previewImageSrcSet: string | SafeUrl | undefined;\n /**\n * The sizes definition for the preview image.\n * @group Props\n */\n @Input() previewImageSizes: string | undefined;\n /**\n * Attribute of the preview image element.\n * @group Props\n */\n @Input() alt: string | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() width: string | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() height: string | undefined;\n /**\n * Attribute of the image element.\n * @group Props\n */\n @Input() loading: 'lazy' | 'eager' | undefined;\n /**\n * Target element to attach the dialog, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n @Input() appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any;\n /**\n * Controls the preview functionality.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) preview: boolean = false;\n /**\n * Transition options of the show animation\n * @group Props\n */\n @Input() showTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Transition options of the hide animation\n * @group Props\n */\n @Input() hideTransitionOptions: string = '150ms cubic-bezier(0, 0, 0.2, 1)';\n /**\n * Triggered when the preview overlay is shown.\n * @group Emits\n */\n @Output() onShow: EventEmitter<any> = new EventEmitter<any>();\n /**\n * Triggered when the preview overlay is hidden.\n * @group Emits\n */\n @Output() onHide: EventEmitter<any> = new EventEmitter<any>();\n /**\n * This event is triggered if an error occurs while loading an image file.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n @Output() onImageError: EventEmitter<Event> = new EventEmitter<Event>();\n\n @ViewChild('mask') mask: ElementRef | undefined;\n\n @ViewChild('previewButton') previewButton: ElementRef | undefined;\n\n @ViewChild('closeButton') closeButton: ElementRef | undefined;\n\n @ContentChildren(CaxTemplate) templates: QueryList<CaxTemplate> | undefined;\n\n indicatorTemplate: TemplateRef<any> | undefined;\n\n rotateRightIconTemplate: TemplateRef<any> | undefined;\n\n rotateLeftIconTemplate: TemplateRef<any> | undefined;\n\n zoomOutIconTemplate: TemplateRef<any> | undefined;\n\n zoomInIconTemplate: TemplateRef<any> | undefined;\n\n closeIconTemplate: TemplateRef<any> | undefined;\n\n maskVisible: boolean = false;\n\n previewVisible: boolean = false;\n\n rotate: number = 0;\n\n scale: number = 1;\n\n previewClick: boolean = false;\n\n container: Nullable<HTMLElement>;\n\n wrapper: Nullable<HTMLElement>;\n\n public get isZoomOutDisabled(): boolean {\n return this.scale - this.zoomSettings.step <= this.zoomSettings.min;\n }\n\n public get isZoomInDisabled(): boolean {\n return this.scale + this.zoomSettings.step >= this.zoomSettings.max;\n }\n\n private zoomSettings = {\n default: 1,\n step: 0.1,\n max: 1.5,\n min: 0.5\n };\n\n constructor(\n @Inject(DOCUMENT) private document: Document,\n private config: caxConfig,\n private cd: ChangeDetectorRef,\n public el: ElementRef\n ) {}\n\n ngAfterContentInit() {\n this.templates?.forEach((item) => {\n switch (item.getType()) {\n case 'indicator':\n this.indicatorTemplate = item.template;\n break;\n\n case 'rotaterighticon':\n this.rotateRightIconTemplate = item.template;\n break;\n\n case 'rotatelefticon':\n this.rotateLeftIconTemplate = item.template;\n break;\n\n case 'zoomouticon':\n this.zoomOutIconTemplate = item.template;\n break;\n\n case 'zoominicon':\n this.zoomInIconTemplate = item.template;\n break;\n\n case 'closeicon':\n this.closeIconTemplate = item.template;\n break;\n\n default:\n this.indicatorTemplate = item.template;\n break;\n }\n });\n }\n\n onImageClick() {\n if (this.preview) {\n this.maskVisible = true;\n this.previewVisible = true;\n DomHandler.blockBodyScroll();\n }\n }\n\n onMaskClick() {\n if (!this.previewClick) {\n this.closePreview();\n }\n\n this.previewClick = false;\n }\n\n onMaskKeydown(event) {\n switch (event.code) {\n case 'Escape':\n this.onMaskClick();\n setTimeout(() => {\n DomHandler.focus(this.previewButton.nativeElement);\n }, 25);\n event.preventDefault();\n\n break;\n\n default:\n break;\n }\n }\n\n onPreviewImageClick() {\n this.previewClick = true;\n }\n\n rotateRight() {\n this.rotate += 90;\n this.previewClick = true;\n }\n\n rotateLeft() {\n this.rotate -= 90;\n this.previewClick = true;\n }\n\n zoomIn() {\n this.scale = this.scale + this.zoomSettings.step;\n this.previewClick = true;\n }\n\n zoomOut() {\n this.scale = this.scale - this.zoomSettings.step;\n this.previewClick = true;\n }\n\n onAnimationStart(event: AnimationEvent) {\n switch (event.toState) {\n case 'visible':\n this.container = event.element;\n this.wrapper = this.container?.parentElement;\n this.appendContainer();\n this.moveOnTop();\n\n setTimeout(() => {\n DomHandler.focus(this.closeButton.nativeElement);\n }, 25);\n break;\n\n case 'void':\n DomHandler.addClass(this.wrapper, 'cax-component-overlay-leave');\n break;\n }\n }\n\n onAnimationEnd(event: AnimationEvent) {\n switch (event.toState) {\n case 'void':\n ZIndexUtils.clear(this.wrapper);\n this.maskVisible = false;\n this.container = null;\n this.wrapper = null;\n this.cd.markForCheck();\n this.onHide.emit({});\n break;\n case 'visible':\n this.onShow.emit({});\n break;\n }\n }\n\n moveOnTop() {\n ZIndexUtils.set('modal', this.wrapper, this.config.zIndex.modal);\n }\n\n appendContainer() {\n if (this.appendTo) {\n if (this.appendTo === 'body') this.document.body.appendChild(this.wrapper as HTMLElement);\n else DomHandler.appendChild(this.wrapper, this.appendTo);\n }\n }\n\n imagePreviewStyle() {\n return { transform: 'rotate(' + this.rotate + 'deg) scale(' + this.scale + ')' };\n }\n\n get zoomImageAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.zoomImage : undefined;\n }\n\n containerClass() {\n return {\n 'cax-image cax-component': true,\n 'cax-image-preview-container': this.preview\n };\n }\n\n handleToolbarClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n closePreview(): void {\n this.previewVisible = false;\n this.rotate = 0;\n this.scale = this.zoomSettings.default;\n DomHandler.unblockBodyScroll();\n }\n\n imageError(event: Event) {\n this.onImageError.emit(event);\n }\n\n rightAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.rotateRight : undefined;\n }\n\n leftAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.rotateLeft : undefined;\n }\n\n zoomInAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.zoomIn : undefined;\n }\n\n zoomOutAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.zoomOut : undefined;\n }\n\n closeAriaLabel() {\n return this.config.translation.aria ? this.config.translation.aria.close : undefined;\n }\n\n @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n if (this.previewVisible) {\n this.closePreview();\n }\n }\n\n // custom methods\n sizeClass() {\n return {\n [`cax-image-${this.size}`]: this.size\n };\n }\n}\n","<span [ngClass]=\"containerClass()\" [class]=\"styleClass\" [ngStyle]=\"style\">\r\n <img\r\n [attr.src]=\"src\"\r\n [attr.srcset]=\"srcSet\"\r\n [attr.sizes]=\"sizes\"\r\n [attr.alt]=\"alt\"\r\n [attr.width]=\"width\"\r\n [attr.height]=\"height\"\r\n [attr.loading]=\"loading\"\r\n [ngStyle]=\"imageStyle\"\r\n [class]=\"imageClass\"\r\n [ngClass]=\"sizeClass()\"\r\n (error)=\"imageError($event)\"\r\n />\r\n <button *ngIf=\"preview\" [attr.aria-label]=\"zoomImageAriaLabel\" type=\"button\" class=\"cax-image-preview-indicator\" (click)=\"onImageClick()\" #previewButton [ngStyle]=\"{ height: height + 'px', width: width + 'px', border: 'none' }\">\r\n <ng-container *ngIf=\"indicatorTemplate; else defaultTemplate\">\r\n <ng-container *ngTemplateOutlet=\"indicatorTemplate\"></ng-container>\r\n </ng-container>\r\n <ng-template #defaultTemplate>\r\n <EyeIcon [styleClass]=\"'cax-image-preview-icon'\" />\r\n </ng-template>\r\n </button>\r\n <div #mask class=\"cax-image-mask cax-component-overlay cax-component-overlay-enter\" *ngIf=\"maskVisible\" [attr.aria-modal]=\"maskVisible\" role=\"dialog\" (click)=\"onMaskClick()\" (keydown)=\"onMaskKeydown($event)\" pFocusTrap>\r\n <div class=\"cax-image-toolbar\" (click)=\"handleToolbarClick($event)\">\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateRight()\" type=\"button\" [attr.aria-label]=\"rightAriaLabel()\">\r\n <RefreshIcon *ngIf=\"!rotateRightIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateRightIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"rotateLeft()\" type=\"button\" [attr.aria-label]=\"leftAriaLabel()\">\r\n <UndoIcon *ngIf=\"!rotateLeftIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"rotateLeftIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomOut()\" type=\"button\" [disabled]=\"isZoomOutDisabled\" [attr.aria-label]=\"zoomOutAriaLabel()\">\r\n <SearchMinusIcon *ngIf=\"!zoomOutIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomOutIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" (click)=\"zoomIn()\" type=\"button\" [disabled]=\"isZoomInDisabled\" [attr.aria-label]=\"zoomInAriaLabel()\">\r\n <SearchPlusIcon *ngIf=\"!zoomInIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"zoomInIconTemplate\"></ng-template>\r\n </button>\r\n <button class=\"cax-image-action cax-link\" type=\"button\" (click)=\"closePreview()\" [attr.aria-label]=\"closeAriaLabel()\" #closeButton>\r\n <TimesIcon *ngIf=\"!closeIconTemplate\" />\r\n <ng-template *ngTemplateOutlet=\"closeIconTemplate\"></ng-template>\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"previewVisible\"\r\n [@animation]=\"{ value: 'visible', params: { showTransitionParams: showTransitionOptions, hideTransitionParams: hideTransitionOptions } }\"\r\n (@animation.start)=\"onAnimationStart($event)\"\r\n (@animation.done)=\"onAnimationEnd($event)\"\r\n >\r\n <img [attr.src]=\"previewImageSrc ? previewImageSrc : src\" [attr.srcset]=\"previewImageSrcSet\" [attr.sizes]=\"previewImageSizes\" class=\"cax-image-preview\" [ngStyle]=\"imagePreviewStyle()\" (click)=\"onPreviewImageClick()\" />\r\n </div>\r\n </div>\r\n</span>\r\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'cax-design-system/api';\nimport { Image } from './image';\n\n@NgModule({\n imports: [Image, SharedModule],\n exports: [Image, SharedModule]\n})\nexport class ImageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cax-design-system-logo.mjs","sources":["../../src/app/components/logo/logo.ts","../../src/app/components/logo/logo.html","../../src/app/components/logo/logo.module.ts","../../src/app/components/logo/cax-design-system-logo.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input } from '@angular/core';\nimport { ImageModule } from 'cax-design-system/image';\n\n@Component({\n selector: 'cax-logo',\n templateUrl: './logo.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./logo.scss'],\n imports: [ImageModule],\n standalone: true,\n host: {\n class: 'cax-element'\n }\n})\nexport class Logo {\n @Input() size: 'xsm' | 'sm' | 'md' | 'lg' | 'xl' | undefined;\n @Input() width: string | undefined;\n @Input() height: string | undefined;\n @Input() iconOnly: boolean = false;\n @Input() darkMode: boolean = false;\n\n getImage() {\n const key = `${this.iconOnly}-${this.darkMode}`;\n switch (key) {\n case 'true-true':\n return 'assets/logo/dataX-icon-dark.svg';\n case 'true-false':\n return 'assets/logo/dataX-icon.svg';\n case 'false-true':\n return 'assets/logo/dataX-dark.svg';\n case 'false-false':\n return 'assets/logo/dataX.svg';\n default:\n return 'assets/logo/dataX.svg';\n }\n }\n}\n","<cax-image [src]=\"getImage()\" [size]=\"size\" [width]=\"width\" [height]=\"height\"></cax-image>\r\n","import { NgModule } from '@angular/core';\nimport { Logo } from './logo';\n\n@NgModule({\n imports: [Logo],\n exports: [Logo]\n})\nexport class LogoModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cax-design-system-logo.mjs","sources":["../../src/app/components/logo/logo.ts","../../src/app/components/logo/logo.html","../../src/app/components/logo/logo.module.ts","../../src/app/components/logo/cax-design-system-logo.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input } from '@angular/core';\nimport { ImageModule } from 'cax-design-system/image';\n\n@Component({\n selector: 'cax-logo',\n templateUrl: './logo.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./logo.scss'],\n imports: [ImageModule],\n standalone: true,\n host: {\n class: 'cax-element'\n }\n})\nexport class Logo {\n @Input() size: 'sm' | 'md' | 'lg' | 'xl' | undefined;\n @Input() width: string | undefined;\n @Input() height: string | undefined;\n @Input() iconOnly: boolean = false;\n @Input() darkMode: boolean = false;\n\n getImage() {\n const key = `${this.iconOnly}-${this.darkMode}`;\n switch (key) {\n case 'true-true':\n return 'assets/logo/dataX-icon-dark.svg';\n case 'true-false':\n return 'assets/logo/dataX-icon.svg';\n case 'false-true':\n return 'assets/logo/dataX-dark.svg';\n case 'false-false':\n return 'assets/logo/dataX.svg';\n default:\n return 'assets/logo/dataX.svg';\n }\n }\n}\n","<cax-image [src]=\"getImage()\" [size]=\"size\" [width]=\"width\" [height]=\"height\"></cax-image>\r\n","import { NgModule } from '@angular/core';\nimport { Logo } from './logo';\n\n@NgModule({\n imports: [Logo],\n exports: [Logo]\n})\nexport class LogoModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -14,9 +14,7 @@ import { AvatarModule } from 'cax-design-system/avatar';
14
14
  import * as i6 from 'cax-design-system/overlaypanel';
15
15
  import { OverlayPanelModule } from 'cax-design-system/overlaypanel';
16
16
  import { OverlayModule } from 'cax-design-system/overlay';
17
- import * as i7 from 'cax-design-system/radiobutton';
18
17
  import { RadioButtonModule } from 'cax-design-system/radiobutton';
19
- import * as i8 from '@angular/forms';
20
18
  import { FormsModule } from '@angular/forms';
21
19
 
22
20
  class Navigation {
@@ -35,14 +33,18 @@ class Navigation {
35
33
  userImage;
36
34
  userRole;
37
35
  organisationDetails;
36
+ headerLogo;
37
+ headerInitials;
38
38
  onNavListItemChange = new EventEmitter();
39
39
  onNotificationClick = new EventEmitter();
40
40
  onHelpCentreClick = new EventEmitter();
41
41
  onLogoutClick = new EventEmitter();
42
42
  onProfileClick = new EventEmitter();
43
43
  onSettingsClick = new EventEmitter();
44
+ onLogoClick = new EventEmitter();
44
45
  onPlanChange = new EventEmitter();
45
46
  isHovered = false;
47
+ isNavExpanded = false;
46
48
  notificationActive = false;
47
49
  helpCentreActive = false;
48
50
  accountDetailsActive = false;
@@ -130,7 +132,10 @@ class Navigation {
130
132
  if (!name)
131
133
  return '';
132
134
  const nameParts = name.trim().split(/\s+/);
133
- return (nameParts[0]?.[0] || '').toUpperCase() + (nameParts[nameParts.length - 1]?.[0] || '').toUpperCase();
135
+ if (nameParts.length === 1) {
136
+ return nameParts[0][0].toUpperCase();
137
+ }
138
+ return (nameParts[0][0] + nameParts[nameParts.length - 1][0]).toUpperCase();
134
139
  }
135
140
  emitNotification() {
136
141
  this.topNavList?.map((list) => (list.active = false));
@@ -157,6 +162,9 @@ class Navigation {
157
162
  emitSettings() {
158
163
  this.onSettingsClick.emit();
159
164
  }
165
+ emitLogoClick() {
166
+ this.onLogoClick.emit();
167
+ }
160
168
  onPlanClick(orgDetails, index) {
161
169
  this.selectedOrganisastionPlan = index;
162
170
  this.onPlanChange.emit(orgDetails);
@@ -170,8 +178,21 @@ class Navigation {
170
178
  const containerHeight = window.innerHeight;
171
179
  return containerHeight - bottomHeight - headerHeight - 56;
172
180
  }
181
+ onMouseLeave() {
182
+ this.isHovered = false;
183
+ if (!this.accountDetailsActive) {
184
+ this.isNavExpanded = false;
185
+ }
186
+ }
187
+ hideAccountDetails() {
188
+ this.accountDetailsActive = false;
189
+ if (this.isHovered)
190
+ this.isNavExpanded = true;
191
+ else
192
+ this.isNavExpanded = false;
193
+ }
173
194
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: Navigation, deps: [], target: i0.ɵɵFactoryTarget.Component });
174
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: Navigation, isStandalone: true, selector: "cax-navigation", inputs: { header: "header", topNavList: "topNavList", bottomNavList: "bottomNavList", activeTab: "activeTab", notifications: "notifications", helpCentre: "helpCentre", copyrightYear: "copyrightYear", version: "version", logout: "logout", profile: "profile", settings: "settings", userName: "userName", userImage: "userImage", userRole: "userRole", organisationDetails: "organisationDetails" }, outputs: { onNavListItemChange: "onNavListItemChange", onNotificationClick: "onNotificationClick", onHelpCentreClick: "onHelpCentreClick", onLogoutClick: "onLogoutClick", onProfileClick: "onProfileClick", onSettingsClick: "onSettingsClick", onPlanChange: "onPlanChange" }, host: { listeners: { "window:resize": "onResize()" }, classAttribute: "cax-element" }, viewQueries: [{ propertyName: "bottomContainer", first: true, predicate: ["bottomContainer"], descendants: true }, { propertyName: "headerContainer", first: true, predicate: ["headerContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\r\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isHovered }\" (mouseenter)=\"isHovered = true\" (mouseleave)=\"isHovered = false\">\r\n <div class=\"cax-nav-header-container\" #headerContainer>\r\n <div [@rightFade] *ngIf=\"!isHovered\" class=\"cax-nav-header\">\r\n <cax-logo size=\"xsm\" [iconOnly]=\"true\" />\r\n </div>\r\n <div *ngIf=\"isHovered\" class=\"cax-nav-header\" [@leftFade]>\r\n <cax-logo size=\"xsm\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span>{{ header }}</span>\r\n </div>\r\n </div>\r\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\r\n <ul>\r\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\"></cax-image>\r\n </ng-template>\r\n <span [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\r\n <div class=\"cax-nav-bottom-list\">\r\n <ul>\r\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\"></cax-image>\r\n </ng-template>\r\n <span [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\r\n <i class=\"cax cax-bell\"></i>\r\n <span [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-list-label\">Notifications</span>\r\n </li>\r\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\r\n <i class=\"cax cax-shield-check\"></i>\r\n <span [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-list-label\">Help Centre</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"userName\" (click)=\"op.toggle($event);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\r\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\r\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\r\n <div [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-user\">\r\n <span class=\"cax-nav-user-name\">{{ userName }}</span>\r\n <span class=\"cax-nav-user-role\">{{ userRole }}</span>\r\n </div>\r\n <div [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-account-icon\">\r\n <i class=\"cax cax-alt-arrow-up\"></i>\r\n <i class=\"cax cax-alt-arrow-down\"></i>\r\n </div>\r\n <cax-overlayPanel #op (onShow)=\"accountDetailsActive = true\" [styleClass]=\"isHovered ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"accountDetailsActive = false\">\r\n <div *ngIf=\"organisationDetails?.length\" class=\"cax-nav-organisation-list\">\r\n <div *ngFor=\"let org of organisationDetails; let i = index\" class=\"cax-nav-organisation-container\" (click)=\"onPlanClick(org, i)\" [ngClass]=\"{ active: selectedOrganisastionPlan == i }\">\r\n <cax-avatar *ngIf=\"org.image; else labelTemplate\" [image]=\"org.image\" avatarSize=\"lg\"></cax-avatar>\r\n <ng-template #labelTemplate>\r\n <cax-avatar *ngIf=\"org.label; else initialTemplate\" [label]=\"org.label\" avatarSize=\"lg\"></cax-avatar>\r\n </ng-template>\r\n <ng-template #initialTemplate>\r\n <cax-avatar [label]=\"getInitials(org.name)\" avatarSize=\"lg\"></cax-avatar>\r\n </ng-template>\r\n <div class=\"cax-nav-organisation\">\r\n <span class=\"cax-nav-organisation-name\">{{ org.name }}</span>\r\n <span *ngIf=\"org.plan == 'paid'\" class=\"cax-nav-organisation-plan\">\r\n <i class=\"cax cax-wallet\"></i>\r\n Paid Plan\r\n </span>\r\n <span *ngIf=\"org.plan == 'free'\" class=\"cax-nav-organisation-plan\">\r\n <i class=\"cax cax-ticket-sale\"></i>\r\n Free Plan\r\n </span>\r\n <span *ngIf=\"org.plan == 'trial'\" class=\"cax-nav-organisation-plan\">\r\n <i class=\"cax cax-history2\"></i>\r\n Trial Version\r\n </span>\r\n </div>\r\n <cax-radioButton class=\"cax-nav-organisation-radio\" [value]=\"i\" name=\"organisation-plan\" [(ngModel)]=\"selectedOrganisastionPlan\"></cax-radioButton>\r\n </div>\r\n </div>\r\n <div *ngIf=\"settings\" class=\"cax-nav-profile-options\" (click)=\"emitSettings()\">\r\n <i class=\"cax cax-settings\"></i>\r\n <span>Account Settings</span>\r\n </div>\r\n <div *ngIf=\"profile\" class=\"cax-nav-profile-options\" (click)=\"emitProfile()\">\r\n <i class=\"cax cax-user-rounded\"></i>\r\n <span>View Profile</span>\r\n </div>\r\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout()\">\r\n <i class=\"cax cax-logout\"></i>\r\n <span>Logout</span>\r\n </div>\r\n <div class=\"cax-nav-copyright-container\">\r\n <cax-logo width=\"55px\" height=\"17px\"></cax-logo>\r\n <div class=\"cax-nav-copyright\">\r\n <span *ngIf=\"copyrightYear\">&copy; {{ copyrightYear }}</span>\r\n <span *ngIf=\"version\">{{ version }}</span>\r\n </div>\r\n </div>\r\n </cax-overlayPanel>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s ease-in-out;overflow:hidden;padding:16px 8px;position:absolute;left:0;top:0;z-index:1200}.cax-nav.cax-nav-expand{width:264px}.cax-nav.cax-nav-expand .cax-nav-bottom-container{width:248px}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px}.cax-nav-header{display:flex;align-items:center;justify-content:center}.cax-nav-header span{font-weight:700;font-size:12px}.cax-nav .cax-divider.cax-divider-vertical{margin:0 8px;height:36px}.cax-nav-list-container,.cax-nav-bottom-list{margin:24px 0}.cax-nav-list-container ul,.cax-nav-bottom-list ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:16px}.cax-nav-list-container ul li,.cax-nav-bottom-list ul li{padding:12px 24px;border-radius:12px;display:flex;align-items:center;cursor:pointer;height:56px;line-height:24px}.cax-nav-list-container{overflow-y:auto}.cax-nav-list-container::-webkit-scrollbar{display:none}.cax-nav-bottom-container{position:absolute;bottom:16px}.cax-nav-account-details{border-radius:12px;padding:12px;cursor:pointer;transition:width .3s ease-in-out;display:flex;align-items:flex-start}.cax-nav-account-details .cax-nav-account-icon{display:grid;margin-left:auto}.cax-nav.cax-nav-expand .cax-nav-account-details{width:248px}.cax-nav-user{display:grid;margin:0 8px;white-space:nowrap}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:500;line-height:24px}.cax-nav-user .cax-nav-user-role{font-size:14px;font-weight:400;line-height:21px}.cax-overlaypanel{width:320px}.cax-overlaypanel .cax-overlaypanel-content{padding:8px}.cax-nav-copyright-container{display:flex;align-items:center;justify-content:space-between}.cax-nav-copyright-container .cax-nav-copyright{font-size:12px;font-weight:500}.cax-nav-copyright-container .cax-nav-copyright span{margin:0 0 0 16px}.cax-nav-profile-options{padding:12px 24px;font-weight:600;line-height:24px;display:flex;align-items:center;cursor:pointer;border-radius:12px;margin-bottom:8px;font-size:16px}.cax-nav-profile-options span{margin-left:8px}.cax-nav-organisation-list{border-radius:12px;padding:8px;margin-bottom:8px}.cax-nav-organisation-container{display:flex;align-items:flex-start;cursor:pointer;padding:12px;border-radius:8px}.cax-nav-organisation-container .cax-nav-organisation-radio{margin-left:auto}.cax-nav-organisation-container:not(:last-child){margin-bottom:8px}.cax-nav-organisation{display:grid;margin:0 8px;white-space:nowrap}.cax-nav-organisation .cax-nav-organisation-name{font-weight:600;font-size:16px;line-height:24px}.cax-nav-organisation .cax-nav-organisation-plan{display:flex;font-size:14px;font-weight:500;line-height:21px}.cax-nav-organisation .cax-nav-organisation-plan i{font-size:20px;margin-right:3px}.cax-nav-overlay-expand{left:270px!important;top:auto!important;bottom:6px}.cax-nav-overlay{left:94px!important;top:auto!important;bottom:6px}}\n"], dependencies: [{ kind: "ngmodule", type: LogoModule }, { kind: "component", type: i1.Logo, selector: "cax-logo", inputs: ["size", "width", "height", "iconOnly", "darkMode"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i3.Divider, selector: "cax-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: ImageModule }, { kind: "component", type: i4.Image, selector: "cax-image", inputs: ["imageClass", "imageStyle", "styleClass", "style", "src", "srcSet", "sizes", "size", "previewImageSrc", "previewImageSrcSet", "previewImageSizes", "alt", "width", "height", "loading", "appendTo", "preview", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide", "onImageError"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i5.Avatar, selector: "cax-avatar", inputs: ["label", "icon", "image", "avatarSize", "shape", "style", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i6.OverlayPanel, selector: "cax-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i7.RadioButton, selector: "cax-radioButton", inputs: ["value", "size", "formControlName", "name", "disabled", "label", "variant", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], animations: [
195
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: Navigation, isStandalone: true, selector: "cax-navigation", inputs: { header: "header", topNavList: "topNavList", bottomNavList: "bottomNavList", activeTab: "activeTab", notifications: "notifications", helpCentre: "helpCentre", copyrightYear: "copyrightYear", version: "version", logout: "logout", profile: "profile", settings: "settings", userName: "userName", userImage: "userImage", userRole: "userRole", organisationDetails: "organisationDetails", headerLogo: "headerLogo", headerInitials: "headerInitials" }, outputs: { onNavListItemChange: "onNavListItemChange", onNotificationClick: "onNotificationClick", onHelpCentreClick: "onHelpCentreClick", onLogoutClick: "onLogoutClick", onProfileClick: "onProfileClick", onSettingsClick: "onSettingsClick", onLogoClick: "onLogoClick", onPlanChange: "onPlanChange" }, host: { listeners: { "window:resize": "onResize()" }, classAttribute: "cax-element" }, viewQueries: [{ propertyName: "bottomContainer", first: true, predicate: ["bottomContainer"], descendants: true }, { propertyName: "headerContainer", first: true, predicate: ["headerContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\r\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"isHovered = true; isNavExpanded = true\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"cax-nav-header-container\" #headerContainer>\r\n <div [@rightFade] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\r\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\r\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\r\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\r\n </div>\r\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@leftFade]>\r\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\r\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span>{{ header }}</span>\r\n </div>\r\n </div>\r\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\r\n <ul>\r\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\"></cax-image>\r\n </ng-template>\r\n <span [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\r\n <div class=\"cax-nav-bottom-list\">\r\n <ul>\r\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\"></cax-image>\r\n </ng-template>\r\n <span [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\r\n <i class=\"cax cax-bell\"></i>\r\n <span [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Notifications</span>\r\n </li>\r\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\r\n <i class=\"cax cax-shield-warning\"></i>\r\n <span [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Help Centre</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"userName\" (click)=\"op.toggle($event);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\r\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\r\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\r\n <div [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\r\n <span class=\"cax-nav-user-name\">{{ userName }}</span>\r\n <span class=\"cax-nav-user-role\">{{ userRole }}</span>\r\n </div>\r\n <div [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\r\n <i class=\"cax cax-alt-arrow-up\"></i>\r\n <i class=\"cax cax-alt-arrow-down\"></i>\r\n </div>\r\n <cax-overlayPanel #op (onShow)=\"accountDetailsActive = true\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\r\n <div *ngIf=\"profile\" class=\"cax-nav-profile-options\" (click)=\"emitProfile()\">\r\n <i class=\"cax cax-user-rounded\"></i>\r\n <span>View Profile</span>\r\n </div>\r\n <div *ngIf=\"settings\" class=\"cax-nav-profile-options\" (click)=\"emitSettings()\">\r\n <i class=\"cax cax-settings\"></i>\r\n <span>Account Settings</span>\r\n </div>\r\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout()\">\r\n <i class=\"cax cax-logout\"></i>\r\n <span>Logout</span>\r\n </div>\r\n <div class=\"cax-nav-copyright-container\">\r\n <cax-logo width=\"55px\" height=\"17px\"></cax-logo>\r\n <div class=\"cax-nav-copyright\">\r\n <span *ngIf=\"copyrightYear\">&copy; {{ copyrightYear }}</span>\r\n <span *ngIf=\"version\">{{ version }}</span>\r\n </div>\r\n </div>\r\n </cax-overlayPanel>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s ease-in-out;overflow:hidden;padding:16px 8px;position:absolute;left:0;top:0;z-index:1200}.cax-nav .cax-nav-header .cax-image img{max-width:26px;object-fit:cover}.cax-nav.cax-nav-expand{width:264px}.cax-nav.cax-nav-expand .cax-nav-bottom-container{width:248px}.cax-nav.cax-nav-expand .cax-nav-header .cax-image img{max-width:100px;object-fit:cover}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px}.cax-nav-header{display:flex;align-items:center;justify-content:center}.cax-nav-header span{font-weight:700;font-size:12px}.cax-nav .cax-divider.cax-divider-vertical{margin:0 8px;height:36px}.cax-nav-list-container,.cax-nav-bottom-list{margin:24px 0}.cax-nav-list-container ul,.cax-nav-bottom-list ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:16px}.cax-nav-list-container ul li,.cax-nav-bottom-list ul li{padding:12px 24px;border-radius:12px;display:flex;align-items:center;cursor:pointer;height:56px;line-height:24px}.cax-nav-list-container{overflow-y:auto}.cax-nav-list-container::-webkit-scrollbar{display:none}.cax-nav-bottom-container{position:absolute;bottom:16px}.cax-nav-account-details{border-radius:12px;padding:12px;cursor:pointer;transition:width .3s ease-in-out;display:flex;align-items:flex-start}.cax-nav-account-details .cax-nav-account-icon{display:grid;margin-left:auto}.cax-nav.cax-nav-expand .cax-nav-account-details{width:248px}.cax-nav-user{display:grid;margin:0 8px;white-space:nowrap}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:500;line-height:24px}.cax-nav-user .cax-nav-user-role{font-size:14px;font-weight:400;line-height:21px}.cax-overlaypanel{width:320px}.cax-overlaypanel .cax-overlaypanel-content{padding:8px}.cax-nav-copyright-container{display:flex;align-items:center;justify-content:space-between}.cax-nav-copyright-container .cax-nav-copyright{font-size:12px;font-weight:500}.cax-nav-copyright-container .cax-nav-copyright span{margin:0 0 0 16px}.cax-nav-profile-options{padding:12px 24px;font-weight:600;line-height:24px;display:flex;align-items:center;cursor:pointer;border-radius:12px;margin-bottom:8px;font-size:16px}.cax-nav-profile-options span{margin-left:8px}.cax-nav-overlay-expand{left:270px!important;top:auto!important;bottom:6px}.cax-nav-overlay{left:94px!important;top:auto!important;bottom:6px}}.c-pointer{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: LogoModule }, { kind: "component", type: i1.Logo, selector: "cax-logo", inputs: ["size", "width", "height", "iconOnly", "darkMode"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i3.Divider, selector: "cax-divider", inputs: ["style", "styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: ImageModule }, { kind: "component", type: i4.Image, selector: "cax-image", inputs: ["imageClass", "imageStyle", "styleClass", "style", "src", "srcSet", "sizes", "size", "previewImageSrc", "previewImageSrcSet", "previewImageSizes", "alt", "width", "height", "loading", "appendTo", "preview", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide", "onImageError"] }, { kind: "ngmodule", type: AvatarModule }, { kind: "component", type: i5.Avatar, selector: "cax-avatar", inputs: ["label", "icon", "image", "avatarSize", "shape", "style", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "ngmodule", type: OverlayPanelModule }, { kind: "component", type: i6.OverlayPanel, selector: "cax-overlayPanel", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "showCloseIcon", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "ngmodule", type: FormsModule }], animations: [
175
196
  trigger('leftFade', [
176
197
  transition(':enter', [style({ transform: 'translateX(-100%)', opacity: 0 }), animate('300ms', style({ transform: 'translateX(0)', opacity: 1 }))]),
177
198
  transition(':leave', [style({ transform: 'translateX(0)', opacity: 0.5 }), animate('300ms', style({ transform: 'translateX(-100%)', opacity: 0 }))])
@@ -195,7 +216,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
195
216
  ])
196
217
  ], host: {
197
218
  class: 'cax-element'
198
- }, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\r\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isHovered }\" (mouseenter)=\"isHovered = true\" (mouseleave)=\"isHovered = false\">\r\n <div class=\"cax-nav-header-container\" #headerContainer>\r\n <div [@rightFade] *ngIf=\"!isHovered\" class=\"cax-nav-header\">\r\n <cax-logo size=\"xsm\" [iconOnly]=\"true\" />\r\n </div>\r\n <div *ngIf=\"isHovered\" class=\"cax-nav-header\" [@leftFade]>\r\n <cax-logo size=\"xsm\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span>{{ header }}</span>\r\n </div>\r\n </div>\r\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\r\n <ul>\r\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\"></cax-image>\r\n </ng-template>\r\n <span [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\r\n <div class=\"cax-nav-bottom-list\">\r\n <ul>\r\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\"></cax-image>\r\n </ng-template>\r\n <span [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\r\n <i class=\"cax cax-bell\"></i>\r\n <span [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-list-label\">Notifications</span>\r\n </li>\r\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\r\n <i class=\"cax cax-shield-check\"></i>\r\n <span [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-list-label\">Help Centre</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"userName\" (click)=\"op.toggle($event);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\r\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\r\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\r\n <div [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-user\">\r\n <span class=\"cax-nav-user-name\">{{ userName }}</span>\r\n <span class=\"cax-nav-user-role\">{{ userRole }}</span>\r\n </div>\r\n <div [@leftFade] *ngIf=\"isHovered\" class=\"cax-nav-account-icon\">\r\n <i class=\"cax cax-alt-arrow-up\"></i>\r\n <i class=\"cax cax-alt-arrow-down\"></i>\r\n </div>\r\n <cax-overlayPanel #op (onShow)=\"accountDetailsActive = true\" [styleClass]=\"isHovered ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"accountDetailsActive = false\">\r\n <div *ngIf=\"organisationDetails?.length\" class=\"cax-nav-organisation-list\">\r\n <div *ngFor=\"let org of organisationDetails; let i = index\" class=\"cax-nav-organisation-container\" (click)=\"onPlanClick(org, i)\" [ngClass]=\"{ active: selectedOrganisastionPlan == i }\">\r\n <cax-avatar *ngIf=\"org.image; else labelTemplate\" [image]=\"org.image\" avatarSize=\"lg\"></cax-avatar>\r\n <ng-template #labelTemplate>\r\n <cax-avatar *ngIf=\"org.label; else initialTemplate\" [label]=\"org.label\" avatarSize=\"lg\"></cax-avatar>\r\n </ng-template>\r\n <ng-template #initialTemplate>\r\n <cax-avatar [label]=\"getInitials(org.name)\" avatarSize=\"lg\"></cax-avatar>\r\n </ng-template>\r\n <div class=\"cax-nav-organisation\">\r\n <span class=\"cax-nav-organisation-name\">{{ org.name }}</span>\r\n <span *ngIf=\"org.plan == 'paid'\" class=\"cax-nav-organisation-plan\">\r\n <i class=\"cax cax-wallet\"></i>\r\n Paid Plan\r\n </span>\r\n <span *ngIf=\"org.plan == 'free'\" class=\"cax-nav-organisation-plan\">\r\n <i class=\"cax cax-ticket-sale\"></i>\r\n Free Plan\r\n </span>\r\n <span *ngIf=\"org.plan == 'trial'\" class=\"cax-nav-organisation-plan\">\r\n <i class=\"cax cax-history2\"></i>\r\n Trial Version\r\n </span>\r\n </div>\r\n <cax-radioButton class=\"cax-nav-organisation-radio\" [value]=\"i\" name=\"organisation-plan\" [(ngModel)]=\"selectedOrganisastionPlan\"></cax-radioButton>\r\n </div>\r\n </div>\r\n <div *ngIf=\"settings\" class=\"cax-nav-profile-options\" (click)=\"emitSettings()\">\r\n <i class=\"cax cax-settings\"></i>\r\n <span>Account Settings</span>\r\n </div>\r\n <div *ngIf=\"profile\" class=\"cax-nav-profile-options\" (click)=\"emitProfile()\">\r\n <i class=\"cax cax-user-rounded\"></i>\r\n <span>View Profile</span>\r\n </div>\r\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout()\">\r\n <i class=\"cax cax-logout\"></i>\r\n <span>Logout</span>\r\n </div>\r\n <div class=\"cax-nav-copyright-container\">\r\n <cax-logo width=\"55px\" height=\"17px\"></cax-logo>\r\n <div class=\"cax-nav-copyright\">\r\n <span *ngIf=\"copyrightYear\">&copy; {{ copyrightYear }}</span>\r\n <span *ngIf=\"version\">{{ version }}</span>\r\n </div>\r\n </div>\r\n </cax-overlayPanel>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s ease-in-out;overflow:hidden;padding:16px 8px;position:absolute;left:0;top:0;z-index:1200}.cax-nav.cax-nav-expand{width:264px}.cax-nav.cax-nav-expand .cax-nav-bottom-container{width:248px}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px}.cax-nav-header{display:flex;align-items:center;justify-content:center}.cax-nav-header span{font-weight:700;font-size:12px}.cax-nav .cax-divider.cax-divider-vertical{margin:0 8px;height:36px}.cax-nav-list-container,.cax-nav-bottom-list{margin:24px 0}.cax-nav-list-container ul,.cax-nav-bottom-list ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:16px}.cax-nav-list-container ul li,.cax-nav-bottom-list ul li{padding:12px 24px;border-radius:12px;display:flex;align-items:center;cursor:pointer;height:56px;line-height:24px}.cax-nav-list-container{overflow-y:auto}.cax-nav-list-container::-webkit-scrollbar{display:none}.cax-nav-bottom-container{position:absolute;bottom:16px}.cax-nav-account-details{border-radius:12px;padding:12px;cursor:pointer;transition:width .3s ease-in-out;display:flex;align-items:flex-start}.cax-nav-account-details .cax-nav-account-icon{display:grid;margin-left:auto}.cax-nav.cax-nav-expand .cax-nav-account-details{width:248px}.cax-nav-user{display:grid;margin:0 8px;white-space:nowrap}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:500;line-height:24px}.cax-nav-user .cax-nav-user-role{font-size:14px;font-weight:400;line-height:21px}.cax-overlaypanel{width:320px}.cax-overlaypanel .cax-overlaypanel-content{padding:8px}.cax-nav-copyright-container{display:flex;align-items:center;justify-content:space-between}.cax-nav-copyright-container .cax-nav-copyright{font-size:12px;font-weight:500}.cax-nav-copyright-container .cax-nav-copyright span{margin:0 0 0 16px}.cax-nav-profile-options{padding:12px 24px;font-weight:600;line-height:24px;display:flex;align-items:center;cursor:pointer;border-radius:12px;margin-bottom:8px;font-size:16px}.cax-nav-profile-options span{margin-left:8px}.cax-nav-organisation-list{border-radius:12px;padding:8px;margin-bottom:8px}.cax-nav-organisation-container{display:flex;align-items:flex-start;cursor:pointer;padding:12px;border-radius:8px}.cax-nav-organisation-container .cax-nav-organisation-radio{margin-left:auto}.cax-nav-organisation-container:not(:last-child){margin-bottom:8px}.cax-nav-organisation{display:grid;margin:0 8px;white-space:nowrap}.cax-nav-organisation .cax-nav-organisation-name{font-weight:600;font-size:16px;line-height:24px}.cax-nav-organisation .cax-nav-organisation-plan{display:flex;font-size:14px;font-weight:500;line-height:21px}.cax-nav-organisation .cax-nav-organisation-plan i{font-size:20px;margin-right:3px}.cax-nav-overlay-expand{left:270px!important;top:auto!important;bottom:6px}.cax-nav-overlay{left:94px!important;top:auto!important;bottom:6px}}\n"] }]
219
+ }, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\r\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"isHovered = true; isNavExpanded = true\" (mouseleave)=\"onMouseLeave()\">\r\n <div class=\"cax-nav-header-container\" #headerContainer>\r\n <div [@rightFade] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\r\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\r\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\r\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\r\n </div>\r\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@leftFade]>\r\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\r\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" />\r\n <cax-divider layout=\"vertical\"></cax-divider>\r\n <span>{{ header }}</span>\r\n </div>\r\n </div>\r\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\r\n <ul>\r\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\"></cax-image>\r\n </ng-template>\r\n <span [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\r\n <div class=\"cax-nav-bottom-list\">\r\n <ul>\r\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\r\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon\"></i>\r\n <ng-template #imageTemplate>\r\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\"></cax-image>\r\n </ng-template>\r\n <span [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">{{ nav.label }}</span>\r\n </li>\r\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\r\n <i class=\"cax cax-bell\"></i>\r\n <span [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Notifications</span>\r\n </li>\r\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\r\n <i class=\"cax cax-shield-warning\"></i>\r\n <span [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label\">Help Centre</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"userName\" (click)=\"op.toggle($event);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\r\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\r\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\r\n <div [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\r\n <span class=\"cax-nav-user-name\">{{ userName }}</span>\r\n <span class=\"cax-nav-user-role\">{{ userRole }}</span>\r\n </div>\r\n <div [@leftFade] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\r\n <i class=\"cax cax-alt-arrow-up\"></i>\r\n <i class=\"cax cax-alt-arrow-down\"></i>\r\n </div>\r\n <cax-overlayPanel #op (onShow)=\"accountDetailsActive = true\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\r\n <div *ngIf=\"profile\" class=\"cax-nav-profile-options\" (click)=\"emitProfile()\">\r\n <i class=\"cax cax-user-rounded\"></i>\r\n <span>View Profile</span>\r\n </div>\r\n <div *ngIf=\"settings\" class=\"cax-nav-profile-options\" (click)=\"emitSettings()\">\r\n <i class=\"cax cax-settings\"></i>\r\n <span>Account Settings</span>\r\n </div>\r\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout()\">\r\n <i class=\"cax cax-logout\"></i>\r\n <span>Logout</span>\r\n </div>\r\n <div class=\"cax-nav-copyright-container\">\r\n <cax-logo width=\"55px\" height=\"17px\"></cax-logo>\r\n <div class=\"cax-nav-copyright\">\r\n <span *ngIf=\"copyrightYear\">&copy; {{ copyrightYear }}</span>\r\n <span *ngIf=\"version\">{{ version }}</span>\r\n </div>\r\n </div>\r\n </cax-overlayPanel>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s ease-in-out;overflow:hidden;padding:16px 8px;position:absolute;left:0;top:0;z-index:1200}.cax-nav .cax-nav-header .cax-image img{max-width:26px;object-fit:cover}.cax-nav.cax-nav-expand{width:264px}.cax-nav.cax-nav-expand .cax-nav-bottom-container{width:248px}.cax-nav.cax-nav-expand .cax-nav-header .cax-image img{max-width:100px;object-fit:cover}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px}.cax-nav-header{display:flex;align-items:center;justify-content:center}.cax-nav-header span{font-weight:700;font-size:12px}.cax-nav .cax-divider.cax-divider-vertical{margin:0 8px;height:36px}.cax-nav-list-container,.cax-nav-bottom-list{margin:24px 0}.cax-nav-list-container ul,.cax-nav-bottom-list ul{margin:0;padding:0;list-style-type:none;display:flex;flex-direction:column;gap:16px}.cax-nav-list-container ul li,.cax-nav-bottom-list ul li{padding:12px 24px;border-radius:12px;display:flex;align-items:center;cursor:pointer;height:56px;line-height:24px}.cax-nav-list-container{overflow-y:auto}.cax-nav-list-container::-webkit-scrollbar{display:none}.cax-nav-bottom-container{position:absolute;bottom:16px}.cax-nav-account-details{border-radius:12px;padding:12px;cursor:pointer;transition:width .3s ease-in-out;display:flex;align-items:flex-start}.cax-nav-account-details .cax-nav-account-icon{display:grid;margin-left:auto}.cax-nav.cax-nav-expand .cax-nav-account-details{width:248px}.cax-nav-user{display:grid;margin:0 8px;white-space:nowrap}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:500;line-height:24px}.cax-nav-user .cax-nav-user-role{font-size:14px;font-weight:400;line-height:21px}.cax-overlaypanel{width:320px}.cax-overlaypanel .cax-overlaypanel-content{padding:8px}.cax-nav-copyright-container{display:flex;align-items:center;justify-content:space-between}.cax-nav-copyright-container .cax-nav-copyright{font-size:12px;font-weight:500}.cax-nav-copyright-container .cax-nav-copyright span{margin:0 0 0 16px}.cax-nav-profile-options{padding:12px 24px;font-weight:600;line-height:24px;display:flex;align-items:center;cursor:pointer;border-radius:12px;margin-bottom:8px;font-size:16px}.cax-nav-profile-options span{margin-left:8px}.cax-nav-overlay-expand{left:270px!important;top:auto!important;bottom:6px}.cax-nav-overlay{left:94px!important;top:auto!important;bottom:6px}}.c-pointer{cursor:pointer}\n"] }]
199
220
  }], propDecorators: { header: [{
200
221
  type: Input
201
222
  }], topNavList: [{
@@ -226,6 +247,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
226
247
  type: Input
227
248
  }], organisationDetails: [{
228
249
  type: Input
250
+ }], headerLogo: [{
251
+ type: Input
252
+ }], headerInitials: [{
253
+ type: Input
229
254
  }], onNavListItemChange: [{
230
255
  type: Output
231
256
  }], onNotificationClick: [{
@@ -238,6 +263,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
238
263
  type: Output
239
264
  }], onSettingsClick: [{
240
265
  type: Output
266
+ }], onLogoClick: [{
267
+ type: Output
241
268
  }], onPlanChange: [{
242
269
  type: Output
243
270
  }], bottomContainer: [{