cax-design-system 3.0.1 → 3.0.2
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.
- package/README.md +1 -1
- package/fesm2022/cax-design-system-cascadeselect.mjs +2 -2
- package/fesm2022/cax-design-system-cascadeselect.mjs.map +1 -1
- package/fesm2022/cax-design-system-commentbox.mjs +2 -2
- package/fesm2022/cax-design-system-commentbox.mjs.map +1 -1
- package/fesm2022/cax-design-system-navigation.mjs +2 -2
- package/fesm2022/cax-design-system-navigation.mjs.map +1 -1
- package/fesm2022/cax-design-system-slider.mjs +82 -2
- package/fesm2022/cax-design-system-slider.mjs.map +1 -1
- package/fesm2022/cax-design-system-table.mjs +2 -2
- package/fesm2022/cax-design-system-table.mjs.map +1 -1
- package/fesm2022/cax-design-system-tableconfiguration.mjs +1 -1
- package/fesm2022/cax-design-system-tableconfiguration.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/cax.min.scss +26 -4
- package/resources/cax.scss +25 -4
- package/resources/components/navigation/navigation.scss +2 -1
- package/resources/components/slider/slider.scss +41 -0
- package/resources/components/table/table.scss +3 -3
- package/slider/index.d.ts +10 -1
|
@@ -391,7 +391,7 @@ class Navigation {
|
|
|
391
391
|
}
|
|
392
392
|
}
|
|
393
393
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: Navigation, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
394
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: Navigation, isStandalone: true, selector: "cax-navigation", inputs: { header: "header", topNavList: "topNavList", bottomNavList: "bottomNavList", activeTab: "activeTab", notifications: "notifications", helpCentre: "helpCentre", privacyPolicy: "privacyPolicy", copyrightYear: "copyrightYear", version: "version", logout: "logout", myAccount: "myAccount", userName: "userName", userImage: "userImage", headerLogo: "headerLogo", headerInitials: "headerInitials", subscriptions: "subscriptions", selectedSubscription: "selectedSubscription", displaySubscriptionName: "displaySubscriptionName", notificationCount: "notificationCount" }, outputs: { onNavListItemChange: "onNavListItemChange", onNotificationClick: "onNotificationClick", onHelpCentreClick: "onHelpCentreClick", onPrivacyPolicyClick: "onPrivacyPolicyClick", onLogoutClick: "onLogoutClick", onMyAccountClick: "onMyAccountClick", onLogoClick: "onLogoClick", onSubscriptionChange: "onSubscriptionChange", onNavExpanded: "onNavExpanded" }, 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 }, { propertyName: "subscriptionItems", predicate: ["subscriptionItems"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"cax-nav-header-container\" #headerContainer>\n <div [@headerAnimation] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\n </div>\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@headerAnimation]>\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span>{{ header }}</span>\n </div>\n </div>\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\n <ul>\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n </ul>\n </div>\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\n <div class=\"cax-nav-bottom-list\">\n <ul>\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\n <i *ngIf=\"!notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\"></i>\n <i *ngIf=\"notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\" caxBadge [value]=\"notificationCount\" badgeSize=\"xs\" badgeSeverity=\"danger\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Notifications</span>\n </li>\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\n <i class=\"cax cax-shield-warning{{helpCentreActive ? '-bold' : ''}}\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Help Center</span>\n </li>\n </ul>\n </div>\n <div #accountDetailsTrigger [@headerAnimation] *ngIf=\"userName\" (click)=\"op.toggle($event, accountDetailsTrigger);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\n <span class=\"cax-nav-user-name cax-text-heading-sm-semibold\">{{ userName }}</span>\n <span class=\"cax-nav-user-role cax-text-body-xsm-regular\">{{ displaySubscriptionName }}</span>\n </div>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\n <i class=\"cax cax-alt-arrow-up\"></i>\n <i class=\"cax cax-alt-arrow-down\"></i>\n </div>\n </div>\n <cax-overlayPanel #op (onShow)=\"onAccountOverlayShow()\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\n <div class=\"cax-nav-subscription-wrapper\" style=\"position: relative\">\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptions?.length\" (scroll)=\"onSubscriptionListScroll($event)\">\n <ng-container *ngFor=\"let item of subscriptions, let i = index\">\n <!-- Default Mode (String) -->\n <li #subscriptionItems *ngIf=\"!isAdvance(item)\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" [class.active]=\"selectedSubscription === item\" (click)=\"changeActiveSusbcription(item); op.hide()\">\n <span>{{ item }}</span>\n </li>\n\n <!-- Advance Mode (SubscriptionList) -->\n <div *ngIf=\"isAdvance(item)\" class=\"cax-nav-subscription-item-container\">\n <li #subscriptionItems [class.expanded]=\"item.check\" [class.active]=\"selectedSubscription?.name === item.name\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" (click)=\"toggleSubscriptionList(i, $event)\">\n <span>{{ item.name }}</span>\n <i class=\"cax cax-alt-arrow-right\"></i>\n </li>\n </div>\n </ng-container>\n </div>\n\n <!-- Sibling Flyout Overlay -->\n <ng-container *ngIf=\"expandedIndex !== -1\">\n <div #childOverlay [@flyoutAnimation]=\"'open'\" class=\"cax-nav-subscription-child-overlay\" [style.top.px]=\"flyoutTop\">\n <div class=\"cax-nav-subscription-list\">\n <li\n [class.active]=\"selectedSubscription?.selected === child\"\n class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\"\n *ngFor=\"let child of subscriptions[expandedIndex].subscription\"\n (click)=\"updateSubscription(subscriptions[expandedIndex], child); op.hide()\"\n >\n <span>{{ child }}</span>\n </li>\n </div>\n </div>\n </ng-container>\n </div>\n <cax-divider *ngIf=\"myAccount || logout\" [style]=\"{margin: '4px 0px 8px 0px'}\"></cax-divider>\n <div *ngIf=\"myAccount\" class=\"cax-nav-profile-options\" (click)=\"emitMyAccount(); op.hide()\">\n <i class=\"cax cax-user-rounded\"></i>\n <span class=\"cax-text-action-lg-semibold\">My Account</span>\n </div>\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout(); op.hide()\">\n <i class=\"cax cax-logout\"></i>\n <span class=\"cax-text-action-lg-semibold\">Logout</span>\n </div>\n <div class=\"cax-nav-copyright-container\" *ngIf=\"privacyPolicy || copyrightYear || version\">\n <span *ngIf=\"privacyPolicy\" class=\"cax-nav-privacy-policy cax-text-action-sm-link-regular\" (click)=\"emitPrivacyPolicy(); op.hide()\">Privacy Policy</span>\n <div class=\"cax-nav-copyright\">\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"copyrightYear\">© {{ copyrightYear }}</span>\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"version\">{{ version }}</span>\n </div>\n </div>\n </cax-overlayPanel>\n </div>\n</div>\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s cubic-bezier(.4,0,.2,1);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.cax-nav-expand .cax-nav-header{width:198px}.cax-nav.cax-nav-expand .cax-nav-list-container ul li,.cax-nav.cax-nav-expand .cax-nav-bottom-list ul li{width:248px}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px;position:relative}.cax-nav-header{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:6px;width:100%;max-width:198px}.cax-nav-header span{font-weight:600;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 ul li .cax-image,.cax-nav-bottom-list ul li .cax-image{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-list-container ul li .cax-image img,.cax-nav-bottom-list ul li .cax-image img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.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;display:flex;align-items:flex-start;width:72px;height:72px}.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;overflow:hidden;gap:4px}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:600;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cax-nav-user .cax-nav-user-role{font-size:12px;font-weight:400;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cax-overlaypanel{width:300px;overflow:visible!important}.cax-overlaypanel .cax-overlaypanel-content{padding:12px;overflow:visible!important}.cax-overlaypanel .cax-overlaypanel-content>.cax-nav-subscription-list{max-height:400px;overflow-y:auto}.cax-nav-subscription-wrapper{position:relative;overflow:visible!important}.cax-nav-subscription-list{padding:0;margin:0;list-style:none;max-height:400px;overflow-y:auto}.cax-nav-subscription-item-container{position:relative}.cax-nav-subscription-child-overlay{position:absolute;left:100%;margin-left:20px;z-index:1100;width:276px}.cax-nav-subscription-child-overlay .cax-nav-subscription-list{padding:12px;background:var(--white-100);border:1px solid var(--neutral-100);border-radius:12px;max-height:300px;overflow-y:auto;box-shadow:0 4px 16px #00000014}.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;margin-left:auto}.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:272px!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", "variant"] }, { 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", "textColor", "backgroundColor", "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", "variant", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i7.BadgeDirective, selector: "[caxBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "caxBadge", "value", "badgeSeverity", "severity", "badgeStyle", "badgeStyleClass"] }], animations: [
|
|
394
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.25", type: Navigation, isStandalone: true, selector: "cax-navigation", inputs: { header: "header", topNavList: "topNavList", bottomNavList: "bottomNavList", activeTab: "activeTab", notifications: "notifications", helpCentre: "helpCentre", privacyPolicy: "privacyPolicy", copyrightYear: "copyrightYear", version: "version", logout: "logout", myAccount: "myAccount", userName: "userName", userImage: "userImage", headerLogo: "headerLogo", headerInitials: "headerInitials", subscriptions: "subscriptions", selectedSubscription: "selectedSubscription", displaySubscriptionName: "displaySubscriptionName", notificationCount: "notificationCount" }, outputs: { onNavListItemChange: "onNavListItemChange", onNotificationClick: "onNotificationClick", onHelpCentreClick: "onHelpCentreClick", onPrivacyPolicyClick: "onPrivacyPolicyClick", onLogoutClick: "onLogoutClick", onMyAccountClick: "onMyAccountClick", onLogoClick: "onLogoClick", onSubscriptionChange: "onSubscriptionChange", onNavExpanded: "onNavExpanded" }, 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 }, { propertyName: "subscriptionItems", predicate: ["subscriptionItems"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"cax-nav-header-container\" #headerContainer>\n <div [@headerAnimation] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\n </div>\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@headerAnimation]>\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span>{{ header }}</span>\n </div>\n </div>\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\n <ul>\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n </ul>\n </div>\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\n <div class=\"cax-nav-bottom-list\">\n <ul>\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\n <i *ngIf=\"!notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\"></i>\n <i *ngIf=\"notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\" caxBadge [value]=\"notificationCount\" badgeSize=\"xs\" badgeSeverity=\"danger\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Notifications</span>\n </li>\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\n <i class=\"cax cax-shield-warning{{helpCentreActive ? '-bold' : ''}}\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Help Center</span>\n </li>\n </ul>\n </div>\n <div #accountDetailsTrigger [@headerAnimation] *ngIf=\"userName\" (click)=\"op.toggle($event, accountDetailsTrigger);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\n <span class=\"cax-nav-user-name cax-text-heading-sm-semibold\">{{ userName }}</span>\n <span class=\"cax-nav-user-role cax-text-body-xsm-regular\">{{ displaySubscriptionName }}</span>\n </div>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\n <i class=\"cax cax-alt-arrow-up\"></i>\n <i class=\"cax cax-alt-arrow-down\"></i>\n </div>\n </div>\n <cax-overlayPanel #op (onShow)=\"onAccountOverlayShow()\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\n <div class=\"cax-nav-subscription-wrapper\" style=\"position: relative\">\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptions?.length\" (scroll)=\"onSubscriptionListScroll($event)\">\n <ng-container *ngFor=\"let item of subscriptions, let i = index\">\n <!-- Default Mode (String) -->\n <li #subscriptionItems *ngIf=\"!isAdvance(item)\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" [class.active]=\"selectedSubscription === item\" (click)=\"changeActiveSusbcription(item); op.hide()\">\n <span>{{ item }}</span>\n </li>\n\n <!-- Advance Mode (SubscriptionList) -->\n <div *ngIf=\"isAdvance(item)\" class=\"cax-nav-subscription-item-container\">\n <li #subscriptionItems [class.expanded]=\"item.check\" [class.active]=\"selectedSubscription?.name === item.name\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" (click)=\"toggleSubscriptionList(i, $event)\">\n <span>{{ item.name }}</span>\n <i class=\"cax cax-alt-arrow-right\"></i>\n </li>\n </div>\n </ng-container>\n </div>\n\n <!-- Sibling Flyout Overlay -->\n <ng-container *ngIf=\"expandedIndex !== -1\">\n <div #childOverlay [@flyoutAnimation]=\"'open'\" class=\"cax-nav-subscription-child-overlay\" [style.top.px]=\"flyoutTop\">\n <div class=\"cax-nav-subscription-list\">\n <li\n [class.active]=\"selectedSubscription?.selected === child\"\n class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\"\n *ngFor=\"let child of subscriptions[expandedIndex].subscription\"\n (click)=\"updateSubscription(subscriptions[expandedIndex], child); op.hide()\"\n >\n <span>{{ child }}</span>\n </li>\n </div>\n </div>\n </ng-container>\n </div>\n <cax-divider *ngIf=\"subscriptions?.length > 0\" [style]=\"{margin: '4px 0px 8px 0px'}\"></cax-divider>\n <div *ngIf=\"myAccount\" class=\"cax-nav-profile-options\" (click)=\"emitMyAccount(); op.hide()\">\n <i class=\"cax cax-user-rounded\"></i>\n <span class=\"cax-text-action-lg-semibold\">My Account</span>\n </div>\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout(); op.hide()\">\n <i class=\"cax cax-logout\"></i>\n <span class=\"cax-text-action-lg-semibold\">Logout</span>\n </div>\n <div class=\"cax-nav-copyright-container\" *ngIf=\"privacyPolicy || copyrightYear || version\">\n <span *ngIf=\"privacyPolicy\" class=\"cax-nav-privacy-policy cax-text-action-sm-link-regular\" (click)=\"emitPrivacyPolicy(); op.hide()\">Privacy Policy</span>\n <div class=\"cax-nav-copyright\">\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"copyrightYear\">© {{ copyrightYear }}</span>\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"version\">{{ version }}</span>\n </div>\n </div>\n </cax-overlayPanel>\n </div>\n</div>\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s cubic-bezier(.4,0,.2,1);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.cax-nav-expand .cax-nav-header{width:198px}.cax-nav.cax-nav-expand .cax-nav-list-container ul li,.cax-nav.cax-nav-expand .cax-nav-bottom-list ul li{width:248px}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px;position:relative}.cax-nav-header{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:6px;width:100%;max-width:198px}.cax-nav-header span{font-weight:600;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 ul li .cax-image,.cax-nav-bottom-list ul li .cax-image{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-list-container ul li .cax-image img,.cax-nav-bottom-list ul li .cax-image img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.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;display:flex;align-items:flex-start;width:72px;height:72px}.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;overflow:hidden;gap:4px}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:600;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cax-nav-user .cax-nav-user-role{font-size:12px;font-weight:400;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cax-overlaypanel.cax-nav-overlay,.cax-overlaypanel.cax-nav-overlay-expand{width:300px;overflow:visible!important}.cax-overlaypanel.cax-nav-overlay .cax-overlaypanel-content,.cax-overlaypanel.cax-nav-overlay-expand .cax-overlaypanel-content{padding:12px;overflow:visible!important}.cax-overlaypanel.cax-nav-overlay .cax-overlaypanel-content>.cax-nav-subscription-list,.cax-overlaypanel.cax-nav-overlay-expand .cax-overlaypanel-content>.cax-nav-subscription-list{max-height:400px;overflow-y:auto}.cax-nav-subscription-wrapper{position:relative;overflow:visible!important}.cax-nav-subscription-list{padding:0;margin:0;list-style:none;max-height:400px;overflow-y:auto}.cax-nav-subscription-item-container{position:relative}.cax-nav-subscription-child-overlay{position:absolute;left:100%;margin-left:20px;z-index:1100;width:276px}.cax-nav-subscription-child-overlay .cax-nav-subscription-list{padding:12px;background:var(--white-100);border:1px solid var(--neutral-100);border-radius:12px;max-height:300px;overflow-y:auto;box-shadow:0 4px 16px #00000014}.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;margin-left:auto}.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:272px!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", "variant"] }, { 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", "textColor", "backgroundColor", "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", "variant", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: BadgeModule }, { kind: "directive", type: i7.BadgeDirective, selector: "[caxBadge]", inputs: ["badgeDisabled", "badgeSize", "size", "caxBadge", "value", "badgeSeverity", "severity", "badgeStyle", "badgeStyleClass"] }], animations: [
|
|
395
395
|
trigger('textAnimation', [
|
|
396
396
|
transition(':enter', [style({ opacity: 0, width: '0px', marginLeft: '0px', visibility: 'hidden' }), animate('300ms cubic-bezier(0.4, 0, 0.2, 1)', style({ opacity: 1, width: '*', marginLeft: '8px', visibility: 'visible' }))]),
|
|
397
397
|
transition(':leave', [style({ opacity: 1, width: '*', marginLeft: '8px', visibility: 'visible' }), animate('300ms cubic-bezier(0.4, 0, 0.2, 1)', style({ opacity: 0, width: '0px', marginLeft: '0px', visibility: 'hidden' }))])
|
|
@@ -427,7 +427,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
|
|
|
427
427
|
])
|
|
428
428
|
], host: {
|
|
429
429
|
class: 'cax-element'
|
|
430
|
-
}, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"cax-nav-header-container\" #headerContainer>\n <div [@headerAnimation] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\n </div>\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@headerAnimation]>\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span>{{ header }}</span>\n </div>\n </div>\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\n <ul>\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n </ul>\n </div>\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\n <div class=\"cax-nav-bottom-list\">\n <ul>\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\n <i *ngIf=\"!notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\"></i>\n <i *ngIf=\"notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\" caxBadge [value]=\"notificationCount\" badgeSize=\"xs\" badgeSeverity=\"danger\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Notifications</span>\n </li>\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\n <i class=\"cax cax-shield-warning{{helpCentreActive ? '-bold' : ''}}\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Help Center</span>\n </li>\n </ul>\n </div>\n <div #accountDetailsTrigger [@headerAnimation] *ngIf=\"userName\" (click)=\"op.toggle($event, accountDetailsTrigger);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\n <span class=\"cax-nav-user-name cax-text-heading-sm-semibold\">{{ userName }}</span>\n <span class=\"cax-nav-user-role cax-text-body-xsm-regular\">{{ displaySubscriptionName }}</span>\n </div>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\n <i class=\"cax cax-alt-arrow-up\"></i>\n <i class=\"cax cax-alt-arrow-down\"></i>\n </div>\n </div>\n <cax-overlayPanel #op (onShow)=\"onAccountOverlayShow()\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\n <div class=\"cax-nav-subscription-wrapper\" style=\"position: relative\">\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptions?.length\" (scroll)=\"onSubscriptionListScroll($event)\">\n <ng-container *ngFor=\"let item of subscriptions, let i = index\">\n <!-- Default Mode (String) -->\n <li #subscriptionItems *ngIf=\"!isAdvance(item)\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" [class.active]=\"selectedSubscription === item\" (click)=\"changeActiveSusbcription(item); op.hide()\">\n <span>{{ item }}</span>\n </li>\n\n <!-- Advance Mode (SubscriptionList) -->\n <div *ngIf=\"isAdvance(item)\" class=\"cax-nav-subscription-item-container\">\n <li #subscriptionItems [class.expanded]=\"item.check\" [class.active]=\"selectedSubscription?.name === item.name\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" (click)=\"toggleSubscriptionList(i, $event)\">\n <span>{{ item.name }}</span>\n <i class=\"cax cax-alt-arrow-right\"></i>\n </li>\n </div>\n </ng-container>\n </div>\n\n <!-- Sibling Flyout Overlay -->\n <ng-container *ngIf=\"expandedIndex !== -1\">\n <div #childOverlay [@flyoutAnimation]=\"'open'\" class=\"cax-nav-subscription-child-overlay\" [style.top.px]=\"flyoutTop\">\n <div class=\"cax-nav-subscription-list\">\n <li\n [class.active]=\"selectedSubscription?.selected === child\"\n class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\"\n *ngFor=\"let child of subscriptions[expandedIndex].subscription\"\n (click)=\"updateSubscription(subscriptions[expandedIndex], child); op.hide()\"\n >\n <span>{{ child }}</span>\n </li>\n </div>\n </div>\n </ng-container>\n </div>\n <cax-divider *ngIf=\"myAccount || logout\" [style]=\"{margin: '4px 0px 8px 0px'}\"></cax-divider>\n <div *ngIf=\"myAccount\" class=\"cax-nav-profile-options\" (click)=\"emitMyAccount(); op.hide()\">\n <i class=\"cax cax-user-rounded\"></i>\n <span class=\"cax-text-action-lg-semibold\">My Account</span>\n </div>\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout(); op.hide()\">\n <i class=\"cax cax-logout\"></i>\n <span class=\"cax-text-action-lg-semibold\">Logout</span>\n </div>\n <div class=\"cax-nav-copyright-container\" *ngIf=\"privacyPolicy || copyrightYear || version\">\n <span *ngIf=\"privacyPolicy\" class=\"cax-nav-privacy-policy cax-text-action-sm-link-regular\" (click)=\"emitPrivacyPolicy(); op.hide()\">Privacy Policy</span>\n <div class=\"cax-nav-copyright\">\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"copyrightYear\">© {{ copyrightYear }}</span>\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"version\">{{ version }}</span>\n </div>\n </div>\n </cax-overlayPanel>\n </div>\n</div>\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s cubic-bezier(.4,0,.2,1);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.cax-nav-expand .cax-nav-header{width:198px}.cax-nav.cax-nav-expand .cax-nav-list-container ul li,.cax-nav.cax-nav-expand .cax-nav-bottom-list ul li{width:248px}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px;position:relative}.cax-nav-header{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:6px;width:100%;max-width:198px}.cax-nav-header span{font-weight:600;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 ul li .cax-image,.cax-nav-bottom-list ul li .cax-image{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-list-container ul li .cax-image img,.cax-nav-bottom-list ul li .cax-image img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.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;display:flex;align-items:flex-start;width:72px;height:72px}.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;overflow:hidden;gap:4px}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:600;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cax-nav-user .cax-nav-user-role{font-size:12px;font-weight:400;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cax-overlaypanel{width:300px;overflow:visible!important}.cax-overlaypanel .cax-overlaypanel-content{padding:12px;overflow:visible!important}.cax-overlaypanel .cax-overlaypanel-content>.cax-nav-subscription-list{max-height:400px;overflow-y:auto}.cax-nav-subscription-wrapper{position:relative;overflow:visible!important}.cax-nav-subscription-list{padding:0;margin:0;list-style:none;max-height:400px;overflow-y:auto}.cax-nav-subscription-item-container{position:relative}.cax-nav-subscription-child-overlay{position:absolute;left:100%;margin-left:20px;z-index:1100;width:276px}.cax-nav-subscription-child-overlay .cax-nav-subscription-list{padding:12px;background:var(--white-100);border:1px solid var(--neutral-100);border-radius:12px;max-height:300px;overflow-y:auto;box-shadow:0 4px 16px #00000014}.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;margin-left:auto}.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:272px!important;top:auto!important;bottom:6px}.cax-nav-overlay{left:94px!important;top:auto!important;bottom:6px}}.c-pointer{cursor:pointer}\n"] }]
|
|
430
|
+
}, template: "<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"cax-nav-header-container\" #headerContainer>\n <div [@headerAnimation] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\n </div>\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@headerAnimation]>\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span>{{ header }}</span>\n </div>\n </div>\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\n <ul>\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n </ul>\n </div>\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\n <div class=\"cax-nav-bottom-list\">\n <ul>\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\n <i *ngIf=\"!notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\"></i>\n <i *ngIf=\"notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\" caxBadge [value]=\"notificationCount\" badgeSize=\"xs\" badgeSeverity=\"danger\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Notifications</span>\n </li>\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\n <i class=\"cax cax-shield-warning{{helpCentreActive ? '-bold' : ''}}\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Help Center</span>\n </li>\n </ul>\n </div>\n <div #accountDetailsTrigger [@headerAnimation] *ngIf=\"userName\" (click)=\"op.toggle($event, accountDetailsTrigger);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\n <span class=\"cax-nav-user-name cax-text-heading-sm-semibold\">{{ userName }}</span>\n <span class=\"cax-nav-user-role cax-text-body-xsm-regular\">{{ displaySubscriptionName }}</span>\n </div>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\n <i class=\"cax cax-alt-arrow-up\"></i>\n <i class=\"cax cax-alt-arrow-down\"></i>\n </div>\n </div>\n <cax-overlayPanel #op (onShow)=\"onAccountOverlayShow()\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\n <div class=\"cax-nav-subscription-wrapper\" style=\"position: relative\">\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptions?.length\" (scroll)=\"onSubscriptionListScroll($event)\">\n <ng-container *ngFor=\"let item of subscriptions, let i = index\">\n <!-- Default Mode (String) -->\n <li #subscriptionItems *ngIf=\"!isAdvance(item)\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" [class.active]=\"selectedSubscription === item\" (click)=\"changeActiveSusbcription(item); op.hide()\">\n <span>{{ item }}</span>\n </li>\n\n <!-- Advance Mode (SubscriptionList) -->\n <div *ngIf=\"isAdvance(item)\" class=\"cax-nav-subscription-item-container\">\n <li #subscriptionItems [class.expanded]=\"item.check\" [class.active]=\"selectedSubscription?.name === item.name\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" (click)=\"toggleSubscriptionList(i, $event)\">\n <span>{{ item.name }}</span>\n <i class=\"cax cax-alt-arrow-right\"></i>\n </li>\n </div>\n </ng-container>\n </div>\n\n <!-- Sibling Flyout Overlay -->\n <ng-container *ngIf=\"expandedIndex !== -1\">\n <div #childOverlay [@flyoutAnimation]=\"'open'\" class=\"cax-nav-subscription-child-overlay\" [style.top.px]=\"flyoutTop\">\n <div class=\"cax-nav-subscription-list\">\n <li\n [class.active]=\"selectedSubscription?.selected === child\"\n class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\"\n *ngFor=\"let child of subscriptions[expandedIndex].subscription\"\n (click)=\"updateSubscription(subscriptions[expandedIndex], child); op.hide()\"\n >\n <span>{{ child }}</span>\n </li>\n </div>\n </div>\n </ng-container>\n </div>\n <cax-divider *ngIf=\"subscriptions?.length > 0\" [style]=\"{margin: '4px 0px 8px 0px'}\"></cax-divider>\n <div *ngIf=\"myAccount\" class=\"cax-nav-profile-options\" (click)=\"emitMyAccount(); op.hide()\">\n <i class=\"cax cax-user-rounded\"></i>\n <span class=\"cax-text-action-lg-semibold\">My Account</span>\n </div>\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout(); op.hide()\">\n <i class=\"cax cax-logout\"></i>\n <span class=\"cax-text-action-lg-semibold\">Logout</span>\n </div>\n <div class=\"cax-nav-copyright-container\" *ngIf=\"privacyPolicy || copyrightYear || version\">\n <span *ngIf=\"privacyPolicy\" class=\"cax-nav-privacy-policy cax-text-action-sm-link-regular\" (click)=\"emitPrivacyPolicy(); op.hide()\">Privacy Policy</span>\n <div class=\"cax-nav-copyright\">\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"copyrightYear\">© {{ copyrightYear }}</span>\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"version\">{{ version }}</span>\n </div>\n </div>\n </cax-overlayPanel>\n </div>\n</div>\n", styles: ["@layer cax{.cax-nav{width:88px;height:100vh;transition:width .3s cubic-bezier(.4,0,.2,1);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.cax-nav-expand .cax-nav-header{width:198px}.cax-nav.cax-nav-expand .cax-nav-list-container ul li,.cax-nav.cax-nav-expand .cax-nav-bottom-list ul li{width:248px}.cax-nav-header-container{display:flex;align-items:center;justify-content:center;height:64px;position:relative}.cax-nav-header{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:6px;width:100%;max-width:198px}.cax-nav-header span{font-weight:600;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 ul li .cax-image,.cax-nav-bottom-list ul li .cax-image{transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.cax-nav-list-container ul li .cax-image img,.cax-nav-bottom-list ul li .cax-image img{transition:opacity .3s cubic-bezier(.4,0,.2,1);will-change:opacity;backface-visibility:hidden}.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;display:flex;align-items:flex-start;width:72px;height:72px}.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;overflow:hidden;gap:4px}.cax-nav-user .cax-nav-user-name{font-size:16px;font-weight:600;line-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cax-nav-user .cax-nav-user-role{font-size:12px;font-weight:400;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cax-overlaypanel.cax-nav-overlay,.cax-overlaypanel.cax-nav-overlay-expand{width:300px;overflow:visible!important}.cax-overlaypanel.cax-nav-overlay .cax-overlaypanel-content,.cax-overlaypanel.cax-nav-overlay-expand .cax-overlaypanel-content{padding:12px;overflow:visible!important}.cax-overlaypanel.cax-nav-overlay .cax-overlaypanel-content>.cax-nav-subscription-list,.cax-overlaypanel.cax-nav-overlay-expand .cax-overlaypanel-content>.cax-nav-subscription-list{max-height:400px;overflow-y:auto}.cax-nav-subscription-wrapper{position:relative;overflow:visible!important}.cax-nav-subscription-list{padding:0;margin:0;list-style:none;max-height:400px;overflow-y:auto}.cax-nav-subscription-item-container{position:relative}.cax-nav-subscription-child-overlay{position:absolute;left:100%;margin-left:20px;z-index:1100;width:276px}.cax-nav-subscription-child-overlay .cax-nav-subscription-list{padding:12px;background:var(--white-100);border:1px solid var(--neutral-100);border-radius:12px;max-height:300px;overflow-y:auto;box-shadow:0 4px 16px #00000014}.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;margin-left:auto}.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:272px!important;top:auto!important;bottom:6px}.cax-nav-overlay{left:94px!important;top:auto!important;bottom:6px}}.c-pointer{cursor:pointer}\n"] }]
|
|
431
431
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { header: [{
|
|
432
432
|
type: Input
|
|
433
433
|
}], topNavList: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cax-design-system-navigation.mjs","sources":["../../src/app/components/navigation/navigation.ts","../../src/app/components/navigation/navigation.html","../../src/app/components/navigation/navigation.module.ts","../../src/app/components/navigation/cax-design-system-navigation.ts"],"sourcesContent":["import { trigger, transition, style, animate, state } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { Component, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation, Input, EventEmitter, Output, ViewChild, ElementRef, HostListener, AfterViewInit, OnChanges, QueryList, ViewChildren } from '@angular/core';\nimport { DividerModule } from 'cax-design-system/divider';\nimport { LogoModule } from 'cax-design-system/logo';\nimport { ActiveSubscription, NavListItem, SubscriptionList, TabIndexType } from './navigation.interface';\nimport { ImageModule } from 'cax-design-system/image';\nimport { AvatarModule } from 'cax-design-system/avatar';\nimport { OverlayPanelModule } from 'cax-design-system/overlaypanel';\nimport { OverlayModule } from 'cax-design-system/overlay';\nimport { RadioButtonModule } from 'cax-design-system/radiobutton';\nimport { FormsModule } from '@angular/forms';\nimport { BadgeModule } from 'cax-design-system/badge';\n\n@Component({\n selector: 'cax-navigation',\n templateUrl: './navigation.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./navigation.scss'],\n standalone: true,\n imports: [LogoModule, CommonModule, DividerModule, ImageModule, AvatarModule, OverlayPanelModule, OverlayModule, RadioButtonModule, FormsModule, BadgeModule],\n animations: [\n trigger('textAnimation', [\n transition(':enter', [style({ opacity: 0, width: '0px', marginLeft: '0px', visibility: 'hidden' }), animate('300ms cubic-bezier(0.4, 0, 0.2, 1)', style({ opacity: 1, width: '*', marginLeft: '8px', visibility: 'visible' }))]),\n transition(':leave', [style({ opacity: 1, width: '*', marginLeft: '8px', visibility: 'visible' }), animate('300ms cubic-bezier(0.4, 0, 0.2, 1)', style({ opacity: 0, width: '0px', marginLeft: '0px', visibility: 'hidden' }))])\n ]),\n trigger('headerAnimation', [\n transition(':enter', [style({ opacity: 0 }), animate('300ms cubic-bezier(0.4, 0, 0.2, 1)', style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate('300ms cubic-bezier(0.4, 0, 0.2, 1)', style({ opacity: 0 }))])\n ]),\n trigger('flyoutAnimation', [\n state('void', style({ transform: 'scaleY(0.8)', opacity: 0 })),\n state('open', style({ transform: 'translateY(0)', opacity: 1 })),\n transition('void => open', animate('.12s cubic-bezier(0, 0, 0.2, 1)')),\n transition('open => void', animate('.1s linear'))\n ])\n ],\n host: {\n class: 'cax-element'\n }\n})\nexport class Navigation implements OnChanges, AfterViewInit {\n @Input() header: string | undefined;\n @Input() topNavList: NavListItem[];\n @Input() bottomNavList: NavListItem[];\n @Input() activeTab: TabIndexType | 'notifications' | 'help-centre' | undefined;\n @Input() notifications: boolean = true;\n @Input() helpCentre: boolean = true;\n @Input() privacyPolicy: boolean = true;\n @Input() copyrightYear: number | undefined = new Date().getFullYear();\n @Input() version: string | undefined;\n @Input() logout: boolean = true;\n @Input() myAccount: boolean = true;\n @Input() userName: string | undefined;\n @Input() userImage: string | undefined;\n @Input() headerLogo: { expanded: string; collapsed: string } | undefined;\n @Input() headerInitials: string | undefined;\n @Input() subscriptions: (string | SubscriptionList)[] = [];\n @Input() selectedSubscription: string | ActiveSubscription | undefined;\n @Input() displaySubscriptionName: string | undefined;\n @Input() notificationCount: number = 0;\n\n isAdvance(item: any): boolean {\n return typeof item === 'object' && item !== null && 'subscription' in item;\n }\n\n constructor(private cd: ChangeDetectorRef) {}\n\n @Output() onNavListItemChange: EventEmitter<{ activeTab: TabIndexType | 'notifications' | 'help-centre' | undefined }> = new EventEmitter();\n @Output() onNotificationClick: EventEmitter<any> = new EventEmitter();\n @Output() onHelpCentreClick: EventEmitter<any> = new EventEmitter();\n @Output() onPrivacyPolicyClick: EventEmitter<any> = new EventEmitter();\n @Output() onLogoutClick: EventEmitter<any> = new EventEmitter();\n @Output() onMyAccountClick: EventEmitter<any> = new EventEmitter();\n @Output() onLogoClick: EventEmitter<any> = new EventEmitter();\n @Output() onSubscriptionChange: EventEmitter<any> = new EventEmitter();\n @Output() onNavExpanded: EventEmitter<boolean> = new EventEmitter(false);\n\n isHovered: boolean = false;\n isNavExpanded: boolean = false;\n notificationActive: boolean = false;\n helpCentreActive: boolean = false;\n accountDetailsActive: boolean = false;\n checkRadio = 1;\n expandedIndex: number = -1;\n flyoutTop: number = 0;\n @ViewChild('bottomContainer') bottomContainer!: ElementRef<HTMLDivElement>;\n @ViewChild('headerContainer') headerContainer!: ElementRef<HTMLDivElement>;\n @ViewChildren('subscriptionItems') subscriptionItems!: QueryList<ElementRef>;\n\n ngOnChanges() {\n if (this.activeTab === undefined || this.activeTab === null) {\n this.topNavList?.forEach((list: NavListItem) => (list.active = false));\n this.bottomNavList?.forEach((list: NavListItem) => (list.active = false));\n this.notificationActive = false;\n this.helpCentreActive = false;\n } else if (this.activeTab == 'notifications') {\n if (this.notifications) {\n this.topNavList?.map((list: NavListItem) => (list.active = false));\n this.bottomNavList?.map((list: NavListItem) => (list.active = false));\n this.notificationActive = true;\n } else if (this.topNavList?.length) {\n this.topNavList[0].active = true;\n }\n } else if (this.activeTab == 'help-centre') {\n if (this.helpCentre) {\n this.topNavList?.map((list: NavListItem) => (list.active = false));\n this.bottomNavList?.map((list: NavListItem) => (list.active = false));\n this.helpCentreActive = true;\n } else if (this.topNavList?.length) {\n this.topNavList[0].active = true;\n }\n } else {\n if (this.activeTab?.position == 'top') {\n this.bottomNavList?.forEach((list: NavListItem) => (list.active = false));\n if (this.activeTab.index > -1 && this.activeTab.index < this.topNavList?.length) {\n this.topNavList?.forEach((list: NavListItem) => (list.active = false));\n this.topNavList[this.activeTab.index].active = true;\n } else if (this.topNavList?.length) {\n if (this.topNavList.filter((list: NavListItem) => list.active).length > 0) {\n let count = 0;\n this.topNavList.forEach((list: NavListItem) => {\n if (list.active && count == 0) count = count + 1;\n else list.active = false;\n });\n } else {\n this.topNavList[0].active = true;\n }\n }\n } else if (this.activeTab?.position == 'bottom') {\n this.topNavList?.forEach((list: NavListItem) => (list.active = false));\n if (this.activeTab.index > -1 && this.activeTab.index < this.bottomNavList?.length) {\n this.bottomNavList?.forEach((list: NavListItem) => (list.active = false));\n this.bottomNavList[this.activeTab.index].active = true;\n } else if (this.bottomNavList?.length) {\n if (this.bottomNavList.filter((list: NavListItem) => list.active).length > 0) {\n let count = 0;\n this.bottomNavList.forEach((list: NavListItem) => {\n if (list.active && count == 0) count = count + 1;\n else list.active = false;\n });\n } else {\n this.bottomNavList[0].active = true;\n }\n }\n } else if (this.topNavList?.length) {\n this.topNavList.forEach((list: NavListItem) => (list.active = false));\n this.bottomNavList?.forEach((list: NavListItem) => (list.active = false));\n this.topNavList[0].active = true;\n }\n }\n }\n\n ngAfterViewInit(): void {\n this.subscriptions = this.subscriptions?.map((item) => {\n if (this.isAdvance(item)) {\n return { ...(item as SubscriptionList), check: false };\n }\n return item;\n });\n\n if (this.subscriptions?.length) {\n const isValidSelection = this.subscriptions.some((item) => {\n if (typeof this.selectedSubscription === 'string') {\n return item === this.selectedSubscription;\n } else if (typeof this.selectedSubscription === 'object' && this.isAdvance(item)) {\n const advItem = item as SubscriptionList;\n return advItem.name === this.selectedSubscription.name && advItem.subscription.includes(this.selectedSubscription.selected);\n }\n return false;\n });\n\n if (!isValidSelection) {\n const firstItem = this.subscriptions[0];\n if (this.isAdvance(firstItem)) {\n const advItem = firstItem as SubscriptionList;\n this.selectedSubscription = {\n name: advItem.name,\n selected: advItem.subscription[0]\n };\n } else {\n this.selectedSubscription = firstItem as string;\n }\n }\n }\n if (!this.displaySubscriptionName?.length) {\n if (this.selectedSubscription && typeof this.selectedSubscription === 'object') {\n this.displaySubscriptionName = this.selectedSubscription.selected;\n } else if (this.selectedSubscription && typeof this.selectedSubscription === 'string') {\n this.displaySubscriptionName = this.selectedSubscription;\n }\n }\n this.adjustUpDivHeight();\n }\n\n onItemClick(e: MouseEvent, item: NavListItem, index: number, position: 'top' | 'bottom') {\n this.topNavList?.map((list: NavListItem) => (list.active = false));\n this.bottomNavList?.map((list: NavListItem) => (list.active = false));\n this.notificationActive = false;\n this.helpCentreActive = false;\n if (position == 'top') this.topNavList[index].active = true;\n else if (position == 'bottom') this.bottomNavList[index].active = true;\n this.onNavListItemChange.emit({ activeTab: { position: position, index: index } });\n if (item.command) {\n item.command({ originalEvent: e, item });\n }\n }\n\n getInitials(name: string): string {\n if (!name) return '';\n const nameParts = name.trim().split(/\\s+/);\n if (nameParts.length === 1) {\n return nameParts[0][0].toUpperCase();\n }\n return (nameParts[0][0] + nameParts[nameParts.length - 1][0]).toUpperCase();\n }\n\n emitNotification() {\n this.topNavList?.map((list: NavListItem) => (list.active = false));\n this.bottomNavList?.map((list: NavListItem) => (list.active = false));\n this.helpCentreActive = false;\n this.notificationActive = true;\n this.onNavListItemChange.emit({ activeTab: 'notifications' });\n this.onNotificationClick.emit();\n }\n\n emitHelpCentre() {\n this.topNavList?.map((list: NavListItem) => (list.active = false));\n this.bottomNavList?.map((list: NavListItem) => (list.active = false));\n this.helpCentreActive = true;\n this.notificationActive = false;\n this.onNavListItemChange.emit({ activeTab: 'help-centre' });\n this.onHelpCentreClick.emit();\n }\n\n emitPrivacyPolicy() {\n this.onPrivacyPolicyClick.emit();\n }\n\n emitLogout() {\n this.onLogoutClick.emit();\n }\n\n emitMyAccount() {\n this.activeTab = undefined;\n this.topNavList?.forEach((list: NavListItem) => (list.active = false));\n this.bottomNavList?.forEach((list: NavListItem) => (list.active = false));\n this.notificationActive = false;\n this.helpCentreActive = false;\n this.onNavListItemChange.emit({ activeTab: undefined });\n this.onMyAccountClick.emit();\n }\n\n emitLogoClick() {\n this.onLogoClick.emit();\n }\n\n @HostListener('window:resize')\n onResize(): void {\n this.adjustUpDivHeight();\n }\n\n adjustUpDivHeight() {\n const bottomHeight = this.bottomContainer?.nativeElement.offsetHeight;\n const headerHeight = this.headerContainer?.nativeElement.offsetHeight;\n const containerHeight = window.innerHeight;\n return containerHeight - bottomHeight - headerHeight - 56;\n }\n\n onMouseEnter() {\n this.isHovered = true;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.isNavExpanded = true;\n this.onNavExpanded.emit(true);\n this.cd.markForCheck();\n });\n });\n }\n\n onMouseLeave() {\n this.isHovered = false;\n if (!this.accountDetailsActive) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.isNavExpanded = false;\n this.onNavExpanded.emit(false);\n this.cd.markForCheck();\n });\n });\n }\n }\n\n onAccountOverlayShow() {\n this.accountDetailsActive = true;\n\n if (this.selectedSubscription && typeof this.selectedSubscription === 'object') {\n const advSelection = this.selectedSubscription as any;\n const index = this.subscriptions.findIndex((s) => this.isAdvance(s) && (s as SubscriptionList).name === advSelection.name);\n\n if (index !== -1) {\n const advItem = this.subscriptions[index] as SubscriptionList;\n advItem.check = true;\n this.expandedIndex = index;\n\n // Wait for the overlay content to be rendered\n setTimeout(() => {\n const targetEl = this.subscriptionItems?.toArray()[index];\n if (targetEl) {\n this.updateFlyoutPosition(targetEl.nativeElement);\n this.cd.markForCheck();\n }\n }, 0);\n }\n }\n }\n\n hideAccountDetails() {\n this.accountDetailsActive = false;\n this.expandedIndex = -1;\n this.subscriptions.forEach((item) => {\n if (this.isAdvance(item)) {\n (item as SubscriptionList).check = false;\n }\n });\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (this.isHovered) {\n this.isNavExpanded = true;\n this.onNavExpanded.emit(true);\n } else {\n this.isNavExpanded = false;\n this.onNavExpanded.emit(false);\n }\n this.cd.markForCheck();\n });\n });\n }\n\n changeActiveSusbcription(item: string) {\n this.selectedSubscription = item;\n this.displaySubscriptionName = this.selectedSubscription;\n this.expandedIndex = -1;\n this.subscriptions.forEach((s) => {\n if (this.isAdvance(s)) {\n (s as SubscriptionList).check = false;\n }\n });\n this.onSubscriptionChange.emit({ selected: item });\n this.cd.markForCheck();\n }\n\n updateSubscription(item: SubscriptionList, child: string) {\n this.selectedSubscription = { name: item.name, selected: child };\n this.displaySubscriptionName = child;\n this.onSubscriptionChange.emit(this.selectedSubscription);\n this.cd.markForCheck();\n }\n\n toggleSubscriptionList(index: number, event?: MouseEvent) {\n const item = this.subscriptions[index];\n if (this.isAdvance(item)) {\n const advItem = item as SubscriptionList;\n const wasChecked = advItem.check;\n\n // Close other items\n this.subscriptions.forEach((s) => {\n if (this.isAdvance(s)) {\n (s as SubscriptionList).check = false;\n }\n });\n\n advItem.check = !wasChecked;\n\n if (advItem.check) {\n this.expandedIndex = index;\n if (event) {\n const li = event.currentTarget as HTMLElement;\n this.updateFlyoutPosition(li);\n }\n } else {\n this.expandedIndex = -1;\n }\n }\n this.cd.markForCheck();\n }\n\n onSubscriptionListScroll(event: Event) {\n const container = event.target as HTMLElement;\n if (this.expandedIndex !== -1) {\n const itemContainer = container.children[this.expandedIndex] as HTMLElement;\n if (itemContainer) {\n this.updateFlyoutPosition(itemContainer as HTMLElement);\n }\n }\n }\n\n private updateFlyoutPosition(target: HTMLElement) {\n const itemContainer = target.closest('.cax-nav-subscription-item-container') as HTMLElement;\n const listContainer = target.closest('.cax-nav-subscription-list') as HTMLElement;\n\n if (itemContainer && listContainer) {\n const top = itemContainer.offsetTop - listContainer.scrollTop;\n const rect = itemContainer.getBoundingClientRect();\n const availableSpaceBelow = window.innerHeight - rect.top;\n\n // Estimate flyout height: max-height is 300px in CSS\n // We'll use 300 as a safe upper bound or calculate based on items\n const advItem = this.subscriptions[this.expandedIndex] as SubscriptionList;\n const itemCount = advItem?.subscription?.length || 0;\n const estimatedHeight = Math.min(itemCount * 48 + 24, 300); // 48px per item + padding\n\n if (estimatedHeight > availableSpaceBelow && rect.top > estimatedHeight) {\n // If it doesn't fit below but fits above, flip it\n // Position so its bottom aligns with the item's bottom\n this.flyoutTop = top + itemContainer.offsetHeight - estimatedHeight;\n } else {\n // Default: top-to-top alignment\n this.flyoutTop = top;\n }\n }\n }\n}\n","<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"cax-nav-header-container\" #headerContainer>\n <div [@headerAnimation] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\n </div>\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@headerAnimation]>\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span>{{ header }}</span>\n </div>\n </div>\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\n <ul>\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n </ul>\n </div>\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\n <div class=\"cax-nav-bottom-list\">\n <ul>\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\n <i *ngIf=\"!notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\"></i>\n <i *ngIf=\"notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\" caxBadge [value]=\"notificationCount\" badgeSize=\"xs\" badgeSeverity=\"danger\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Notifications</span>\n </li>\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\n <i class=\"cax cax-shield-warning{{helpCentreActive ? '-bold' : ''}}\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Help Center</span>\n </li>\n </ul>\n </div>\n <div #accountDetailsTrigger [@headerAnimation] *ngIf=\"userName\" (click)=\"op.toggle($event, accountDetailsTrigger);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\n <span class=\"cax-nav-user-name cax-text-heading-sm-semibold\">{{ userName }}</span>\n <span class=\"cax-nav-user-role cax-text-body-xsm-regular\">{{ displaySubscriptionName }}</span>\n </div>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\n <i class=\"cax cax-alt-arrow-up\"></i>\n <i class=\"cax cax-alt-arrow-down\"></i>\n </div>\n </div>\n <cax-overlayPanel #op (onShow)=\"onAccountOverlayShow()\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\n <div class=\"cax-nav-subscription-wrapper\" style=\"position: relative\">\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptions?.length\" (scroll)=\"onSubscriptionListScroll($event)\">\n <ng-container *ngFor=\"let item of subscriptions, let i = index\">\n <!-- Default Mode (String) -->\n <li #subscriptionItems *ngIf=\"!isAdvance(item)\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" [class.active]=\"selectedSubscription === item\" (click)=\"changeActiveSusbcription(item); op.hide()\">\n <span>{{ item }}</span>\n </li>\n\n <!-- Advance Mode (SubscriptionList) -->\n <div *ngIf=\"isAdvance(item)\" class=\"cax-nav-subscription-item-container\">\n <li #subscriptionItems [class.expanded]=\"item.check\" [class.active]=\"selectedSubscription?.name === item.name\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" (click)=\"toggleSubscriptionList(i, $event)\">\n <span>{{ item.name }}</span>\n <i class=\"cax cax-alt-arrow-right\"></i>\n </li>\n </div>\n </ng-container>\n </div>\n\n <!-- Sibling Flyout Overlay -->\n <ng-container *ngIf=\"expandedIndex !== -1\">\n <div #childOverlay [@flyoutAnimation]=\"'open'\" class=\"cax-nav-subscription-child-overlay\" [style.top.px]=\"flyoutTop\">\n <div class=\"cax-nav-subscription-list\">\n <li\n [class.active]=\"selectedSubscription?.selected === child\"\n class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\"\n *ngFor=\"let child of subscriptions[expandedIndex].subscription\"\n (click)=\"updateSubscription(subscriptions[expandedIndex], child); op.hide()\"\n >\n <span>{{ child }}</span>\n </li>\n </div>\n </div>\n </ng-container>\n </div>\n <cax-divider *ngIf=\"myAccount || logout\" [style]=\"{margin: '4px 0px 8px 0px'}\"></cax-divider>\n <div *ngIf=\"myAccount\" class=\"cax-nav-profile-options\" (click)=\"emitMyAccount(); op.hide()\">\n <i class=\"cax cax-user-rounded\"></i>\n <span class=\"cax-text-action-lg-semibold\">My Account</span>\n </div>\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout(); op.hide()\">\n <i class=\"cax cax-logout\"></i>\n <span class=\"cax-text-action-lg-semibold\">Logout</span>\n </div>\n <div class=\"cax-nav-copyright-container\" *ngIf=\"privacyPolicy || copyrightYear || version\">\n <span *ngIf=\"privacyPolicy\" class=\"cax-nav-privacy-policy cax-text-action-sm-link-regular\" (click)=\"emitPrivacyPolicy(); op.hide()\">Privacy Policy</span>\n <div class=\"cax-nav-copyright\">\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"copyrightYear\">© {{ copyrightYear }}</span>\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"version\">{{ version }}</span>\n </div>\n </div>\n </cax-overlayPanel>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { Navigation } from './navigation';\n\n@NgModule({\n imports: [Navigation],\n exports: [Navigation]\n})\nexport class NavigationModule {}\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-navigation.mjs","sources":["../../src/app/components/navigation/navigation.ts","../../src/app/components/navigation/navigation.html","../../src/app/components/navigation/navigation.module.ts","../../src/app/components/navigation/cax-design-system-navigation.ts"],"sourcesContent":["import { trigger, transition, style, animate, state } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { Component, ChangeDetectionStrategy, ChangeDetectorRef, ViewEncapsulation, Input, EventEmitter, Output, ViewChild, ElementRef, HostListener, AfterViewInit, OnChanges, QueryList, ViewChildren } from '@angular/core';\nimport { DividerModule } from 'cax-design-system/divider';\nimport { LogoModule } from 'cax-design-system/logo';\nimport { ActiveSubscription, NavListItem, SubscriptionList, TabIndexType } from './navigation.interface';\nimport { ImageModule } from 'cax-design-system/image';\nimport { AvatarModule } from 'cax-design-system/avatar';\nimport { OverlayPanelModule } from 'cax-design-system/overlaypanel';\nimport { OverlayModule } from 'cax-design-system/overlay';\nimport { RadioButtonModule } from 'cax-design-system/radiobutton';\nimport { FormsModule } from '@angular/forms';\nimport { BadgeModule } from 'cax-design-system/badge';\n\n@Component({\n selector: 'cax-navigation',\n templateUrl: './navigation.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./navigation.scss'],\n standalone: true,\n imports: [LogoModule, CommonModule, DividerModule, ImageModule, AvatarModule, OverlayPanelModule, OverlayModule, RadioButtonModule, FormsModule, BadgeModule],\n animations: [\n trigger('textAnimation', [\n transition(':enter', [style({ opacity: 0, width: '0px', marginLeft: '0px', visibility: 'hidden' }), animate('300ms cubic-bezier(0.4, 0, 0.2, 1)', style({ opacity: 1, width: '*', marginLeft: '8px', visibility: 'visible' }))]),\n transition(':leave', [style({ opacity: 1, width: '*', marginLeft: '8px', visibility: 'visible' }), animate('300ms cubic-bezier(0.4, 0, 0.2, 1)', style({ opacity: 0, width: '0px', marginLeft: '0px', visibility: 'hidden' }))])\n ]),\n trigger('headerAnimation', [\n transition(':enter', [style({ opacity: 0 }), animate('300ms cubic-bezier(0.4, 0, 0.2, 1)', style({ opacity: 1 }))]),\n transition(':leave', [style({ opacity: 1 }), animate('300ms cubic-bezier(0.4, 0, 0.2, 1)', style({ opacity: 0 }))])\n ]),\n trigger('flyoutAnimation', [\n state('void', style({ transform: 'scaleY(0.8)', opacity: 0 })),\n state('open', style({ transform: 'translateY(0)', opacity: 1 })),\n transition('void => open', animate('.12s cubic-bezier(0, 0, 0.2, 1)')),\n transition('open => void', animate('.1s linear'))\n ])\n ],\n host: {\n class: 'cax-element'\n }\n})\nexport class Navigation implements OnChanges, AfterViewInit {\n @Input() header: string | undefined;\n @Input() topNavList: NavListItem[];\n @Input() bottomNavList: NavListItem[];\n @Input() activeTab: TabIndexType | 'notifications' | 'help-centre' | undefined;\n @Input() notifications: boolean = true;\n @Input() helpCentre: boolean = true;\n @Input() privacyPolicy: boolean = true;\n @Input() copyrightYear: number | undefined = new Date().getFullYear();\n @Input() version: string | undefined;\n @Input() logout: boolean = true;\n @Input() myAccount: boolean = true;\n @Input() userName: string | undefined;\n @Input() userImage: string | undefined;\n @Input() headerLogo: { expanded: string; collapsed: string } | undefined;\n @Input() headerInitials: string | undefined;\n @Input() subscriptions: (string | SubscriptionList)[] = [];\n @Input() selectedSubscription: string | ActiveSubscription | undefined;\n @Input() displaySubscriptionName: string | undefined;\n @Input() notificationCount: number = 0;\n\n isAdvance(item: any): boolean {\n return typeof item === 'object' && item !== null && 'subscription' in item;\n }\n\n constructor(private cd: ChangeDetectorRef) {}\n\n @Output() onNavListItemChange: EventEmitter<{ activeTab: TabIndexType | 'notifications' | 'help-centre' | undefined }> = new EventEmitter();\n @Output() onNotificationClick: EventEmitter<any> = new EventEmitter();\n @Output() onHelpCentreClick: EventEmitter<any> = new EventEmitter();\n @Output() onPrivacyPolicyClick: EventEmitter<any> = new EventEmitter();\n @Output() onLogoutClick: EventEmitter<any> = new EventEmitter();\n @Output() onMyAccountClick: EventEmitter<any> = new EventEmitter();\n @Output() onLogoClick: EventEmitter<any> = new EventEmitter();\n @Output() onSubscriptionChange: EventEmitter<any> = new EventEmitter();\n @Output() onNavExpanded: EventEmitter<boolean> = new EventEmitter(false);\n\n isHovered: boolean = false;\n isNavExpanded: boolean = false;\n notificationActive: boolean = false;\n helpCentreActive: boolean = false;\n accountDetailsActive: boolean = false;\n checkRadio = 1;\n expandedIndex: number = -1;\n flyoutTop: number = 0;\n @ViewChild('bottomContainer') bottomContainer!: ElementRef<HTMLDivElement>;\n @ViewChild('headerContainer') headerContainer!: ElementRef<HTMLDivElement>;\n @ViewChildren('subscriptionItems') subscriptionItems!: QueryList<ElementRef>;\n\n ngOnChanges() {\n if (this.activeTab === undefined || this.activeTab === null) {\n this.topNavList?.forEach((list: NavListItem) => (list.active = false));\n this.bottomNavList?.forEach((list: NavListItem) => (list.active = false));\n this.notificationActive = false;\n this.helpCentreActive = false;\n } else if (this.activeTab == 'notifications') {\n if (this.notifications) {\n this.topNavList?.map((list: NavListItem) => (list.active = false));\n this.bottomNavList?.map((list: NavListItem) => (list.active = false));\n this.notificationActive = true;\n } else if (this.topNavList?.length) {\n this.topNavList[0].active = true;\n }\n } else if (this.activeTab == 'help-centre') {\n if (this.helpCentre) {\n this.topNavList?.map((list: NavListItem) => (list.active = false));\n this.bottomNavList?.map((list: NavListItem) => (list.active = false));\n this.helpCentreActive = true;\n } else if (this.topNavList?.length) {\n this.topNavList[0].active = true;\n }\n } else {\n if (this.activeTab?.position == 'top') {\n this.bottomNavList?.forEach((list: NavListItem) => (list.active = false));\n if (this.activeTab.index > -1 && this.activeTab.index < this.topNavList?.length) {\n this.topNavList?.forEach((list: NavListItem) => (list.active = false));\n this.topNavList[this.activeTab.index].active = true;\n } else if (this.topNavList?.length) {\n if (this.topNavList.filter((list: NavListItem) => list.active).length > 0) {\n let count = 0;\n this.topNavList.forEach((list: NavListItem) => {\n if (list.active && count == 0) count = count + 1;\n else list.active = false;\n });\n } else {\n this.topNavList[0].active = true;\n }\n }\n } else if (this.activeTab?.position == 'bottom') {\n this.topNavList?.forEach((list: NavListItem) => (list.active = false));\n if (this.activeTab.index > -1 && this.activeTab.index < this.bottomNavList?.length) {\n this.bottomNavList?.forEach((list: NavListItem) => (list.active = false));\n this.bottomNavList[this.activeTab.index].active = true;\n } else if (this.bottomNavList?.length) {\n if (this.bottomNavList.filter((list: NavListItem) => list.active).length > 0) {\n let count = 0;\n this.bottomNavList.forEach((list: NavListItem) => {\n if (list.active && count == 0) count = count + 1;\n else list.active = false;\n });\n } else {\n this.bottomNavList[0].active = true;\n }\n }\n } else if (this.topNavList?.length) {\n this.topNavList.forEach((list: NavListItem) => (list.active = false));\n this.bottomNavList?.forEach((list: NavListItem) => (list.active = false));\n this.topNavList[0].active = true;\n }\n }\n }\n\n ngAfterViewInit(): void {\n this.subscriptions = this.subscriptions?.map((item) => {\n if (this.isAdvance(item)) {\n return { ...(item as SubscriptionList), check: false };\n }\n return item;\n });\n\n if (this.subscriptions?.length) {\n const isValidSelection = this.subscriptions.some((item) => {\n if (typeof this.selectedSubscription === 'string') {\n return item === this.selectedSubscription;\n } else if (typeof this.selectedSubscription === 'object' && this.isAdvance(item)) {\n const advItem = item as SubscriptionList;\n return advItem.name === this.selectedSubscription.name && advItem.subscription.includes(this.selectedSubscription.selected);\n }\n return false;\n });\n\n if (!isValidSelection) {\n const firstItem = this.subscriptions[0];\n if (this.isAdvance(firstItem)) {\n const advItem = firstItem as SubscriptionList;\n this.selectedSubscription = {\n name: advItem.name,\n selected: advItem.subscription[0]\n };\n } else {\n this.selectedSubscription = firstItem as string;\n }\n }\n }\n if (!this.displaySubscriptionName?.length) {\n if (this.selectedSubscription && typeof this.selectedSubscription === 'object') {\n this.displaySubscriptionName = this.selectedSubscription.selected;\n } else if (this.selectedSubscription && typeof this.selectedSubscription === 'string') {\n this.displaySubscriptionName = this.selectedSubscription;\n }\n }\n this.adjustUpDivHeight();\n }\n\n onItemClick(e: MouseEvent, item: NavListItem, index: number, position: 'top' | 'bottom') {\n this.topNavList?.map((list: NavListItem) => (list.active = false));\n this.bottomNavList?.map((list: NavListItem) => (list.active = false));\n this.notificationActive = false;\n this.helpCentreActive = false;\n if (position == 'top') this.topNavList[index].active = true;\n else if (position == 'bottom') this.bottomNavList[index].active = true;\n this.onNavListItemChange.emit({ activeTab: { position: position, index: index } });\n if (item.command) {\n item.command({ originalEvent: e, item });\n }\n }\n\n getInitials(name: string): string {\n if (!name) return '';\n const nameParts = name.trim().split(/\\s+/);\n if (nameParts.length === 1) {\n return nameParts[0][0].toUpperCase();\n }\n return (nameParts[0][0] + nameParts[nameParts.length - 1][0]).toUpperCase();\n }\n\n emitNotification() {\n this.topNavList?.map((list: NavListItem) => (list.active = false));\n this.bottomNavList?.map((list: NavListItem) => (list.active = false));\n this.helpCentreActive = false;\n this.notificationActive = true;\n this.onNavListItemChange.emit({ activeTab: 'notifications' });\n this.onNotificationClick.emit();\n }\n\n emitHelpCentre() {\n this.topNavList?.map((list: NavListItem) => (list.active = false));\n this.bottomNavList?.map((list: NavListItem) => (list.active = false));\n this.helpCentreActive = true;\n this.notificationActive = false;\n this.onNavListItemChange.emit({ activeTab: 'help-centre' });\n this.onHelpCentreClick.emit();\n }\n\n emitPrivacyPolicy() {\n this.onPrivacyPolicyClick.emit();\n }\n\n emitLogout() {\n this.onLogoutClick.emit();\n }\n\n emitMyAccount() {\n this.activeTab = undefined;\n this.topNavList?.forEach((list: NavListItem) => (list.active = false));\n this.bottomNavList?.forEach((list: NavListItem) => (list.active = false));\n this.notificationActive = false;\n this.helpCentreActive = false;\n this.onNavListItemChange.emit({ activeTab: undefined });\n this.onMyAccountClick.emit();\n }\n\n emitLogoClick() {\n this.onLogoClick.emit();\n }\n\n @HostListener('window:resize')\n onResize(): void {\n this.adjustUpDivHeight();\n }\n\n adjustUpDivHeight() {\n const bottomHeight = this.bottomContainer?.nativeElement.offsetHeight;\n const headerHeight = this.headerContainer?.nativeElement.offsetHeight;\n const containerHeight = window.innerHeight;\n return containerHeight - bottomHeight - headerHeight - 56;\n }\n\n onMouseEnter() {\n this.isHovered = true;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.isNavExpanded = true;\n this.onNavExpanded.emit(true);\n this.cd.markForCheck();\n });\n });\n }\n\n onMouseLeave() {\n this.isHovered = false;\n if (!this.accountDetailsActive) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.isNavExpanded = false;\n this.onNavExpanded.emit(false);\n this.cd.markForCheck();\n });\n });\n }\n }\n\n onAccountOverlayShow() {\n this.accountDetailsActive = true;\n\n if (this.selectedSubscription && typeof this.selectedSubscription === 'object') {\n const advSelection = this.selectedSubscription as any;\n const index = this.subscriptions.findIndex((s) => this.isAdvance(s) && (s as SubscriptionList).name === advSelection.name);\n\n if (index !== -1) {\n const advItem = this.subscriptions[index] as SubscriptionList;\n advItem.check = true;\n this.expandedIndex = index;\n\n // Wait for the overlay content to be rendered\n setTimeout(() => {\n const targetEl = this.subscriptionItems?.toArray()[index];\n if (targetEl) {\n this.updateFlyoutPosition(targetEl.nativeElement);\n this.cd.markForCheck();\n }\n }, 0);\n }\n }\n }\n\n hideAccountDetails() {\n this.accountDetailsActive = false;\n this.expandedIndex = -1;\n this.subscriptions.forEach((item) => {\n if (this.isAdvance(item)) {\n (item as SubscriptionList).check = false;\n }\n });\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (this.isHovered) {\n this.isNavExpanded = true;\n this.onNavExpanded.emit(true);\n } else {\n this.isNavExpanded = false;\n this.onNavExpanded.emit(false);\n }\n this.cd.markForCheck();\n });\n });\n }\n\n changeActiveSusbcription(item: string) {\n this.selectedSubscription = item;\n this.displaySubscriptionName = this.selectedSubscription;\n this.expandedIndex = -1;\n this.subscriptions.forEach((s) => {\n if (this.isAdvance(s)) {\n (s as SubscriptionList).check = false;\n }\n });\n this.onSubscriptionChange.emit({ selected: item });\n this.cd.markForCheck();\n }\n\n updateSubscription(item: SubscriptionList, child: string) {\n this.selectedSubscription = { name: item.name, selected: child };\n this.displaySubscriptionName = child;\n this.onSubscriptionChange.emit(this.selectedSubscription);\n this.cd.markForCheck();\n }\n\n toggleSubscriptionList(index: number, event?: MouseEvent) {\n const item = this.subscriptions[index];\n if (this.isAdvance(item)) {\n const advItem = item as SubscriptionList;\n const wasChecked = advItem.check;\n\n // Close other items\n this.subscriptions.forEach((s) => {\n if (this.isAdvance(s)) {\n (s as SubscriptionList).check = false;\n }\n });\n\n advItem.check = !wasChecked;\n\n if (advItem.check) {\n this.expandedIndex = index;\n if (event) {\n const li = event.currentTarget as HTMLElement;\n this.updateFlyoutPosition(li);\n }\n } else {\n this.expandedIndex = -1;\n }\n }\n this.cd.markForCheck();\n }\n\n onSubscriptionListScroll(event: Event) {\n const container = event.target as HTMLElement;\n if (this.expandedIndex !== -1) {\n const itemContainer = container.children[this.expandedIndex] as HTMLElement;\n if (itemContainer) {\n this.updateFlyoutPosition(itemContainer as HTMLElement);\n }\n }\n }\n\n private updateFlyoutPosition(target: HTMLElement) {\n const itemContainer = target.closest('.cax-nav-subscription-item-container') as HTMLElement;\n const listContainer = target.closest('.cax-nav-subscription-list') as HTMLElement;\n\n if (itemContainer && listContainer) {\n const top = itemContainer.offsetTop - listContainer.scrollTop;\n const rect = itemContainer.getBoundingClientRect();\n const availableSpaceBelow = window.innerHeight - rect.top;\n\n // Estimate flyout height: max-height is 300px in CSS\n // We'll use 300 as a safe upper bound or calculate based on items\n const advItem = this.subscriptions[this.expandedIndex] as SubscriptionList;\n const itemCount = advItem?.subscription?.length || 0;\n const estimatedHeight = Math.min(itemCount * 48 + 24, 300); // 48px per item + padding\n\n if (estimatedHeight > availableSpaceBelow && rect.top > estimatedHeight) {\n // If it doesn't fit below but fits above, flip it\n // Position so its bottom aligns with the item's bottom\n this.flyoutTop = top + itemContainer.offsetHeight - estimatedHeight;\n } else {\n // Default: top-to-top alignment\n this.flyoutTop = top;\n }\n }\n }\n}\n","<div *ngIf=\"accountDetailsActive\" class=\"cax-nav-backdrop\"></div>\n<div class=\"cax-nav\" [ngClass]=\"{ 'cax-nav-expand': isNavExpanded }\" (mouseenter)=\"onMouseEnter()\" (mouseleave)=\"onMouseLeave()\">\n <div class=\"cax-nav-header-container\" #headerContainer>\n <div [@headerAnimation] *ngIf=\"!isNavExpanded\" class=\"cax-nav-header\">\n <cax-logo *ngIf=\"!headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [iconOnly]=\"true\" />\n <cax-image *ngIf=\"headerLogo?.collapsed\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.collapsed\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span *ngIf=\"headerInitials\">{{ headerInitials }}</span>\n <span *ngIf=\"!headerInitials\">{{ getInitials(header) }}</span>\n </div>\n <div *ngIf=\"isNavExpanded\" class=\"cax-nav-header\" [@headerAnimation]>\n <cax-logo *ngIf=\"!headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" />\n <cax-image *ngIf=\"headerLogo?.expanded\" class=\"c-pointer\" (click)=\"emitLogoClick()\" size=\"sm\" [src]=\"headerLogo.expanded\" [style.opacity]=\"1\" />\n <cax-divider [style]=\"{margin: '0px'}\" layout=\"vertical\"></cax-divider>\n <span>{{ header }}</span>\n </div>\n </div>\n <div class=\"cax-nav-list-container\" [style.maxHeight.px]=\"adjustUpDivHeight()\">\n <ul>\n <li *ngFor=\"let nav of topNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'top')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n </ul>\n </div>\n <div class=\"cax-nav-bottom-container\" #bottomContainer>\n <div class=\"cax-nav-bottom-list\">\n <ul>\n <li *ngFor=\"let nav of bottomNavList, let i = index\" [ngClass]=\"{ active: nav.active }\" (click)=\"onItemClick($event, nav, i, 'bottom')\">\n <i *ngIf=\"nav.icon; else imageTemplate\" [class]=\"'cax pi ' + nav.icon + (nav.active ? '-bold' : '')\"></i>\n <ng-template #imageTemplate>\n <cax-image [src]=\"nav.image\" width=\"24px\" height=\"24px\" [style.opacity]=\"1\"></cax-image>\n </ng-template>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">{{ nav.label }}</span>\n </li>\n <li *ngIf=\"notifications\" (click)=\"emitNotification()\" [ngClass]=\"{ active: notificationActive }\">\n <i *ngIf=\"!notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\"></i>\n <i *ngIf=\"notificationCount\" class=\"cax cax-bell{{notificationActive ? '-bold' : ''}}\" caxBadge [value]=\"notificationCount\" badgeSize=\"xs\" badgeSeverity=\"danger\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Notifications</span>\n </li>\n <li *ngIf=\"helpCentre\" (click)=\"emitHelpCentre()\" [ngClass]=\"{ active: helpCentreActive }\">\n <i class=\"cax cax-shield-warning{{helpCentreActive ? '-bold' : ''}}\"></i>\n <span [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-list-label cax-text-action-lg-semibold\">Help Center</span>\n </li>\n </ul>\n </div>\n <div #accountDetailsTrigger [@headerAnimation] *ngIf=\"userName\" (click)=\"op.toggle($event, accountDetailsTrigger);\" [ngClass]=\"{ active: accountDetailsActive }\" class=\"cax-nav-account-details\">\n <cax-avatar *ngIf=\"userImage\" [image]=\"userImage\" avatarSize=\"lg\"></cax-avatar>\n <cax-avatar *ngIf=\"!userImage\" [label]=\"getInitials(userName)\" avatarSize=\"lg\"></cax-avatar>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-user\">\n <span class=\"cax-nav-user-name cax-text-heading-sm-semibold\">{{ userName }}</span>\n <span class=\"cax-nav-user-role cax-text-body-xsm-regular\">{{ displaySubscriptionName }}</span>\n </div>\n <div [@textAnimation] *ngIf=\"isNavExpanded\" class=\"cax-nav-account-icon\">\n <i class=\"cax cax-alt-arrow-up\"></i>\n <i class=\"cax cax-alt-arrow-down\"></i>\n </div>\n </div>\n <cax-overlayPanel #op (onShow)=\"onAccountOverlayShow()\" [styleClass]=\"isNavExpanded ? 'cax-nav-overlay-expand' : 'cax-nav-overlay'\" (onHide)=\"hideAccountDetails()\">\n <div class=\"cax-nav-subscription-wrapper\" style=\"position: relative\">\n <div class=\"cax-nav-subscription-list\" *ngIf=\"subscriptions?.length\" (scroll)=\"onSubscriptionListScroll($event)\">\n <ng-container *ngFor=\"let item of subscriptions, let i = index\">\n <!-- Default Mode (String) -->\n <li #subscriptionItems *ngIf=\"!isAdvance(item)\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" [class.active]=\"selectedSubscription === item\" (click)=\"changeActiveSusbcription(item); op.hide()\">\n <span>{{ item }}</span>\n </li>\n\n <!-- Advance Mode (SubscriptionList) -->\n <div *ngIf=\"isAdvance(item)\" class=\"cax-nav-subscription-item-container\">\n <li #subscriptionItems [class.expanded]=\"item.check\" [class.active]=\"selectedSubscription?.name === item.name\" class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\" (click)=\"toggleSubscriptionList(i, $event)\">\n <span>{{ item.name }}</span>\n <i class=\"cax cax-alt-arrow-right\"></i>\n </li>\n </div>\n </ng-container>\n </div>\n\n <!-- Sibling Flyout Overlay -->\n <ng-container *ngIf=\"expandedIndex !== -1\">\n <div #childOverlay [@flyoutAnimation]=\"'open'\" class=\"cax-nav-subscription-child-overlay\" [style.top.px]=\"flyoutTop\">\n <div class=\"cax-nav-subscription-list\">\n <li\n [class.active]=\"selectedSubscription?.selected === child\"\n class=\"cax-nav-subscription-list-item cax-text-action-lg-medium\"\n *ngFor=\"let child of subscriptions[expandedIndex].subscription\"\n (click)=\"updateSubscription(subscriptions[expandedIndex], child); op.hide()\"\n >\n <span>{{ child }}</span>\n </li>\n </div>\n </div>\n </ng-container>\n </div>\n <cax-divider *ngIf=\"subscriptions?.length > 0\" [style]=\"{margin: '4px 0px 8px 0px'}\"></cax-divider>\n <div *ngIf=\"myAccount\" class=\"cax-nav-profile-options\" (click)=\"emitMyAccount(); op.hide()\">\n <i class=\"cax cax-user-rounded\"></i>\n <span class=\"cax-text-action-lg-semibold\">My Account</span>\n </div>\n <div *ngIf=\"logout\" class=\"cax-nav-profile-options cax-nav-logout\" (click)=\"emitLogout(); op.hide()\">\n <i class=\"cax cax-logout\"></i>\n <span class=\"cax-text-action-lg-semibold\">Logout</span>\n </div>\n <div class=\"cax-nav-copyright-container\" *ngIf=\"privacyPolicy || copyrightYear || version\">\n <span *ngIf=\"privacyPolicy\" class=\"cax-nav-privacy-policy cax-text-action-sm-link-regular\" (click)=\"emitPrivacyPolicy(); op.hide()\">Privacy Policy</span>\n <div class=\"cax-nav-copyright\">\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"copyrightYear\">© {{ copyrightYear }}</span>\n <span class=\"cax-text-action-sm-regular\" *ngIf=\"version\">{{ version }}</span>\n </div>\n </div>\n </cax-overlayPanel>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { Navigation } from './navigation';\n\n@NgModule({\n imports: [Navigation],\n exports: [Navigation]\n})\nexport class NavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|