@sarasanalytics-com/design-system 0.0.132 → 0.0.133
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/esm2022/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/menu/menu-list/menu-item.component.mjs +3 -3
- package/esm2022/lib/menu/menu.component.mjs +3 -3
- package/fesm2022/sarasanalytics-com-design-system.mjs +6 -6
- package/fesm2022/sarasanalytics-com-design-system.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sarasanalytics-com-design-system.mjs","sources":["../../../projects/component-library/src/lib/card/card-custom-header/card-custom-header.component.ts","../../../projects/component-library/src/lib/card/card-custom-header/card-custom-header.component.html","../../../projects/component-library/src/lib/chips/chips.component.ts","../../../projects/component-library/src/lib/chips/chips.component.html","../../../projects/component-library/src/lib/icon/icon.service.ts","../../../projects/component-library/src/lib/icon/icon.component.ts","../../../projects/component-library/src/lib/icon/icon.component.html","../../../projects/component-library/src/lib/avatar/avatar.component.ts","../../../projects/component-library/src/lib/avatar/avatar.component.html","../../../projects/component-library/src/lib/card/card.component.ts","../../../projects/component-library/src/lib/card/card.component.html","../../../projects/component-library/src/lib/spinner/spinner.component.ts","../../../projects/component-library/src/lib/spinner/spinner.component.html","../../../projects/component-library/src/lib/button/button.component.ts","../../../projects/component-library/src/lib/button/button.component.html","../../../projects/component-library/src/lib/accordion/accordion.component.ts","../../../projects/component-library/src/lib/accordion/accordion.component.html","../../../projects/component-library/src/lib/calendar-header/calendar-header.component.ts","../../../projects/component-library/src/lib/calendar-header/calendar-header.component.html","../../../projects/component-library/src/lib/card/card-body/card-body.component.ts","../../../projects/component-library/src/lib/card/card-body/card-body.component.html","../../../projects/component-library/src/lib/card/card-footer-actions/card-footer-actions.component.ts","../../../projects/component-library/src/lib/card/card-footer-actions/card-footer-actions.component.html","../../../projects/component-library/src/lib/card/card-icon/card-icon.component.ts","../../../projects/component-library/src/lib/card/card-icon/card-icon.component.html","../../../projects/component-library/src/lib/card/card-title-actions/card-title-actions.component.ts","../../../projects/component-library/src/lib/card/card-title-actions/card-title-actions.component.html","../../../projects/component-library/src/lib/list/list.component.ts","../../../projects/component-library/src/lib/list/list.component.html","../../../projects/component-library/src/lib/card/checkbox-card/checkbox-card.component.ts","../../../projects/component-library/src/lib/card/checkbox-card/checkbox-card.component.html","../../../projects/component-library/src/lib/card/guide-card/guide-card.component.ts","../../../projects/component-library/src/lib/card/guide-card/guide-card.component.html","../../../projects/component-library/src/lib/message-banner/message-banner.component.ts","../../../projects/component-library/src/lib/message-banner/message-banner.component.html","../../../projects/component-library/src/lib/card/menu-card/menu-card.component.ts","../../../projects/component-library/src/lib/card/menu-card/menu-card.component.html","../../../projects/component-library/src/lib/card/thumbnail-card/thumbnail-card.component.ts","../../../projects/component-library/src/lib/card/thumbnail-card/thumbnail-card.component.html","../../../projects/component-library/src/lib/card-carousel/card-carousel.component.ts","../../../projects/component-library/src/lib/card-carousel/card-carousel.component.html","../../../projects/component-library/src/lib/checkbox/checkbox.component.ts","../../../projects/component-library/src/lib/checkbox/checkbox.component.html","../../../projects/component-library/src/lib/component-library.component.ts","../../../projects/component-library/src/lib/dashboard-loader/dashboard-loader.component.ts","../../../projects/component-library/src/lib/dashboard-loader/dashboard-loader.component.html","../../../projects/component-library/src/lib/datepicker/datepicker.component.ts","../../../projects/component-library/src/lib/datepicker/datepicker.component.html","../../../projects/component-library/src/lib/message-banner-v2/message-banner-v2.component.ts","../../../projects/component-library/src/lib/message-banner-v2/message-banner-v2.component.html","../../../projects/component-library/src/lib/dialog/dialog.component.ts","../../../projects/component-library/src/lib/dialog/dialog.component.html","../../../projects/component-library/src/utils/validators.ts","../../../projects/component-library/src/lib/form-input/form-input.component.ts","../../../projects/component-library/src/lib/form-input/form-input.component.html","../../../projects/component-library/src/lib/form-select/form-select.component.ts","../../../projects/component-library/src/lib/form-select/form-select.component.html","../../../projects/component-library/src/lib/grid-cell/grid-cell.component.ts","../../../projects/component-library/src/lib/grid-cell/grid-cell.component.html","../../../projects/component-library/src/lib/header/header.component.ts","../../../projects/component-library/src/lib/header/header.component.html","../../../projects/component-library/src/lib/layout-section/layout-section.component.ts","../../../projects/component-library/src/lib/layout-section/layout-section.component.html","../../../projects/component-library/src/lib/status-dot/status-dot.component.ts","../../../projects/component-library/src/lib/menu/menu-list/menu-item.component.ts","../../../projects/component-library/src/lib/menu/menu-list/menu-item.component.html","../../../projects/component-library/src/lib/menu/menu.component.ts","../../../projects/component-library/src/lib/menu/menu.component.html","../../../projects/component-library/src/lib/menu/menu.directive.ts","../../../projects/component-library/src/lib/left-nav/left-nav.component.ts","../../../projects/component-library/src/lib/left-nav/left-nav.component.html","../../../projects/component-library/src/lib/mini-card/mini-card.component.ts","../../../projects/component-library/src/lib/mini-card/mini-card.component.html","../../../projects/component-library/src/lib/page-layout/page-layout.component.ts","../../../projects/component-library/src/lib/page-layout/page-layout.component.html","../../../projects/component-library/src/lib/progress-bar/progress-bar.component.ts","../../../projects/component-library/src/lib/progress-bar/progress-bar.component.html","../../../projects/component-library/src/lib/radio-button/radio-button.component.ts","../../../projects/component-library/src/lib/radio-button/radio-button.component.html","../../../projects/component-library/src/lib/scrolling-cards/scrolling-cards.component.ts","../../../projects/component-library/src/lib/scrolling-cards/scrolling-cards.component.html","../../../projects/component-library/src/lib/skeleton/skeleton-base.component.ts","../../../projects/component-library/src/lib/skeleton/skeleton-container.component.ts","../../../projects/component-library/src/lib/skeleton/skeleton-shapes.component.ts","../../../projects/component-library/src/lib/skeleton/skeleton-presets.ts","../../../projects/component-library/src/lib/skeleton/skeleton-loader.component.ts","../../../projects/component-library/src/lib/stepper/stepper.component.ts","../../../projects/component-library/src/lib/stepper/stepper.component.html","../../../projects/component-library/src/lib/tabs/tabs.component.ts","../../../projects/component-library/src/lib/tabs/tabs.component.html","../../../projects/component-library/src/lib/toast/toast.component.ts","../../../projects/component-library/src/lib/toast/toast.component.html","../../../projects/component-library/src/lib/tool-tip/tool-tip.component.ts","../../../projects/component-library/src/lib/tool-tip/tool-tip.component.html","../../../projects/component-library/src/lib/typography-animation/typography-animation.component.ts","../../../projects/component-library/src/lib/typography-animation/typography-animation.component.html","../../../projects/component-library/src/lib/component-library.service.ts","../../../projects/component-library/src/interfaces/button-interface.ts","../../../projects/component-library/src/interfaces/icon-interface.ts","../../../projects/component-library/src/interfaces/left-nav-interface.ts","../../../projects/component-library/src/public-api.ts","../../../projects/component-library/src/sarasanalytics-com-design-system.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sa-card-title-header',\n standalone: true,\n imports: [],\n templateUrl: './card-custom-header.component.html',\n styleUrl: './card-custom-header.component.css',\n encapsulation: ViewEncapsulation.None,\n})\nexport class CardCustomHeaderComponent {\n\n}\n","<div class=\"sa-card-title-header\"><ng-content></ng-content></div>","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { Output } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nlet nextId = 0; // used to give unique ids to inputs used in html\n\n@Component({\n selector: 'sa-chip',\n standalone: true,\n imports: [CommonModule, MatTooltipModule],\n templateUrl: './chips.component.html',\n styleUrl: './chips.component.css'\n})\nexport class ChipsComponent {\n @Input() id: string | number;\n @Input() iconPath: string;\n @Input() text: string | number;\n @Input() type: string;\n @Input() state: string;\n @Input() filling: string;\n @Input() iconPosition: string;\n @Input() largeStateIcon: string;\n @Input() largeStateText: string;\n @Input() tooltip: string;\n\n @Output() onClickEvent = new EventEmitter();\n\n svgStyle = {}\n secondSvgStyle = {}\n eventEmitObject = {}\n uuid: number = nextId++;\n\n ngOnChanges(): void {\n this.svgStyle = {\n '-webkit-mask-image': `url(${this.iconPath})`,\n 'mask-image': `url(${this.iconPath})`,\n }\n this.secondSvgStyle = {\n '-webkit-mask-image': `url(${this.largeStateIcon})`,\n 'mask-image': `url(${this.largeStateIcon})`,\n }\n this.eventEmitObject = {\n id: this.id\n }\n }\n\n buttonClicked(evt: Event) {\n this.onClickEvent.emit({\n ...this.eventEmitObject,\n evt\n });\n }\n}\n\nexport interface IChip {\n id?: string | number;\n text: string;\n status?: 'active' | 'inactive' | 'disabled';\n type?: 'small' | 'regular' | 'large';\n state?: 'primary' | 'secondary' | 'neutral' | 'error' | 'warning' | 'success';\n filling?: 'filled' | 'outline';\n}\n","<div class=\"chip {{type}} {{state}} {{filling}}\" [matTooltip]=\"tooltip\">\n <button type=\"button\" (click)=\"buttonClicked($event)\" id=\"icon-button_{{uuid}}\" class=\"btn_hide\"></button>\n <!-- (click)=\"buttonClicked()\" on button instead of label breaks whole thing -->\n <label for=\"icon-button_{{uuid}}\" class=\"svg-icon\" [style]=\"svgStyle\"\n [style.display]=\"((iconPosition == 'left' || iconPosition == 'both') && type != 'large') ? 'block' : 'none'\">\n </label>\n\n {{text}}\n\n <div class=\"second-svg-icon\" [style]=\"secondSvgStyle\" [style.display]=\"(type == 'large') ? 'block' : 'none'\"></div>\n\n {{type == 'large' ? largeStateText : \"\"}}\n\n <label for=\"icon-button_{{uuid}}\" class=\"svg-icon\" [style]=\"svgStyle\"\n [style.display]=\"((iconPosition == 'right' || iconPosition == 'both') && type != 'large') ? 'block' : 'none'\">\n </label>\n</div>\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IconService {\n\n // http = inject(HttpClient);\n private path: string = 'assets/';\n\n private httpClient: HttpClient | null = null;\n\n constructor(private injector: Injector) {}\n\n private get http(): HttpClient {\n if (!this.httpClient) {\n this.httpClient = this.injector.get(HttpClient);\n }\n return this.httpClient;\n }\n\n getSvg(iconName: string, customPath?: string): Observable<string> {\n const isUrl = /^https?:\\/\\//.test(iconName);\n const customSvgUrl = customPath ? customPath + (iconName ? iconName + '.svg' : '') : '';\n const svgUrl = isUrl ? iconName : `${this.path}${iconName}.svg`;\n\n return this.http.get(customSvgUrl || svgUrl, { headers: { 'skip': 'true' }, responseType: 'text' });\n }\n\n setIconPath(path: string) {\n if (path) this.path = path;\n }\n}","import { ChangeDetectorRef, Component, EventEmitter, inject, Input, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { IconService } from './icon.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { IconName } from '../../interfaces/icon-interface';\n\n@Component({\n selector: 'sa-icon',\n standalone: true,\n imports: [CommonModule],\n providers: [IconService],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.css',\n encapsulation: ViewEncapsulation.None\n})\nexport class IconComponent {\n iconService = inject(IconService);\n sanitizer = inject(DomSanitizer);\n\n @Input('img') img: string;\n\n @Input() icon?: IconName;\n @Input('size') size: string;\n @Input('color') color: string;\n @Input('iconPath') iconPath: string = \"\";\n @Input() iconUrl: string = \"\";\n @Input('customClass') customClass: string = \"\";\n @Input() href: string;\n @Input() hrefTarget: string;\n\n @Output() onClickEvent = new EventEmitter();\n\n svgIcon: any;\n eventEmitObject = {}\n iconStyles: any = {\n // fontSize: '44px',\n // color: 'red'\n };\n\n constructor(private cdr: ChangeDetectorRef) { }\n ngOnInit() {\n }\n ngOnChanges(changes: SimpleChanges) {\n\n\n if (changes['iconPath'] && !!this.iconPath.trim()) {\n this.iconService.getSvg(this.icon || \"\", this.iconPath).subscribe((svg) => {\n this.svgIcon = this.sanitizer.bypassSecurityTrustHtml(svg);\n })\n }\n if (changes['icon'] || changes['iconUrl']) {\n const icon = this.icon || this.iconUrl;\n if (icon) {\n this.iconService.getSvg(icon).subscribe((svg) => {\n this.svgIcon = this.sanitizer.bypassSecurityTrustHtml(svg);\n this.cdr.detectChanges()\n })\n } else {\n this.svgIcon = '';\n }\n }\n if (changes['size'] || changes['color']) {\n this.iconStyles.fontSize = this.size + 'px';\n this.iconStyles.width = this.iconUrl ? \"fit-content\" : '1em';\n this.iconStyles.height = this.iconUrl ? \"fit-content\" : '1em';\n this.iconStyles.color = this.color;\n }\n\n \n }\n iconClicked(evt: Event) {\n this.onClickEvent.emit({\n ...this.eventEmitObject,\n evt\n });\n if (this.href != \"\") {\n if (this.hrefTarget == \"blank\") window.open(this.href);\n else if (this.hrefTarget == \"self\") location.href = this.href;\n }\n }\n\n}","@if(img){\n<img [src]=\"img\" [height]=\"size\" [width]=\"size\" (click)=\"iconClicked($event)\">\n}@else{\n<span class=\"sa-icon\" [ngClass]=\"{\n 'url-icon': iconUrl\n }\" [ngClass]=\"customClass ? [customClass] : []\" [innerHTML]=\"svgIcon\" [ngStyle]=\"iconStyles\" (click)=\"iconClicked($event)\">\n\n</span>\n}","import { Component, EventEmitter } from '@angular/core';\nimport { Input, Output } from '@angular/core';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'sa-avatar',\n standalone: true,\n imports: [NgIf],\n templateUrl: './avatar.component.html',\n styleUrl: './avatar.component.css'\n})\nexport class AvatarComponent {\n @Input() id: string | number;\n @Input() imagePath: string;\n @Input() altText: string;\n @Input() size: string;\n\n @Output() onClickEvent = new EventEmitter\n @Output() onMouseInEvent = new EventEmitter\n @Output() onMouseOutEvent = new EventEmitter\n\n eventEmitObject = {}\n\n ngOnChanges(): void {\n this.eventEmitObject = {\n id: this.id\n }\n }\n\n avatarClicked(evt: Event) {\n this.onClickEvent.emit({\n ...this.eventEmitObject,\n evt\n })\n }\n\n mouseEnter(evt: Event) {\n this.onMouseInEvent.emit({\n ...this.eventEmitObject,\n evt\n })\n }\n\n mouseLeave(evt: Event) {\n this.onMouseOutEvent.emit({\n ...this.eventEmitObject,\n evt\n })\n }\n}\n","<div class=\"avatar {{size}}\" (click)=\"avatarClicked($event)\" (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\">\n <img *ngIf=\"imagePath\" class=\"avatar-img\" alt=\"{{altText}}\" src=\"{{imagePath}}\">\n <p *ngIf=\"!imagePath\" class=\"avatar-img\">{{altText}}</p>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, SimpleChanges } from '@angular/core';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { ChipInterface } from '../../interfaces/chip-interface';\nimport { IconComponent } from '../icon/icon.component';\nimport { AvatarComponent } from \"../avatar/avatar.component\";\n\n@Component({\n selector: 'sa-card',\n standalone: true,\n imports: [CommonModule, ChipsComponent, IconComponent, AvatarComponent],\n templateUrl: './card.component.html',\n styleUrl: './card.component.css'\n})\nexport class CardComponent {\n @Input('title') title: string = '';\n @Input('showCardHeader') showCardHeader: boolean = false;\n @Input('showCardBody') showCardBody: boolean = false;\n @Input('showHeaderBodyDivider') showHeaderBodyDivider: boolean = false;\n @Input('showCustomCardBody') showCustomCardBody: boolean = false;\n @Input('customWrapperClass') customWrapperClass: string = '';\n @Input('chip') chip: ChipInterface | null = null;\n @Input('body') body: string = '';\n @Input('avatar') avatar: string = '';\n @Input('image') image: string = '';\n @Input('imageWidth') imageWidth: string = '';\n @Input('avatarSize') avatarSize: string;\n @Input('href') href: string;\n @Input('hrefTarget') hrefTarget: string;\n\n @Input('icon') icon: string = '';\n @Input('iconSize') iconSize: string;\n\n @Input('subtitle') subtitle: string = '';\n @Input('logoIcon') logoIcon: string = '';\n\n @Input('width') width: string | number;\n @Input('height') height: string | number;\n @Input('column') column: boolean = false;\n\n cardStyles: any = {};\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['width']?.currentValue || changes['height']?.currentValue) {\n this.cardStyles['width'] = typeof changes['width']?.currentValue === 'string' ? changes['width']?.currentValue : changes['width']?.currentValue + '%';\n this.cardStyles['height'] = typeof changes['height']?.currentValue === 'string' ? changes['height']?.currentValue : changes['height']?.currentValue + '%';\n }\n }\n cardClicked(evt: Event) {\n if (this.href != \"\") {\n if (this.hrefTarget == \"blank\") window.open(this.href);\n else if (this.hrefTarget == \"self\") location.href = this.href;\n }\n }\n}\n","<div class=\"sa-card\" [ngStyle]=\"cardStyles\" (click)=\"cardClicked($event)\">\n <div class=\"sa-card-wrapper\" [ngClass]=\"[column ? 'column' : '', customWrapperClass]\">\n <div class=\"\" [ngClass]=\"avatar || image ? 'sa-card-img' : 'sa-card-icon'\">\n @if(avatar){\n <sa-avatar [imagePath]=\"avatar\" [size]=\"avatarSize\"></sa-avatar>\n <!-- <img [src]=\"avatar\" /> -->\n }@else if(image){\n <img [src]=\"image\" [width]=\"imageWidth\" />\n }@else if(icon){\n <sa-icon [icon]=\"icon\" [size]=\"iconSize\"></sa-icon>\n }@else{\n <ng-content select=\"sa-card-icon\"></ng-content>\n }\n @if(column){\n <ng-content select=\"sa-card-title-actions\"></ng-content>\n }\n </div>\n <div class=\"sa-card-container\" [ngClass]=\"showCardHeader ? 'sa-card-custom-container' : ''\">\n @if(showCardHeader){\n <ng-content select=\"sa-card-title-header\"></ng-content>\n @if (showHeaderBodyDivider && body) {\n <div class=\"custom-divider\"></div>\n }\n }\n @else if(title){\n <div class=\"sa-card-title-container\">\n <div class=\"sa-card-title\">{{title}}</div>\n @if(chip){\n <sa-chip [text]=\"chip.text\" [type]=\"chip.type\" [state]=\"chip.state\" [filling]=\"chip.filling\"></sa-chip>\n }\n <ng-content select=\"sa-card-title-actions\"></ng-content>\n\n </div>\n }\n @if (showCustomCardBody) {\n <ng-content select=\"sa-card-custom-body\"></ng-content>\n }\n @if(showCardBody && body){\n <div class=\"sa-card-body\">\n {{body}}\n </div>\n }\n <ng-content select=\"sa-card-footer-actions\"></ng-content>\n </div>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sa-spinner',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './spinner.component.html',\n styleUrl: './spinner.component.css'\n})\nexport class SpinnerComponent {\n @Input('default') default: boolean = false;\n @Input('size') size: any;\n\n}\n","<span class=\"sa-spinner\" [ngClass]=\"default ? 'default' : ''\" [ngStyle]=\"{'fontSize': size+'px'}\"></span>","import { Component, Output, SimpleChanges } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { NgStyle } from '@angular/common';\nimport { SpinnerComponent } from '../spinner/spinner.component';\nimport { IconName } from '../../interfaces/icon-interface';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconService } from '../icon/icon.service';\n\nlet nextId = 0; // used to give unique ids to inputs used in html\n\n@Component({\n selector: 'sa-button',\n standalone: true,\n imports: [NgIf, NgStyle, SpinnerComponent, HttpClientModule, IconComponent],\n providers: [IconService],\n templateUrl: './button.component.html',\n styleUrl: './button.component.css'\n})\n\nexport class ButtonComponent {\n @Input() id: string | number;\n @Input() type: string;\n @Input() state: string;\n @Input() size: string;\n @Input() text: string | number;\n @Input() ImagePath: string;\n @Input() icon: IconName;\n @Input() iconPosition: string;\n @Input() href: string;\n @Input() hrefTarget: string;\n @Input() width: string;\n @Input() isSubmit: boolean = false;\n @Input() buttonIconSize: string;\n\n @Input() showSpinner: boolean = false;\n\n @Output() onClickEvent = new EventEmitter();\n @Output() onMouseInEvent = new EventEmitter();\n @Output() onMouseOutEvent = new EventEmitter();\n\n svgStyle = {}\n eventEmitObject = {}\n uuid: number = nextId++;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.svgStyle = {\n '-webkit-mask-image': `url(${this.ImagePath})`,\n 'mask-image': `url(${this.ImagePath})`,\n }\n this.eventEmitObject = {\n id: this.id\n }\n if (changes && changes['width'] && changes['width'].currentValue) {\n console.log(this.width)\n }\n }\n\n buttonClicked(evt: Event) {\n if (this.state == \"disabled\") return;\n this.onClickEvent.emit({\n ...this.eventEmitObject,\n evt\n });\n if (this.href != \"\") {\n if (this.hrefTarget == \"blank\") window.open(this.href);\n else if (this.hrefTarget == \"self\") location.href = this.href;\n }\n }\n\n mouseIn() {\n if (this.state == \"disabled\") return;\n this.onMouseInEvent.emit();\n }\n\n mouseOut() {\n if (this.state == \"disabled\") return;\n this.onMouseOutEvent.emit();\n }\n}\n","<button (click)=\"buttonClicked($event)\" id=\"sa-button-{{uuid}}\" class=\"btn-hide\"\n [type]=\"isSubmit ? 'submit' : 'button'\"></button>\n<!-- (click)=\"buttonClicked()\" on button instead of label breaks whole thing -->\n<label for=\"sa-button-{{uuid}}\" [ngStyle]=\"{'width':width}\" role=\"button\" tabindex=\"0\" (mouseenter)=\"mouseIn()\"\n (mouseleave)=\"mouseOut()\" (keydown.enter)=\"buttonClicked($event)\" for=\"sa-button\"\n class=\"sa-button {{state}} {{type}} {{size}}\">\n @if(showSpinner){\n <sa-spinner [default]=\"true\"></sa-spinner>\n }\n @if(ImagePath) {\n <div class=\"svg-icon\" [style]=\"svgStyle\"\n [style.display]=\"(iconPosition == 'left' || iconPosition == 'both') ? 'block' : 'none'\"></div>\n {{text}}\n <div class=\"svg-icon\" [style]=\"svgStyle\"\n [style.display]=\"(iconPosition == 'right' || iconPosition == 'both') ? 'block' : 'none'\"></div>\n } @else if (icon) {\n <sa-icon [icon]=\"icon\" [size]=\"buttonIconSize\"\n [style.display]=\"(iconPosition == 'left' || iconPosition == 'both') ? 'flex' : 'none'\"></sa-icon>\n {{text}}\n <sa-icon [icon]=\"icon\" [size]=\"buttonIconSize\"\n [style.display]=\"(iconPosition == 'right' || iconPosition == 'both') ? 'flex' : 'none'\"></sa-icon>\n } @else {\n {{text}}\n }\n</label>\n","import { Component, EventEmitter, Input, Output, OnChanges, SimpleChanges } from '@angular/core';\nimport { CardCustomHeaderComponent } from '../card/card-custom-header/card-custom-header.component';\nimport { CardComponent } from '../card/card.component'\nimport { FormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { ChipsComponent } from '../chips/chips.component'\nimport { FieldType, FormlyFieldConfig } from '@ngx-formly/core';\nimport { includes as _includes, replace as _replace, toString as _toString, get as _get, filter as _filter, map as _map } from 'lodash';\nimport { ButtonComponent } from '../button/button.component';\nimport { debounceTime } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'sa-accordion',\n standalone: true,\n imports: [CardCustomHeaderComponent, CardComponent, FormsModule, MatCheckboxModule, CommonModule, IconComponent, MatTooltipModule, MatExpansionModule, ChipsComponent, ButtonComponent],\n templateUrl: './accordion.component.html',\n styleUrl: './accordion.component.css'\n})\nexport class AccordionComponent extends FieldType implements OnChanges {\n selectedCount: number = 0;\n private initialChipState: string = 'neutral';\n showingAdvancedFeatures: boolean = false;\n advancedFeatureHeading: string = ''\n parentField: FormlyFieldConfig;\n private buttonClick = new Subject<any>();\n\n ngOnInit() {\n this.parentField = _get(this.field, 'parent')\n if (this.props?.['titleChip']?.['state']) {\n this.initialChipState = this.props['titleChip']['state'];\n }\n this.showingAdvancedFeatures = this.props?.['showAdvancedFeatures'];\n this.checkForPreselectedFeatures();\n this.buttonClick.pipe(\n debounceTime(300)\n ).subscribe(button => {\n this.field?.props?.['onButtonClick'](button);\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['field'] || changes['model']) {\n this.parentField = _get(this.field, 'parent');\n if (this.props?.['titleChip']?.['state']) {\n this.initialChipState = this.props['titleChip']['state'];\n }\n this.showingAdvancedFeatures = this.props?.['showAdvancedFeatures'];\n this.checkForPreselectedFeatures();\n }\n }\n\n checkForPreselectedFeatures() {\n // Initialize count\n let count = 0;\n \n // Count selected features directly without creating intermediate arrays\n if (this.props['featuresList']) {\n for (let i = 0; i < this.props['featuresList'].length; i++) {\n if (this.props['featuresList'][i].isSelected) {\n count++;\n }\n }\n }\n \n // Count selected advanced features\n if (this.props['advancedFeatures']) {\n for (let i = 0; i < this.props['advancedFeatures'].length; i++) {\n if (this.props['advancedFeatures'][i].isSelected) {\n count++;\n }\n }\n }\n \n this.selectedCount = count;\n this.updateChipState();\n }\n\n getChipText(): string {\n const text = this.props?.['titleChip']?.['text'] || '';\n if (_includes(text, '{count}')) {\n return _replace(text, '{count}', _toString(this.selectedCount));\n }\n return text;\n }\n\n onCardClick(cardDetails: any): void {\n cardDetails.isSelected = cardDetails?.disabled ? cardDetails.isSelected : !cardDetails.isSelected;\n this.notifyCheckboxChange(cardDetails);\n }\n\n onCheckboxClick(event: any, cardDetails: any): void {\n event.stopPropagation();\n this.notifyCheckboxChange(cardDetails);\n }\n\n onAccordionOpened() {\n if (!this.props['accordionExpanded']) {\n this.props['accordionExpanded'] = true;\n }\n }\n\n onAccordionClosed() {\n if (this.props['accordionExpanded']) {\n this.props['accordionExpanded'] = false;\n }\n }\n\n notifyCheckboxChange(cardDetails: any) {\n if (cardDetails?.disabled) {\n return;\n }\n\n // Update the selected count\n if (cardDetails.isSelected) {\n this.selectedCount++;\n } else {\n this.selectedCount--;\n }\n\n // Update chip state based on the selection\n this.updateChipState();\n\n // Pre-allocate array with estimated capacity to avoid resizing\n const featuresList = this.props['featuresList'] || [];\n const advancedFeatures = this.props['advancedFeatures'] || [];\n const selectedFeatures = [];\n \n // Use local variables to avoid repeated property access\n let feature;\n \n // Single pass through featuresList\n for (let i = 0, len = featuresList.length; i < len; i++) {\n feature = featuresList[i];\n if (feature.isSelected) {\n selectedFeatures.push(feature);\n }\n }\n \n // Single pass through advancedFeatures\n for (let i = 0, len = advancedFeatures.length; i < len; i++) {\n feature = advancedFeatures[i];\n if (feature.isSelected) {\n selectedFeatures.push(feature);\n }\n }\n\n // Update the form control with the collected selected features\n this.formControl.setValue(selectedFeatures);\n }\n\n\n updateChipState() {\n if (this.props['titleChip'] && this.props['titleChip']['changeStateTo']) {\n this.props['titleChip']['state'] = this.selectedCount > 0 ? this.props['titleChip']['changeStateTo'] : this.initialChipState;\n }\n }\n\n onAdvancedFeaturesOpened(): void {\n this.props['advancedFeaturesExpanded'] = true;\n }\n\n onAdvancedFeaturesClosed(): void {\n this.props['advancedFeaturesExpanded'] = false;\n }\n\n actionHandler(button: any, event: Event) {\n event.stopPropagation();\n event.preventDefault();\n this.buttonClick.next(button);\n }\n\n ngOnDestroy() {\n this.buttonClick.complete();\n }\n\n //pending work on preselected data\n}\n","<mat-accordion class=\"accordion-container\">\n <mat-expansion-panel hideToggle [expanded]=\"props?.['accordionExpanded'] || false\" (opened)=\"onAccordionOpened()\"\n (closed)=\"onAccordionClosed()\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <div class=\"panel-container\">\n @if(props?.['accordionExpanded']){\n <span class=\"d-flex align-center\">\n <sa-icon [icon]=\"props?.['expandedIcon'] || 'downChevronOutlined'\" class=\"d-flex info-icon\"\n size=\"20\"></sa-icon>\n </span>\n }@else{\n <span class=\"d-flex align-center\">\n <sa-icon [icon]=\"props?.['collapsedIcon'] || 'rightChevronOutlined'\" class=\"d-flex info-icon\"\n size=\"20\"></sa-icon>\n </span>\n }\n <span class=\"panel-title\">{{props?.['panelTitle']}}</span>\n <div>\n <sa-chip *ngIf=\"props?.['titleChip']\" [type]=\"props['titleChip']?.['type']\"\n [state]=\"props['titleChip']?.['state']\" [filling]=\"props['titleChip']?.['filling']\"\n [text]=\"getChipText()\"></sa-chip>\n </div>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"custom-divider\"></div>\n <div class=\"accordion-cards-container\">\n <div *ngFor=\"let subFeature of props?.['featuresList']\">\n <sa-card [column]=\"false\" [showCardHeader]=\"true\" [showCardBody]=\"false\"\n [width]=\"props?.['featureCardWidth'] || '632px'\" [showHeaderBodyDivider]=\"false\"\n [customWrapperClass]=\"props?.['customWrapperClass']\" (click)=\"onCardClick(subFeature)\"\n class=\"{{subFeature?.['disabled'] && subFeature?.['isSelected'] ? 'card-selected' : ''}} {{subFeature?.['disabled'] ? 'disabled-card': ''}}\">\n <sa-card-title-header>\n <div class=\"sa-card-accordion-title-container\">\n @if(subFeature?.['disabled']){\n <span class=\"disabled-icon\">\n <sa-icon icon=\"disabledCheckboxFilled\"\n customClass=\"auto-dimensions disabled-checkbox-icon\" class=\"d-flex\"></sa-icon>\n </span>\n }@else{\n <mat-checkbox class=\"checkbox-style\" [(ngModel)]=\"subFeature.isSelected\"\n (click)=\"onCheckboxClick($event, subFeature)\"></mat-checkbox>\n }\n <div class=\"sa-card-title-icon-container\">\n <div class=\"sa-card-custom-title\">\n {{subFeature?.title}}\n </div>\n @if(subFeature?.tooltip){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"props?.['tooltipIcon'] || 'infoCircleOutlined'\"\n customClass=\"info-icon\" [matTooltip]=\"subFeature?.tooltip\"\n matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n @if(subFeature?.featureChip && subFeature?.featureChip?.length > 0){\n <div class=\"chips-container\">\n @for(chip of subFeature.featureChip; track chip) {\n <sa-chip [type]=\"chip?.['type']\"\n [state]=\"chip?.['state']\"\n [filling]=\"chip?.['filling']\"\n [tooltip]=\"chip?.['tooltip']\"\n [text]=\"chip?.['label']\"></sa-chip>\n }\n </div>\n }\n </div>\n </div>\n </sa-card-title-header>\n </sa-card>\n </div>\n </div>\n <!-- Advanced Features accordion -->\n <div *ngIf=\"props?.['advancedFeatures'] && props['advancedFeatures'].length > 0\"\n class=\"advanced-features-section\">\n <mat-expansion-panel hideToggle [expanded]=\"props?.['advancedFeaturesExpanded'] || false\"\n (opened)=\"onAdvancedFeaturesOpened()\" (closed)=\"onAdvancedFeaturesClosed()\" class=\"advancedAccordion\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <div class=\"panel-container\">\n @if(!props?.['advancedFeaturesExpanded']){\n <span class=\"d-flex align-center source-icon\">\n <sa-icon [icon]=\"props?.['advancedFeatureCollapsedIcon'] || 'sourcesOutlined'\"\n class=\"d-flex\" customClass=\"colored-icon\" size=\"16\"></sa-icon>\n </span>\n }@else{\n <span class=\"d-flex align-center\">\n <sa-icon [icon]=\"props?.['advancedFeatureExpandedIcon'] || 'downChevronOutlined'\"\n class=\"d-flex\" size=\"20\"></sa-icon>\n </span>\n }\n <span class=\"advanced-title\">{{ props?.['advancedFeaturesExpanded'] ?\n props?.['advancedFeatureToggleTitle'] :\n props?.['advancedFeatureTitle'] }}</span>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"accordion-advanced-container\">\n <div class=\"disclaimer-container\">\n <span class=\"tooltip-container\">\n <sa-icon icon=\"infoCircleOutlined\" customClass=\"info-icon\" class=\"tooltip-icon\"></sa-icon>\n </span>\n <span class=\"disclaimer-style\">{{props?.['advancedFeatureDisclaimer']}}</span>\n @if(props?.['advancedFeatureDisclaimerButtons']) {\n <div class=\"disclaimer-buttons-container\">\n <ng-container *ngFor=\"let button of props['advancedFeatureDisclaimerButtons']\">\n <sa-button [text]=\"button.text\" [type]=\"button.type\" [size]=\"button.size\"\n [state]=\"button.state\" [iconPosition]=\"button.iconPosition\" [icon]=\"button.icon\"\n [buttonIconSize]=\"button.buttonIconSize\"\n (click)=\"actionHandler(button, $event)\"></sa-button>\n </ng-container>\n </div>\n }\n </div>\n <div class=\"accordion-cards-container\">\n <div *ngFor=\"let subFeature of props?.['advancedFeatures']\">\n <sa-card [column]=\"false\" [showCardHeader]=\"true\" [showCardBody]=\"false\"\n [width]=\"props?.['advancedFeatureCardWidth'] || '632px'\" [showHeaderBodyDivider]=\"false\"\n [customWrapperClass]=\"props?.['customWrapperClass']\" (click)=\"onCardClick(subFeature)\"\n class=\"{{subFeature?.['disabled'] && subFeature?.['isSelected'] ? 'card-selected' : ''}} {{subFeature?.['disabled'] ? 'disabled-card': ''}}\">\n <sa-card-title-header>\n <div class=\"sa-card-accordion-title-container\">\n @if(subFeature?.['disabled']){\n <span class=\"disabled-icon\">\n <sa-icon icon=\"disabledCheckboxFilled\"\n customClass=\"auto-dimensions disabled-checkbox-icon\"\n class=\"d-flex\"></sa-icon>\n </span>\n }@else{\n <mat-checkbox class=\"checkbox-style\" [(ngModel)]=\"subFeature.isSelected\"\n (click)=\"onCheckboxClick($event, subFeature)\"></mat-checkbox>\n }\n <div class=\"sa-card-title-icon-container\">\n <div class=\"sa-card-custom-title\">\n {{subFeature?.title}}\n </div>\n @if(subFeature?.tooltip){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"props?.['advancedTooltipIcon'] || 'infoCircleOutlined'\"\n customClass=\"info-icon\" [matTooltip]=\"subFeature?.tooltip\"\n matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n </div>\n @if(subFeature?.featureChip && subFeature?.featureChip?.length > 0){\n <div class=\"chip-container\">\n @for(chip of subFeature.featureChip; track chip) {\n <sa-chip [type]=\"chip?.['type']\"\n [state]=\"chip?.['state']\"\n [filling]=\"chip?.['filling']\"\n [tooltip]=\"chip?.['tooltip']\"\n [text]=\"chip?.['label']\"></sa-chip>\n }\n </div>\n }\n </div>\n </sa-card-title-header>\n </sa-card>\n </div>\n </div>\n </div>\n </mat-expansion-panel>\n </div>\n </mat-expansion-panel>\n</mat-accordion>","import {\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport {\n DateAdapter,\n MatDateFormats,\n MAT_DATE_FORMATS,\n} from '@angular/material/core';\nimport { MatCalendar } from '@angular/material/datepicker';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\nimport { NgFor } from '@angular/common';\nimport { MatDateRangePicker } from '@angular/material/datepicker';\n\n\nlet nextId = 0; // used to give unique ids to inputs used in html\n\n@Component({\n templateUrl: './calendar-header.component.html',\n styleUrls: ['./calendar-header.component.css'],\n standalone: true,\n imports: [\n NgFor,\n MatIconModule,\n MatButton\n ],\n // changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarHeaderComponent<D> implements OnDestroy {\n uuid: number = nextId++;\n\n private readonly destroy$ = new Subject<void>();\n\n constructor(\n private calendar: MatCalendar<D>, // calendar instance of picker\n private dateAdapter: DateAdapter<D>, // native or moment date adapter\n private picker: MatDateRangePicker<D>,\n @Inject(MAT_DATE_FORMATS) private dateFormats: MatDateFormats, // for formatting\n cdr: ChangeDetectorRef\n ) {\n // make sure your header stays in sync with the calendar:\n calendar.stateChanges\n .pipe(takeUntil(this.destroy$)) // unsubscribe when destroyed\n .subscribe(() => cdr.markForCheck());\n\n }\n\n selectedPreset = \"Custom\"\n presets = [\n \"This Quarter\",\n \"Last Quarter\",\n \"Last 6 Months\",\n \"This Year\",\n \"Last Year\",\n \"Custom\"\n ]\n // active date label rendered between the arrow buttons\n\n ngOnInit() {\n const currentRange: any = this.calendar.selected;\n\n currentRange?.start.setHours(0, 0, 0, 0);\n currentRange?.end.setHours(0, 0, 0, 0);\n\n // To pre-select a preset when the calendar opens.\n // Match the already selected date range with the date-ranges of all presets.\n // If already selected date range matches with a preset, pre-select it.\n\n for (let i = 0; i < this.presets.length; i++) {\n const tempRange = this.findDate(this.presets[i]);\n if (tempRange.newStart.getTime() == currentRange.start.getTime() && tempRange.newEnd.getTime() == currentRange.end.getTime()) {\n this.selectedPreset = this.presets[i];\n break;\n }\n }\n }\n\n get periodLabel(): string {\n // use date adapter to format the label, e.g. \"SEP 2020\"\n return this.dateAdapter\n .format(this.calendar.activeDate, this.dateFormats.display.monthYearLabel)\n .toLocaleUpperCase();\n }\n\n previousClicked(mode: 'month' | 'year'): void {\n this.changeDate(mode, -1);\n }\n\n nextClicked(mode: 'month' | 'year'): void {\n this.changeDate(mode, 1);\n }\n\n changeView() {\n this.calendar.currentView =\n this.calendar.currentView == \"month\"\n ? \"year\"\n : this.calendar.currentView == \"year\"\n ? \"multi-year\"\n : \"month\";\n }\n\n today = new Date();\n\n presetChanged(evt: any) {\n const newRange: any = this.findDate(evt.target.value);\n this.calendar.activeDate = newRange.newStart;\n this.picker.select(newRange.newStart);\n this.picker.select(newRange.newEnd);\n }\n\n findDate(selected: string) {\n const date = this.today.getDate();\n const month = this.today.getMonth();\n const year = this.today.getFullYear();\n let newRange: any;\n this.selectedPreset = selected;\n switch (selected) {\n case \"This Quarter\": {\n const thisQuarterMonth = Math.floor(month / 3) * 3;\n const start = this.dateAdapter.createDate(year, thisQuarterMonth, 1);\n const end = this.dateAdapter.createDate(year, thisQuarterMonth + 3, 1);\n newRange = {\n newStart: start,\n newEnd: end,\n }\n break;\n }\n case \"Last Quarter\": {\n const lastQuarterMonth = (Math.floor(month / 3) * 3) - 3;\n const start = this.dateAdapter.createDate(year, lastQuarterMonth, 1);\n const end = this.dateAdapter.createDate(year, lastQuarterMonth + 3, 1);\n newRange = {\n newStart: start,\n newEnd: end,\n }\n break;\n }\n case \"Last 6 Months\": {\n const end = this.dateAdapter.createDate(year, month, date);\n const start = this.dateAdapter.addCalendarMonths(end, -6);\n newRange = {\n newStart: start,\n newEnd: end,\n }\n break;\n }\n case \"This Year\": {\n const start = this.dateAdapter.createDate(year, 0, 1);\n const end = this.dateAdapter.createDate(year, 11, 31);\n newRange = {\n newStart: start,\n newEnd: end,\n }\n break;\n }\n case \"Last Year\": {\n const start = this.dateAdapter.createDate(year - 1, 0, 1);\n const end = this.dateAdapter.createDate(year - 1, 11, 31);\n newRange = {\n newStart: start,\n newEnd: end,\n }\n break;\n }\n default: {\n newRange = {\n newStart: new Date(),\n newEnd: new Date(),\n }\n }\n }\n return newRange;\n }\n\n private changeDate(mode: 'month' | 'year', amount: -1 | 1): void {\n // increment or decrement month or year\n this.calendar.activeDate =\n mode === 'month'\n ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, amount)\n : this.dateAdapter.addCalendarYears(this.calendar.activeDate, amount);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(); // will trigger unsubscription in takeUntil\n }\n}\n","<div class=\"range-preset\">\n <div class=\"preset\" *ngFor=\"let preset of presets, let i = index\">\n <label class=\"preset-label {{preset == selectedPreset ? 'preset-selected' : ''}}\"\n for=\"preset-radio-{{i}}\">{{preset}}</label>\n <input class=\"preset-radio\" (change)=\"presetChanged($event)\" [checked]=\"preset == selectedPreset\"\n id=\"preset-radio-{{i}}\" type=\"radio\" name=\"preset-radios-{{uuid}}\" value=\"{{preset}}\">\n </div>\n</div>\n\n<div class=\"header\">\n <button mat-icon-button (click)=\"previousClicked('month')\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <button mat-button class=\"header-label\" (click)=\"changeView()\">{{ periodLabel }}</button>\n\n <button mat-icon-button (click)=\"nextClicked('month')\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sa-card-custom-body',\n standalone: true,\n imports: [],\n templateUrl: './card-body.component.html',\n styleUrl: './card-body.component.css'\n})\nexport class CardBodyComponent {\n\n}\n","<div class=\"sa-card-body\"><ng-content></ng-content></div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sa-card-footer-actions',\n standalone: true,\n imports: [],\n templateUrl: './card-footer-actions.component.html',\n styleUrl: './card-footer-actions.component.css'\n})\nexport class CardFooterActionsComponent {\n\n}\n","<div class=\"sa-card-footer-actions\">\n <ng-content></ng-content>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sa-card-icon',\n standalone: true,\n imports: [],\n templateUrl: './card-icon.component.html',\n styleUrl: './card-icon.component.css'\n})\nexport class CardIconComponent {\n\n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sa-card-title-actions',\n standalone: true,\n imports: [],\n templateUrl: './card-title-actions.component.html',\n styleUrl: './card-title-actions.component.css'\n})\nexport class CardTitleActionsComponent {\n\n}\n","<div class=\"sa-card-title-actions\"><ng-content></ng-content></div>","import { Component, Input } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'lib-list',\n standalone: true,\n imports: [IconComponent, CommonModule],\n templateUrl: './list.component.html',\n styleUrl: './list.component.css'\n})\nexport class ListComponent {\n @Input() listData: { icon?: string; text: string }[] = [];\n @Input('featuresIcon') featuresIcon: string = '';\n}\n","<div class=\"feature-list-container\">\n <div class=\"feature-item\" *ngFor=\"let item of listData\">\n <div *ngIf=\"featuresIcon\" class=\"feature-icon\">\n <sa-icon [icon]=\"featuresIcon\" customClass=\"colored-icon\"></sa-icon>\n </div>\n <div>\n <span class=\"feature-text\">{{ item?.text }}</span>\n </div>\n </div>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CardComponent } from '../card.component';\nimport { IconComponent } from '../../icon/icon.component';\nimport { ListComponent } from '../../list/list.component';\nimport { CardBodyComponent } from '../card-body/card-body.component';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { CommonModule } from '@angular/common';\nimport { CardTitleActionsComponent } from '../card-title-actions/card-title-actions.component';\nimport { CardCustomHeaderComponent } from '../card-custom-header/card-custom-header.component';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { ButtonComponent } from '../../button/button.component';\n\n@Component({\n selector: 'sa-checkbox-card',\n standalone: true,\n imports: [CardComponent, IconComponent, ListComponent, CardBodyComponent, MatCheckboxModule, CommonModule, CardTitleActionsComponent, CardCustomHeaderComponent, FormsModule, ReactiveFormsModule, ButtonComponent],\n templateUrl: './checkbox-card.component.html',\n styleUrl: './checkbox-card.component.css'\n})\nexport class CheckboxCardComponent extends FieldType {\n\n ngOnInit() {\n // console.log(this)\n }\n\n onCardClick(event: MouseEvent): void {\n this.props['isCardSelected'] = !this.props['isCardSelected'];\n this.formControl.setValue(!this.formControl.value);\n }\n\n onCheckboxClick(event: Event): void {\n event.stopPropagation();\n }\n\n\n override get formControl(): FormControl {\n return super.formControl as FormControl;\n }\n\n actionHandler(button: any) {\n this.field.props['onButtonClick'](this.field);\n }\n}\n","<sa-card [width]=\"props['width']\" [customWrapperClass]=\"props['customWrapperClass']\"\n (click)=\"!props['disabled'] && onCardClick($event)\" [showCardBody]=\"false\" [showCardHeader]=\"true\"\n [showCustomCardBody]=\"true\" class=\"checkbox-card {{props['isCardSelected'] ? 'card-selected': ''}}\"\n [style.width]=\"props['width']\">\n <sa-card-title-header>\n <div class=\"sa-card-custom-header-container\">\n <div class=\"sa-card-title-logo-container\">\n <div class=\"sa-card-title-logo {{props['disabled'] ? 'disabled-card': ''}}\"><sa-icon\n [icon]=\"props['featureIcon']\" customClass=\"auto-dimensions colored-icon\"></sa-icon>\n </div>\n <div class=\"sa-card-custom-title\">{{props['title']}}</div>\n </div>\n <div class=\"sa-card-titleIcon\">\n <sa-card-title-actions>\n <div class=\"sa-document-action\">\n @if(props['disabled']){\n <sa-icon icon=\"disabledCheckboxFilled\"\n customClass=\"auto-dimensions disabled-checkbox-icon\"></sa-icon>\n }@else{\n <mat-checkbox class=\"checkbox-style\" [formControl]=\"formControl\"\n (click)=\"onCheckboxClick($event)\" [disabled]=\"props['disabled']\"></mat-checkbox>\n }\n </div>\n </sa-card-title-actions>\n </div>\n </div>\n </sa-card-title-header>\n <sa-card-custom-body>\n @if(props['listItems']){\n <lib-list [listData]=\"props['listItems']\" [featuresIcon]=\"props['listIcon']\"></lib-list>\n }@else if(props['showButtons']){\n <div class=\"buttons-container\">\n <ng-container *ngFor=\"let button of props['showButtons']\">\n <ng-container *ngIf=\"button.type === 'submit'\">\n <div class=\"button-content\">\n @if(props['description']){\n @if(props['descriptionIcon']){\n <div class=\"description-container\">\n <sa-icon [icon]=\"props['descriptionIcon']\" customClass=\"auto-dimensions disabled-icon\"\n class=\"description-icon\"></sa-icon>\n <span class=\"description-style\">{{props['description']}}</span>\n </div>\n }\n }\n <sa-button (click)=\"actionHandler(button)\" [text]=\"button.label\" [type]=\"button.buttonType\"\n [size]=\"button.size\" [state]=\"button.state\" [icon]=\"button.icon\"\n [iconPosition]='button.iconPosition' class=\"checkbox-card-action-button\"\n [buttonIconSize]=\"button.iconSize\"></sa-button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n }\n </sa-card-custom-body>\n</sa-card>","import { Component, Input, Output, EventEmitter, ViewEncapsulation, OnChanges, SimpleChanges } from '@angular/core';\nimport { GuideStep } from '../../../interfaces/guide-card-interface';\nimport { CommonModule } from '@angular/common';\nimport { ChipsComponent } from '../../chips/chips.component';\nimport { isUndefined as _isUndefined, first as _first } from 'lodash'\nimport { IconComponent } from '../../icon/icon.component';\n\n@Component({\n selector: 'sa-guide-card',\n standalone: true,\n imports: [CommonModule, ChipsComponent, IconComponent],\n templateUrl: './guide-card.component.html',\n styleUrls: ['./guide-card.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class GuideCardComponent implements OnChanges {\n @Input() title: string = '';\n @Input() steps: GuideStep[] | any = []\n @Input() selectable: boolean = false;\n @Input() selectedStep: any = {};\n @Output() onStepClicked = new EventEmitter<GuideStep>();\n //selectedStep: any;\n\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes['steps'] || changes['selectable']) && this.selectable && _isUndefined(this.selectedStep)) {\n const selectedStep = _first(this.steps);\n this.onStepClick(selectedStep);\n }\n }\n ngOnInit() {\n if (this.selectable && _isUndefined(this.selectedStep)) {\n \n }\n }\n\n onStepClick(step: any) {\n this.selectedStep = step;\n //console.log(this.selectedStep)\n this.onStepClicked.emit(step);\n }\n}\n","<div class=\"guide-container\">\n <div class=\"guide-header\">\n <p class=\"guide-header-title\">{{ title }}</p>\n </div>\n <div class=\"guide-content\">\n @for (step of steps; track step; let last = $last) {\n <div class=\"step\" [ngClass]=\"step?.isCompleted ? 'connectedSource-step': '' \">\n <div class=\"step-indicator\">\n @if(selectable) {\n @if(step?.isCompleted){\n <sa-icon [icon]=\"'checkCircleFilled'\" class=\"source-circle\" customClass=\"colored-icon\"\n size=\"20\"></sa-icon>\n }\n @else{\n <div [ngClass]=\"step === selectedStep ? 'step-circle-selected': 'step-circle-normal'\">\n </div>\n }\n }@else{\n <div class=\"step-circle\"></div>\n }\n @if (!last) {\n <div class=\"step-line\"></div>\n }\n </div>\n <div class=\"step-content\">\n <div class=\"step-title\" (click)=\"selectable ? onStepClick(step) : null\"\n [ngClass]=\"selectable ? (step === selectedStep ? 'selected-step' : 'other-step') : ''\">\n {{ step.title }}\n @if(step?.chipData) {\n <sa-chip [type]=\"step?.chipData.type\" [state]=\"step?.chipData.state\"\n [filling]=\"step?.chipData.filling\" [text]=\"step?.chipData.text\"\n [iconPosition]='step?.chipData.iconPosition' [iconPath]=\"step?.chipData.iconPath\"></sa-chip>\n }\n </div>\n @if (step?.description) {\n <p class=\"step-description\">{{ step.description }}</p>\n }\n </div>\n </div>\n }\n </div>\n</div>","import { Component, Input, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\nimport { MessageType } from '../../interfaces/message-banner';\nimport { IconComponent } from \"../icon/icon.component\";\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconService } from '../icon/icon.service';\nimport { ButtonComponent } from '../button/button.component';\nimport { IconName } from '../../interfaces/icon-interface';\nimport { ButtonIconPosition, ButtonInterface, ButtonSize, ButtonType } from '../../interfaces/button-interface';\nimport { isUndefined, kebabCase } from 'lodash'\n@Component({\n selector: 'sa-message-banner',\n standalone: true,\n imports: [HttpClientModule, IconComponent, ButtonComponent],\n providers: [IconService],\n templateUrl: './message-banner.component.html',\n styleUrl: './message-banner.component.css',\n encapsulation: ViewEncapsulation.None\n})\nexport class MessageBannerComponent {\n @Input() type: MessageType = 'info';\n @Input() actionText?: string;\n @Input() content?: string = '';\n @Input() bannerIcon?: IconName;\n @Input() bannerIconSize?: string = '';\n @Input() buttonIcon?: IconName;\n @Input() buttonType?: ButtonType;\n @Input() buttonIconPosition?: ButtonIconPosition;\n @Input() buttonSize?: ButtonSize;\n @Input() buttonIconSize?: string;\n @Input() button?: ButtonInterface;\n @Input() onAction: () => void = () => { };\n @Output() actionClick = new EventEmitter<any>();\n\n handleButtonClick(event: any, button?: ButtonInterface): void {\n if(isUndefined(button)) {\n button = {\n icon: this.buttonIcon,\n iconPosition: this.buttonIconPosition,\n size: this.buttonSize,\n buttonIconSize: this.buttonIconSize,\n type: this.buttonType,\n text: this.actionText,\n id: `message-banner-${kebabCase(this.actionText)}`,\n state: 'default'\n }\n }\n this.actionClick.emit(button);\n }\n}\n","<div class=\"message-banner\" [class]=\"type\">\n <div class=\"content\">\n @if (bannerIcon) {\n <sa-icon class=\"icon\" [icon]=\"bannerIcon\" [size]=\"bannerIconSize\" [style.height.px]=\"bannerIconSize\"></sa-icon>\n }\n <ng-content></ng-content>\n </div>\n @if (actionText) {\n <sa-button class=\"action-button\" [text]=\"actionText\" [icon]=\"buttonIcon\" [size]=\"buttonSize\" [type]=\"buttonType\"\n [iconPosition]=\"buttonIconPosition\" [size]=\"buttonSize\" [buttonIconSize]=\"buttonIconSize\"\n (click)=\"onAction()\" (onClickEvent)=\"handleButtonClick($event)\">{{\n actionText\n }}</sa-button>\n }\n @else if(button) {\n <sa-button\n [text]=\"button?.text\"\n [icon]=\"button?.icon\"\n [size]=\"button?.size\"\n [type]=\"button?.type\"\n [iconPosition]=\"button?.iconPosition\"\n [buttonIconSize]=\"button?.buttonIconSize\"\n (onClickEvent)=\"handleButtonClick(button, $event)\"\n role=\"button\"\n [attr.aria-label]=\"button?.text\"\n >\n \n </sa-button>\n }\n</div>","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GuideCardComponent } from '../guide-card/guide-card.component';\nimport { FieldType, } from '@ngx-formly/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { CardComponent } from '../card.component';\nimport { CardCustomHeaderComponent } from '../card-custom-header/card-custom-header.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { ChipsComponent } from '../../chips/chips.component';\nimport { IconComponent } from '../../icon/icon.component';\nimport { ButtonComponent } from '../../button/button.component';\nimport { CardTitleActionsComponent } from '../card-title-actions/card-title-actions.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { find as _find } from 'lodash'\nimport { MessageBannerComponent } from '../../message-banner/message-banner.component';\n@Component({\n selector: 'sa-menu-card',\n standalone: true,\n imports: [ChipsComponent, CommonModule, GuideCardComponent, FormsModule, ReactiveFormsModule, FormlyModule, CardComponent, CardCustomHeaderComponent, IconComponent, MatExpansionModule, ButtonComponent, CardTitleActionsComponent, MatTooltipModule, MessageBannerComponent],\n templateUrl: './menu-card.component.html',\n styleUrl: './menu-card.component.css'\n})\nexport class MenuCardComponent extends FieldType {\n @Input() title: string = 'Categories:';\n @Input() steps: any[];\n @Input() footerDetails: any;\n @Output() onButtonClickEvent = new EventEmitter<any>();\n @Output() onCardClickEvent = new EventEmitter<any>();\n @Output() onFooterClickEvent = new EventEmitter<any>();\n @Output() onStepChangeEvent = new EventEmitter<any>();\n selectedStep: any;\n selectedGuideStep: any | null = null;\n customClassWrapper = 'menuCardSourceContainer';\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['steps']) {\n this.selectedStep = _find(this.steps, { isSelected: true })\n }\n }\n\n onStepChanged(event) {\n this.selectedStep = event;\n this.onStepChangeEvent.emit(event);\n }\n\n onCardClick(source: any, button: any, event: Event) {\n event.stopPropagation();\n event.preventDefault();\n this.onCardClickEvent.emit({ category: this.selectedStep, source: source, button: button })\n }\n\n onAdvancedFeaturesOpened() {\n this.selectedStep.advancedFeaturesExpanded = true;\n }\n\n onAdvancedFeaturesClosed() {\n this.selectedStep.advancedFeaturesExpanded = false;\n }\n\n actionHandler(button: any, event: Event) {\n event.stopPropagation();\n event.preventDefault();\n this.onButtonClickEvent.next({ category: this.selectedStep, button: button });\n }\n\n showSources(sourceType: any) {\n this.onFooterClickEvent.emit(sourceType);\n //console.log(sourceType)\n this.onStepChanged(sourceType)\n }\n}\n","<div class=\"menu-card-container\">\n <div class=\"left-card-container\">\n <sa-guide-card [title]=\"'Categories:'\" [steps]=\"steps\" [selectable]=\"true\"\n (onStepClicked)=\"onStepChanged($event)\" [selectedStep]=\"selectedStep\"></sa-guide-card>\n <div class=\"card-footer-container\">\n <span class=\"horizontal-line\"></span>\n <ng-container *ngFor=\"let footerDetail of footerDetails\">\n <div (click)=\"showSources(footerDetail)\" class=\"footer\"\n [ngClass]=\"footerDetail === selectedStep ? 'selected-step' : 'other-step'\">\n <span class=\"footer-text\">\n {{footerDetail?.title}}\n <ng-container *ngIf=\"footerDetail?.count\">\n <span>({{footerDetail?.count}})</span>\n </ng-container>\n </span>\n <ng-container *ngIf=\"footerDetail?.chipData\">\n <span>\n <sa-chip [type]=\"footerDetail?.chipData.type\" [state]=\"footerDetail?.chipData.state\"\n [filling]=\"footerDetail?.chipData.filling\" [text]=\"footerDetail?.chipData.text\"\n [iconPosition]='footerDetail?.chipData.iconPosition'\n [iconPath]=\"footerDetail?.chipData.iconPath\">\n </sa-chip>\n </span>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"right-card-container\">\n @if(selectedStep?.messageContent || selectedStep?.messageBanner?.content){\n <div class=\"message-container\">\n <sa-message-banner [bannerIcon]=\"selectedStep?.messageBanner?.bannerIcon\"\n [bannerIconSize]=\"selectedStep?.messageBanner?.bannerIconSize\" \n [buttonIcon]=\"selectedStep?.messageBanner?.buttonIcon\"\n [buttonType]=\"selectedStep?.messageBanner?.buttonType\"\n [buttonSize]=\"selectedStep?.messageBanner?.buttonSize\"\n [buttonIconPosition]=\"selectedStep?.messageBanner?.buttonIconPosition\"\n [actionText]=\"selectedStep?.messageBanner?.buttonText\"\n [buttonIconSize]=\"selectedStep?.messageBanner?.buttonIconSize\"\n [type]=\"selectedStep?.messageBanner?.type || 'info'\">\n <div class=\"message-content\" [innerHtml]=\"selectedStep?.messageContent || selectedStep?.messageBanner?.content\">\n </div>\n </sa-message-banner>\n </div>\n }\n <div class=\"heading-container\">\n <span class=\"heading-style\">{{selectedStep?.sourcesHeading || 'Available Sources'}}:</span>\n </div>\n <div *ngIf=\"selectedStep?.sourcesList\" class=\"cards-container\">\n <ng-container *ngFor=\"let source of selectedStep.sourcesList\">\n <ng-container\n *ngTemplateOutlet=\"cardTemplate; context: { source: source, selectedStep: selectedStep, actionButton: selectedStep?.actionButton }\">\n </ng-container>\n </ng-container>\n </div>\n <!-- for advanced options -->\n <div *ngIf=\"selectedStep?.advancedSourcesList && selectedStep.advancedSourcesList.length > 0\"\n class=\"menu-card-advanced-features-section\">\n\n <mat-expansion-panel hideToggle [expanded]=\"selectedStep?.advancedFeaturesExpanded || false\"\n (opened)=\"onAdvancedFeaturesOpened()\" (closed)=\"onAdvancedFeaturesClosed()\"\n class=\"menuAdvancedAccordion\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <div class=\"panel-container\">\n @if(!selectedStep?.['advancedFeaturesExpanded']){\n <span class=\"d-flex align-center source-icon\">\n <sa-icon [icon]=\"props?.['advancedFeatureCollapsedIcon'] || 'sourcesOutlined'\" class=\"d-flex\"\n customClass=\"colored-icon\" size=\"16\"></sa-icon>\n </span>\n }@else{\n <span class=\"d-flex align-center\">\n <sa-icon [icon]=\"props?.['advancedFeatureExpandedIcon'] || 'downChevronOutlined'\" class=\"d-flex\"\n size=\"20\"></sa-icon>\n </span>\n }\n <span class=\"advanced-title\">{{ selectedStep?.['advancedFeaturesExpanded'] ?\n selectedStep?.['advancedFeatureToggleTitle'] :\n selectedStep?.['advancedFeatureTitle'] }}</span>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"expansion-container\">\n @if(selectedStep?.advancedFeatureDisclaimer){\n <div class=\"disclaimer-container\">\n <sa-message-banner [type]=\"'disclaimer'\">\n <div class=\"disclaimer-content\">\n @if(selectedStep?.advancedFeatureDisclaimerTooltip){\n <span class=\"tooltip-container\">\n <sa-icon icon=\"infoCircleOutlined\"\n [matTooltip]=\"selectedStep?.advancedFeatureDisclaimerTooltip\" customClass=\"info-icon\"\n class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n <span class=\"disclaimer-style\">{{selectedStep?.advancedFeatureDisclaimer}}</span>\n </div>\n @if(selectedStep?.advancedFeatureDisclaimerButtons) {\n <div class=\"disclaimer-buttons-container\">\n <ng-container *ngFor=\"let button of selectedStep.advancedFeatureDisclaimerButtons\">\n <sa-button [text]=\"button.text\" [type]=\"button.type\" [size]=\"button.size\"\n [state]=\"button.state\" [iconPosition]=\"button.iconPosition\" [icon]=\"button.icon\"\n [buttonIconSize]=\"button.buttonIconSize\"\n (click)=\"actionHandler(button, $event)\"></sa-button>\n </ng-container>\n </div>\n }\n </sa-message-banner>\n </div>\n }\n <div class=\"cards-container\">\n <ng-container *ngFor=\"let source of selectedStep?.advancedSourcesList\">\n <ng-container\n *ngTemplateOutlet=\"cardTemplate; context: { source: source, selectedStep: selectedStep, actionButton: selectedStep?.actionButton }\">\n </ng-container>\n </ng-container>\n </div>\n </div>\n </mat-expansion-panel>\n </div>\n @if(selectedStep?.connectedSourcesList && selectedStep.connectedSourcesList.length > 0) {\n <div class=\"heading-container\">\n <span class=\"heading-style\">{{selectedStep?.sourcesHeading || 'Connected Sources'}}:</span>\n </div>\n <div class=\"cards-container\">\n <ng-container *ngFor=\"let source of selectedStep.connectedSourcesList\">\n <ng-container\n *ngTemplateOutlet=\"cardTemplate; context: { source: source, selectedStep: selectedStep, actionButton: selectedStep?.actionButton }\">\n </ng-container>\n </ng-container>\n </div>\n }\n </div>\n</div>\n\n<ng-template #cardTemplate let-source=\"source\" let-selectedStep=\"selectedStep\" let-actionButton=\"actionButton\">\n <sa-card [column]=\"false\" [showCardHeader]=\"true\" [showCardBody]=\"false\"\n [width]=\"selectedStep.sourcesCardWidth || '471px'\" [showHeaderBodyDivider]=\"false\"\n [customWrapperClass]=\"selectedStep.customWrapperClass || customClassWrapper\"\n class=\"{{source.disabled ? 'disabled-card': 'enabled-card'}}\">\n <sa-card-title-header>\n <div class=\"sa-card-accordion-title-container\">\n <div class=\"sa-menu-card-title-icon-container\">\n <div class=\"sa-menu-card-custom-title\">\n <ng-container *ngIf=\"source.logoUrl\">\n <sa-icon [img]=\"source.logoUrl\" [size]=\"'20'\" class=\"d-flex\" [customClass]=\"'auto-dimensions'\"></sa-icon>\n </ng-container>\n <span [matTooltip]=\"source?.tooltip\">\n {{source?.name}}\n <ng-container *ngIf=\"source?.count\">\n <span>({{source.count}})</span>\n </ng-container>\n </span>\n <ng-container *ngIf=\"source?.chipData\">\n <span>\n <sa-chip [type]=\"source?.chipData.type\" [state]=\"source?.chipData.state\"\n [filling]=\"source?.chipData.filling\" [text]=\"source?.chipData.text\"\n [iconPosition]='source?.chipData.iconPosition'\n [iconPath]=\"source?.chipData.iconPath\">\n </sa-chip>\n </span>\n </ng-container>\n </div>\n </div>\n <ng-container\n *ngIf=\"!source.disabled && (selectedStep?.actionButton && (selectedStep?.showActionActionButton ? actionButton : null)) as button\">\n <div class=\"sa-card-titleIcon no-margin\">\n <sa-card-title-actions>\n <sa-button [text]=\"button.text\" [type]=\"button.type\" [size]=\"button.size\"\n [state]=\"button.state\" [iconPosition]=\"button.iconPosition\" [icon]=\"button.icon\"\n [buttonIconSize]=\"button.buttonIconSize\" (click)=\"onCardClick(source, button, $event)\">\n </sa-button>\n </sa-card-title-actions>\n </div>\n </ng-container>\n </div>\n </sa-card-title-header>\n </sa-card>\n</ng-template>","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { ChipsComponent } from '../../chips/chips.component';\nimport { CardComponent } from '../card.component';\nimport { IconComponent } from '../../icon/icon.component';\nimport { CardBodyComponent } from '../card-body/card-body.component';\nimport { CardCustomHeaderComponent } from '../card-custom-header/card-custom-header.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { isArray, isString, map, join, every, get, isUndefined, includes } from 'lodash';\n\nexport interface ThumbnailStatus {\n text: string;\n type: 'regular' | 'small' | 'large';\n state: 'primary' | 'secondary' | 'neutral' | 'error' | 'warning' | 'success';\n filling: 'outline' | 'filled';\n iconPath?: string;\n iconPosition?: 'left' | 'right' | 'both' | '';\n largeStateIcon?: string;\n largeStateText?: string;\n tooltip?: string;\n}\n\nexport interface ThumbnailData {\n title: string;\n subtitle: string;\n description: string;\n descriptionTooltip?: string;\n thumbnailUrl: string;\n statuses: ThumbnailStatus[];\n [key: string]: any\n}\n\n@Component({\n selector: 'sa-thumbnail-card',\n standalone: true,\n imports: [\n CommonModule,\n ChipsComponent,\n CardComponent,\n IconComponent,\n CardBodyComponent,\n CardCustomHeaderComponent,\n MatTooltipModule,\n ],\n templateUrl: './thumbnail-card.component.html',\n styleUrls: ['./thumbnail-card.component.css']\n})\nexport class ThumbnailCardComponent {\n @Input() data: ThumbnailData;\n @Input() size: 'small' | 'medium' | 'large' = 'medium';\n @Output() cardClick = new EventEmitter<ThumbnailData>();\n\n /**\n * Handles changes to component inputs\n * @param changes SimpleChanges object containing changed properties\n */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data']) {\n this.data = changes['data'].currentValue;\n this.updateDescriptionTooltip();\n }\n }\n \n /**\n * Updates the description tooltip if it exists\n * @private\n */\n private updateDescriptionTooltip(): void {\n const tooltip = get(this.data, 'descriptionTooltip');\n if (!isUndefined(tooltip)) {\n this.data.descriptionTooltip = this.formattedTooltip(tooltip);\n }\n }\n\n onCardClick(): void {\n this.cardClick.emit(this.data);\n }\n\n getChipConfig(status: string): Partial<ThumbnailStatus> {\n switch (status) {\n case 'active':\n return {\n type: 'small',\n state: 'success',\n filling: 'filled'\n };\n default:\n return {\n type: 'small',\n state: 'neutral',\n filling: 'outline'\n };\n }\n }\n\n formattedTooltip(tooltip: any): string {\n try {\n // Parse the JSON string\n const parsedData = JSON.parse(tooltip);\n // Check if parsedData is an array\n if (isArray(parsedData)) {\n // Handle case where it's an array of objects\n if (\n every(\n parsedData,\n (item) => item && typeof item === 'object' && 'name' in item,\n )\n ) {\n return join(map(parsedData, (item: any) => item.name), '\\n');\n }\n // Handle case where it's an array of strings\n if (every(parsedData, (item) => isString(item))) {\n return join(parsedData, '\\n');\n }\n throw new Error('Invalid array structure');\n } else {\n throw new Error('Parsed data is not an array');\n }\n } catch (error) {\n if (includes(tooltip, '\\n')) {\n return tooltip; // Assuming it's already formatted correctly\n }\n console.error('Error parsing tooltip data:', error);\n // Return a fallback message in case of an error\n return '';\n }\n }\n}\n","<div class=\"thumbnail-card\" [class.small]=\"size === 'small'\" [class.medium]=\"size === 'medium'\"\n [class.large]=\"size === 'large'\" (click)=\"onCardClick()\" role=\"button\" tabindex=\"0\" (keydown.enter)=\"onCardClick()\">\n <sa-card [showCustomCardBody]=\"true\" [customWrapperClass]=\"'sa-card-custom-wrapper'\">\n <sa-card-custom-body>\n <div class=\"thumbnail-content\">\n <div class=\"thumbnail-container\">\n <img [src]=\"data?.thumbnailUrl\" [alt]=\"data?.title\" class=\"thumbnail\">\n </div>\n <div class=\"thumbnail-info\">\n <div class=\"thumbnail-header\">\n <h3 class=\"thumbnail-title\">{{ data?.title }}</h3>\n <div class=\"status-chips\">\n @for (status of data?.statuses; track status.text) {\n <sa-chip [text]=\"status.text\" [type]=\"'small'\" [state]=\"status.state\" [filling]=\"status.filling\"\n [iconPath]=\"status.iconPath\" [iconPosition]=\"status.iconPosition\"\n [largeStateIcon]=\"status.largeStateIcon\" [largeStateText]=\"status.largeStateText\" [matTooltip]=\"status?.tooltip\" matTooltipClass=\"custom-status-tooltip\">\n </sa-chip>\n }\n </div>\n </div>\n <div class=\"thumbnail-metadata\">\n <span class=\"thumbnail-description\" [matTooltip]=\"data?.descriptionTooltip\" matTooltipClass=\"custom-description-tooltip\">{{ data?.description }}</span>\n <span class=\"separator\"></span>\n <span class=\"thumbnail-subtitle\">{{ data?.subtitle }}</span>\n </div>\n </div>\n </div>\n </sa-card-custom-body>\n </sa-card>\n</div>\n","import { Component, OnInit, Input, OnDestroy, ViewEncapsulation, SimpleChanges, OnChanges, ChangeDetectionStrategy, ChangeDetectorRef, NgZone } from '@angular/core';\nimport { CardComponent } from '../card/card.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { CardCustomHeaderComponent } from '../card/card-custom-header/card-custom-header.component';\nimport { CardCarousel } from '../../interfaces/card-carousel-interface';\nimport { AvatarComponent } from \"../avatar/avatar.component\";\nimport { map as _map, split as _split, words as _words } from 'lodash';\n\n@Component({\n selector: 'sa-card-carousel',\n standalone: true,\n imports: [CardComponent, IconComponent, CardCustomHeaderComponent, AvatarComponent],\n templateUrl: './card-carousel.component.html',\n styleUrls: ['./card-carousel.component.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CardCarouselComponent implements OnInit, OnDestroy, OnChanges {\n protected Math = Math;\n\n @Input() cards: CardCarousel[] = [];\n @Input() interval: number = 5000;\n @Input() autoPlay: boolean = true;\n @Input() showNavigationArrows: boolean = true;\n @Input() showIndicators: boolean = true;\n @Input() showBrandFooter: boolean = true;\n\n visibleLogos: (CardCarousel & { index: number; isActive: boolean })[] = [];\n currentIndex: number = 0;\n private timer: any;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private ngZone: NgZone\n ) {}\n\n ngOnInit() {\n this.updateVisibleLogos();\n if (this.autoPlay && this.cards.length > 0) {\n this.startTimer();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['cards'] && this.cards?.length > 0) {\n this.cards = _map(this.cards, (card) => {\n const nameWords = _words(card.title, /[A-Za-z]+/g);\n const wordsToUse = nameWords.length > 2 \n ? [nameWords[0], nameWords[nameWords.length - 1]]\n : nameWords;\n const initials = _map(wordsToUse, word => word.charAt(0).toUpperCase()).join('');\n return { ...card, altText: initials };\n });\n \n if (this.currentIndex >= this.cards.length) {\n this.currentIndex = 0;\n }\n this.updateVisibleLogos();\n if (this.autoPlay) {\n this.resetTimer();\n }\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.stopTimer();\n }\n\n startTimer() {\n this.stopTimer();\n this.ngZone.runOutsideAngular(() => {\n this.timer = setInterval(() => {\n this.ngZone.run(() => {\n this.next();\n this.cdr.markForCheck();\n });\n }, this.interval);\n });\n }\n\n stopTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n }\n\n resetTimer() {\n this.stopTimer();\n if (this.autoPlay && this.cards.length > 0) {\n this.startTimer();\n }\n }\n\n selectCard(index: number) {\n if (index !== this.currentIndex && index >= 0 && index < this.cards.length) {\n this.currentIndex = index;\n this.updateVisibleLogos();\n this.resetTimer();\n this.cdr.markForCheck();\n }\n }\n\n next() {\n if (this.cards.length > 0) {\n this.currentIndex = (this.currentIndex + 1) % this.cards.length;\n this.updateVisibleLogos();\n this.resetTimer();\n this.cdr.markForCheck();\n }\n }\n\n prev() {\n if (this.cards.length > 0) {\n this.currentIndex = (this.currentIndex - 1 + this.cards.length) % this.cards.length;\n this.updateVisibleLogos();\n this.resetTimer();\n this.cdr.markForCheck();\n }\n }\n\n updateVisibleLogos() {\n if (this.cards.length === 0) {\n this.visibleLogos = [];\n return;\n }\n\n const maxVisibleCards = Math.min(5, this.cards.length);\n const startOffset = Math.floor(maxVisibleCards / 2) * -1;\n const endOffset = maxVisibleCards + startOffset;\n \n this.visibleLogos = [];\n for (let i = startOffset; i < endOffset; i++) {\n const index = (this.currentIndex + i + this.cards.length) % this.cards.length;\n this.visibleLogos.push({\n ...this.cards[index],\n index: index,\n isActive: index === this.currentIndex\n });\n }\n }\n}\n","<!-- card-carousel.component.html -->\n<div class=\"carousel-container\">\n <div class=\"carousel-top-wrapper\">\n <div class=\"controls\">\n @if (showIndicators) {\n <div class=\"dots\">\n @for (card of cards; track card.id; let i = $index) {\n <span class=\"dot\" [class.active]=\"i === currentIndex\" (click)=\"selectCard(i)\"></span>\n }\n </div>\n }\n @if (showNavigationArrows) {\n <div class=\"arrow-controls\">\n <sa-icon [icon]=\"'leftChevronCircle'\" size=\"24\" (click)=\"prev()\"></sa-icon>\n <sa-icon [icon]=\"'rightChevronCircle'\" size=\"24\" (click)=\"next()\"></sa-icon>\n </div>\n }\n </div>\n\n <div class=\"card-container\">\n @if (cards[currentIndex]) {\n <sa-card [customWrapperClass]=\"'sa-card-custom-wrapper'\" [width]=\"'24.063rem'\" [column]=\"false\"\n [showCardHeader]=\"true\" [showCardBody]=\"true\" [body]=\"cards[currentIndex]?.body\"\n [showHeaderBodyDivider]=\"true\">\n <sa-card-title-header>\n <div class=\"sa-card-custom-header-container\">\n <sa-avatar [altText]=\"cards[currentIndex]?.altText\" [imagePath]=\"cards[currentIndex]?.avatarIcon\" [size]=\"'extra-large'\"></sa-avatar>\n <div class=\"sa-card-title-subtitle-container\">\n <div class=\"sa-card-custom-title\">{{ cards[currentIndex]?.title }}</div>\n <div class=\"sa-card-subtitle\">{{ cards[currentIndex]?.subtitle }}</div>\n </div>\n <div class=\"sa-card-titleIcon\">\n <sa-icon [icon]=\"cards[currentIndex]?.logoIcon\" [iconUrl]=\"cards[currentIndex]?.logoUrl\" [size]=\"cards[currentIndex]?.logoSize || '50'\" customClass=\"logo-style\"></sa-icon>\n </div>\n </div>\n </sa-card-title-header>\n </sa-card>\n }\n </div>\n </div>\n\n @if (showBrandFooter) {\n <div class=\"brand-logos-container\">\n <div class=\"brand-logos\">\n @for (logo of visibleLogos; track logo.id) {\n <div> \n <sa-icon [icon]=\"logo.logoIcon\" [iconUrl]=\"logo.logoUrl\" [size]=\"logo.logoSize || '50'\" [class.active]=\"logo.isActive\" (click)=\"selectCard(logo.index)\"\n [customClass]=\"'logo-style'\">\n </sa-icon>\n </div>\n }\n </div>\n </div>\n }\n</div>","import { Component } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { isObservable, of } from 'rxjs';\nimport { includes as _includes } from 'lodash'\n\n@Component({\n selector: 'sa-checkbox',\n standalone: true,\n imports: [MatChipsModule, CommonModule, FormsModule],\n templateUrl: './checkbox.component.html',\n styleUrl: './checkbox.component.css'\n})\nexport class CheckboxComponent extends FieldType {\n toggleSelection(option: any): void {\n const selected = this.formControl.value || [];\n const index = selected.indexOf(option.value);\n if (index === -1) {\n selected.push(option.value);\n } else {\n selected.splice(index, 1);\n }\n this.formControl.setValue([...selected]);\n }\n\n // Checks if an option is selected\n isSelected(option: any): boolean {\n return _includes((this.formControl.value || []), option.value);\n }\n\n get options$() {\n const options = this.props?.options;\n return isObservable(options) ? options : of(options || []);\n }\n\n}\n","<div class=\"checkbox-container\">\n <div class=\"title-container\">\n @if(props['label']){\n <div class=\"form-field-title\">\n <span>{{ props['label'] }}</span>\n </div>\n }\n @if(props['description']){\n <div class=\"form-field-description\">\n <span>{{ props['description'] }}</span>\n </div>\n }\n </div>\n <div class=\"form-field\">\n <mat-chip-listbox selectable multiple [disabled]=\"props.disabled\" aria-label=\"Select options\">\n <mat-chip-option *ngFor=\"let option of options$ | async\" class=\"custom-chip\" [value]=\"option.value\"\n (click)=\"toggleSelection(option)\" [selected]=\"isSelected(option)\">\n {{ option.label }}\n </mat-chip-option>\n </mat-chip-listbox>\n </div>\n @if(props['helpText']){\n <div class=\"form-field-helpText\">\n <span>{{ props['helpText'] }}</span>\n </div>\n }\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-component-library',\n standalone: true,\n imports: [],\n template: `\n <p>\n component-library works!\n </p>\n `,\n styles: ``\n})\nexport class TestLibraryComponent {\n\n}\n","\nimport { Component, Input, OnInit, Output, EventEmitter, OnDestroy } from '@angular/core';\n\n@Component({\n selector: 'sa-dashboard-loader',\n standalone: true,\n imports: [],\n templateUrl: './dashboard-loader.component.html',\n styleUrl: './dashboard-loader.component.css',\n host: {\n '[style.--animation-duration]': 'animationDuration + \"s\"'\n }\n})\nexport class DashboardLoaderComponent implements OnInit, OnDestroy {\n @Input() animationDuration = 6; // Default duration in seconds\n @Output() animationCycleComplete = new EventEmitter<void>();\n\n private animationInterval: any;\n\n ngOnInit() {\n if (this.animationDuration <= 0) {\n console.warn('Animation duration must be greater than 0. Using default value of 6s.');\n this.animationDuration = 6;\n }\n\n // Emit event at the end of each animation cycle\n this.animationInterval = setInterval(() => {\n this.animationCycleComplete.emit();\n }, this.animationDuration * 1000);\n }\n\n ngOnDestroy() {\n if (this.animationInterval) {\n clearInterval(this.animationInterval);\n }\n }\n}\n","<span class=\"loader\"></span>","import { Component, Input } from '@angular/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { NgFor } from '@angular/common';\nimport { NgIf } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FieldTypeConfig } from '@ngx-formly/core';\nimport { CalendarHeaderComponent } from '../calendar-header/calendar-header.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'sa-datepicker',\n standalone: true,\n providers: [],\n imports: [\n MatFormFieldModule,\n MatInputModule,\n MatDatepickerModule,\n NgFor,\n NgIf,\n ReactiveFormsModule,\n CalendarHeaderComponent,\n CommonModule,\n MatNativeDateModule\n ],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.css'\n})\nexport class DatepickerComponent extends FieldType<FieldTypeConfig> {\n @Input() range: any;\n\n readonly CalendarHeaderComponent = CalendarHeaderComponent;\n\n}\n","<mat-form-field class=\"date-picker\">\n <mat-label>Choose a date</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" [formGroup]=\"range\">\n <input formControlName=\"start\" matStartDate placeholder=\"Start date\">\n <input formControlName=\"end\" matEndDate placeholder=\"End date\">\n </mat-date-range-input>\n <mat-hint>MM/DD/YYYY</mat-hint>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker [calendarHeaderComponent]=\"CalendarHeaderComponent\" #picker>\n </mat-date-range-picker>\n</mat-form-field>\n","import { Component, Input, computed, signal, effect, EventEmitter, Output, SimpleChanges, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconService } from '../icon/icon.service';\nimport { ButtonComponent } from '../button/button.component';\nimport { IconName } from '../../interfaces/icon-interface';\nimport { ButtonIconPosition, ButtonSize, ButtonType, ButtonInterface, ButtonClickEvent } from '../../interfaces/button-interface';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconComponent } from '../icon/icon.component';\n\ninterface MessageBannerState {\n type: 'default' | 'connection' | 'access' | 'accessRestricted';\n title: string;\n description: string;\n messageIcon: string;\n messageIconSize?: {\n width?: string;\n height?: string;\n };\n spacingBetweenImageAndDescription?: string;\n contentGap?: string; \n contactUrl?: string;\n titleClass?: string;\n descriptionClass?: string;\n}\n\n@Component({\n selector: 'sa-message-banner-v2',\n standalone: true,\n imports: [CommonModule, IconComponent, ButtonComponent, HttpClientModule],\n providers: [IconService],\n templateUrl: './message-banner-v2.component.html',\n styleUrls: ['./message-banner-v2.component.css']\n})\nexport class MessageBannerV2Component implements OnChanges {\n // State management using signals\n private state = signal<MessageBannerState>({\n type: 'default',\n title: '',\n description: '',\n messageIcon: '',\n messageIconSize: {\n height: '12.5rem'\n }\n });\n\n // Computed properties\n protected bannerContent = computed(() => {\n const currentState = this.state();\n return {\n ...currentState,\n description: this.sanitizeDescription(currentState.description)\n };\n });\n\n @Input() messageType: 'default' | 'connection' | 'access' | 'accessRestricted';\n @Input() contactUrl?: string;\n @Input() spacingBetweenImageAndDescription?: string;\n @Input() contentGap?: string;\n @Input() titleClass?: string;\n @Input() descriptionClass?: string;\n\n\n @Input() set messageIcon(value: string) {\n this.state.update(s => ({ ...s, messageIcon: value }));\n }\n\n @Input() set messageIconSize(value: { width?: string; height?: string }) {\n this.state.update(s => ({ ...s, messageIconSize: value }));\n }\n\n @Input() set title(value: string) {\n this.state.update(s => ({ ...s, title: value }));\n }\n\n @Input() set description(value: string) {\n this.state.update(s => ({ ...s, description: value }));\n }\n\n @Input() buttons: ButtonInterface[] = [];\n @Output() buttonClick = new EventEmitter<ButtonClickEvent>();\n\n ngOnChanges(changes: SimpleChanges): void {\n // Check if this is the first initialization or if messageType has changed\n const shouldUpdateBasedOnType = changes['messageType'] && \n // Only update based on type if we don't have custom values set\n !(this.state().title || this.state().description || this.state().messageIcon);\n \n if (shouldUpdateBasedOnType) {\n this.updateContentBasedOnType(this.messageType || 'default');\n }\n }\n\n private updateContentBasedOnType(type: 'default' | 'connection' | 'access' | 'accessRestricted') {\n // Define a type for the content items to ensure all properties are properly typed\n type ContentItem = {\n title: string;\n description: string;\n messageIcon: string;\n spacingBetweenImageAndDescription?: string;\n contentGap?: string;\n titleClass?: string;\n descriptionClass?: string;\n };\n\n // Only apply default content if custom content hasn't been provided\n const currentState = this.state();\n const content: Record<'default' | 'connection' | 'access' | 'accessRestricted', ContentItem> = {\n default: {\n title: 'Oops! Something went wrong. Please try again or try after some time',\n description: 'If the issue persists, contact our support team at <span class=\"support-email\">support@sarasanalytics.com</span>',\n messageIcon: '/assets/error.gif'\n },\n connection: {\n title: 'We\\'re having trouble connecting. Please check your internet connection and try again',\n description: 'You can also reach out to our support team at <span class=\"support-email\">support@sarasanalytics.com</span> for assistance',\n messageIcon: '/assets/lost-connection.gif'\n },\n access: {\n title: 'This is taking a bit longer than usual. Please hold on!',\n description: 'If the delay continues, check your connection and try refreshing the page.',\n messageIcon: '/assets/long-loading.gif'\n },\n accessRestricted: {\n title: 'Access Restricted!',\n description: `Looks like you don't have access to this module just yet. No worries—reach out to your admin to request access to this feature. If you're facing any issues, feel free to <a class=\"custom-contact-link\" href=\"${this.contactUrl ?? 'https://support.default.com'}\" target=\"_blank\">Contact Us</a>.`,\n messageIcon: '/assets/access-restricted.gif',\n spacingBetweenImageAndDescription: '0px',\n contentGap:'20px',\n titleClass: 'access-restricted-title',\n descriptionClass: 'access-restricted-description',\n }\n };\n\n const contentItem = content[type];\n\n this.state.update(s => ({\n ...s,\n type,\n // Only apply default values if custom values haven't been provided\n title: s.title || contentItem.title,\n description: s.description || contentItem.description,\n messageIcon: s.messageIcon || contentItem.messageIcon,\n // For other properties, only apply them if they exist in the contentItem\n ...(contentItem.spacingBetweenImageAndDescription && { spacingBetweenImageAndDescription: contentItem.spacingBetweenImageAndDescription }),\n ...(contentItem.contentGap && { contentGap: contentItem.contentGap }),\n ...(contentItem.titleClass && { titleClass: contentItem.titleClass }),\n ...(contentItem.descriptionClass && { descriptionClass: contentItem.descriptionClass })\n }));\n }\n\n private sanitizeDescription(description: string): string {\n return description.replace(\n /support@sarasanalytics\\.com/g,\n '<span class=\"support-email\">support@sarasanalytics.com</span>'\n );\n }\n\n onButtonClick(button: ButtonInterface, event: Event): void {\n this.buttonClick.emit({\n type: button.type as 'primary' | 'secondary',\n button,\n originalEvent: event\n });\n }\n}\n","@if (bannerContent(); as content) {\n <div class=\"error-page message-banner-v2\">\n <div class=\"content-container\" \n [ngStyle]=\"{ gap: contentGap || 'var(--medium-32px, 32px)' }\">\n <div class=\"image-container\"\n [ngStyle]=\"{ 'margin-bottom': spacingBetweenImageAndDescription ?? 'var(--small-16px, 16px)' }\">\n <img [src]=\"content.messageIcon\" \n [alt]=\"content.type + ' image'\"\n [style.--message-icon-height]=\"content.messageIconSize?.height\"\n [style.--message-icon-width]=\"content.messageIconSize?.width\" />\n </div>\n <div class=\"details\">\n <div class=\"title-description\">\n <div class=\"title-class\" [ngClass]=\"titleClass || 'title-class'\" [innerHTML]=\"content.title\"></div>\n <p class=\"description\" [ngClass]=\"descriptionClass || 'description'\" [innerHTML]=\"content.description\"></p>\n </div>\n @if(buttons){\n <div class=\"button-group\">\n @for (button of buttons; track button.text) {\n <sa-button \n [text]=\"button.text\"\n [icon]=\"button.icon\"\n [size]=\"button.size\"\n [type]=\"button.type\"\n [iconPosition]=\"button.iconPosition\"\n [buttonIconSize]=\"button.buttonIconSize\"\n (onClickEvent)=\"onButtonClick(button, $event)\"\n role=\"button\"\n [attr.aria-label]=\"button.text\">\n </sa-button>\n }\n </div>\n }\n </div>\n </div>\n </div>\n}\n","import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output } from '@angular/core';\nimport { MessageBannerComponent } from '../message-banner/message-banner.component';\nimport { ButtonClickEvent, ButtonInterface } from '../../interfaces/button-interface';\nimport { MessageBannerV2Component } from '../message-banner-v2/message-banner-v2.component';\nimport { CommonModule } from '@angular/common';\nimport { ButtonComponent } from '../button/button.component';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { IconComponent } from '../icon/icon.component';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'sa-dialog',\n standalone: true,\n imports: [MessageBannerComponent, MessageBannerV2Component, CommonModule, ButtonComponent, MatCheckboxModule, IconComponent, MatDialogModule],\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.css']\n})\nexport class DialogComponent {\n @Input() dialogData: {\n topMessageBanners?: any[];\n middleRegion?: any;\n lowerMessageBanners?: any[];\n buttons?: ButtonInterface[];\n buttonsWithType?: any[];\n closeButton?: string;\n showCloseButton?: boolean;\n };\n\n @Output() dialogButtonClick = new EventEmitter();\n\n constructor(\n @Optional() public dialogRef: MatDialogRef<DialogComponent>,\n @Optional() @Inject(MAT_DIALOG_DATA) public data: any\n ) {\n if (this.data) {\n this.dialogData = this.data;\n }\n }\n\n onButtonClick(button: any, event?: any): void {\n if (event?.evt) {\n event?.evt.preventDefault();\n event?.evt.stopPropagation();\n }\n this.dialogButtonClick.emit({event, button});\n }\n\n handleButtonClick(event: ButtonClickEvent) {\n this.dialogButtonClick.emit({event});\n }\n\n onCloseButtonClick(event: Event): void {\n this.dialogButtonClick.emit({ event: event, type: 'close' });\n }\n}\n","<div class=\"dialog-container\">\n <!-- top banner region -->\n <div class=\"top-container\">\n @if (!!dialogData?.topMessageBanners) {\n <div class=\"top-message-container\">\n @for (\n messageBanner of dialogData?.topMessageBanners;\n track messageBanner.content\n ) {\n <sa-message-banner\n [type]=\"messageBanner?.type\"\n [bannerIcon]=\"messageBanner?.bannerIcon\"\n [bannerIconSize]=\"messageBanner?.bannerIconSize || '24'\"\n [button]=\"messageBanner?.button\"\n (actionClick)=\"onButtonClick(messageBanner?.button, $event)\"\n [style]=\"messageBanner?.style || 'width:39.438rem'\"\n >\n <div class=\"{{ messageBanner?.className }} message-content-style\">\n {{ messageBanner?.content }}\n </div>\n </sa-message-banner>\n }\n </div>\n }\n @if (!!dialogData?.closeButton || dialogData?.showCloseButton) {\n <div class=\"cross-btn\" (click)=\"onCloseButtonClick($event)\">\n <sa-icon\n [icon]=\"dialogData?.closeButton || 'closeOutlined'\"\n class=\"d-flex\"\n size=\"20\"\n ></sa-icon>\n </div>\n }\n </div>\n <!-- middle region -->\n @if (!!dialogData?.middleRegion) {\n <ng-container *ngIf=\"dialogData?.middleRegion as middleRegion\">\n <div class=\"image-description-container {{ middleRegion?.className }}\">\n <sa-message-banner-v2\n [messageType]=\"middleRegion?.messageType || 'default'\"\n [messageIcon]=\"middleRegion?.messageIcon\"\n [messageIconSize]=\"middleRegion?.messageIconSize\"\n [title]=\"middleRegion?.title\"\n [description]=\"middleRegion?.description\"\n [buttons]=\"middleRegion?.buttons\"\n (buttonClick)=\"middleRegion?.buttons ? onButtonClick($event) : ''\"\n >\n </sa-message-banner-v2>\n </div>\n </ng-container>\n }\n <!-- lower message banner region -->\n @if (!!dialogData?.lowerMessageBanners) {\n <div class=\"lower-message-container\">\n @for (\n messageBanner of dialogData?.lowerMessageBanners;\n track messageBanner.content\n ) {\n <sa-message-banner\n [type]=\"messageBanner?.type\"\n [bannerIcon]=\"messageBanner?.bannerIcon\"\n [buttonIcon]=\"messageBanner?.buttonIcon\"\n [bannerIconSize]=\"messageBanner?.bannerIconSize || '24'\"\n [button]=\"messageBanner?.button\"\n [style]=\"messageBanner?.style || 'width:-webkit-fill-available'\"\n (actionClick)=\"onButtonClick(messageBanner?.button, $event)\"\n >\n <div\n class=\"{{ messageBanner?.className }} message-content-style\"\n ></div>\n {{ messageBanner?.content }}\n </sa-message-banner>\n }\n </div>\n }\n <!-- button region -->\n @if (!!dialogData?.buttons) {\n <div class=\"button-group-container\">\n @for (button of dialogData?.buttons; track button.text) {\n <sa-button\n [text]=\"button.text\"\n [icon]=\"button.icon\"\n [size]=\"button.size\"\n [type]=\"button.type\"\n [iconPosition]=\"button.iconPosition\"\n [buttonIconSize]=\"button.buttonIconSize\"\n (onClickEvent)=\"onButtonClick(button, $event)\"\n role=\"button\"\n [attr.aria-label]=\"button.text\"\n >\n </sa-button>\n }\n </div>\n }\n @if (!!dialogData?.buttonsWithType) {\n <div class=\"buttonWithType-group-container\">\n @for (button of dialogData?.buttonsWithType; track button.text) {\n @if (button?.type === \"checkbox\") {\n <div class=\"checkbox-container {{ button.className }}\">\n <mat-checkbox [id]=\"button.id\" (change)=\"onButtonClick(button)\" class=\"checkbox-style\">{{\n button.text\n }}</mat-checkbox>\n </div>\n }\n }\n </div>\n }\n</div>\n","import { AbstractControl, AsyncValidatorFn, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { catchError, debounceTime, delay, distinctUntilChanged, map, Observable, of, Subject, switchMap } from 'rxjs';\nimport { get as _get, find as _find, has as _has, keys as _keys, startCase as _startCase } from 'lodash';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\n\nexport function phoneNumberValidator(dependent?: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const dependentFormControl = dependent ? control.parent?.get(dependent) : null;\n if (dependentFormControl && !!dependentFormControl.value?.length) {\n console.log('validator', dependentFormControl.value);\n\n if (dependentFormControl.value[0].id === 0) {\n if (!/^\\+1[2-9]\\d{2}[2-9]\\d{6}$/.test(control.value)) {\n return { invalid: 'invalid phone number' };\n }\n }\n }\n return null;\n }\n}\n\nexport const customEmailValidator = (\n control: AbstractControl\n): { [key: string]: string } | null => {\n const email = control.value;\n // Replace the regular expression with the pattern you want to use.\n\n const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/;\n\n if (emailPattern.test(email) && isWorkEmail(email)) {\n return null; // Valid email\n } else {\n return {\n invalid:\n 'Please use a work email; personal emails (e.g., @gmail, @yahoo) are not accepted.',\n }; // Invalid email\n }\n};\nconst isWorkEmail = (email: string): boolean => {\n const invalidEmailHosts: string[] = ['gmail', 'yahoo', 'hotmail'];\n if (email) {\n let [userName, domainName] = email.split('@');\n for (let i = 0; i < invalidEmailHosts.length; i++) {\n let re = new RegExp(`.*${invalidEmailHosts[i]}\\..*`);\n if (re.test(domainName)) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n/*\nexport function workEmailValidation(): AsyncValidatorFn {\n return (control: AbstractControl): Observable<ValidationErrors | null> => {\n if (!control.value) {\n return of(null); // No value to validate\n }\n\n !control.pending && control.markAsPending();\n // !control.touched && control.markAsTouched();\n // return of({ invalid: 'Enter your work email' });\n return of(null);\n return new Observable((ob) => {\n setTimeout(() => {\n if (control.value === 'sairaj@gmail.com')\n return ob.next(null)\n return ob.next({ invalid: 'This is not a workemail' });\n }, 500)\n });\n\n return of(control.value).pipe(\n delay(500), // Simulate network delay\n\n map(value => {\n return of({ invalid: 'This is not a workemail' })//existingUsernames.includes(username) ? { usernameTaken: true } : null;\n })\n // catchError(() => of(null)) // Handle any errors\n );\n };\n}*/\nexport function getValidationMessage(errors: any, placeholder: string = 'Input', additionalProperties?: any): string {\n const messages = _get(additionalProperties, 'nativeValidationObject.messages', {});\n const field = _get(additionalProperties, 'field', {});\n \n if (errors) {\n // Check if any key in errors matches with messages using lodash\n const matchingKey = _find(_keys(errors), key => _has(messages, key));\n if (matchingKey && messages[matchingKey]) {\n // If message is a function, execute it with errors and nativeValidationObject\n if (typeof messages[matchingKey] === 'function') {\n return messages[matchingKey](errors[matchingKey], field);\n }\n return messages[matchingKey];\n }\n \n // Fall back to default messages\n if (errors['minlength']) {\n return `Minimum ${errors['minlength']['requiredLength']} characters required`;\n } else if (errors['maxlength']) {\n return `Maximum of ${errors['maxlength']['requiredLength']} characters accepted`;\n } else if (errors['required']) {\n return `${placeholder} cannot be empty`;\n } else if (errors['invalid']) {\n return errors['invalid'];\n } else if (errors['email']) {\n return 'Enter a valid email';\n } else if (errors['pattern']) {\n return 'Enter a valid phone number';\n } else {\n return `Invalid ${placeholder}`;\n }\n }\n return `Invalid ${placeholder}`;\n}\n\nexport function numberRangeValidator(range: { min: number; max: number }, type = null): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n let value = control.value;\n\n if (type === 'percentage' && typeof value === 'string') {\n value = value.replace('%', '');\n }\n\n // Convert to a number if it's not null or undefined\n const numericValue = value !== null && value !== undefined ? parseFloat(value) : NaN;\n\n // Check if the value is a valid number and within the range\n if (isNaN(numericValue) || numericValue < range.min || numericValue > range.max) {\n return {\n invalid: `Please enter a valid number between ${range.min} and ${range.max}`\n };\n }\n\n return null;\n }\n}\n\nexport const requiredValidatorMessage = (error: any, field: FormlyFieldConfig) => {\n return `${_startCase(_get(field, 'props.label'))} is required.`;\n}","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FieldType, FieldTypeConfig } from '@ngx-formly/core';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { CommonModule } from '@angular/common';\nimport {\n getValidationMessage,\n phoneNumberValidator,\n} from '../../utils/validators';\nimport { IconComponent } from '../icon/icon.component';\nimport { get as _get, set as _set } from 'lodash';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n@Component({\n selector: 'sa-input',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n FormlyModule,\n IconComponent,\n MatTooltipModule\n ],\n templateUrl: './form-input.component.html',\n styleUrl: './form-input.component.css',\n})\nexport class FormInputComponent extends FieldType<FieldTypeConfig> {\n @ViewChild('formInput') formInput!: ElementRef;\n\n @Input('icon') icon: IInputIcon;\n\n pretext: string;\n\n inputState = 'idle';\n inputVal = '';\n params: IInputParam | null;\n dependent: AbstractControl<any, any> | null;\n dependentVal: any = null;\n // dynamicIcon: DynamicIcon | null;\n // icon: IInputIcon | null;\n\n type: string = '';\n validators: any[];\n asyncValidators: any[];\n\n inputErrorText: string = 'invalid input';\n\n showEmailIcon: boolean = false;\n disabled: boolean = false;\n\n private suppressOnBlur = false;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.inputVal =\n this.field.props['value'] || this.model[this.key as string] || '';\n this.disabled = this.field.props.disabled || false;\n this.formControl?.setValue(this.inputVal);\n\n this.params = this.field.props['params'];\n this.icon = this.field.props['icon'] || {};\n this.type = this.params?.type || '';\n\n // this.dynamicIcon = this.field.props['dynamicIcon'];\n this.setValidators();\n this.setDependents();\n\n this.formControl.statusChanges.subscribe((state) => {\n if (this.type === 'email') {\n if (!!this.inputVal && !this.formControl.touched) {\n this.formControl.markAsTouched();\n }\n this.showEmailIcon =\n state === 'VALID' ||\n (state === 'INVALID' &&\n this.formControl.hasError('invalid') &&\n !!this.formControl.value);\n }\n });\n this.formControl.valueChanges.subscribe((val) => {\n _set(this.formInput, 'nativeElement.value', val);\n });\n }\n\n setValidators() {\n this.validators = this.params?.validators || this.predefinedValidators[this.type] || [];\n this.asyncValidators = this.params?.asyncValidators || [];\n if(!_get(this.field, 'validators.validation', null)) {\n this.formControl?.setValidators([\n ...(this.type ? this.predefinedValidators[this.type] || [] : []),\n ...(this.validators),\n ]);\n }\n if (this.asyncValidators) {\n this.formControl?.setAsyncValidators(this.asyncValidators);\n }\n }\n\n /*\n Assuming dependent field is a single select dropdown\n */\n setDependents() {\n if (this.params?.dependent) {\n this.dependent = this.form.get([this.params?.dependent]);\n\n this.dependentVal = this.getDependentVal(_get(this.dependent, 'value'));\n if (this.type === 'tel') {\n this.pretext = this.dependentVal?.dial_code;\n }\n\n this.dependent?.valueChanges.subscribe((val) => {\n this.dependentVal = this.getDependentVal(val);\n this.formControl.reset();\n this.formControl.setValue(this.inputVal);\n if (this.type === 'tel') {\n this.pretext = this.dependentVal?.dial_code;\n }\n });\n }\n }\n getDependentVal(value: any) {\n let dependentValue: any;\n if (Array.isArray(value)) {\n dependentValue = value.length ? value[0] : null;\n } else {\n dependentValue = value;\n }\n return dependentValue;\n }\n\n checkValidity(defaultInputState = 'focus') {\n if (\n this.formControl &&\n !this.formControl.valid &&\n this.formControl.touched &&\n !this.formControl.pending\n ) {\n this.inputState = 'invalid';\n this.inputErrorText =\n getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input', {\n field: this.field,\n nativeValidationObject: this.field.validation,\n }) || `invalid ${this.params?.placeholder || this.field.props?.label || 'input'}`\n } else {\n this.inputState = defaultInputState;\n }\n }\n\n onFocus() {\n if (this.formControl.valid) this.inputState = 'focus';\n }\n onBlur() {\n setTimeout(() => {\n if (!this.suppressOnBlur) {\n this.formControl.markAsTouched();\n this.checkValidity('idle');\n }\n this.suppressOnBlur = false;\n }, 200);\n }\n\n onInput(event: any) {\n if (this.params?.type === 'tel') {\n this.inputVal = this.inputVal.replace(/[^0-9()+\\- ]/g, '');\n this.inputVal = this.hyphenatePhoneNumber();\n }\n if (this.params?.type === 'percentage') {\n let value = this.inputVal.replace(/[^0-9.]/g, '');\n this.inputVal = value ? `${value}%` : '';\n }\n this.formControl?.setValue(this.inputVal);\n this.checkValidity();\n /*if (this.params?.eventListener) {\n this.params?.eventListener({\n type: IInputEventType.INPUT_CHANGE,\n value: this.inputVal,\n formControl: this.formControl\n } as IInputEvent).then(this.onFieldCallback.bind(this));\n }*/\n }\n\n hyphenatePhoneNumber() {\n let newStr = '';\n let i = 0;\n let hyphenatedCount = 1;\n const value = this.inputVal.replaceAll('-', '');\n for (; i < value.length; i++) {\n newStr = newStr + value.charAt(i);\n if (!(hyphenatedCount % 3)) {\n if (!((i + 1) % 10) && i + 1 < value.length) {\n newStr = newStr + '-';\n hyphenatedCount++;\n }\n } else if (\n !((i + 1 - Math.floor(hyphenatedCount / 3)) % 3) &&\n i + 1 < value.length\n ) {\n newStr = newStr + '-';\n hyphenatedCount++;\n }\n }\n\n return newStr;\n }\n\n onInputFieldClick(event: any = 'input') {\n if (\n event === 'input' ||\n event.target.classList.contains('sa-input-field')\n ) {\n this.formInput.nativeElement.focus();\n if (this.params?.type !== 'email')\n setTimeout(() => {\n this.formInput.nativeElement.setSelectionRange(\n this.inputVal.length,\n this.inputVal.length,\n );\n }, 10);\n }\n }\n\n inputIconClick() {\n if (this.params?.type === 'password') {\n this.suppressOnBlur = true;\n if (this.type === 'password') {\n this.type = 'text';\n this.icon.name = 'eyeOff';\n } else {\n this.type = 'password';\n this.icon.name = 'eyeOutlined';\n }\n this.onInputFieldClick();\n }\n }\n\n /*onFieldCallback(param: IInputParam) {\n this.icon = param.icon || this.icon;\n this.checkValidity();\n }*/\n\n getFormSupportText() {\n if (this.formControl.invalid && this.formControl.touched) {\n return (\n getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input',{\n field: this.field,\n nativeValidationObject: _get(this.field, 'validation'),\n }) ||\n `invalid ${this.params?.placeholder || this.field.props?.label || 'input'}`\n );\n } else {\n return this.params?.supportText || '';\n }\n }\n\n predefinedValidators: any = {\n email: [Validators.email, Validators.required],\n password: [Validators.required],\n tel: [Validators.pattern('^[0-9 +\\\\-()]*$')],\n };\n\n getLabelFieldGap(): string {\n if (this.props?.['bigLabel']) {\n return 'var(--medium-20px)';\n } else if (this.props?.['label']) {\n return 'var(--small-4px)';\n } else {\n return '0px'; // No gap\n }\n }\n}\n\nexport interface IInputIcon {\n name: string;\n show?: boolean;\n color?: string;\n size?: string;\n}\n\nexport interface IInputParam {\n validators?: any[];\n asyncValidators?: any[];\n supportText?: string;\n placeholder?: string;\n type?: string;\n dependent?: string;\n eventListener?: Function;\n icon?: IInputIcon;\n errors?: { [key: string]: any };\n className?: string;\n}\nexport interface IInputEvent {\n type: IInputEventType;\n value: string;\n callBack: any;\n formControl: FormControl;\n}\nexport enum IInputEventType {\n INPUT_CHANGE = 'INPUT_CHANGE',\n STATE_CHANGE = 'STATE_CHANGE',\n ICON_CLICK = 'ICON_CLICK',\n}\n","<div class=\"sa-input-container {{props?.['inputContainerClass']}}\" [ngStyle]=\"{'gap': getLabelFieldGap()}\">\n @if (!!props?.['bigLabel'] || !!props?.['bigDescription']) {\n <div class=\"sa-input-big-label-container\" [ngClass]=\"disabled ? 'disabled' : '' \">\n <h2 class=\"sa-input-big-label\">\n {{props?.['bigLabel']}}\n </h2>\n <p class=\"sa-input-big-description\">\n {{props?.['bigDescription']}}\n </p>\n </div>\n }\n @if(!!props?.['label']){\n <div class=\"sa-input-label-container\" [ngClass]=\"disabled ? 'disabled' : '' \">\n <div class=\"sa-input-label-tooltip-container\">\n <span class=\"sa-input-label\">\n {{props?.['label']}}\n </span>\n @if(!!props?.['tooltip']){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"props?.['tooltipIcon'] || 'infoCircleOutlined'\" customClass=\"info-icon\"\n [matTooltip]=\"props?.['tooltip']\" matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon d-flex\"\n [size]=\"props?.['tooltipIconSize'] || '20'\"></sa-icon>\n </span>\n }\n </div>\n @if(!!props?.['description']) {\n <p class=\"sa-input-description\">\n {{props?.['description']}}\n </p>\n }\n </div>\n }\n <div class=\"sa-input\" [ngClass]=\"disabled ? 'disabled' : '' \">\n @if((pretext || (!!inputVal?.length && (!!params?.placeholder || !!props?.placeholder))) && props?.['showTag']\n !== false){\n <span class=\"sa-input-tag\">{{params?.placeholder || props?.placeholder}}</span>\n }\n <div class=\"sa-input-field\" [ngClass]=\"formControl.invalid && formControl.touched ? 'invalid' : 'idle' \"\n (click)=\"onInputFieldClick($event)\">\n @if(pretext){\n <div class=\"sa-input-pretext\">\n {{pretext}}\n </div>\n }\n\n <input\n [ngClass]=\"(!!inputVal && (params?.type === 'password' || props?.type === 'password') && icon.name !== 'eyeOff') ? 'masked' : ''\"\n matInput [type]=\"type\" value=\"\" [pattern]=\"type==='tel' ? '[0-9]' : '' \"\n [disabled]=\"field.props.disabled || false\"\n [placeholder]=\"!pretext && props?.placeholder || params?.placeholder || ''\" (focus)=\"onFocus()\"\n (blur)=\"onBlur()\" (input)=\"onInput($event)\" [(ngModel)]=\"inputVal\" #formInput />\n\n @if(params?.type === 'password'){\n <sa-icon class=\"flex\" icon=\"eyeOutlined\" [size]=\"icon.size || '24'\" (click)=\"inputIconClick()\"\n [ngClass]=\"!icon.name || icon.name === 'eyeOutlined' ? '' : 'hide'\"></sa-icon>\n <sa-icon class=\"flex\" icon=\"eyeOff\" [size]=\"icon.size || '24'\" (click)=\"inputIconClick()\"\n [ngClass]=\"icon.name === 'eyeOff' ? '' : 'hide'\"></sa-icon>\n }@else if(params?.type === 'email' && icon.show){\n <sa-icon class=\"flex\" [icon]=\"icon.name || 'checkCircleOutlined'\" [size]=\"icon.size || '24'\"\n (click)=\"inputIconClick()\" [ngClass]=\"showEmailIcon ? '' : 'hide'\"></sa-icon>\n }\n @else if(icon?.name){\n <sa-icon class=\"flex\" [icon]=\"icon.name\" [size]=\"icon?.size || '24'\" [color]=\"icon?.color || ''\"\n [ngClass]=\"icon?.show ? '' : 'hide'\"></sa-icon>\n }\n </div>\n @if((!formControl.valid) || (params?.supportText)){\n <div class=\"support-label {{formControl.invalid && formControl.touched ? params?.className : ''}}\" [ngClass]=\"[\n formControl.invalid && formControl.touched ? 'invalid' : 'idle'\n ]\">\n <!-- {{!formControl.valid ? inputErrorText : params.supportText}} -->\n {{getFormSupportText()}}\n </div>\n }\n </div>\n</div>","import { Component, EventEmitter, Output } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FieldType, FieldTypeConfig } from '@ngx-formly/core';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { NgIf, NgFor } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';\nimport { SelectInterface, SelectSubInterface } from '../../public-api';\n\n@Component({\n selector: 'lib-form-select',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n FormlyModule,\n ReactiveFormsModule,\n NgSelectModule,\n ChipsComponent,\n NgIf,\n NgFor,\n MatTooltipModule,\n IconComponent,\n CommonModule,\n MatTooltipModule\n ],\n templateUrl: './form-select.component.html',\n styleUrl: './form-select.component.css'\n})\nexport class FormSelectComponent extends FieldType<FieldTypeConfig> {\n selectables: any;\n params: any;\n\n svgStyle = {};\n openState: boolean = false;\n topLabel: boolean;\n startInd: number = 0;\n labelLimit: number = 2;\n\n placeholderLabel: string;\n @Output('hoverEvent') hoverEvent: EventEmitter<selectHoverEvent> = new EventEmitter();\n\n ngOnInit() {\n this.selectables = this.field.props.options;\n this.params = this.field.props['params'];\n this.placeholderLabel = this.params.label;\n this.svgStyle = {\n '-webkit-mask-image': `url(${this.params.dropIcon})})`,\n 'mask-image': `url(${this.params.dropIcon})`,\n }\n }\n openClose(state: boolean) {\n if (this.field.props.disabled) return;\n this.openState = state;\n if (state || this.formControl.value?.length > 0) {\n this.placeholderLabel = this.params.placeholder\n } else {\n this.placeholderLabel = this.params.label;\n }\n }\n shiftLabel(action: string) {\n if (action == 'clicked') this.startInd++;\n if (action == 'cleared') this.startInd = 0;\n if (action == 'removed' && this.startInd > 0) this.startInd--;\n this.topLabel = this.formControl.value?.length > 0; \n this.placeholderLabel = this.openState || this.formControl.value?.length > 0 \n ? this.params.placeholder \n : this.params.label;\n }\n checkForZero(selected: any, state?: boolean) {\n this.topLabel = selected?.length == 0 ? false : true;\n // console.log(\"test\", this.formControl.value?.length)\n // console.log(\"test\", this.openState)\n // console.log(\"placeholder--- \", this.placeholderLabel)\n // console.log(\"params.label--- \", this.params.label)\n this.openState = state;\n if (state || this.formControl.value?.length > 0) {\n this.placeholderLabel = this.params.placeholder;\n } else {\n this.placeholderLabel = this.params.label;\n }\n }\n mouseHover(item: SelectSubInterface, event: any = null, tooltip: MatTooltip) { // New method for mouseenter event\n this.hoverEvent.emit({\n event,\n item\n });\n if (tooltip) {\n tooltip.show();\n }\n }\n}\n\nexport interface selectHoverEvent {\n event: any,\n item: SelectSubInterface\n}","<div class=\"sa-select-container {{props?.['inputContainerClass']}}\">\n @if(!!props?.['label']){\n <div class=\"sa-select-label-container\">\n <div class=\"sa-select-label-tooltip-container\">\n <span class=\"sa-select-label\">\n {{props?.['label']}}\n </span>\n @if(!!props?.['tooltip']){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"props?.['tooltipIcon'] || 'infoCircleOutlined'\" customClass=\"info-icon\"\n [matTooltip]=\"props?.['tooltip']\" matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon d-flex\"\n [size]=\"props?.['tooltipIconSize'] || '20'\"></sa-icon>\n </span>\n }\n </div>\n @if(!!props?.['description']) {\n <p class=\"sa-select-description\">\n {{props?.['description']}}\n </p>\n }\n </div>\n }\n <div class=\"sa-select-field-container\">\n <div [style.visibility]=\"(props?.['showTag'] !== false && (openState || topLabel)) ? 'visible' : 'hidden'\"\n class=\"clicked-label\">{{params.label}}\n </div>\n <div\n class=\"ng-select-field {{openState ? 'activated' : 'idle'}} {{field.props.disabled ? 'disabled' : ''}} {{formControl.valid ? '' : 'invalid'}}\">\n <div role=\"button\" title=\"drop-button\" tabindex=\"0\" class=\"left-icon svg-icon\" [style]=\"svgStyle\"\n (click)=\"openClose(true)\" (blur)=\"openClose(false)\"\n *ngIf=\"(params.dropIconPosition == 'left' || params.dropIconPosition == 'both')\">\n </div>\n <ng-select (change)=\"checkForZero($event)\" (remove)=\"shiftLabel('removed')\" (clear)=\"shiftLabel('cleared')\"\n (search)=\"openClose(true)\" (focus)=\"openClose(true)\" (blur)=\" openClose(false)\" [isOpen]=\"openState\"\n [placeholder]=\"placeholderLabel\" [bindLabel]=\"props?.['bindLabel'] || 'name'\" [bindValue]=\"props?.['bindValue'] || null\" [items]=\"selectables\" [multiple]=\"params?.multiple\"\n [formControl]=\"formControl\" [style] [formlyAttributes]=\"field\" [searchable]=\"field.props['searchable']\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of (items ? items.slice(startInd,startInd+labelLimit): [])\">\n <sa-chip (onClickEvent)=\" (!field.props.disabled) ? clear(item) : null\" [id]=\"item.id\"\n [iconPath]=\"params.iconPath\" [text]=\"item.name\" [type]=\"params.type\"\n [state]=\"field.props.disabled ? 'neutral' : params.state\" [filling]=\"params.filling\"\n [iconPosition]=\"params.iconPosition\">\n </sa-chip>\n </div>\n <div (click)=\"shiftLabel('clicked')\" class=\"ng-value overflow-label\"\n *ngIf=\"items.length > (startInd+labelLimit)\">\n <sa-chip text=\"+{{items.length-(startInd+labelLimit)}}\" type=\"regular\" state=\"default\" filling=\"filled\">\n </sa-chip>\n </div>\n <div (click)=\"shiftLabel('cleared')\" *ngIf=\"startInd == items.length-labelLimit\"\n class=\"ng-value overflow-label\">\n <sa-chip text=\"...\" type=\"regular\" state=\"default\" filling=\"filled\">\n </sa-chip>\n </div>\n </ng-template>\n </ng-select>\n <div *ngIf=\"(params.dropIconPosition == 'right' || params.dropIconPosition == 'both')\" class=\"right-icon\">\n <sa-icon [icon]=\"'downChevronOutlined'\" class=\"d-flex\" [size]=\"'18'\" (click)=\"openClose(true)\"\n (blur)=\"openClose(false)\"></sa-icon>\n </div>\n <!-- <div role=\"button\" title=\"drop-button\" tabindex=\"0\" class=\"right-icon svg-icon\" [style]=\"svgStyle\"\n (click)=\"openClose(true)\" (blur)=\"openClose(false)\"\n *ngIf=\"(params.dropIconPosition == 'right' || params.dropIconPosition == 'both')\">\n </div> -->\n\n </div>\n </div>\n @if(!formControl.valid){\n <div class=\"error-message-container\">\n <span class=\"error-message\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </span>\n </div>\n }\n <div class=\"support-label\">{{params.supportText}}</div>\n</div>","import { Component, EventEmitter } from '@angular/core';\nimport { Output } from '@angular/core';\nimport { AvatarComponent } from '../avatar/avatar.component';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { ButtonComponent } from '../button/button.component';\nimport { NgFor } from '@angular/common';\nimport { ICellRendererAngularComp, IHeaderAngularComp } from 'ag-grid-angular';\nimport { GridInterface } from '../../interfaces/grid-interface';\n\n@Component({\n selector: 'lib-grid-cell',\n standalone: true,\n imports: [\n AvatarComponent,\n ChipsComponent,\n ButtonComponent,\n NgFor\n ],\n templateUrl: './grid-cell.component.html',\n styleUrl: './grid-cell.component.css'\n})\nexport class GridCellComponent implements ICellRendererAngularComp, IHeaderAngularComp {\n params: GridInterface;\n rowNum: number;\n\n @Output() onClickButtonEvent = new EventEmitter();\n @Output() onClickChipEvent = new EventEmitter();\n @Output() onClickLinkEvent = new EventEmitter();\n @Output() onClickAvatarEvent = new EventEmitter();\n\n buttonClicked(evt: Event) {\n this.params.buttonClicked && this.params.buttonClicked({ // calls the function passed via params in gridInterface.\n ...evt,\n rowId: this.rowNum\n });\n this.onClickButtonEvent.emit({ ...evt, rowId: this.rowNum }); // this event isn't caught by anything. \n }\n\n // above function behavior is same for all functions in this class\n\n chipClicked(evt: Event) {\n this.params.chipClicked && this.params.chipClicked({\n ...evt,\n rowId: this.rowNum\n });\n this.onClickChipEvent.emit({ ...evt, rowId: this.rowNum });\n }\n\n linkClicked() {\n if (this.params.cellType != \"interactive\") return;\n\n this.params.linkClicked && this.params.linkClicked({ //calling function passed in params with rowId object in arguments\n rowId: this.rowNum\n });\n\n if (this.params.interactiveLink != \"\") {\n if (this.params.interactiveLinkTarget == \"blank\") {\n window.open(this.params.interactiveLink)!;\n }\n else if (this.params.interactiveLinkTarget == \"self\") {\n location.href = this.params.interactiveLink!;\n }\n }\n this.onClickLinkEvent.emit({ rowId: this.rowNum });\n }\n\n avatarClicked(evt: Event) {\n this.params.avatarClicked && this.params.avatarClicked({\n ...evt,\n rowId: this.rowNum\n });\n this.onClickChipEvent.emit({ ...evt, rowId: this.rowNum });\n }\n\n agInit(inParams: any): void { // must exist when class implements ICellRendererAngularComp / IHeaderAngularComp\n\n this.rowNum = inParams.rowIndex;\n this.params = inParams.value; // inParams.value exists when gridCell is rendered as cell, `cellRenderer: GridCellComponent`\n if (inParams.value == undefined) { // inParams.value is undefined when gridCell is rendered as header, `headerComponent: GridCellComponent`, \n this.params = inParams\n }\n // console.log(this.params);\n }\n\n refresh(params: any) { // must exist when class implements ICellRendererAngularComp / IHeaderAngularComp\n return false; // not sure what this return value does.\n }\n\n}\n","<div class=\"grid-cell {{params.cellType}}\">\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewLeadingIcon) ? 'block' : 'none'\" alt=\"\">\n\n <sa-avatar [id]=\"params.avatarConfig?.id\" [altText]=\"params.avatarConfig?.altText\"\n [imagePath]=\"params.avatarConfig?.imagePath\" [size]=\"params.avatarConfig?.size\"\n [style.display]=\"(params.viewAvatar) ? 'block' : 'none'\" (onClickEvent)=\"avatarClicked($event)\">\n </sa-avatar>\n\n <div class=\"grid-text\" [style.display]=\"(params.viewText) ? 'block' : 'none'\">\n <div [style.display]=\"(params.text) ? 'block' : 'none'\" (click)=\"linkClicked()\" class=\"main-text\">{{params.text}}\n </div>\n\n <div [style.display]=\"(params.subText) ? 'block' : 'none'\" class=\"sub-text\">{{params.subText}}</div>\n </div>\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewTrailingIcon) ? 'block' : 'none'\" alt=\"\">\n\n\n <sa-chip *ngFor=\"let config of params.chipConfig, let i = index\" [id]=\"config.id\" [filling]=\"config.filling\"\n id=\"chip_{{rowNum}}_{{config.id}}\" [iconPath]=\"config.iconPath\" [iconPosition]=\"config.iconPosition\"\n [largeStateIcon]=\"config.largeStateIcon\" [state]=\"config.state\" [type]=\"config.type\" [text]=\"config.text\"\n [style.display]=\"(params.viewChip) ? 'block' : 'none'\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n\n <sa-button [iconPosition]=\"params.buttonConfig?.iconPosition\" [ImagePath]=\"params.buttonConfig?.imagePath\"\n [id]=\"params.buttonConfig?.id\" [size]=\"params.buttonConfig?.size\" [state]=\"params.buttonConfig?.state\"\n [type]=\"params.buttonConfig?.type\" [text]=\"params.buttonConfig?.text\" [href]=\"params.buttonConfig?.href\"\n [hrefTarget]=\"params.buttonConfig?.hrefTarget\" [style.display]=\"(params.viewButton) ? 'block' : 'none'\"\n (onClickEvent)=\"buttonClicked($event)\"></sa-button>\n\n</div>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { ButtonClickEvent, ButtonInterface, ButtonSize, ButtonType } from '../../interfaces/button-interface';\nimport { ButtonComponent } from '../button/button.component';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconService } from '../icon/icon.service';\nimport { ChipInterface } from '../../interfaces/chip-interface';\nimport { HeaderChipConfig, HeaderConfig, HeaderInfoItem } from '../../interfaces/header-interface';\n\n@Component({\n selector: 'sa-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css'],\n standalone: true,\n imports: [IconComponent, ChipsComponent, ButtonComponent, HttpClientModule],\n providers: [IconService]\n})\nexport class HeaderComponent implements OnChanges {\n @Input() header: HeaderConfig = {};\n @Input() chipConfig: HeaderChipConfig[] = [];\n @Input() info: HeaderInfoItem[] = [];\n @Input() buttonHelper?: ButtonInterface;\n @Input() buttonMain?: ButtonInterface;\n\n @Output() buttonClick = new EventEmitter<ButtonClickEvent>();\n\n constructor() { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['header']) {\n this.header = changes['header'].currentValue;\n } else if (changes['chipConfig']) {\n this.chipConfig = changes['chipConfig'].currentValue;\n } else if (changes['info']) {\n this.info = changes['info'].currentValue;\n } else if (changes['buttonHelper']) {\n this.buttonHelper = changes['buttonHelper'].currentValue;\n } else if (changes['buttonMain']) {\n this.buttonMain = changes['buttonMain'].currentValue;\n }\n }\n\n onButtonClick(type: 'primary' | 'secondary', event: Event) {\n const button = type === 'secondary' ? this.buttonHelper : this.buttonMain;\n if (button) {\n this.buttonClick.emit({ type, button, originalEvent: event });\n }\n }\n}\n","<div class=\"header\">\n <div class=\"header-content\">\n @if (header?.text || header?.html || header.icon?.iconUrl) {\n <div class=\"heading\">\n <div class=\"header-name-container\">\n @if (header.icon?.iconUrl) {\n <sa-icon [iconUrl]=\"header?.icon?.iconUrl\" [size]=\"header?.icon?.size || '24px'\" />\n }\n <div class=\"header-name\" [innerHTML]=\"header?.html || header?.text\"></div>\n </div>\n @for(chip of chipConfig; track chip.text) {\n <div>\n <sa-chip \n [id]=\"chip.id\"\n [type]=\"chip.type\"\n [state]=\"chip.state\"\n [filling]=\"chip.filling\"\n [text]=\"chip.text\"\n [iconPosition]=\"chip.iconPosition\"\n [iconPath]=\"chip.iconPath\"\n [largeStateIcon]=\"chip.largeStateIcon\"\n [largeStateText]=\"chip.largeStateText\"\n ></sa-chip>\n </div>\n }\n </div>\n }\n <div class=\"header-info\">\n @for(item of info; track item.text) {\n <div class=\"info-item\">\n @if(item.icon) {\n <img [src]=\"item.icon\" alt=\"\">\n }\n {{item.text}}\n </div>\n }\n </div>\n </div>\n <div class=\"actions\">\n @if(buttonHelper) {\n <sa-button \n (onClickEvent)=\"onButtonClick('secondary', $event)\"\n [id]=\"buttonHelper.id\"\n [text]=\"buttonHelper.text\"\n [type]=\"buttonHelper.type\"\n [size]=\"buttonHelper.size\"\n [state]=\"buttonHelper.state\"\n [ImagePath]=\"buttonHelper.imagePath\"\n [iconPosition]=\"buttonHelper.iconPosition\"\n [href]=\"buttonHelper.href\"\n [hrefTarget]=\"buttonHelper.hrefTarget\"\n [isSubmit]=\"buttonHelper.isSubmit\">\n </sa-button>\n }\n @if(buttonMain) {\n <sa-button\n (onClickEvent)=\"onButtonClick('primary', $event)\"\n [id]=\"buttonMain.id\"\n [text]=\"buttonMain.text\"\n [type]=\"buttonMain.type\"\n [size]=\"buttonMain.size\"\n [state]=\"buttonMain.state\"\n [ImagePath]=\"buttonMain.imagePath\"\n [iconPosition]=\"buttonMain.iconPosition\"\n [href]=\"buttonMain.href\"\n [hrefTarget]=\"buttonMain.hrefTarget\"\n [isSubmit]=\"buttonMain.isSubmit\">\n </sa-button>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { LayoutSectionInterface } from '../../interfaces/layout-section-interface';\nimport { ButtonInterface, ButtonClickEvent } from '../../interfaces/button-interface';\nimport { ChipInterface } from '../../interfaces/chip-interface';\nimport { ButtonComponent } from '../button/button.component';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconService } from '../icon/icon.service';\n\n@Component({\n selector: 'sa-layout-section',\n templateUrl: './layout-section.component.html',\n imports: [\n CommonModule,\n ButtonComponent,\n ChipsComponent,\n IconComponent,\n HttpClientModule\n ],\n providers: [IconService],\n standalone: true,\n styleUrls: ['./layout-section.component.css']\n})\nexport class LayoutSectionComponent {\n @Input() config: LayoutSectionInterface;\n @Output() buttonClick = new EventEmitter<ButtonClickEvent>();\n\n onButtonClick(type: 'primary' | 'secondary', event: Event): void {\n const button = type === 'primary' ? this.config.primaryButton : this.config.secondaryButton;\n if (button) {\n this.buttonClick.emit({ type, button, originalEvent: event });\n }\n }\n} ","<div class=\"layout-section\">\n <div class=\"layout-section__header\">\n <div class=\"layout-section__title\">\n <div class=\"header-name-container\">\n @if (config?.headerIcon?.icon) {\n <sa-icon [style.height]=\"config?.headerIcon.size || '24'\"\n [icon]=\"config?.headerIcon.icon\"\n [size]=\"config?.headerIcon.size || '24'\" />\n }\n <h2>{{ config?.headerText }}</h2>\n </div>\n @if (config?.chips?.length) {\n <div class=\"layout-section__chips\">\n @for (chip of config?.chips; track chip.id) {\n <sa-chip\n [id]=\"chip.id\"\n [text]=\"chip.text\"\n [type]=\"chip.type\"\n [state]=\"chip.state\"\n [filling]=\"chip.filling\"\n [iconPath]=\"chip.iconPath\"\n [iconPosition]=\"chip.iconPosition\"\n [largeStateIcon]=\"chip.largeStateIcon\"\n [largeStateText]=\"chip.largeStateText\">\n </sa-chip>\n }\n </div>\n }\n </div>\n <div class=\"layout-section__actions\">\n @if (config?.secondaryButton) {\n <sa-button \n [id]=\"config.secondaryButton.id\"\n [text]=\"config.secondaryButton.text\"\n [type]=\"config.secondaryButton.type\"\n [state]=\"config.secondaryButton.state\"\n [size]=\"config.secondaryButton.size\"\n [ImagePath]=\"config.secondaryButton.imagePath\"\n [icon]=\"config.secondaryButton.icon\"\n [iconPosition]=\"config.secondaryButton.iconPosition\"\n [href]=\"config.secondaryButton.href\"\n [hrefTarget]=\"config.secondaryButton.hrefTarget\"\n [width]=\"config?.secondaryButton.width\"\n [isSubmit]=\"config.secondaryButton.isSubmit\"\n [buttonIconSize]=\"config.secondaryButton.buttonIconSize\"\n [showSpinner]=\"config.secondaryButton.showSpinner\"\n (onClickEvent)=\"onButtonClick('secondary', $event)\">\n </sa-button>\n }\n @if (config?.primaryButton) {\n <sa-button\n [id]=\"config.primaryButton.id\"\n [text]=\"config.primaryButton.text\"\n [type]=\"config.primaryButton.type\"\n [state]=\"config.primaryButton.state\"\n [size]=\"config.primaryButton.size\"\n [ImagePath]=\"config.primaryButton.imagePath\"\n [icon]=\"config.primaryButton.icon\"\n [iconPosition]=\"config.primaryButton.iconPosition\"\n [href]=\"config.primaryButton.href\"\n [hrefTarget]=\"config.primaryButton.hrefTarget\"\n [width]=\"config.primaryButton.width\"\n [isSubmit]=\"config.primaryButton.isSubmit\"\n [buttonIconSize]=\"config.primaryButton.buttonIconSize\"\n [showSpinner]=\"config.primaryButton.showSpinner\"\n (onClickEvent)=\"onButtonClick('primary', $event)\">\n </sa-button>\n }\n </div>\n </div>\n \n <div class=\"layout-section__content\">\n <ng-content></ng-content>\n </div>\n</div> ","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StatusDotConfig } from '../../interfaces/status-dot.interface';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n selector: 'sa-status-dot',\n standalone: true,\n imports: [CommonModule, MatTooltipModule],\n template: `\n <div [matTooltip]=\"config.tooltip\"\n class=\"status-dot\"\n [class]=\"config.status\"\n [class.outline]=\"config.theme === 'outline'\"\n [style.width.px]=\"config.size\"\n [style.height.px]=\"config.size\">\n </div>\n `,\n styles: [`\n :host {\n display: inline-block;\n }\n \n .status-dot {\n border-radius: 50%;\n display: inline-block;\n cursor: pointer;\n }\n\n .primary {\n background-color: var(--primary-500, #007bff);\n border: 2px solid var(--primary-500, #007bff);\n }\n\n .secondary {\n background-color: var(--secondary-500, #6c757d);\n border: 2px solid var(--secondary-500, #6c757d);\n }\n\n .success {\n background-color: var(--semantic-success-500, #33961F);\n border: 2px solid var(--semantic-success-500, #33961F);\n }\n\n .error {\n background-color: var(--semantic-error-500, #dc3545);\n border: 2px solid var(--semantic-error-500, #dc3545);\n }\n\n .warning {\n background-color: var(--semantic-yellow-600, #DC9408);\n border: 2px solid var(--semantic-yellow-600, #DC9408);\n }\n\n .outline {\n background-color: transparent !important;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class StatusDotComponent {\n @Input() config: StatusDotConfig = {\n status: 'primary',\n size: 16,\n theme: 'filled',\n tooltip: ''\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ChipsComponent } from '../../chips/chips.component';\nimport { IconComponent } from '../../icon/icon.component';\nimport { IMenuItem } from '../../../interfaces/menu.interface';\nimport { StatusDotComponent } from '../../status-dot/status-dot.component';\nimport { MenuDirective } from '../menu.directive';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconService } from '../../icon/icon.service';\n\n@Component({\n selector: 'sa-menu-item',\n standalone: true,\n imports: [CommonModule, ChipsComponent,HttpClientModule, IconComponent, StatusDotComponent,\n forwardRef(() => MenuDirective) \n ],\n providers: [IconService],\n templateUrl: './menu-item.component.html',\n styleUrl: './menu-item.component.css'\n})\nexport class SAMenuItemComponent implements AfterViewInit {\n @Input('item') item: IMenuItem;\n @Input('showRound') showRound: boolean;\n @Output() onEvent: EventEmitter<any> = new EventEmitter();\n @ViewChild(forwardRef(() => MenuDirective)) menuDirective: MenuDirective;\n // @ViewChild(MenuDirective) menuDirective?: MenuDirective;\n\n ngAfterViewInit() {\n if (this.menuDirective) {\n this.menuDirective.onEvent.subscribe((event) => {\n this.onEvent.emit(event); // ✅ re-emit to SAMenuComponent\n });\n }\n }\n\n optionClicked(item: IMenuItem) {\n this.onEvent.emit({ type: 'click', item });\n }\n}\n","<!-- <div mat-menu-item class=\"sa-menu-item\">\n <span>{{item.label}}</span>\n</div> -->\n\n<div class=\"section-item {{item?.sepratorPosition}}\" [ngStyle]=\"{ 'border-radius': showRound ? '5px' : '0' }\" [ngClass]=\"item.isSelected ? 'selected' : ''\" (click)=\"optionClicked(item)\">\n <div class=\"status\" [saMenu]=\"item?.subMenu\">\n <sa-status-dot *ngIf=\"item.statusDot\" [config]=\"item?.statusDot\"></sa-status-dot>\n <sa-icon class=\"flex\" *ngIf=\"item.icon\" [icon]=\"item?.icon?.icon\" [iconPath]=\"item['icon']?.iconPath\" [iconUrl]=\"item['icon']?.iconUrl\" [size]=\"item['icon']?.size\" [customClass]=\"item['icon']?.customClass\"></sa-icon>\n <span class=\"sa-groupItem-lable\" >{{item.label}}</span>\n <div *ngIf=\"item?.subMenu\">\n <sa-icon [icon]=\"'rightChevronOutlined'\" [size]=\"'20'\"></sa-icon>\n </div>\n </div>\n <!-- Section for showing chips if chips are available in object -->\n <div *ngIf=\"item.chips\" class=\"tags\">\n @for (itm of item.chips; track $index) {\n <sa-chip *ngIf=\"itm.text\" [type]=\"itm.type\" [state]=\"itm.state\" [filling]=\"itm.filling\"\n [text]=\"itm.text\"></sa-chip>\n <!-- <span [ngClass]=\"itm.status == 'active' ? 'tag-active' : 'tag-inactive'\" class=\"\">{{itm.label}}</span> -->\n }\n </div>\n</div>\n","import {\n Component,\n Input,\n Output,\n SimpleChanges,\n OnChanges,\n EventEmitter,\n ViewChild,\n forwardRef,\n ViewChildren,\n QueryList,\n} from '@angular/core';\nimport {\n MatMenu,\n MatMenuDefaultOptions,\n MatMenuItem,\n MatMenuTrigger,\n} from '@angular/material/menu';\nimport {\n Overlay,\n PositionStrategy,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { CardComponent } from '../card/card.component';\nimport { MenuItem } from '@material-ui/core';\nimport { SAMenuItemComponent } from './menu-list/menu-item.component';\nimport { CommonModule } from '@angular/common';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { IMenu, IMenuItem } from '../../interfaces/menu.interface';\nimport { AvatarComponent} from '../avatar/avatar.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconService } from '../icon/icon.service';\n@Component({\n selector: 'sa-menu',\n standalone: true,\n imports: [\n CommonModule,\n SAMenuItemComponent,\n MatMenu,\n MatMenuItem,\n ChipsComponent,\n HttpClientModule,\n IconComponent,\n AvatarComponent,\n],\nproviders: [IconService],\n templateUrl: './menu.component.html',\n styleUrl: './menu.component.css',\n // animations: [\n // trigger('slideInOut', [\n // state('in', style({\n // width: '', // When expanded (fully shown)\n // })),\n // state('out', style({\n // width: '0', // When collapsed (hidden)\n // })),\n // transition('in <=> out', [\n // animate('0.2s ease-in-out'), // Animation speed and easing\n // ])\n // ])\n // ]\n})\nexport class SAMenuComponent implements OnChanges {\n @Input() position: 'left' | 'right' | 'top' | 'bottom' = 'bottom'; // Default position\n @Input() menu: IMenu;\n @Input() hostEl: any;\n @Output() onEvent: EventEmitter<any> = new EventEmitter();\n @Output() onKeyUpEvent: EventEmitter<any> = new EventEmitter();\n @Output() closeEvent: EventEmitter<any> = new EventEmitter();\n // @ViewChild('menu', {static: true}) menu;\n isExpanded: boolean = false;\n constructor(\n private overlay: Overlay,\n ) {\n }\n\n \n ngOnChanges(changes: SimpleChanges) {\n if (changes['menu'] && changes['menu'].currentValue) {\n console.log('Menu component detected changes:', changes['menu'].currentValue);\n \n // Reset active tab index if tabs have changed\n if (this.menu?.tabs?.length && this.activeTabIndex >= this.menu.tabs.length) {\n this.activeTabIndex = 0;\n }\n \n // Prevent the menu from closing by stopping propagation of any events\n // that might trigger menu closing during this update cycle\n setTimeout(() => {\n // This ensures the menu stays open after the change detection cycle completes\n console.log('Menu update complete, menu should remain open');\n }, 0);\n }\n }\n\n ngAfterViewInit(): void {\n this.isExpanded = true;\n } \n\n setPosition() {\n // const positions: { [key: string]: ConnectedPosition } = {\n // left: { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'top' },\n // right: { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'top' },\n // top: { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },\n // bottom: { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' }\n // };\n\n // const overlayRef = this.overlay.create();\n // const userProfilePortal = new ComponentPortal(CardComponent);\n // const compRef = overlayRef.attach(userProfilePortal);\n // compRef.instance.title = 'need nduk ra bhai'\n // compRef.instance.body = 'sometime little bit this sometimes little bit that. Comming not comming'\n // compRef.instance.avatar = '../assets/avatar.svg'\n }\n\n itemClicked(event){\n this.onMenuItemClick(null,event.item)\n } \n\n onMenuItemClick(event: any, item: IMenuItem){\n // item.isSelected = !item.isSelected;\n this.onEvent.emit({type: 'CLICK', item, menu: this.menu});\n \n // Close the menu after the item is clicked, just like the close button\n if(item.subMenu === null || item.subMenu === undefined){\n this.closeEvent.emit(event);\n }\n }\n\n onSearch(event: any){\n this.onEvent.emit({type: 'SEARCH', value:event.target.value})\n }\n\n activeTabIndex: number = 0; // Track the active tab index\n\n setActiveTab(index: number,tabname): void {\n this.activeTabIndex = index; // Update the active tab index\n this.onEvent.emit({type: 'TAB_CLICK', activeTab:tabname, menu: this.menu})\n }\n\n\n}\n","<div class=\"sa-menu\" [ngClass]=\"menu.showTray ? 'sa-menu-tray sa-round-border' : ''\"\n [ngStyle]=\"{width: menu.width || 'max-content'}\">\n @if(menu?.title){\n <div class=\"sa-menu-title\">\n <h1>{{menu?.title}}</h1>\n <sa-icon [icon]=\"'closeOutlined'\" [size]=\"'20'\" class=\"sa-menu-close-icon\"\n (click)=\"closeEvent.emit($event)\"></sa-icon>\n </div>\n }\n\n <!-- @if(menu?.itemGroups && menu.itemGroups.length){\n @for (groupItem of menu.itemGroups; track groupItem) {\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n \n @for (item of groupItem.items; track $index) {\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n }\n } @else if(menu?.items && menu.items.length){\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n } -->\n\n\n <!-- Tab Content or Item Groups -->\n <div class=\"sa-menu-content\">\n <div class=\"sa-menu-content-inner {{menu?.showSearch ? 'sa-menu-content-with-search' : ''}}\">\n @if(menu?.showSearch){\n <div class=\"search-container\">\n <sa-icon icon=\"search\"></sa-icon>\n <input class=\"search-input\" (keyup)=\"onSearch($event)\" type=\"text\" [placeholder]=\"menu.searchPlaceholder\" \n />\n <button *ngIf=\"menu?.showAddIcon\"><i class=\"fas fa-plus\"></i></button>\n </div>\n }\n \n <!-- Tabs -->\n @if(menu?.tabs){\n <div class=\"sa-menu-tabs\">\n <button *ngFor=\"let tab of menu.tabs; let i = index\" [class.active]=\"i === activeTabIndex\"\n (click)=\"setActiveTab(i,tab.label)\">\n {{ tab.label }}\n <!-- ({{ tab.itemGroups.length }}) -->\n </button>\n </div>\n }\n <!-- Tabs End -->\n\n @if(menu?.tabs?.length){\n @if(menu.tabs[activeTabIndex]?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.tabs[activeTabIndex].itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n } @else if(menu?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n </div>\n </div>\n\n @if(menu?.items && menu?.items?.length){\n <div *ngIf=\"menu?.user\" class=\"profile-badge\">\n <div class=\"avatar\">\n <sa-avatar [altText]=\"menu?.user?.altText\" [imagePath]=\"''\" [size]=\"'large'\"></sa-avatar>\n </div>\n <div class=\"profile-info\">\n <p class=\"profile-name\">{{menu?.user?.name}}</p>\n <p class=\"profile-email\">{{menu?.user?.email}}</p>\n </div>\n </div>\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (onEvent)=\"itemClicked($event)\"> </sa-menu-item>\n }\n </div>\n }\n\n</div>","import { ConnectedPosition, ConnectionPositionPair, FlexibleConnectedPositionStrategyOrigin, Overlay, OverlayContainer, PositionStrategy } from '@angular/cdk/overlay';\nimport { Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { SAMenuComponent } from './menu.component';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { IMenu, MyOverlayPositions } from '../../interfaces/menu.interface';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\n\n@Directive({\n selector: '[saMenu]',\n standalone: true\n})\nexport class MenuDirective implements OnInit, OnChanges, OnDestroy {\n // Stream to track menu configuration changes\n private menuConfig$ = new BehaviorSubject<IMenu | null>(null);\n \n // Stream to handle component destruction\n private destroy$ = new Subject<void>();\n\n // @Input('saMenuObj') saMenuObj = {};\n @Input('saMenuRef') saMenuRef: ViewContainerRef | TemplateRef<ElementRef> | null = null;\n @Output('onMenuEvent') onMenuEvent: EventEmitter<any> = new EventEmitter();\n @Output() onEvent: EventEmitter<any> = new EventEmitter();\n @Output() onAttached: EventEmitter<{ element: ElementRef, menu: IMenu }> = new EventEmitter();\n @Output() onDetached: EventEmitter<{ element: ElementRef, menu: IMenu }> = new EventEmitter();\n\n _saMenu: IMenu;\n _position: 'left' | 'right' | 'top' | 'bottom' = 'right';\n @Input('saMenu')\n get saMenu(): IMenu {\n return this._saMenu;\n }\n\n set saMenu(value: IMenu) {\n this._saMenu = value;\n // Emit the new configuration to the stream\n this.menuConfig$.next(value);\n }\n\n @Input('saManuPosition')\n get position(){\n return this._position;\n }\n set position(value: 'left' | 'right' | 'top' | 'bottom'){\n this._position = value;\n }\n\n constructor(\n private overlay: Overlay,\n private overlayContainer: OverlayContainer,\n private elRef:ElementRef\n ) {}\n\n @HostListener('click', ['$event'])\n onClick(e) {\n if(!!this._saMenu?.items?.length || !!this._saMenu?.itemGroups?.length || !!this._saMenu?.tabs?.length)\n this.attachMenu();\n }\n\n private overlayRef: any = null;\n private compRef: any = null;\n\n ngOnInit() {\n // Subscribe to menu configuration changes\n this.menuConfig$\n .pipe(takeUntil(this.destroy$))\n .subscribe(config => {\n if (!config) return;\n \n // If the menu is already open, update it without closing\n if (this.overlayRef && this.compRef) {\n console.log('Updating open menu with new config');\n this.compRef.instance.menu = config;\n \n // Manually trigger change detection if needed\n if (this.compRef.instance.ngOnChanges) {\n this.compRef.instance.ngOnChanges({\n menu: {\n currentValue: config,\n previousValue: null,\n firstChange: false,\n isFirstChange: () => false\n }\n });\n }\n }\n });\n }\n\n ngAfterViewInit() {\n }\n\n // We've moved this functionality to the reactive stream\n \n ngOnChanges(changes: SimpleChanges): void {\n // Menu changes are now handled through the reactive stream\n }\n\n ngOnDestroy(): void {\n // Clean up subscriptions\n this.destroy$.next();\n this.destroy$.complete();\n \n // Clean up the overlay\n this.detachMenu();\n }\n\n attachMenu() {\n const hostElement = this.elRef.nativeElement;\n const menuPortal = new ComponentPortal(SAMenuComponent);\n \n // Get the base position from MENU_POSITIONS\n const basePosition = MENU_POSITIONS[this._position];\n \n // Create the position strategy with fallback to MENU_POSITIONS if overlayConfig is not provided\n const positionStrategy: PositionStrategy = this.overlay.position()\n .flexibleConnectedTo(hostElement) // Position relative to the target element (the button)\n .withPositions([{\n ...basePosition,\n offsetX: this._saMenu.overlayConfig?.offsetX !== undefined ? this._saMenu.overlayConfig.offsetX : basePosition.offsetX,\n offsetY: this._saMenu.overlayConfig?.offsetY !== undefined ? this._saMenu.overlayConfig.offsetY : basePosition.offsetY\n }]);\n\n // Add custom class to the overlay container\n this.overlayContainer.getContainerElement().classList.add('sa-menu-overlay-container');\n \n this.overlayRef = this.overlay.create({\n positionStrategy, \n scrollStrategy: this.overlay.scrollStrategies.reposition(), \n panelClass: 'custom-menu-overlay'\n });\n this.compRef = this.overlayRef.attach(menuPortal);\n this.compRef.instance.menu = this.saMenu;\n this.compRef.instance.hostEl = hostElement;\n\n // Subscribe to menu component events and emit them\n this.compRef.instance.onEvent.subscribe((res) => {\n this.onEvent.emit(res);\n });\n\n this.compRef.instance.closeEvent.subscribe((res) => {\n this.detachMenu();\n });\n\n this.overlayRef.outsidePointerEvents().subscribe(() => {\n this.detachMenu();\n });\n\n this.onAttached.emit({\n element: this.elRef,\n menu: this._saMenu\n });\n }\n\n detachMenu() {\n if (this.overlayRef) {\n this.onDetached.emit({\n element: this.elRef,\n menu: this._saMenu\n });\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.compRef = null;\n \n // Remove the custom class from the overlay container\n this.overlayContainer.getContainerElement().classList.remove('sa-menu-overlay-container');\n }\n }\n}\n\nconst MENU_POSITIONS: MyOverlayPositions= {\n 'right': {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 20,\n offsetY: 0\n },\n 'left': {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: 20,\n offsetY: 0\n },\n 'top': {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: 20\n },\n 'bottom': {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 20\n }\n}","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, inject, Inject, Input, OnChanges, Output, signal, SimpleChanges, ViewChild, viewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AvatarComponent } from '../avatar/avatar.component';\nimport { IconComponent } from '../icon/icon.component';\n// import { AvatarComponent } from '../avatar/avatar.component';\n\nimport {\n MatTooltip,\n MatTooltipModule\n} from '@angular/material/tooltip';\nimport { MenuDirective } from '../menu/menu.directive';\nimport { SAMenuComponent } from '../menu/menu.component';\nimport { ILeftNav, ILeftNavBlurEvent, ILeftNavClickEvent, ILeftNavItem, ILeftNavLogo } from '../../interfaces/left-nav-interface';\nimport { IMenu } from '../../interfaces/menu.interface';\nimport { IconService } from '../icon/icon.service';\n@Component({\n selector: 'sa-left-nav',\n standalone: true,\n imports: [\n CommonModule,\n AvatarComponent,\n IconComponent,\n MatTooltipModule,\n MenuDirective,\n SAMenuComponent,\n IconComponent\n ],\n providers: [IconService],\n templateUrl: './left-nav.component.html',\n styleUrl: './left-nav.component.css'\n})\nexport class LeftNavComponent implements OnChanges {\n\n // Signal to track if a menu is currently attached/open\n isMenuAttached = signal(false);\n \n // Track which menu is currently open\n private activeMenuItemRef: { itemType: 'nav' | 'footer', index: number } | null = null;\n @Input('config') config: ILeftNav;\n @Output('clickEvent') clickEvent: EventEmitter<ILeftNavClickEvent>;\n @Output('hoverEvent') hoverEvent: EventEmitter<ILeftNavBlurEvent>;\n @Output('onEvent') onEvent: EventEmitter<any> = new EventEmitter();\n\n // @Inject(ActivatedRoute) activeRouteService: ActivatedRoute;\n // @Inject(Router) routerService: Router;\n\n private activeItem: ILeftNavItem | null;\n\n constructor(private route: ActivatedRoute, private router: Router) {\n this.clickEvent = new EventEmitter();\n this.hoverEvent = new EventEmitter();\n }\n\n ngOnInit() {\n console.log(this.config.items);\n if (!this.config.footerItems) {\n this.config.footerItems = data.footerItems;\n }\n\n // This logic should not be as part of the library. It should be handled by the application.\n // if (this.config?.items?.length) {\n // this.onNavItemClick(this.config.items[0], 0);\n // }\n }\n\n ngAfterViewInit() {\n \n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config'] && !changes['config'].firstChange) {\n // Handle config changes\n console.log('Config changed:', changes['config'].currentValue);\n \n // Update any derived state or trigger UI updates\n if (this.config?.items) {\n // Find and maintain active state when config changes\n const activeItemIndex = this.config.items.findIndex(item => item.active);\n if (activeItemIndex >= 0) {\n this.activeItem = this.config.items[activeItemIndex];\n }\n \n // To ensure Angular's change detection properly propagates changes to the menu directive,\n // we can use the Object.assign approach which preserves object references but updates properties\n // This is important for Angular's OnPush change detection strategy in child components\n \n // Update menu objects in items without changing their references\n if (this.activeMenuItemRef && this.activeMenuItemRef.itemType === 'nav') {\n const activeIndex = this.activeMenuItemRef.index;\n if (this.config.items[activeIndex]?.menu) {\n // Using a console.log to visually verify the approach is being applied\n console.log('Maintaining menu reference for active nav item:', activeIndex);\n }\n }\n }\n }\n }\n\n setItemActive(index: number) {\n try {\n if (this.activeItem) {\n this.activeItem.active = false;\n }\n if (this.config?.items?.length) {\n this.activeItem = this.config.items[index];\n this.activeItem.active = true;\n }\n } catch (e) {\n console.log(e);\n }\n }\n\n onNavItemClick(item: ILeftNavItem, index: number, event: any = null) {\n\n this.clickEvent.emit({\n event,\n type: 'NAV_ITEM_CLICK',\n item\n });\n this.config.items.forEach((item) => item.active = false);\n this.config.items[index].active = true;\n \n if (!item.disable && item.path) {\n this.setItemActive(index);\n this.router.navigate([item.path])\n }\n this.onEvent.emit({ item, index, event });\n }\n\n onFooterItemClick(item: ILeftNavItem, index: number, event: any = null) {\n this.clickEvent.emit({\n event,\n type: 'FOOTER_ITEM_CLICK',\n item\n });\n }\n onFooterItemBlur(item: ILeftNavItem, index: number, event: any = null, tooltip: MatTooltip) {\n this.hoverEvent.emit({\n event,\n type: 'FOOTER_ITEM_HOVER',\n item\n });\n if (tooltip) {\n tooltip.show();\n }\n }\n onNavItemBlur(item: ILeftNavItem, index: number, event: any = null, tooltip: MatTooltip) {\n this.hoverEvent.emit({\n event,\n type: 'NAV_ITEM_HOVER',\n item\n });\n if (tooltip) {\n tooltip.show();\n }\n }\n\n onTemplateItemClick(event: any, index: number, item: any) {\n this.clickEvent.emit({\n event,\n item,\n type: 'TEMPLATE_ITEM_CLICK'\n });\n }\n\n onMenuEvent(event: any){\n console.log('onMenuEvent', event)\n }\n\n onLogoClick(event: any, logo: ILeftNavLogo) {\n this.clickEvent.emit({\n event,\n type: 'LOGO_CLICK',\n item: {\n ...logo,\n title: logo.altText\n }\n });\n }\n\n /**\n * Handler for the onAttached event from the MenuDirective\n * This is triggered when the saMenu directive is attached to an element\n * @param event The event data containing the element and menu configuration\n * @param itemType The type of item ('nav' or 'footer')\n * @param item The nav/footer item that the menu is attached to\n * @param index The index of the item in the items array\n */\n onMenuAttached(event: { element: ElementRef, menu: IMenu }, itemType: 'nav' | 'footer', item: ILeftNavItem, index: number): void {\n // Emit an event that can be captured by parent applications\n this.isMenuAttached.set(true);\n \n // Track which menu is open\n this.activeMenuItemRef = { itemType, index };\n \n this.onEvent.emit({\n type: 'MENU_ATTACHED',\n itemType,\n item,\n index,\n element: event.element,\n menu: event.menu\n });\n }\n\n /**\n * Handler for the onDetached event from the MenuDirective\n * This is triggered when the menu is closed/detached\n * @param event The event data containing the element and menu configuration\n * @param itemType The type of item ('nav' or 'footer')\n * @param item The nav/footer item that the menu was attached to\n * @param index The index of the item in the items array\n */\n onMenuDetached(event: { element: ElementRef, menu: IMenu }, itemType: 'nav' | 'footer', item: ILeftNavItem, index: number): void {\n this.isMenuAttached.set(false);\n \n // Clear the active menu reference\n this.activeMenuItemRef = null;\n \n this.onEvent.emit({\n type: 'MENU_DETACHED',\n itemType,\n item,\n index,\n element: event.element,\n menu: event.menu\n });\n }\n\n\n}\n\n\nconst data: ILeftNav = {\n items: [{\n title: 'Home',\n icon: '',\n disable: false,\n tooltip: '',\n relativePath: true,\n path: 'home'\n }, {\n title: 'Pricing',\n icon: '',\n disable: true,\n tooltip: '',\n relativePath: true,\n path: ''\n }, {\n title: 'Setting',\n icon: 'settingsOutlined',\n disable: true,\n tooltip: 'coming soon',\n relativePath: true,\n path: ''\n }],\n footerItems: [{\n title: 'Help',\n icon: 'chatHelpOutlined',\n disable: true,\n tooltip: 'coming soon'\n }, {\n title: 'Name',\n disable: false,\n tooltip: '',\n type: 'AVATAR'\n }, {\n title: 'Chevron',\n icon: 'doubleDownOutlined',\n disable: true,\n tooltip: ''\n }]\n}","<div class=\"sa-left-nav\" >\n\n <div class=\"sa-left-nav-container {{isMenuAttached() ? 'menu-attached' : ''}}\">\n <div class=\"sa-left-nav-logo\">\n <sa-icon (click)=\"onLogoClick($event, config?.logo)\" [matTooltip]=\"config?.logo?.tooltip\" [matTooltipPosition]=\"'right'\" matTooltipClass=\"sa-left-nav-tooltip\" [icon]=\"config?.logo?.icon\" [size]=\"config?.logo?.iconSize\"></sa-icon>\n </div>\n <div class=\"sa-left-nav-items-container\">\n @if(config && config?.items && !!config?.items?.length){\n <div class=\"sa-left-nav-items-group\">\n <ng-container *ngFor=\"let item of config?.items; let i = index\">\n <div class=\"sa-left-nav-items\">\n <div class=\"sa-left-nav-item\" [ngClass]=\"item.active ? 'active' : '' \"\n [saMenu]=\"item.menu\" (onEvent)=\"onEvent.emit($event)\"\n (onAttached)=\"onMenuAttached($event, 'nav', item, i)\" (onDetached)=\"onMenuDetached($event, 'nav', item, i)\"\n (click)=\"onNavItemClick(item, i, $event)\" (mouseenter)=\"onNavItemBlur(item,i,$event,tooltip)\"\n #tooltip=\"matTooltip\" [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\n\n <sa-icon class=\"sa-left-nav-item-icon\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.active ? item.color : 'var(--grey-200)'\"></sa-icon>\n <!-- <span>{{item.tooltip}}</span> -->\n <!-- <span class=\"sa-left-nav-item-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url + ')' }\"></span> -->\n </div>\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\n </div>\n </ng-container>\n </div>\n }\n </div>\n <div class=\"sa-template-item-container\">\n @if(config && config.templateItems && !!config.templateItems.length){\n <div (click)=\"onTemplateItemClick($event, i, item)\" class=\"sa-template-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.templateItems; let i = index\">\n <sa-icon [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip sa-left-nav-template-tooltip\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color\"></sa-icon>\n </div>\n }\n </div>\n <div class=\"sa-left-nav-footer\">\n @if(config && config.footerItems && !!config.footerItems.length){\n <div class=\"sa-left-nav-footer-container\">\n <div class=\"sa-left-nav-footer-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.footerItems; let i = index\">\n <div class=\"footer-item-icon\" [ngClass]=\"item.active ? 'active' : '' \"\n (click)=\"onFooterItemClick(item, i, $event)\" (onEvent)=\"onEvent.emit($event)\"\n [saMenu]=\"item.menu\" (onAttached)=\"onMenuAttached($event, 'footer', item, i)\" (onDetached)=\"onMenuDetached($event, 'footer', item, i)\"\n (mouseenter)=\"onFooterItemBlur(item,i,$event,tooltip)\" #tooltip=\"matTooltip\"\n [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\n @if(item.type === 'AVATAR'){\n <!-- <span class=\"sa-left-nav-footer-name\">ET</span> -->\n <sa-avatar [altText]=\"item.altText\" [imagePath]=\"''\" size=\"extra-small\"></sa-avatar>\n }@else{\n <sa-icon class=\"sa-left-nav-footer-icon\" [icon]=\"item.icon\" size=\"24\" color=\"white\"></sa-icon>\n <!-- <span clasi ss=\"sa-left-nav-footer-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url || '' + ')' }\"></span> -->\n }\n </div>\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"sa-left-nav-content\">\n <ng-content></ng-content>\n </div>\n\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { CardComponent } from '../card/card.component';\nimport { CardCustomHeaderComponent } from '../card/card-custom-header/card-custom-header.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { CardTitleActionsComponent } from '../card/card-title-actions/card-title-actions.component';\nimport { ButtonComponent } from '../button/button.component';\nimport { StatusDotComponent } from '../status-dot/status-dot.component';\nimport { IconService } from '../icon/icon.service';\n\n@Component({\n selector: 'sa-mini-card',\n standalone: true,\n imports: [CardComponent, CardCustomHeaderComponent, IconComponent, MatTooltip, ChipsComponent, \n CardTitleActionsComponent, ButtonComponent, StatusDotComponent\n ],\n providers: [IconService],\n templateUrl: './mini-card.component.html',\n styleUrl: './mini-card.component.css'\n})\nexport class MiniCardComponent implements OnChanges {\n @Input() cardData: any;\n @Output() onCardClickEvent = new EventEmitter<any>();\n \n\n customClassWrapper = 'mini-card-container'\n\n card: any = {\n \"width\": \"500px\",\n \"height\": \"auto\",\n \"customWrapperClass\": this.customClassWrapper,\n \"source\": \n {\n \"id\": 342,\n \"created\": 1648807710970,\n \"updated\": 1688016005213,\n \"displayName\": \"Xero V2\",\n \"displayCategory\": 13,\n \"logoUrl\": \"assets/images/png/Amazon-Ads.png\",\n \"type\": \"XERO_V2\",\n \"loginType\": \"CUSTOM\",\n \"cdkSource\": true,\n \"datasourceCategory\": \"STANDARD\",\n \"name\": \"Xero V2\"\n },\n \"showActionActionButton\": true,\n \"disabled\": true,\n \"actionButton\": {\n \"text\": \"Add Source\",\n \"type\": \"primary\",\n \"size\": \"small\",\n \"state\": \"default\",\n \"id\": \"add-source\"\n },\n \"chipData\": {\n \"type\": \"small\",\n \"state\": \"error\",\n \"filling\": \"filled\",\n \"text\": \"Connected\",\n \"tooltip\": \"Some big text here to show tooltip text here\"\n },\n \"statusDot\": {\n \"status\": \"success\",\n \"size\": 10,\n \"theme\": \"filled\",\n \"tooltip\": \"success\"\n },\n \"action\": \"connect\"\n };\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['cardData'] || changes['cardData']) {\n this.card = changes['cardData'].currentValue;\n }\n }\n\n onCardClick(source: any, button: any, event: any) {\n this.onCardClickEvent.emit({ source, button, event });\n }\n\n}\n","<sa-card [column]=\"false\" [showCardHeader]=\"true\" [showCardBody]=\"false\"\n [width]=\"card?.width || '471px'\" [height]=\"card?.height || '100px'\" [showHeaderBodyDivider]=\"false\"\n [customWrapperClass]=\"card?.customWrapperClass || customClassWrapper\"\n class=\"{{card?.disabled ? 'disabled-card': 'enabled-card'}}\">\n <sa-card-title-header>\n <div class=\"sa-card-accordion-title-container\">\n <div class=\"sa-mini-card-title-icon-container\">\n <div class=\"sa-mini-card-custom-title\">\n @if(card?.source?.logoUrl){\n <sa-icon [img]=\"card?.source?.logoUrl\" [size]=\"'20'\" class=\"d-flex\" [customClass]=\"'auto-dimensions'\"></sa-icon>\n }\n <span [matTooltip]=\"card?.source?.tooltip\">\n {{card?.source?.name}}\n @if(card?.source?.count){\n <ng-container>\n <span>({{card?.source?.count}})</span>\n </ng-container>\n }\n </span>\n @if(card?.statusDot){\n <span>\n <sa-status-dot [config]=\"card.statusDot\">\n </sa-status-dot>\n </span>\n }\n @if(card?.chipData){\n <span>\n <sa-chip [type]=\"card?.chipData.type\" [state]=\"card?.chipData.state\"\n [filling]=\"card?.chipData.filling\" [text]=\"card?.chipData.text\"\n [iconPosition]='card?.chipData.iconPosition'\n [iconPath]=\"card?.chipData.iconPath\" [tooltip]=\"card?.chipData.tooltip\">\n </sa-chip>\n </span>\n }\n </div>\n </div>\n @if(!card?.disabled && (card?.actionButton && (card?.showActionActionButton ? card?.actionButton : null))){\n <div class=\"sa-card-titleIcon no-margin\">\n <sa-card-title-actions>\n <sa-button [text]=\"card?.actionButton?.text\" [type]=\"card?.actionButton?.type\" [size]=\"card?.actionButton?.size\"\n [state]=\"card?.actionButton?.state\" [iconPosition]=\"card?.actionButton?.iconPosition\" [icon]=\"card?.actionButton?.icon\"\n [buttonIconSize]=\"card?.actionButton?.buttonIconSize\" (onClickEvent)=\"onCardClick(card?.source, card?.actionButton, $event)\">\n </sa-button>\n </sa-card-title-actions>\n </div>\n }\n </div>\n </sa-card-title-header>\n </sa-card>","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sa-page-layout',\n standalone: true,\n imports: [],\n templateUrl: './page-layout.component.html',\n styleUrl: './page-layout.component.css'\n})\nexport class PageLayoutComponent {\n @Input() showRightContent: boolean = false;\n @Input() showFooterContent: boolean = false;\n @Input() showProgressBarContent;\n}\n","<div class=\"layout-container\" [class]=\"showProgressBarContent === false ? 'no-padding': 'padding'\">\n <div class=\"layout-inner-container\"\n [class]=\"showProgressBarContent === false ? 'no-border-radius': 'border-radius'\">\n @if (showProgressBarContent) {\n <div class=\"progress-bar-container\">\n <ng-content select=\"[progress-bar-content]\"></ng-content>\n </div>\n }\n <div class=\"content-container\">\n <div class=\"left-section\">\n <div class=\"top-section\">\n <ng-content select=\"[top-content]\"></ng-content>\n </div>\n <div class=\"left-wrapper\">\n <ng-content select=\"[left-content]\"></ng-content>\n </div>\n @if (showFooterContent) {\n <div class=\"footer-section\">\n <ng-content select=\"[footer-content]\"></ng-content>\n </div>\n }\n </div>\n @if (showRightContent) {\n <div class=\"right-section\">\n <ng-content select=\"[right-content]\"></ng-content>\n </div>\n }\n </div>\n </div>\n</div>","import { Component, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { NgStyle } from '@angular/common';\n\n\n@Component({\n selector: 'sa-progress-bar',\n standalone: true,\n templateUrl: './progress-bar.component.html',\n styleUrl: './progress-bar.component.css',\n imports: [MatProgressBarModule, NgStyle],\n})\n\nexport class ProgressBarComponent implements OnInit {\n @Input() progressValue: number = 10;\n @Input() borderRadius: string = '10px';\n @Input() height: string = '8px';\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit(): void {\n }\n\n}\n","<mat-progress-bar mode=\"determinate\" [value]=\"progressValue\" class=\"progress-bar\" [ngStyle]=\"{\n '--dynamic-height': height ,\n '--dynamic-border-radius': borderRadius \n }\"></mat-progress-bar>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatRadioButton, MatRadioModule } from '@angular/material/radio';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { isObservable, of } from 'rxjs';\n\n@Component({\n selector: 'sa-radio-button',\n standalone: true,\n imports: [MatRadioButton, MatRadioModule, CommonModule, FormsModule, ReactiveFormsModule],\n templateUrl: './radio-button.component.html',\n styleUrl: './radio-button.component.css'\n})\n\nexport class RadioButtonComponent extends FieldType {\n\n ngOnInit() {\n // console.log(this)\n }\n\n get options$() {\n const options = this.props?.options;\n return isObservable(options) ? options : of(options || []);\n }\n\n override get formControl(): FormControl {\n return super.formControl as FormControl;\n }\n\n selectRadio(value: any, radio: MatRadioButton): void {\n this.formControl.setValue(value);\n radio.checked = true;\n }\n}\n","<div class=\"radio-group-container\" [ngClass]=\"[props['column'] ? 'column' : '']\">\n <div class=\"title-container\">\n @if(props['label']){\n <div class=\"form-field-title\">\n <span>{{ props['label'] }}</span>\n </div>\n }\n @if(props['description']){\n <div class=\"form-field-description\">\n <span>{{ props['description'] }}</span>\n </div>\n }\n </div>\n <div class=\"form-field\">\n <mat-radio-group [formControl]=\"formControl\" name=\"radioButtons\">\n <div *ngFor=\"let option of options$ | async\" class=\"radio-box\" (click)=\"selectRadio(option.value, radio)\">\n <mat-radio-button [disableRipple]=\"true\" #radio [value]=\"option.value\">\n {{ option.label }}\n </mat-radio-button>\n </div>\n </mat-radio-group>\n </div>\n @if(props['helpText']){\n <div class=\"form-field-helpText\">\n <span>{{ props['helpText'] }}</span>\n </div>\n }\n</div>","import { Component, Input, OnInit, AfterViewInit, ViewChild, ElementRef, ChangeDetectorRef, SimpleChanges, OnDestroy, ChangeDetectionStrategy } from '@angular/core';\nimport { CardComponent } from '../card/card.component';\nimport { IconService } from '../icon/icon.service';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IScrollingCardData } from '../../interfaces/scrolling-card-interface';\n\n@Component({\n selector: 'sa-scrolling-cards',\n standalone: true,\n imports: [HttpClientModule, CardComponent],\n providers: [IconService],\n templateUrl: './scrolling-cards.component.html',\n styleUrls: ['./scrolling-cards.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ScrollingCardsComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input({ required: true }) cards: IScrollingCardData[] = [];\n @Input() duration: number = 10;\n @Input() direction: 'up' | 'down' | 'left' | 'right' = 'up';\n @ViewChild('cardContainer') cardContainer!: ElementRef;\n\n displayCards: IScrollingCardData[] = [];\n animationPaused = false;\n isVertical: boolean;\n private animationFrame: number | null = null;\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n ngOnInit() {\n if (this.cards?.length) {\n this.displayCards = [...this.cards, ...this.cards];\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['cards'] && !changes['cards'].firstChange && this.cards?.length) {\n this.displayCards = [...this.cards, ...this.cards];\n this.initializeAnimation();\n }\n }\n\n ngAfterViewInit() {\n if (this.cards?.length) {\n this.initializeAnimation();\n }\n }\n\n private initializeAnimation() {\n if (this.animationFrame) {\n cancelAnimationFrame(this.animationFrame);\n }\n\n this.animationFrame = requestAnimationFrame(() => {\n this.setAnimationProperties();\n });\n }\n\n private setAnimationProperties() {\n if (!this.cardContainer?.nativeElement) return;\n\n const container = this.cardContainer.nativeElement;\n this.isVertical = this.direction === 'up' || this.direction === 'down';\n\n // Set vertical/horizontal classes\n container.classList.toggle('vertical', this.isVertical);\n container.classList.toggle('horizontal', !this.isVertical);\n\n const containerSize = this.isVertical ? container.scrollHeight : container.scrollWidth;\n const duration = containerSize / this.duration;\n\n container.style.setProperty('--scroll-duration', `${duration}s`);\n container.style.setProperty('--scroll-direction', this.direction === 'down' || this.direction === 'right' ? 'reverse' : 'normal');\n\n // Reset animation\n container.style.animation = 'none';\n container.offsetHeight; // Trigger reflow\n container.style.animation = null;\n\n this.cdr.markForCheck();\n }\n\n pauseScroll() {\n if (!this.cardContainer?.nativeElement) return;\n this.animationPaused = true;\n this.cardContainer.nativeElement.style.animationPlayState = 'paused';\n }\n\n resumeScroll() {\n if (!this.cardContainer?.nativeElement) return;\n this.animationPaused = false;\n this.cardContainer.nativeElement.style.animationPlayState = 'running';\n }\n\n ngOnDestroy() {\n if (this.animationFrame) {\n cancelAnimationFrame(this.animationFrame);\n }\n }\n}","<div class=\"scrolling-cards-container {{this.isVertical ? 'vertical': 'horizontal'}}\" (mouseenter)=\"pauseScroll()\"\n (mouseleave)=\"resumeScroll()\">\n <div #cardContainer class=\"card-container\">\n @for (card of displayCards; track card.title) {\n <sa-card [title]=\"card.title\" [body]=\"card.body\" [avatar]=\"card?.avatar\" [icon]=\"card.icon\" [iconSize]=\"'54'\"\n [customWrapperClass]=\"'sa-card-secondary-wrapper'\" [width]=\"'24.063rem'\" [column]=\"false\"\n [showCardBody]=\"true\">\n </sa-card>\n }\n </div>\n</div>","import { Component, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'sa-skeleton-base',\n standalone: true,\n template: `<ng-content></ng-content>`,\n styles: [`\n :host {\n display: block;\n position: relative;\n overflow: hidden;\n background: var(--sa-skeleton-background, #e9ecef);\n border-radius: var(--sa-skeleton-radius, 4px);\n }\n\n :host::after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n transparent,\n var(--sa-skeleton-shine, rgba(255, 255, 255, 0.3)),\n transparent\n );\n animation: shimmer var(--sa-skeleton-animation-duration, 1.5s) infinite;\n }\n\n @keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n }\n `]\n})\nexport class SkeletonBaseComponent {\n @Input() width: string = '100%';\n @Input() height: string = '1rem';\n\n @HostBinding('style.width') get getWidth() {\n return this.width;\n }\n\n @HostBinding('style.height') get getHeight() {\n return this.height;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { NgStyle } from '@angular/common';\n\n@Component({\n selector: 'sa-skeleton-container',\n standalone: true,\n imports: [NgStyle],\n template: `\n <div class=\"skeleton-container\" [ngStyle]=\"containerStyles\">\n <ng-content></ng-content>\n </div>\n `,\n styles: [`\n .skeleton-container {\n display: flex;\n flex-direction: column;\n gap: var(--sa-skeleton-gap, 1rem);\n padding: var(--sa-skeleton-padding, 1rem);\n }\n `]\n})\nexport class SkeletonContainerComponent {\n @Input() gap?: string;\n @Input() padding?: string;\n @Input() direction: 'row' | 'column' = 'column';\n\n get containerStyles() {\n return {\n gap: this.gap,\n padding: this.padding,\n flexDirection: this.direction\n };\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { SkeletonBaseComponent } from './skeleton-base.component';\n\n@Component({\n selector: 'sa-skeleton-text',\n standalone: true,\n imports: [SkeletonBaseComponent],\n template: `<sa-skeleton-base [width]=\"width\" [height]=\"height\"></sa-skeleton-base>`,\n})\nexport class SkeletonTextComponent {\n @Input() width: string = '100%';\n @Input() height: string = '1rem';\n}\n\n@Component({\n selector: 'sa-skeleton-circle',\n standalone: true,\n imports: [SkeletonBaseComponent],\n template: `<sa-skeleton-base [width]=\"size\" [height]=\"size\" style=\"border-radius: 50%\"></sa-skeleton-base>`,\n})\nexport class SkeletonCircleComponent {\n @Input() size: string = '3rem';\n}\n\n@Component({\n selector: 'sa-skeleton-rectangle',\n standalone: true,\n imports: [SkeletonBaseComponent],\n template: `<sa-skeleton-base [width]=\"width\" [height]=\"height\"></sa-skeleton-base>`,\n})\nexport class SkeletonRectangleComponent {\n @Input() width: string = '100%';\n @Input() height: string = '100px';\n}\n\n@Component({\n selector: 'sa-skeleton-elliptical',\n standalone: true,\n imports: [SkeletonBaseComponent],\n template: `<sa-skeleton-base [width]=\"width\" [height]=\"height\" style=\"border-radius: 100px;\"></sa-skeleton-base>`,\n})\nexport class SkeletonEllipticalComponent {\n @Input() width: string = '200px';\n @Input() height: string = '48px';\n}\n","export interface SkeletonConfig {\n type: 'text' | 'circle' | 'rectangle' | 'elliptical' | 'container';\n width?: string;\n height?: string;\n size?: string;\n direction?: 'row' | 'column';\n gap?: string;\n items?: SkeletonConfig[];\n}\n\nexport interface SkeletonPreset {\n items: readonly SkeletonConfig[];\n containerConfig?: {\n gap?: string;\n padding?: string;\n direction?: 'row' | 'column';\n };\n}\n\nexport const SKELETON_PRESETS = {\n // Preset for a card with title, subtitle and content\n card: {\n items: [\n { type: 'text', width: '60%', height: '1.5rem' },\n { type: 'text', width: '40%', height: '1rem' },\n { type: 'rectangle', height: '100px' }\n ],\n containerConfig: {\n padding: '1rem',\n gap: '0.75rem'\n }\n },\n \n // Preset for a list item with avatar\n listItem: {\n items: [\n { type: 'circle', size: '2.5rem' },\n { type: 'text', width: '70%', height: '1rem' }\n ],\n containerConfig: {\n direction: 'row',\n gap: '1rem',\n padding: '0.5rem'\n }\n },\n\n // Preset for form fields\n formField: {\n items: [\n { type: 'text', width: '30%', height: '1rem' },\n { type: 'rectangle', height: '2.5rem' }\n ],\n containerConfig: {\n gap: '0.5rem'\n }\n }\n} as const;\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkeletonBaseComponent } from './skeleton-base.component';\nimport { SkeletonTextComponent, SkeletonCircleComponent, SkeletonRectangleComponent, SkeletonEllipticalComponent } from './skeleton-shapes.component';\nimport { SkeletonContainerComponent } from './skeleton-container.component';\nimport { SkeletonConfig, SkeletonPreset, SKELETON_PRESETS } from './skeleton-presets';\n\n@Component({\n selector: 'sa-skeleton-loader',\n standalone: true,\n imports: [\n CommonModule,\n SkeletonBaseComponent,\n SkeletonTextComponent,\n SkeletonCircleComponent,\n SkeletonRectangleComponent,\n SkeletonEllipticalComponent,\n SkeletonContainerComponent\n ],\n template: `\n <sa-skeleton-container\n [gap]=\"config?.containerConfig?.gap\"\n [padding]=\"config?.containerConfig?.padding\"\n [direction]=\"config?.containerConfig?.direction || 'column'\"\n >\n @for (item of config?.items; track $index) {\n @switch (item.type) {\n @case ('text') {\n <sa-skeleton-text\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></sa-skeleton-text>\n }\n @case ('circle') {\n <sa-skeleton-circle\n [size]=\"item.size\"\n ></sa-skeleton-circle>\n }\n @case ('rectangle') {\n <sa-skeleton-rectangle\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></sa-skeleton-rectangle>\n }\n @case ('elliptical') {\n <sa-skeleton-elliptical\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></sa-skeleton-elliptical>\n }\n @case ('container') {\n <sa-skeleton-container [direction]=\"item.direction\" [gap]=\"item.gap\">\n @for (subItem of item.items; track $index) {\n @switch (subItem.type) {\n @case ('text') {\n <sa-skeleton-text\n [width]=\"subItem.width\"\n [height]=\"subItem.height\"\n ></sa-skeleton-text>\n }\n @case ('circle') {\n <sa-skeleton-circle\n [size]=\"subItem.size\"\n ></sa-skeleton-circle>\n }\n @case ('rectangle') {\n <sa-skeleton-rectangle\n [width]=\"subItem.width\"\n [height]=\"subItem.height\"\n ></sa-skeleton-rectangle>\n }\n @case ('elliptical') {\n <sa-skeleton-elliptical\n [width]=\"subItem.width\"\n [height]=\"subItem.height\"\n ></sa-skeleton-elliptical>\n }\n @case ('container') {\n <sa-skeleton-container [direction]=\"subItem.direction\" [gap]=\"subItem.gap\">\n @for (subSubItem of subItem.items; track $index) {\n @switch (subSubItem.type) {\n @case ('text') {\n <sa-skeleton-text\n [width]=\"subSubItem.width\"\n [height]=\"subSubItem.height\"\n ></sa-skeleton-text>\n }\n @case ('circle') {\n <sa-skeleton-circle\n [size]=\"subSubItem.size\"\n ></sa-skeleton-circle>\n }\n @case ('rectangle') {\n <sa-skeleton-rectangle\n [width]=\"subSubItem.width\"\n [height]=\"subSubItem.height\"\n ></sa-skeleton-rectangle>\n }\n @case ('elliptical') {\n <sa-skeleton-elliptical\n [width]=\"subSubItem.width\"\n [height]=\"subSubItem.height\"\n ></sa-skeleton-elliptical>\n }\n }\n }\n </sa-skeleton-container>\n }\n }\n }\n </sa-skeleton-container>\n }\n }\n }\n </sa-skeleton-container>\n `\n})\nexport class SkeletonLoaderComponent implements OnChanges {\n @Input() preset?: keyof typeof SKELETON_PRESETS;\n @Input() config?: SkeletonPreset;\n\n ngOnInit() {\n this.updateConfig();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.updateConfig();\n }\n\n private updateConfig() {\n if (this.preset && (!this.config || !this.config.items?.length)) {\n this.config = SKELETON_PRESETS[this.preset];\n }\n }\n}\n","import { Component, EventEmitter, Input } from '@angular/core';\nimport { FieldType, FieldTypeConfig } from '@ngx-formly/core';\nimport { NgFor, NgIf } from '@angular/common';\nimport { Output } from '@angular/core';\n\nlet nextId = 0; // used to give unique ids to inputs used in html\n\n@Component({\n selector: 'sa-stepper',\n standalone: true,\n imports: [NgFor, NgIf],\n templateUrl: './stepper.component.html',\n styleUrl: './stepper.component.css'\n})\nexport class StepperComponent extends FieldType<FieldTypeConfig> {\n @Input() latestStep: number = -1;\n @Input() editable: boolean = true;\n @Input() stepLabels: any;\n @Input() doneIcon: string;\n\n @Output() stepped = new EventEmitter;\n\n uuid: number = nextId++;\n\n isDisabled: boolean = false;\n\n tickIcon = {};\n\n // {\n // '-webkit-mask-image': `url(${this.ImagePath})`,\n // 'mask-image': `url(${this.ImagePath})`,\n // }\n\n ngOnInit() {\n if (this.field.props) {\n this.stepLabels = this.field.props.options;\n this.editable = this.field.props['params'].editable;\n this.latestStep = this.model[`${this.key}`] ? this.model[`${this.key}`].id : -1;\n this.doneIcon = this.field.props['params'].doneIcon;\n\n this.isDisabled = this.field.props.disabled!;\n }\n console.log(this.doneIcon);\n this.tickIcon = {\n '-webkit-mask-image': `url(${this.doneIcon})`,\n 'mask-image': `url(${this.doneIcon})`\n };\n }\n\n update(chosen: number) {\n if (!this.editable || this.field.props?.disabled) return;\n this.latestStep = chosen;\n if (!this.formControl) {\n this.stepped.emit(this.latestStep);\n return;\n }\n this.formControl.setValue({\n id: this.latestStep\n });\n }\n}\n","<div class=\"stepper {{isDisabled ? 'disabled' : 'active'}}\">\n <div class=\"steps\" *ngFor=\"let label of stepLabels; let i = index\">\n <input id=\"stepper-{{uuid}}-{{i}}\" (change)=\"update(i)\" name=\"stepper-radio-{{uuid}}\"\n [checked]=\"i == latestStep ? true: false\" class=\"step-hide\" type=\"radio\">\n <div\n class=\"label-wrapper {{i < latestStep ? 'done' : ''}} {{i > latestStep ? 'default' : ''}} {{i == latestStep ? 'latest' : ''}}\">\n <label [style]=\"i < latestStep ? tickIcon : ''\" for=\"stepper-{{uuid}}-{{i}}\"\n class=\"step-label-icon {{i > latestStep ? 'undone' : ''}}\">\n </label>\n <label for=\"stepper-{{uuid}}-{{i}}\" class=\"step-label-text\">{{label.name}}</label>\n </div>\n <div *ngIf=\" i !=stepLabels.length-1\" class=\"line {{i < latestStep ? 'done' : 'default'}}\"></div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TabInterface } from '../../interfaces/tab-interface';\nimport { NgFor } from '@angular/common';\nimport { NgIf } from '@angular/common';\n\n\nlet nextId = 0; // used to give unique ids to inputs used in html\n@Component({\n selector: 'sa-tabs',\n standalone: true,\n imports: [NgFor, NgIf],\n templateUrl: './tabs.component.html',\n styleUrl: './tabs.component.css'\n})\nexport class TabsComponent {\n @Input() tabs: TabInterface[];\n @Input() type: string;\n @Input() defaultTab: number;\n\n @Output() tabChanged = new EventEmitter();\n\n\n uuid: number = nextId++;\n svgStyle: any = [];\n\n ngOnChanges(): void {\n this.svgStyle = this.tabs.map((item) => {\n return {\n '-webkit-mask-image': `url(${item.tabIcon})`,\n 'mask-image': `url(${item.tabIcon})`,\n }\n })\n }\n tabChange(evt: any) {\n this.tabChanged.emit(evt.target.value)\n }\n}\n","<div class=\"tab-wrapper {{type}}\">\n <div class=\"tabs\">\n <div *ngFor=\"let item of tabs, let i = index\" class=\"tab-item\">\n <input [checked]=\"(defaultTab == i) ? true : false\" [value]=\"i\" (change)=\"tabChange($event)\"\n id=\"tab-check-{{i}}-{{uuid}}\" class=\"tab-checks\" type=\"radio\" name=\"tab-checkbox-{{uuid}}\">\n <label for=\"tab-check-{{i}}-{{uuid}}\" class=\"tab-label\">\n <div *ngIf=\"item.iconPosition == 'left' || item.iconPosition == 'both'\" class=\"svg-icon\" [style]=\"svgStyle[i]\">\n </div>\n {{item.tabName}}\n <div *ngIf=\"item.iconPosition == 'right' || item.iconPosition == 'both'\" class=\"svg-icon\" [style]=\"svgStyle[i]\">\n </div>\n <div class=\"badge\" *ngIf=\"item.badgeContent\">{{item.badgeContent}}</div>\n </label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { ButtonComponent } from '../button/button.component';\nimport { Input, Output } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { NgIf } from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'sa-toast',\n standalone: true,\n imports: [CommonModule, ButtonComponent, IconComponent, ButtonComponent, MatIcon, NgIf],\n templateUrl: './toast.component.html',\n styleUrl: './toast.component.css'\n})\nexport class ToastComponent implements OnChanges {\n @Input() finishPercentage: number = -1;\n @Input() heading: string;\n @Input() subHeading: string;\n @Input() statusIcon: string = '';\n @Input() toastCloseIcon: string = 'closeOutlined';\n @Input() status: 'success' | 'failure' | 'caution' | 'positive' | 'negative' | 'tentative';\n @Input() firstButtonName: string;\n @Input() secondButtonName: string;\n @Input() closable: boolean;\n @Input() filled: boolean = true;\n @Input() width: number | string = '';\n @Input() toastIconSize: string = '24';\n @Input() toastCloseIconSize: string = '24';\n\n @Output() toastEvent: EventEmitter<IToastEvent> = new EventEmitter();\n @Output() firstButton = new EventEmitter();\n @Output() secondButton = new EventEmitter();\n @Output() closed = new EventEmitter();\n\n\n toastStyles = { backgroundColor: 'transparent', color: '', width: this.width + '%' };\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes && (changes['status'] || changes['filled'])) {\n this.statusIcon = toastInfo[this.status]?.icon;\n this.toastStyles.backgroundColor = toastInfo[this.status]?.bgColor;\n this.toastStyles.color = toastInfo[this.status]?.color;\n }\n if (changes && changes['width']) {\n this.toastStyles.width = typeof this.width === 'number' ? this.width + '%' : this.width;\n }\n\n if (this.finishPercentage > 100) this.finishPercentage = 100;\n\n }\n\n clicked(num: number) {\n if (num == 0) this.firstButton.emit();\n else if (num == 1) this.secondButton.emit();\n else if (num == 2) this.closed.emit();\n }\n\n closeToast() {\n this.toastEvent.emit({\n type: 'TOAST_CLOSED',\n params: {}\n })\n }\n\n}\n\nconst toastInfo: any = {\n 'success': {\n icon: 'checkCircleOutlined',\n bgColor: '#EBF5E9',\n color: '#246B16'\n },\n 'failure': {\n icon: 'infoCircleOutlined',\n bgColor: '#F8E9E9',\n color: '#861C15'\n },\n 'caution': {\n icon: 'infoTriangleOutlined',\n bgColor: '',\n color: ''\n }\n}\n\nexport interface IToastEvent {\n type: 'TOAST_CLOSED' | 'ACTION_CLICKED';\n event?: any;\n params?: any;\n}","<div class=\"toast\" [ngStyle]=\"toastStyles\">\n <div class=\"content\">\n <div class=\"toast-icon {{status}}\">\n <sa-icon [icon]=\"statusIcon\" [size]=\"toastIconSize\"></sa-icon>\n <!-- <img [src]=\"statusIcon\" alt=\"\"> -->\n </div>\n <div class=\"head-subhead\">\n <p class=\"heading\">{{heading}}</p>\n <p class=\"subheading\">{{subHeading}}</p>\n </div>\n @if(closable){\n <!-- <img class=\"cross\" (click)=\"closeToast()\" [src]=\"crossmark\" alt=\"\"> -->\n <sa-icon class=\"cross\" [icon]=\"toastCloseIcon\" [size]=\"toastCloseIconSize\" (click)=\"closeToast()\"></sa-icon>\n }\n </div>\n <!-- <div class=\"controls\">\n <sa-button *ngIf=\"firstButtonName\" (onClickEvent)=\"clicked(0)\" [text]=\"firstButtonName\" type=\"transparent\"\n size=\"medium\" state=\"default\">\n </sa-button>\n <sa-button *ngIf=\"secondButtonName\" (onClickEvent)=\"clicked(1)\" [text]=\"secondButtonName\" type=\"outline\"\n size=\"medium\" state=\"default\">\n </sa-button>\n </div> -->\n\n <div *ngIf=\"finishPercentage >= 0\" class=\"progress-bar\">\n <div class=\"progress-done\" [style.width]=\"finishPercentage+'%'\"></div>\n <div class=\"progress-left\" [style.width]=\"100-finishPercentage+'%'\"></div>\n </div>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ButtonComponent } from '../button/button.component';\nimport { NgFor } from '@angular/common';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'sa-tool-tip',\n standalone: true,\n imports: [ButtonComponent, NgFor, NgIf],\n templateUrl: './tool-tip.component.html',\n styleUrl: './tool-tip.component.css'\n})\nexport class ToolTipComponent {\n @Input() messages: string[];\n @Input() pointerPosition: string;\n\n @Output() toolTipSkipped = new EventEmitter();\n @Output() toolTipSeen = new EventEmitter();\n arrowIcon = \"../assets/rightChevronOutlined.svg\";\n pointer = \"../assets/upwardTriangleFilled.svg\";\n\n msgInd: number = 0; // is the index of current message being displayed\n\n updateMsgInd(k: number) {\n this.msgInd += k;\n if (this.msgInd < 0) this.msgInd = 0;\n if (this.msgInd > this.messages.length - 1) {\n this.msgInd = this.messages.length - 1;\n this.toolTipSeen.emit();\n }\n }\n\n skipToolTip() {\n this.toolTipSkipped.emit();\n }\n\n}\n","<div class=\"tool-tip-vertical\">\n <div class=\"tool-tip-pointer-icon pointer-top\" *ngIf=\"pointerPosition == 'top'\"></div>\n <div class=\"tool-tip-horizontal\">\n <div class=\"tool-tip-pointer-icon pointer-left\" *ngIf=\"pointerPosition == 'left'\"></div>\n <div class=\"tool-tip\">\n <div class=\"tool-tip-content\">\n <div class=\"tool-tip-heading\">Heading</div>\n <div *ngFor=\"let msg of messages, let i = index\" class=\"tool-tip-message {{msgInd != i ? 'hidden-msg': ''}}\">\n {{msg}}\n </div>\n </div>\n <div class=\"tool-tip-break\">\n </div>\n <div class=\"tool-tip-controls\">\n <div class=\"tool-tip-navigate\">\n <img class=\"left-icon tool-tip-navigate-icon\" (click)=\"updateMsgInd(-1)\" [src]=\"arrowIcon\" alt=\"\">\n {{msgInd+1}} of {{messages.length}}\n <img class=\"right-icon tool-tip-navigate-icon\" (click)=\"updateMsgInd(1)\" [src]=\"arrowIcon\" alt=\"\">\n </div>\n <div class=\"tool-tip-control-buttons\">\n <sa-button (onClickEvent)=\"skipToolTip()\" class=\"skip-button\" text=\"Skip\" type=\"transparent\" size=\"medium\"\n state=\"default\"></sa-button>\n <sa-button (onClickEvent)=\"updateMsgInd(1)\" text=\"Next\" type=\"primary\" size=\"medium\" state=\"default\">\n </sa-button>\n </div>\n </div>\n </div>\n <div class=\"tool-tip-pointer-icon pointer-right\" *ngIf=\"pointerPosition == 'right'\"></div>\n </div>\n <div class=\"tool-tip-pointer-icon pointer-bottom\" *ngIf=\"pointerPosition == 'bottom'\"></div>\n</div>\n","import { Component, Input, OnInit, OnDestroy, OnChanges, SimpleChanges, signal, computed, effect, ChangeDetectionStrategy, DestroyRef, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { interval, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { TextAnimationConfig } from '../../interfaces/typography-animation-interface';\n\n@Component({\n selector: 'sa-typography-animation',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './typography-animation.component.html',\n styleUrl: './typography-animation.component.css',\n animations: [\n trigger('slideAnimation', [\n state('hidden', style({\n opacity: 0,\n transform: 'translateY(1px)'\n })),\n state('visible', style({\n opacity: 1,\n transform: 'translateY(-50%)'\n })),\n transition('hidden => visible', [\n animate('{{duration}}ms ease-out')\n ], { params: { duration: 300 } }),\n transition('visible => hidden', [\n animate('{{duration}}ms ease-in')\n ], { params: { duration: 300 } })\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TypographyAnimationComponent implements OnInit, OnDestroy, OnChanges {\n @Input() config: TextAnimationConfig = {\n words: [],\n prefix: '',\n animationDelay: 3000,\n animationDuration: 200,\n showFirstWordImmediately: false\n };\n\n currentWordIndex = signal<number>(0);\n animationState = signal<'initializing' | 'running'>('initializing');\n private intervalId: any;\n\n ngOnInit() {\n // Set animation state to running after a brief initialization period\n // This helps ensure the first word appears immediately when requested\n setTimeout(() => {\n this.animationState.set('running');\n }, 50);\n \n this.startAnimation();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // Check if config has changed and is not the first change\n if (changes['config'] && !changes['config'].firstChange) {\n // Reset the current word index\n this.currentWordIndex.set(0);\n \n // Clear the existing interval if it exists\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n \n // Restart the animation with the new configuration\n this.startAnimation();\n }\n }\n\n ngOnDestroy() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n private startAnimation() {\n // Trigger the first animation immediately\n this.currentWordIndex.update(current => \n (current + 1) % this.config.words.length\n );\n\n // Add a small delay before starting the interval to ensure DOM is ready\n setTimeout(() => {\n this.intervalId = setInterval(() => {\n this.currentWordIndex.update(current => \n (current + 1) % this.config.words.length\n );\n }, this.config.animationDelay || 3000);\n }, 100);\n }\n}","<div class=\"text-animation\">\n <span class=\"prefix\" *ngIf=\"config.prefix\">{{ config.prefix }}</span>\n <span class=\"words-wrapper\">\n <ng-container *ngFor=\"let word of config.words; let i = index\">\n <span\n class=\"word\"\n [@slideAnimation]=\"currentWordIndex() === i ? 'visible' : 'hidden'\"\n [style.transition-delay]=\"config.animationDelay + 'ms'\"\n >\n {{ word }}\n </span>\n </ng-container>\n </span>\n </div>","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TestLibraryService {\n\n constructor() { }\n}\n","export interface ButtonInterface {\n id: string | number,\n text: string,\n type: string,\n size: ButtonSize,\n state: string,\n imagePath?: string,\n icon?: any,\n iconPosition?: ButtonIconPosition,\n href?: string,\n hrefTarget?: string,\n isSubmit?: boolean,\n width?: any,\n buttonIconSize?: any,\n showSpinner?: boolean\n}\n\nexport const buttonSizes = [\n 'small', 'medium', 'large'\n] as const;\n\ntype PredefinedButtonSizes = typeof buttonSizes[number];\n\nexport type ButtonSize = PredefinedButtonSizes | string;\n\nexport const buttonPosition = [\n 'left', 'right', 'both'\n] as const;\n\ntype PredefinedButtonPositions = typeof buttonPosition[number]\n\nexport type ButtonIconPosition = PredefinedButtonPositions | string;\n\n\nexport const buttonType = [\n 'primary', 'outline', 'transparent'\n] as const;\n\ntype PredefinedButtonType = typeof buttonType[number]\n\nexport type ButtonType = PredefinedButtonType | string;\n\n\nexport interface ButtonClickEvent {\n type: 'primary' | 'secondary';\n button: ButtonInterface;\n originalEvent: Event;\n}","export const iconNames = [\n 'analysis', 'arrowRightOutlined', 'avatar',\n 'businessStatsFilled', 'chatHelpOutlined', 'checkCircleFilled',\n 'checkCircleOutlined', 'checkOutlined', 'circleFilled',\n 'closeBlueOutlined', 'closeCircleFilled', 'closeOutlined',\n 'doubleDownOutlined', 'eyeFilled',\n 'eyeOutlined', 'formDetailsOutlined', 'gridViewOutlined',\n 'homeOutlined', 'infoCircleOutlined', 'infoTriangleFilled',\n 'infoTriangleOutlined', 'innosupps', 'locationOutlined',\n 'mailOutlined', 'multiConnectionHub', 'personOutlined',\n 'rightChevronOutlined', 'sarasWhite', 'settingsOutlined',\n 'sourcesOutlined', 'targetScanOutlined', 'upwardTriangleFilled',\n 'headsetOutlined', 'sarasFullLogo', 'leftChevronCircle', 'rightChevronCircle', 'errorCircleOutlined',\n 'errorCrossOutlined', 'downChevronOutlined', 'peopleAudience', 'screenPerson', 'slideSettings', 'desktopSpeakerOutlined',\n 'tabDesktopArrowClockwiseOutlined', 'disabledCheckboxFilled', 'timerOutlined', 'refresh', 'chatIcon', 'add', 'calendar',\n 'compassNorthWest'\n] as const;\n\n// Define a type for the predefined icon names\ntype PredefinedIconName = typeof iconNames[number];\n\n// Define IconName as a union of PredefinedIconName and string\nexport type IconName = PredefinedIconName | string;\n\nexport interface IconInterface {\n icon?: IconName | string,\n size?: string,\n iconUrl?: string\n}\n\n\nexport interface saIcon {\n icon?: IconName;\n iconPath?: string;\n iconUrl?: string;\n size?: string;\n color?: string;\n customClass?: string;\n }","import { IMenu } from \"./menu.interface\";\n\nexport interface ILeftNav {\n logo?: ILeftNavLogo;\n items?: ILeftNavItem[];\n templateItems?: ITemplateItem[];\n footerItems?: ILeftNavItem[];\n }\n\n export interface ILeftNavLogo extends ILeftNavItem {\n \n }\n \n export interface ILeftNavItem {\n title: string,\n // icon_url?: string,\n icon?: string,\n iconSize?: string,\n color?: string,\n disable?: boolean,\n tooltip?: string,\n relativePath?: boolean,\n path?: string,\n active?: boolean,\n type?: 'ICON' | 'AVATAR';\n menu?: IMenu;\n altText?: string,\n showSearch?: boolean,\n iconLabel?: string,\n className?: string;\n itemType?: string;\n [key: string]: any;\n }\n \n export interface ILeftNavClickEvent {\n type: 'NAV_ITEM_CLICK' | 'FOOTER_ITEM_CLICK' | 'LOGO_CLICK' | 'TEMPLATE_ITEM_CLICK' | 'CLICK';\n event: any,\n item: ILeftNavItem\n }\n export interface ILeftNavBlurEvent {\n type: 'NAV_ITEM_HOVER' | 'FOOTER_ITEM_HOVER' | 'LOGO_HOVER';\n event: any,\n item: ILeftNavItem\n }\n \n export enum ILeftNavTypes {\n \n }\n\n export interface ITemplateItem extends ILeftNavItem {\n iconSize?: string;\n backgroundColor?: string;\n }","/*\n * Public API Surface of component-library\n */\n\n// ... existing code ...\n\n\n// Components\nexport * from './lib/accordion/accordion.component';\nexport * from './lib/avatar/avatar.component';\nexport * from './lib/button/button.component';\nexport * from './lib/calendar-header/calendar-header.component';\nexport * from './lib/card/card-body/card-body.component';\nexport * from './lib/card/card-custom-header/card-custom-header.component';\nexport * from './lib/card/card-footer-actions/card-footer-actions.component';\nexport * from './lib/card/card-icon/card-icon.component';\nexport * from './lib/card/card-title-actions/card-title-actions.component';\nexport * from './lib/card/card.component';\nexport * from './lib/card/checkbox-card/checkbox-card.component';\nexport * from './lib/card/guide-card/guide-card.component';\nexport * from './lib/card/menu-card/menu-card.component';\nexport * from './lib/card/thumbnail-card/thumbnail-card.component';\nexport * from './lib/card-carousel/card-carousel.component';\nexport * from './lib/checkbox/checkbox.component';\nexport * from './lib/chips/chips.component';\nexport * from './lib/component-library.component';\nexport * from './lib/dashboard-loader/dashboard-loader.component';\nexport * from './lib/datepicker/datepicker.component';\nexport * from './lib/dialog/dialog.component';\nexport * from './lib/form-input/form-input.component';\nexport * from './lib/form-select/form-select.component';\nexport * from './lib/grid-cell/grid-cell.component';\nexport * from './lib/header/header.component';\nexport * from './lib/icon/icon.component';\nexport * from './lib/layout-section/layout-section.component';\nexport * from './lib/left-nav/left-nav.component';\nexport * from './lib/list/list.component';\nexport * from './lib/menu/menu-list/menu-item.component';\nexport * from './lib/menu/menu.component';\nexport * from './lib/message-banner/message-banner.component';\nexport * from './lib/message-banner-v2/message-banner-v2.component';\nexport * from './lib/mini-card/mini-card.component';\nexport * from './lib/page-layout/page-layout.component';\nexport * from './lib/progress-bar/progress-bar.component';\nexport * from './lib/radio-button/radio-button.component';\nexport * from './lib/scrolling-cards/scrolling-cards.component';\nexport * from './lib/skeleton/skeleton-base.component';\nexport * from './lib/skeleton/skeleton-container.component';\nexport * from './lib/skeleton/skeleton-loader.component';\nexport * from './lib/skeleton/skeleton-shapes.component';\nexport * from './lib/spinner/spinner.component';\nexport * from './lib/status-dot/status-dot.component';\nexport * from './lib/stepper/stepper.component';\nexport * from './lib/tabs/tabs.component';\nexport * from './lib/toast/toast.component';\nexport * from './lib/tool-tip/tool-tip.component';\nexport * from './lib/typography-animation/typography-animation.component';\n\n// Services\nexport * from './lib/component-library.service';\nexport * from './lib/icon/icon.service';\n\n// Interfaces\nexport * from './interfaces/avatar-interface';\nexport * from './interfaces/button-interface';\nexport * from './interfaces/card-carousel-interface';\nexport * from './interfaces/chip-interface';\nexport * from './interfaces/grid-interface';\nexport * from './interfaces/guide-card-interface';\nexport * from './interfaces/header-interface';\nexport * from './interfaces/icon-interface';\nexport * from './interfaces/layout-section-interface';\nexport * from './interfaces/left-nav-interface';\nexport * from './interfaces/menu.interface';\nexport * from './interfaces/message-banner';\nexport * from './interfaces/option-interface';\nexport * from './interfaces/scrolling-card-interface';\nexport * from './interfaces/select-interface';\nexport * from './interfaces/status-dot.interface';\nexport * from './interfaces/tab-interface';\nexport * from './interfaces/toast-interface';\nexport * from './interfaces/typography-animation-interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId","i1","_get","_includes","_replace","_toString","i3","i2","_isUndefined","_first","_find","_map","_words","_keys","_has","_startCase","_set","i4","takeUntil"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sarasanalytics-com-design-system.mjs","sources":["../../../projects/component-library/src/lib/card/card-custom-header/card-custom-header.component.ts","../../../projects/component-library/src/lib/card/card-custom-header/card-custom-header.component.html","../../../projects/component-library/src/lib/chips/chips.component.ts","../../../projects/component-library/src/lib/chips/chips.component.html","../../../projects/component-library/src/lib/icon/icon.service.ts","../../../projects/component-library/src/lib/icon/icon.component.ts","../../../projects/component-library/src/lib/icon/icon.component.html","../../../projects/component-library/src/lib/avatar/avatar.component.ts","../../../projects/component-library/src/lib/avatar/avatar.component.html","../../../projects/component-library/src/lib/card/card.component.ts","../../../projects/component-library/src/lib/card/card.component.html","../../../projects/component-library/src/lib/spinner/spinner.component.ts","../../../projects/component-library/src/lib/spinner/spinner.component.html","../../../projects/component-library/src/lib/button/button.component.ts","../../../projects/component-library/src/lib/button/button.component.html","../../../projects/component-library/src/lib/accordion/accordion.component.ts","../../../projects/component-library/src/lib/accordion/accordion.component.html","../../../projects/component-library/src/lib/calendar-header/calendar-header.component.ts","../../../projects/component-library/src/lib/calendar-header/calendar-header.component.html","../../../projects/component-library/src/lib/card/card-body/card-body.component.ts","../../../projects/component-library/src/lib/card/card-body/card-body.component.html","../../../projects/component-library/src/lib/card/card-footer-actions/card-footer-actions.component.ts","../../../projects/component-library/src/lib/card/card-footer-actions/card-footer-actions.component.html","../../../projects/component-library/src/lib/card/card-icon/card-icon.component.ts","../../../projects/component-library/src/lib/card/card-icon/card-icon.component.html","../../../projects/component-library/src/lib/card/card-title-actions/card-title-actions.component.ts","../../../projects/component-library/src/lib/card/card-title-actions/card-title-actions.component.html","../../../projects/component-library/src/lib/list/list.component.ts","../../../projects/component-library/src/lib/list/list.component.html","../../../projects/component-library/src/lib/card/checkbox-card/checkbox-card.component.ts","../../../projects/component-library/src/lib/card/checkbox-card/checkbox-card.component.html","../../../projects/component-library/src/lib/card/guide-card/guide-card.component.ts","../../../projects/component-library/src/lib/card/guide-card/guide-card.component.html","../../../projects/component-library/src/lib/message-banner/message-banner.component.ts","../../../projects/component-library/src/lib/message-banner/message-banner.component.html","../../../projects/component-library/src/lib/card/menu-card/menu-card.component.ts","../../../projects/component-library/src/lib/card/menu-card/menu-card.component.html","../../../projects/component-library/src/lib/card/thumbnail-card/thumbnail-card.component.ts","../../../projects/component-library/src/lib/card/thumbnail-card/thumbnail-card.component.html","../../../projects/component-library/src/lib/card-carousel/card-carousel.component.ts","../../../projects/component-library/src/lib/card-carousel/card-carousel.component.html","../../../projects/component-library/src/lib/checkbox/checkbox.component.ts","../../../projects/component-library/src/lib/checkbox/checkbox.component.html","../../../projects/component-library/src/lib/component-library.component.ts","../../../projects/component-library/src/lib/dashboard-loader/dashboard-loader.component.ts","../../../projects/component-library/src/lib/dashboard-loader/dashboard-loader.component.html","../../../projects/component-library/src/lib/datepicker/datepicker.component.ts","../../../projects/component-library/src/lib/datepicker/datepicker.component.html","../../../projects/component-library/src/lib/message-banner-v2/message-banner-v2.component.ts","../../../projects/component-library/src/lib/message-banner-v2/message-banner-v2.component.html","../../../projects/component-library/src/lib/dialog/dialog.component.ts","../../../projects/component-library/src/lib/dialog/dialog.component.html","../../../projects/component-library/src/utils/validators.ts","../../../projects/component-library/src/lib/form-input/form-input.component.ts","../../../projects/component-library/src/lib/form-input/form-input.component.html","../../../projects/component-library/src/lib/form-select/form-select.component.ts","../../../projects/component-library/src/lib/form-select/form-select.component.html","../../../projects/component-library/src/lib/grid-cell/grid-cell.component.ts","../../../projects/component-library/src/lib/grid-cell/grid-cell.component.html","../../../projects/component-library/src/lib/header/header.component.ts","../../../projects/component-library/src/lib/header/header.component.html","../../../projects/component-library/src/lib/layout-section/layout-section.component.ts","../../../projects/component-library/src/lib/layout-section/layout-section.component.html","../../../projects/component-library/src/lib/status-dot/status-dot.component.ts","../../../projects/component-library/src/lib/menu/menu-list/menu-item.component.ts","../../../projects/component-library/src/lib/menu/menu-list/menu-item.component.html","../../../projects/component-library/src/lib/menu/menu.component.ts","../../../projects/component-library/src/lib/menu/menu.component.html","../../../projects/component-library/src/lib/menu/menu.directive.ts","../../../projects/component-library/src/lib/left-nav/left-nav.component.ts","../../../projects/component-library/src/lib/left-nav/left-nav.component.html","../../../projects/component-library/src/lib/mini-card/mini-card.component.ts","../../../projects/component-library/src/lib/mini-card/mini-card.component.html","../../../projects/component-library/src/lib/page-layout/page-layout.component.ts","../../../projects/component-library/src/lib/page-layout/page-layout.component.html","../../../projects/component-library/src/lib/progress-bar/progress-bar.component.ts","../../../projects/component-library/src/lib/progress-bar/progress-bar.component.html","../../../projects/component-library/src/lib/radio-button/radio-button.component.ts","../../../projects/component-library/src/lib/radio-button/radio-button.component.html","../../../projects/component-library/src/lib/scrolling-cards/scrolling-cards.component.ts","../../../projects/component-library/src/lib/scrolling-cards/scrolling-cards.component.html","../../../projects/component-library/src/lib/skeleton/skeleton-base.component.ts","../../../projects/component-library/src/lib/skeleton/skeleton-container.component.ts","../../../projects/component-library/src/lib/skeleton/skeleton-shapes.component.ts","../../../projects/component-library/src/lib/skeleton/skeleton-presets.ts","../../../projects/component-library/src/lib/skeleton/skeleton-loader.component.ts","../../../projects/component-library/src/lib/stepper/stepper.component.ts","../../../projects/component-library/src/lib/stepper/stepper.component.html","../../../projects/component-library/src/lib/tabs/tabs.component.ts","../../../projects/component-library/src/lib/tabs/tabs.component.html","../../../projects/component-library/src/lib/toast/toast.component.ts","../../../projects/component-library/src/lib/toast/toast.component.html","../../../projects/component-library/src/lib/tool-tip/tool-tip.component.ts","../../../projects/component-library/src/lib/tool-tip/tool-tip.component.html","../../../projects/component-library/src/lib/typography-animation/typography-animation.component.ts","../../../projects/component-library/src/lib/typography-animation/typography-animation.component.html","../../../projects/component-library/src/lib/component-library.service.ts","../../../projects/component-library/src/interfaces/button-interface.ts","../../../projects/component-library/src/interfaces/icon-interface.ts","../../../projects/component-library/src/interfaces/left-nav-interface.ts","../../../projects/component-library/src/public-api.ts","../../../projects/component-library/src/sarasanalytics-com-design-system.ts"],"sourcesContent":["import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'sa-card-title-header',\n standalone: true,\n imports: [],\n templateUrl: './card-custom-header.component.html',\n styleUrl: './card-custom-header.component.css',\n encapsulation: ViewEncapsulation.None,\n})\nexport class CardCustomHeaderComponent {\n\n}\n","<div class=\"sa-card-title-header\"><ng-content></ng-content></div>","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { Output } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nlet nextId = 0; // used to give unique ids to inputs used in html\n\n@Component({\n selector: 'sa-chip',\n standalone: true,\n imports: [CommonModule, MatTooltipModule],\n templateUrl: './chips.component.html',\n styleUrl: './chips.component.css'\n})\nexport class ChipsComponent {\n @Input() id: string | number;\n @Input() iconPath: string;\n @Input() text: string | number;\n @Input() type: string;\n @Input() state: string;\n @Input() filling: string;\n @Input() iconPosition: string;\n @Input() largeStateIcon: string;\n @Input() largeStateText: string;\n @Input() tooltip: string;\n\n @Output() onClickEvent = new EventEmitter();\n\n svgStyle = {}\n secondSvgStyle = {}\n eventEmitObject = {}\n uuid: number = nextId++;\n\n ngOnChanges(): void {\n this.svgStyle = {\n '-webkit-mask-image': `url(${this.iconPath})`,\n 'mask-image': `url(${this.iconPath})`,\n }\n this.secondSvgStyle = {\n '-webkit-mask-image': `url(${this.largeStateIcon})`,\n 'mask-image': `url(${this.largeStateIcon})`,\n }\n this.eventEmitObject = {\n id: this.id\n }\n }\n\n buttonClicked(evt: Event) {\n this.onClickEvent.emit({\n ...this.eventEmitObject,\n evt\n });\n }\n}\n\nexport interface IChip {\n id?: string | number;\n text: string;\n status?: 'active' | 'inactive' | 'disabled';\n type?: 'small' | 'regular' | 'large';\n state?: 'primary' | 'secondary' | 'neutral' | 'error' | 'warning' | 'success';\n filling?: 'filled' | 'outline';\n}\n","<div class=\"chip {{type}} {{state}} {{filling}}\" [matTooltip]=\"tooltip\">\n <button type=\"button\" (click)=\"buttonClicked($event)\" id=\"icon-button_{{uuid}}\" class=\"btn_hide\"></button>\n <!-- (click)=\"buttonClicked()\" on button instead of label breaks whole thing -->\n <label for=\"icon-button_{{uuid}}\" class=\"svg-icon\" [style]=\"svgStyle\"\n [style.display]=\"((iconPosition == 'left' || iconPosition == 'both') && type != 'large') ? 'block' : 'none'\">\n </label>\n\n {{text}}\n\n <div class=\"second-svg-icon\" [style]=\"secondSvgStyle\" [style.display]=\"(type == 'large') ? 'block' : 'none'\"></div>\n\n {{type == 'large' ? largeStateText : \"\"}}\n\n <label for=\"icon-button_{{uuid}}\" class=\"svg-icon\" [style]=\"svgStyle\"\n [style.display]=\"((iconPosition == 'right' || iconPosition == 'both') && type != 'large') ? 'block' : 'none'\">\n </label>\n</div>\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IconService {\n\n // http = inject(HttpClient);\n private path: string = 'assets/';\n\n private httpClient: HttpClient | null = null;\n\n constructor(private injector: Injector) {}\n\n private get http(): HttpClient {\n if (!this.httpClient) {\n this.httpClient = this.injector.get(HttpClient);\n }\n return this.httpClient;\n }\n\n getSvg(iconName: string, customPath?: string): Observable<string> {\n const isUrl = /^https?:\\/\\//.test(iconName);\n const customSvgUrl = customPath ? customPath + (iconName ? iconName + '.svg' : '') : '';\n const svgUrl = isUrl ? iconName : `${this.path}${iconName}.svg`;\n\n return this.http.get(customSvgUrl || svgUrl, { headers: { 'skip': 'true' }, responseType: 'text' });\n }\n\n setIconPath(path: string) {\n if (path) this.path = path;\n }\n}","import { ChangeDetectorRef, Component, EventEmitter, inject, Input, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { IconService } from './icon.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { IconName } from '../../interfaces/icon-interface';\n\n@Component({\n selector: 'sa-icon',\n standalone: true,\n imports: [CommonModule],\n providers: [IconService],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.css',\n encapsulation: ViewEncapsulation.None\n})\nexport class IconComponent {\n iconService = inject(IconService);\n sanitizer = inject(DomSanitizer);\n\n @Input('img') img: string;\n\n @Input() icon?: IconName;\n @Input('size') size: string;\n @Input('color') color: string;\n @Input('iconPath') iconPath: string = \"\";\n @Input() iconUrl: string = \"\";\n @Input('customClass') customClass: string = \"\";\n @Input() href: string;\n @Input() hrefTarget: string;\n\n @Output() onClickEvent = new EventEmitter();\n\n svgIcon: any;\n eventEmitObject = {}\n iconStyles: any = {\n // fontSize: '44px',\n // color: 'red'\n };\n\n constructor(private cdr: ChangeDetectorRef) { }\n ngOnInit() {\n }\n ngOnChanges(changes: SimpleChanges) {\n\n\n if (changes['iconPath'] && !!this.iconPath.trim()) {\n this.iconService.getSvg(this.icon || \"\", this.iconPath).subscribe((svg) => {\n this.svgIcon = this.sanitizer.bypassSecurityTrustHtml(svg);\n })\n }\n if (changes['icon'] || changes['iconUrl']) {\n const icon = this.icon || this.iconUrl;\n if (icon) {\n this.iconService.getSvg(icon).subscribe((svg) => {\n this.svgIcon = this.sanitizer.bypassSecurityTrustHtml(svg);\n this.cdr.detectChanges()\n })\n } else {\n this.svgIcon = '';\n }\n }\n if (changes['size'] || changes['color']) {\n this.iconStyles.fontSize = this.size + 'px';\n this.iconStyles.width = this.iconUrl ? \"fit-content\" : '1em';\n this.iconStyles.height = this.iconUrl ? \"fit-content\" : '1em';\n this.iconStyles.color = this.color;\n }\n\n \n }\n iconClicked(evt: Event) {\n this.onClickEvent.emit({\n ...this.eventEmitObject,\n evt\n });\n if (this.href != \"\") {\n if (this.hrefTarget == \"blank\") window.open(this.href);\n else if (this.hrefTarget == \"self\") location.href = this.href;\n }\n }\n\n}","@if(img){\n<img [src]=\"img\" [height]=\"size\" [width]=\"size\" (click)=\"iconClicked($event)\">\n}@else{\n<span class=\"sa-icon\" [ngClass]=\"{\n 'url-icon': iconUrl\n }\" [ngClass]=\"customClass ? [customClass] : []\" [innerHTML]=\"svgIcon\" [ngStyle]=\"iconStyles\" (click)=\"iconClicked($event)\">\n\n</span>\n}","import { Component, EventEmitter } from '@angular/core';\nimport { Input, Output } from '@angular/core';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'sa-avatar',\n standalone: true,\n imports: [NgIf],\n templateUrl: './avatar.component.html',\n styleUrl: './avatar.component.css'\n})\nexport class AvatarComponent {\n @Input() id: string | number;\n @Input() imagePath: string;\n @Input() altText: string;\n @Input() size: string;\n\n @Output() onClickEvent = new EventEmitter\n @Output() onMouseInEvent = new EventEmitter\n @Output() onMouseOutEvent = new EventEmitter\n\n eventEmitObject = {}\n\n ngOnChanges(): void {\n this.eventEmitObject = {\n id: this.id\n }\n }\n\n avatarClicked(evt: Event) {\n this.onClickEvent.emit({\n ...this.eventEmitObject,\n evt\n })\n }\n\n mouseEnter(evt: Event) {\n this.onMouseInEvent.emit({\n ...this.eventEmitObject,\n evt\n })\n }\n\n mouseLeave(evt: Event) {\n this.onMouseOutEvent.emit({\n ...this.eventEmitObject,\n evt\n })\n }\n}\n","<div class=\"avatar {{size}}\" (click)=\"avatarClicked($event)\" (mouseenter)=\"mouseEnter($event)\"\n (mouseleave)=\"mouseLeave($event)\">\n <img *ngIf=\"imagePath\" class=\"avatar-img\" alt=\"{{altText}}\" src=\"{{imagePath}}\">\n <span *ngIf=\"!imagePath\" class=\"avatar-img\">{{altText}}</span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, SimpleChanges } from '@angular/core';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { ChipInterface } from '../../interfaces/chip-interface';\nimport { IconComponent } from '../icon/icon.component';\nimport { AvatarComponent } from \"../avatar/avatar.component\";\n\n@Component({\n selector: 'sa-card',\n standalone: true,\n imports: [CommonModule, ChipsComponent, IconComponent, AvatarComponent],\n templateUrl: './card.component.html',\n styleUrl: './card.component.css'\n})\nexport class CardComponent {\n @Input('title') title: string = '';\n @Input('showCardHeader') showCardHeader: boolean = false;\n @Input('showCardBody') showCardBody: boolean = false;\n @Input('showHeaderBodyDivider') showHeaderBodyDivider: boolean = false;\n @Input('showCustomCardBody') showCustomCardBody: boolean = false;\n @Input('customWrapperClass') customWrapperClass: string = '';\n @Input('chip') chip: ChipInterface | null = null;\n @Input('body') body: string = '';\n @Input('avatar') avatar: string = '';\n @Input('image') image: string = '';\n @Input('imageWidth') imageWidth: string = '';\n @Input('avatarSize') avatarSize: string;\n @Input('href') href: string;\n @Input('hrefTarget') hrefTarget: string;\n\n @Input('icon') icon: string = '';\n @Input('iconSize') iconSize: string;\n\n @Input('subtitle') subtitle: string = '';\n @Input('logoIcon') logoIcon: string = '';\n\n @Input('width') width: string | number;\n @Input('height') height: string | number;\n @Input('column') column: boolean = false;\n\n cardStyles: any = {};\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['width']?.currentValue || changes['height']?.currentValue) {\n this.cardStyles['width'] = typeof changes['width']?.currentValue === 'string' ? changes['width']?.currentValue : changes['width']?.currentValue + '%';\n this.cardStyles['height'] = typeof changes['height']?.currentValue === 'string' ? changes['height']?.currentValue : changes['height']?.currentValue + '%';\n }\n }\n cardClicked(evt: Event) {\n if (this.href != \"\") {\n if (this.hrefTarget == \"blank\") window.open(this.href);\n else if (this.hrefTarget == \"self\") location.href = this.href;\n }\n }\n}\n","<div class=\"sa-card\" [ngStyle]=\"cardStyles\" (click)=\"cardClicked($event)\">\n <div class=\"sa-card-wrapper\" [ngClass]=\"[column ? 'column' : '', customWrapperClass]\">\n <div class=\"\" [ngClass]=\"avatar || image ? 'sa-card-img' : 'sa-card-icon'\">\n @if(avatar){\n <sa-avatar [imagePath]=\"avatar\" [size]=\"avatarSize\"></sa-avatar>\n <!-- <img [src]=\"avatar\" /> -->\n }@else if(image){\n <img [src]=\"image\" [width]=\"imageWidth\" />\n }@else if(icon){\n <sa-icon [icon]=\"icon\" [size]=\"iconSize\"></sa-icon>\n }@else{\n <ng-content select=\"sa-card-icon\"></ng-content>\n }\n @if(column){\n <ng-content select=\"sa-card-title-actions\"></ng-content>\n }\n </div>\n <div class=\"sa-card-container\" [ngClass]=\"showCardHeader ? 'sa-card-custom-container' : ''\">\n @if(showCardHeader){\n <ng-content select=\"sa-card-title-header\"></ng-content>\n @if (showHeaderBodyDivider && body) {\n <div class=\"custom-divider\"></div>\n }\n }\n @else if(title){\n <div class=\"sa-card-title-container\">\n <div class=\"sa-card-title\">{{title}}</div>\n @if(chip){\n <sa-chip [text]=\"chip.text\" [type]=\"chip.type\" [state]=\"chip.state\" [filling]=\"chip.filling\"></sa-chip>\n }\n <ng-content select=\"sa-card-title-actions\"></ng-content>\n\n </div>\n }\n @if (showCustomCardBody) {\n <ng-content select=\"sa-card-custom-body\"></ng-content>\n }\n @if(showCardBody && body){\n <div class=\"sa-card-body\">\n {{body}}\n </div>\n }\n <ng-content select=\"sa-card-footer-actions\"></ng-content>\n </div>\n </div>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sa-spinner',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './spinner.component.html',\n styleUrl: './spinner.component.css'\n})\nexport class SpinnerComponent {\n @Input('default') default: boolean = false;\n @Input('size') size: any;\n\n}\n","<span class=\"sa-spinner\" [ngClass]=\"default ? 'default' : ''\" [ngStyle]=\"{'fontSize': size+'px'}\"></span>","import { Component, Output, SimpleChanges } from '@angular/core';\nimport { Input } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\nimport { NgIf } from '@angular/common';\nimport { NgStyle } from '@angular/common';\nimport { SpinnerComponent } from '../spinner/spinner.component';\nimport { IconName } from '../../interfaces/icon-interface';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconComponent } from '../icon/icon.component';\nimport { IconService } from '../icon/icon.service';\n\nlet nextId = 0; // used to give unique ids to inputs used in html\n\n@Component({\n selector: 'sa-button',\n standalone: true,\n imports: [NgIf, NgStyle, SpinnerComponent, HttpClientModule, IconComponent],\n providers: [IconService],\n templateUrl: './button.component.html',\n styleUrl: './button.component.css'\n})\n\nexport class ButtonComponent {\n @Input() id: string | number;\n @Input() type: string;\n @Input() state: string;\n @Input() size: string;\n @Input() text: string | number;\n @Input() ImagePath: string;\n @Input() icon: IconName;\n @Input() iconPosition: string;\n @Input() href: string;\n @Input() hrefTarget: string;\n @Input() width: string;\n @Input() isSubmit: boolean = false;\n @Input() buttonIconSize: string;\n\n @Input() showSpinner: boolean = false;\n\n @Output() onClickEvent = new EventEmitter();\n @Output() onMouseInEvent = new EventEmitter();\n @Output() onMouseOutEvent = new EventEmitter();\n\n svgStyle = {}\n eventEmitObject = {}\n uuid: number = nextId++;\n\n ngOnChanges(changes: SimpleChanges): void {\n this.svgStyle = {\n '-webkit-mask-image': `url(${this.ImagePath})`,\n 'mask-image': `url(${this.ImagePath})`,\n }\n this.eventEmitObject = {\n id: this.id\n }\n if (changes && changes['width'] && changes['width'].currentValue) {\n console.log(this.width)\n }\n }\n\n buttonClicked(evt: Event) {\n if (this.state == \"disabled\") return;\n this.onClickEvent.emit({\n ...this.eventEmitObject,\n evt\n });\n if (this.href != \"\") {\n if (this.hrefTarget == \"blank\") window.open(this.href);\n else if (this.hrefTarget == \"self\") location.href = this.href;\n }\n }\n\n mouseIn() {\n if (this.state == \"disabled\") return;\n this.onMouseInEvent.emit();\n }\n\n mouseOut() {\n if (this.state == \"disabled\") return;\n this.onMouseOutEvent.emit();\n }\n}\n","<button (click)=\"buttonClicked($event)\" id=\"sa-button-{{uuid}}\" class=\"btn-hide\"\n [type]=\"isSubmit ? 'submit' : 'button'\"></button>\n<!-- (click)=\"buttonClicked()\" on button instead of label breaks whole thing -->\n<label for=\"sa-button-{{uuid}}\" [ngStyle]=\"{'width':width}\" role=\"button\" tabindex=\"0\" (mouseenter)=\"mouseIn()\"\n (mouseleave)=\"mouseOut()\" (keydown.enter)=\"buttonClicked($event)\" for=\"sa-button\"\n class=\"sa-button {{state}} {{type}} {{size}}\">\n @if(showSpinner){\n <sa-spinner [default]=\"true\"></sa-spinner>\n }\n @if(ImagePath) {\n <div class=\"svg-icon\" [style]=\"svgStyle\"\n [style.display]=\"(iconPosition == 'left' || iconPosition == 'both') ? 'block' : 'none'\"></div>\n {{text}}\n <div class=\"svg-icon\" [style]=\"svgStyle\"\n [style.display]=\"(iconPosition == 'right' || iconPosition == 'both') ? 'block' : 'none'\"></div>\n } @else if (icon) {\n <sa-icon [icon]=\"icon\" [size]=\"buttonIconSize\"\n [style.display]=\"(iconPosition == 'left' || iconPosition == 'both') ? 'flex' : 'none'\"></sa-icon>\n {{text}}\n <sa-icon [icon]=\"icon\" [size]=\"buttonIconSize\"\n [style.display]=\"(iconPosition == 'right' || iconPosition == 'both') ? 'flex' : 'none'\"></sa-icon>\n } @else {\n {{text}}\n }\n</label>\n","import { Component, EventEmitter, Input, Output, OnChanges, SimpleChanges } from '@angular/core';\nimport { CardCustomHeaderComponent } from '../card/card-custom-header/card-custom-header.component';\nimport { CardComponent } from '../card/card.component'\nimport { FormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { ChipsComponent } from '../chips/chips.component'\nimport { FieldType, FormlyFieldConfig } from '@ngx-formly/core';\nimport { includes as _includes, replace as _replace, toString as _toString, get as _get, filter as _filter, map as _map } from 'lodash';\nimport { ButtonComponent } from '../button/button.component';\nimport { debounceTime } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'sa-accordion',\n standalone: true,\n imports: [CardCustomHeaderComponent, CardComponent, FormsModule, MatCheckboxModule, CommonModule, IconComponent, MatTooltipModule, MatExpansionModule, ChipsComponent, ButtonComponent],\n templateUrl: './accordion.component.html',\n styleUrl: './accordion.component.css'\n})\nexport class AccordionComponent extends FieldType implements OnChanges {\n selectedCount: number = 0;\n private initialChipState: string = 'neutral';\n showingAdvancedFeatures: boolean = false;\n advancedFeatureHeading: string = ''\n parentField: FormlyFieldConfig;\n private buttonClick = new Subject<any>();\n\n ngOnInit() {\n this.parentField = _get(this.field, 'parent')\n if (this.props?.['titleChip']?.['state']) {\n this.initialChipState = this.props['titleChip']['state'];\n }\n this.showingAdvancedFeatures = this.props?.['showAdvancedFeatures'];\n this.checkForPreselectedFeatures();\n this.buttonClick.pipe(\n debounceTime(300)\n ).subscribe(button => {\n this.field?.props?.['onButtonClick'](button);\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['field'] || changes['model']) {\n this.parentField = _get(this.field, 'parent');\n if (this.props?.['titleChip']?.['state']) {\n this.initialChipState = this.props['titleChip']['state'];\n }\n this.showingAdvancedFeatures = this.props?.['showAdvancedFeatures'];\n this.checkForPreselectedFeatures();\n }\n }\n\n checkForPreselectedFeatures() {\n // Initialize count\n let count = 0;\n \n // Count selected features directly without creating intermediate arrays\n if (this.props['featuresList']) {\n for (let i = 0; i < this.props['featuresList'].length; i++) {\n if (this.props['featuresList'][i].isSelected) {\n count++;\n }\n }\n }\n \n // Count selected advanced features\n if (this.props['advancedFeatures']) {\n for (let i = 0; i < this.props['advancedFeatures'].length; i++) {\n if (this.props['advancedFeatures'][i].isSelected) {\n count++;\n }\n }\n }\n \n this.selectedCount = count;\n this.updateChipState();\n }\n\n getChipText(): string {\n const text = this.props?.['titleChip']?.['text'] || '';\n if (_includes(text, '{count}')) {\n return _replace(text, '{count}', _toString(this.selectedCount));\n }\n return text;\n }\n\n onCardClick(cardDetails: any): void {\n cardDetails.isSelected = cardDetails?.disabled ? cardDetails.isSelected : !cardDetails.isSelected;\n this.notifyCheckboxChange(cardDetails);\n }\n\n onCheckboxClick(event: any, cardDetails: any): void {\n event.stopPropagation();\n this.notifyCheckboxChange(cardDetails);\n }\n\n onAccordionOpened() {\n if (!this.props['accordionExpanded']) {\n this.props['accordionExpanded'] = true;\n }\n }\n\n onAccordionClosed() {\n if (this.props['accordionExpanded']) {\n this.props['accordionExpanded'] = false;\n }\n }\n\n notifyCheckboxChange(cardDetails: any) {\n if (cardDetails?.disabled) {\n return;\n }\n\n // Update the selected count\n if (cardDetails.isSelected) {\n this.selectedCount++;\n } else {\n this.selectedCount--;\n }\n\n // Update chip state based on the selection\n this.updateChipState();\n\n // Pre-allocate array with estimated capacity to avoid resizing\n const featuresList = this.props['featuresList'] || [];\n const advancedFeatures = this.props['advancedFeatures'] || [];\n const selectedFeatures = [];\n \n // Use local variables to avoid repeated property access\n let feature;\n \n // Single pass through featuresList\n for (let i = 0, len = featuresList.length; i < len; i++) {\n feature = featuresList[i];\n if (feature.isSelected) {\n selectedFeatures.push(feature);\n }\n }\n \n // Single pass through advancedFeatures\n for (let i = 0, len = advancedFeatures.length; i < len; i++) {\n feature = advancedFeatures[i];\n if (feature.isSelected) {\n selectedFeatures.push(feature);\n }\n }\n\n // Update the form control with the collected selected features\n this.formControl.setValue(selectedFeatures);\n }\n\n\n updateChipState() {\n if (this.props['titleChip'] && this.props['titleChip']['changeStateTo']) {\n this.props['titleChip']['state'] = this.selectedCount > 0 ? this.props['titleChip']['changeStateTo'] : this.initialChipState;\n }\n }\n\n onAdvancedFeaturesOpened(): void {\n this.props['advancedFeaturesExpanded'] = true;\n }\n\n onAdvancedFeaturesClosed(): void {\n this.props['advancedFeaturesExpanded'] = false;\n }\n\n actionHandler(button: any, event: Event) {\n event.stopPropagation();\n event.preventDefault();\n this.buttonClick.next(button);\n }\n\n ngOnDestroy() {\n this.buttonClick.complete();\n }\n\n //pending work on preselected data\n}\n","<mat-accordion class=\"accordion-container\">\n <mat-expansion-panel hideToggle [expanded]=\"props?.['accordionExpanded'] || false\" (opened)=\"onAccordionOpened()\"\n (closed)=\"onAccordionClosed()\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <div class=\"panel-container\">\n @if(props?.['accordionExpanded']){\n <span class=\"d-flex align-center\">\n <sa-icon [icon]=\"props?.['expandedIcon'] || 'downChevronOutlined'\" class=\"d-flex info-icon\"\n size=\"20\"></sa-icon>\n </span>\n }@else{\n <span class=\"d-flex align-center\">\n <sa-icon [icon]=\"props?.['collapsedIcon'] || 'rightChevronOutlined'\" class=\"d-flex info-icon\"\n size=\"20\"></sa-icon>\n </span>\n }\n <span class=\"panel-title\">{{props?.['panelTitle']}}</span>\n <div>\n <sa-chip *ngIf=\"props?.['titleChip']\" [type]=\"props['titleChip']?.['type']\"\n [state]=\"props['titleChip']?.['state']\" [filling]=\"props['titleChip']?.['filling']\"\n [text]=\"getChipText()\"></sa-chip>\n </div>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"custom-divider\"></div>\n <div class=\"accordion-cards-container\">\n <div *ngFor=\"let subFeature of props?.['featuresList']\">\n <sa-card [column]=\"false\" [showCardHeader]=\"true\" [showCardBody]=\"false\"\n [width]=\"props?.['featureCardWidth'] || '632px'\" [showHeaderBodyDivider]=\"false\"\n [customWrapperClass]=\"props?.['customWrapperClass']\" (click)=\"onCardClick(subFeature)\"\n class=\"{{subFeature?.['disabled'] && subFeature?.['isSelected'] ? 'card-selected' : ''}} {{subFeature?.['disabled'] ? 'disabled-card': ''}}\">\n <sa-card-title-header>\n <div class=\"sa-card-accordion-title-container\">\n @if(subFeature?.['disabled']){\n <span class=\"disabled-icon\">\n <sa-icon icon=\"disabledCheckboxFilled\"\n customClass=\"auto-dimensions disabled-checkbox-icon\" class=\"d-flex\"></sa-icon>\n </span>\n }@else{\n <mat-checkbox class=\"checkbox-style\" [(ngModel)]=\"subFeature.isSelected\"\n (click)=\"onCheckboxClick($event, subFeature)\"></mat-checkbox>\n }\n <div class=\"sa-card-title-icon-container\">\n <div class=\"sa-card-custom-title\">\n {{subFeature?.title}}\n </div>\n @if(subFeature?.tooltip){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"props?.['tooltipIcon'] || 'infoCircleOutlined'\"\n customClass=\"info-icon\" [matTooltip]=\"subFeature?.tooltip\"\n matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n @if(subFeature?.featureChip && subFeature?.featureChip?.length > 0){\n <div class=\"chips-container\">\n @for(chip of subFeature.featureChip; track chip) {\n <sa-chip [type]=\"chip?.['type']\"\n [state]=\"chip?.['state']\"\n [filling]=\"chip?.['filling']\"\n [tooltip]=\"chip?.['tooltip']\"\n [text]=\"chip?.['label']\"></sa-chip>\n }\n </div>\n }\n </div>\n </div>\n </sa-card-title-header>\n </sa-card>\n </div>\n </div>\n <!-- Advanced Features accordion -->\n <div *ngIf=\"props?.['advancedFeatures'] && props['advancedFeatures'].length > 0\"\n class=\"advanced-features-section\">\n <mat-expansion-panel hideToggle [expanded]=\"props?.['advancedFeaturesExpanded'] || false\"\n (opened)=\"onAdvancedFeaturesOpened()\" (closed)=\"onAdvancedFeaturesClosed()\" class=\"advancedAccordion\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <div class=\"panel-container\">\n @if(!props?.['advancedFeaturesExpanded']){\n <span class=\"d-flex align-center source-icon\">\n <sa-icon [icon]=\"props?.['advancedFeatureCollapsedIcon'] || 'sourcesOutlined'\"\n class=\"d-flex\" customClass=\"colored-icon\" size=\"16\"></sa-icon>\n </span>\n }@else{\n <span class=\"d-flex align-center\">\n <sa-icon [icon]=\"props?.['advancedFeatureExpandedIcon'] || 'downChevronOutlined'\"\n class=\"d-flex\" size=\"20\"></sa-icon>\n </span>\n }\n <span class=\"advanced-title\">{{ props?.['advancedFeaturesExpanded'] ?\n props?.['advancedFeatureToggleTitle'] :\n props?.['advancedFeatureTitle'] }}</span>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"accordion-advanced-container\">\n <div class=\"disclaimer-container\">\n <span class=\"tooltip-container\">\n <sa-icon icon=\"infoCircleOutlined\" customClass=\"info-icon\" class=\"tooltip-icon\"></sa-icon>\n </span>\n <span class=\"disclaimer-style\">{{props?.['advancedFeatureDisclaimer']}}</span>\n @if(props?.['advancedFeatureDisclaimerButtons']) {\n <div class=\"disclaimer-buttons-container\">\n <ng-container *ngFor=\"let button of props['advancedFeatureDisclaimerButtons']\">\n <sa-button [text]=\"button.text\" [type]=\"button.type\" [size]=\"button.size\"\n [state]=\"button.state\" [iconPosition]=\"button.iconPosition\" [icon]=\"button.icon\"\n [buttonIconSize]=\"button.buttonIconSize\"\n (click)=\"actionHandler(button, $event)\"></sa-button>\n </ng-container>\n </div>\n }\n </div>\n <div class=\"accordion-cards-container\">\n <div *ngFor=\"let subFeature of props?.['advancedFeatures']\">\n <sa-card [column]=\"false\" [showCardHeader]=\"true\" [showCardBody]=\"false\"\n [width]=\"props?.['advancedFeatureCardWidth'] || '632px'\" [showHeaderBodyDivider]=\"false\"\n [customWrapperClass]=\"props?.['customWrapperClass']\" (click)=\"onCardClick(subFeature)\"\n class=\"{{subFeature?.['disabled'] && subFeature?.['isSelected'] ? 'card-selected' : ''}} {{subFeature?.['disabled'] ? 'disabled-card': ''}}\">\n <sa-card-title-header>\n <div class=\"sa-card-accordion-title-container\">\n @if(subFeature?.['disabled']){\n <span class=\"disabled-icon\">\n <sa-icon icon=\"disabledCheckboxFilled\"\n customClass=\"auto-dimensions disabled-checkbox-icon\"\n class=\"d-flex\"></sa-icon>\n </span>\n }@else{\n <mat-checkbox class=\"checkbox-style\" [(ngModel)]=\"subFeature.isSelected\"\n (click)=\"onCheckboxClick($event, subFeature)\"></mat-checkbox>\n }\n <div class=\"sa-card-title-icon-container\">\n <div class=\"sa-card-custom-title\">\n {{subFeature?.title}}\n </div>\n @if(subFeature?.tooltip){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"props?.['advancedTooltipIcon'] || 'infoCircleOutlined'\"\n customClass=\"info-icon\" [matTooltip]=\"subFeature?.tooltip\"\n matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n </div>\n @if(subFeature?.featureChip && subFeature?.featureChip?.length > 0){\n <div class=\"chip-container\">\n @for(chip of subFeature.featureChip; track chip) {\n <sa-chip [type]=\"chip?.['type']\"\n [state]=\"chip?.['state']\"\n [filling]=\"chip?.['filling']\"\n [tooltip]=\"chip?.['tooltip']\"\n [text]=\"chip?.['label']\"></sa-chip>\n }\n </div>\n }\n </div>\n </sa-card-title-header>\n </sa-card>\n </div>\n </div>\n </div>\n </mat-expansion-panel>\n </div>\n </mat-expansion-panel>\n</mat-accordion>","import {\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n} from '@angular/core';\nimport {\n DateAdapter,\n MatDateFormats,\n MAT_DATE_FORMATS,\n} from '@angular/material/core';\nimport { MatCalendar } from '@angular/material/datepicker';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButton } from '@angular/material/button';\nimport { NgFor } from '@angular/common';\nimport { MatDateRangePicker } from '@angular/material/datepicker';\n\n\nlet nextId = 0; // used to give unique ids to inputs used in html\n\n@Component({\n templateUrl: './calendar-header.component.html',\n styleUrls: ['./calendar-header.component.css'],\n standalone: true,\n imports: [\n NgFor,\n MatIconModule,\n MatButton\n ],\n // changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CalendarHeaderComponent<D> implements OnDestroy {\n uuid: number = nextId++;\n\n private readonly destroy$ = new Subject<void>();\n\n constructor(\n private calendar: MatCalendar<D>, // calendar instance of picker\n private dateAdapter: DateAdapter<D>, // native or moment date adapter\n private picker: MatDateRangePicker<D>,\n @Inject(MAT_DATE_FORMATS) private dateFormats: MatDateFormats, // for formatting\n cdr: ChangeDetectorRef\n ) {\n // make sure your header stays in sync with the calendar:\n calendar.stateChanges\n .pipe(takeUntil(this.destroy$)) // unsubscribe when destroyed\n .subscribe(() => cdr.markForCheck());\n\n }\n\n selectedPreset = \"Custom\"\n presets = [\n \"This Quarter\",\n \"Last Quarter\",\n \"Last 6 Months\",\n \"This Year\",\n \"Last Year\",\n \"Custom\"\n ]\n // active date label rendered between the arrow buttons\n\n ngOnInit() {\n const currentRange: any = this.calendar.selected;\n\n currentRange?.start.setHours(0, 0, 0, 0);\n currentRange?.end.setHours(0, 0, 0, 0);\n\n // To pre-select a preset when the calendar opens.\n // Match the already selected date range with the date-ranges of all presets.\n // If already selected date range matches with a preset, pre-select it.\n\n for (let i = 0; i < this.presets.length; i++) {\n const tempRange = this.findDate(this.presets[i]);\n if (tempRange.newStart.getTime() == currentRange.start.getTime() && tempRange.newEnd.getTime() == currentRange.end.getTime()) {\n this.selectedPreset = this.presets[i];\n break;\n }\n }\n }\n\n get periodLabel(): string {\n // use date adapter to format the label, e.g. \"SEP 2020\"\n return this.dateAdapter\n .format(this.calendar.activeDate, this.dateFormats.display.monthYearLabel)\n .toLocaleUpperCase();\n }\n\n previousClicked(mode: 'month' | 'year'): void {\n this.changeDate(mode, -1);\n }\n\n nextClicked(mode: 'month' | 'year'): void {\n this.changeDate(mode, 1);\n }\n\n changeView() {\n this.calendar.currentView =\n this.calendar.currentView == \"month\"\n ? \"year\"\n : this.calendar.currentView == \"year\"\n ? \"multi-year\"\n : \"month\";\n }\n\n today = new Date();\n\n presetChanged(evt: any) {\n const newRange: any = this.findDate(evt.target.value);\n this.calendar.activeDate = newRange.newStart;\n this.picker.select(newRange.newStart);\n this.picker.select(newRange.newEnd);\n }\n\n findDate(selected: string) {\n const date = this.today.getDate();\n const month = this.today.getMonth();\n const year = this.today.getFullYear();\n let newRange: any;\n this.selectedPreset = selected;\n switch (selected) {\n case \"This Quarter\": {\n const thisQuarterMonth = Math.floor(month / 3) * 3;\n const start = this.dateAdapter.createDate(year, thisQuarterMonth, 1);\n const end = this.dateAdapter.createDate(year, thisQuarterMonth + 3, 1);\n newRange = {\n newStart: start,\n newEnd: end,\n }\n break;\n }\n case \"Last Quarter\": {\n const lastQuarterMonth = (Math.floor(month / 3) * 3) - 3;\n const start = this.dateAdapter.createDate(year, lastQuarterMonth, 1);\n const end = this.dateAdapter.createDate(year, lastQuarterMonth + 3, 1);\n newRange = {\n newStart: start,\n newEnd: end,\n }\n break;\n }\n case \"Last 6 Months\": {\n const end = this.dateAdapter.createDate(year, month, date);\n const start = this.dateAdapter.addCalendarMonths(end, -6);\n newRange = {\n newStart: start,\n newEnd: end,\n }\n break;\n }\n case \"This Year\": {\n const start = this.dateAdapter.createDate(year, 0, 1);\n const end = this.dateAdapter.createDate(year, 11, 31);\n newRange = {\n newStart: start,\n newEnd: end,\n }\n break;\n }\n case \"Last Year\": {\n const start = this.dateAdapter.createDate(year - 1, 0, 1);\n const end = this.dateAdapter.createDate(year - 1, 11, 31);\n newRange = {\n newStart: start,\n newEnd: end,\n }\n break;\n }\n default: {\n newRange = {\n newStart: new Date(),\n newEnd: new Date(),\n }\n }\n }\n return newRange;\n }\n\n private changeDate(mode: 'month' | 'year', amount: -1 | 1): void {\n // increment or decrement month or year\n this.calendar.activeDate =\n mode === 'month'\n ? this.dateAdapter.addCalendarMonths(this.calendar.activeDate, amount)\n : this.dateAdapter.addCalendarYears(this.calendar.activeDate, amount);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(); // will trigger unsubscription in takeUntil\n }\n}\n","<div class=\"range-preset\">\n <div class=\"preset\" *ngFor=\"let preset of presets, let i = index\">\n <label class=\"preset-label {{preset == selectedPreset ? 'preset-selected' : ''}}\"\n for=\"preset-radio-{{i}}\">{{preset}}</label>\n <input class=\"preset-radio\" (change)=\"presetChanged($event)\" [checked]=\"preset == selectedPreset\"\n id=\"preset-radio-{{i}}\" type=\"radio\" name=\"preset-radios-{{uuid}}\" value=\"{{preset}}\">\n </div>\n</div>\n\n<div class=\"header\">\n <button mat-icon-button (click)=\"previousClicked('month')\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <button mat-button class=\"header-label\" (click)=\"changeView()\">{{ periodLabel }}</button>\n\n <button mat-icon-button (click)=\"nextClicked('month')\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sa-card-custom-body',\n standalone: true,\n imports: [],\n templateUrl: './card-body.component.html',\n styleUrl: './card-body.component.css'\n})\nexport class CardBodyComponent {\n\n}\n","<div class=\"sa-card-body\"><ng-content></ng-content></div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sa-card-footer-actions',\n standalone: true,\n imports: [],\n templateUrl: './card-footer-actions.component.html',\n styleUrl: './card-footer-actions.component.css'\n})\nexport class CardFooterActionsComponent {\n\n}\n","<div class=\"sa-card-footer-actions\">\n <ng-content></ng-content>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sa-card-icon',\n standalone: true,\n imports: [],\n templateUrl: './card-icon.component.html',\n styleUrl: './card-icon.component.css'\n})\nexport class CardIconComponent {\n\n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'sa-card-title-actions',\n standalone: true,\n imports: [],\n templateUrl: './card-title-actions.component.html',\n styleUrl: './card-title-actions.component.css'\n})\nexport class CardTitleActionsComponent {\n\n}\n","<div class=\"sa-card-title-actions\"><ng-content></ng-content></div>","import { Component, Input } from '@angular/core';\nimport { IconComponent } from '../icon/icon.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'lib-list',\n standalone: true,\n imports: [IconComponent, CommonModule],\n templateUrl: './list.component.html',\n styleUrl: './list.component.css'\n})\nexport class ListComponent {\n @Input() listData: { icon?: string; text: string }[] = [];\n @Input('featuresIcon') featuresIcon: string = '';\n}\n","<div class=\"feature-list-container\">\n <div class=\"feature-item\" *ngFor=\"let item of listData\">\n <div *ngIf=\"featuresIcon\" class=\"feature-icon\">\n <sa-icon [icon]=\"featuresIcon\" customClass=\"colored-icon\"></sa-icon>\n </div>\n <div>\n <span class=\"feature-text\">{{ item?.text }}</span>\n </div>\n </div>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CardComponent } from '../card.component';\nimport { IconComponent } from '../../icon/icon.component';\nimport { ListComponent } from '../../list/list.component';\nimport { CardBodyComponent } from '../card-body/card-body.component';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { CommonModule } from '@angular/common';\nimport { CardTitleActionsComponent } from '../card-title-actions/card-title-actions.component';\nimport { CardCustomHeaderComponent } from '../card-custom-header/card-custom-header.component';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { ButtonComponent } from '../../button/button.component';\n\n@Component({\n selector: 'sa-checkbox-card',\n standalone: true,\n imports: [CardComponent, IconComponent, ListComponent, CardBodyComponent, MatCheckboxModule, CommonModule, CardTitleActionsComponent, CardCustomHeaderComponent, FormsModule, ReactiveFormsModule, ButtonComponent],\n templateUrl: './checkbox-card.component.html',\n styleUrl: './checkbox-card.component.css'\n})\nexport class CheckboxCardComponent extends FieldType {\n\n ngOnInit() {\n // console.log(this)\n }\n\n onCardClick(event: MouseEvent): void {\n this.props['isCardSelected'] = !this.props['isCardSelected'];\n this.formControl.setValue(!this.formControl.value);\n }\n\n onCheckboxClick(event: Event): void {\n event.stopPropagation();\n }\n\n\n override get formControl(): FormControl {\n return super.formControl as FormControl;\n }\n\n actionHandler(button: any) {\n this.field.props['onButtonClick'](this.field);\n }\n}\n","<sa-card [width]=\"props['width']\" [customWrapperClass]=\"props['customWrapperClass']\"\n (click)=\"!props['disabled'] && onCardClick($event)\" [showCardBody]=\"false\" [showCardHeader]=\"true\"\n [showCustomCardBody]=\"true\" class=\"checkbox-card {{props['isCardSelected'] ? 'card-selected': ''}}\"\n [style.width]=\"props['width']\">\n <sa-card-title-header>\n <div class=\"sa-card-custom-header-container\">\n <div class=\"sa-card-title-logo-container\">\n <div class=\"sa-card-title-logo {{props['disabled'] ? 'disabled-card': ''}}\"><sa-icon\n [icon]=\"props['featureIcon']\" customClass=\"auto-dimensions colored-icon\"></sa-icon>\n </div>\n <div class=\"sa-card-custom-title\">{{props['title']}}</div>\n </div>\n <div class=\"sa-card-titleIcon\">\n <sa-card-title-actions>\n <div class=\"sa-document-action\">\n @if(props['disabled']){\n <sa-icon icon=\"disabledCheckboxFilled\"\n customClass=\"auto-dimensions disabled-checkbox-icon\"></sa-icon>\n }@else{\n <mat-checkbox class=\"checkbox-style\" [formControl]=\"formControl\"\n (click)=\"onCheckboxClick($event)\" [disabled]=\"props['disabled']\"></mat-checkbox>\n }\n </div>\n </sa-card-title-actions>\n </div>\n </div>\n </sa-card-title-header>\n <sa-card-custom-body>\n @if(props['listItems']){\n <lib-list [listData]=\"props['listItems']\" [featuresIcon]=\"props['listIcon']\"></lib-list>\n }@else if(props['showButtons']){\n <div class=\"buttons-container\">\n <ng-container *ngFor=\"let button of props['showButtons']\">\n <ng-container *ngIf=\"button.type === 'submit'\">\n <div class=\"button-content\">\n @if(props['description']){\n @if(props['descriptionIcon']){\n <div class=\"description-container\">\n <sa-icon [icon]=\"props['descriptionIcon']\" customClass=\"auto-dimensions disabled-icon\"\n class=\"description-icon\"></sa-icon>\n <span class=\"description-style\">{{props['description']}}</span>\n </div>\n }\n }\n <sa-button (click)=\"actionHandler(button)\" [text]=\"button.label\" [type]=\"button.buttonType\"\n [size]=\"button.size\" [state]=\"button.state\" [icon]=\"button.icon\"\n [iconPosition]='button.iconPosition' class=\"checkbox-card-action-button\"\n [buttonIconSize]=\"button.iconSize\"></sa-button>\n </div>\n </ng-container>\n </ng-container>\n </div>\n }\n </sa-card-custom-body>\n</sa-card>","import { Component, Input, Output, EventEmitter, ViewEncapsulation, OnChanges, SimpleChanges } from '@angular/core';\nimport { GuideStep } from '../../../interfaces/guide-card-interface';\nimport { CommonModule } from '@angular/common';\nimport { ChipsComponent } from '../../chips/chips.component';\nimport { isUndefined as _isUndefined, first as _first } from 'lodash'\nimport { IconComponent } from '../../icon/icon.component';\n\n@Component({\n selector: 'sa-guide-card',\n standalone: true,\n imports: [CommonModule, ChipsComponent, IconComponent],\n templateUrl: './guide-card.component.html',\n styleUrls: ['./guide-card.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class GuideCardComponent implements OnChanges {\n @Input() title: string = '';\n @Input() steps: GuideStep[] | any = []\n @Input() selectable: boolean = false;\n @Input() selectedStep: any = {};\n @Output() onStepClicked = new EventEmitter<GuideStep>();\n //selectedStep: any;\n\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes['steps'] || changes['selectable']) && this.selectable && _isUndefined(this.selectedStep)) {\n const selectedStep = _first(this.steps);\n this.onStepClick(selectedStep);\n }\n }\n ngOnInit() {\n if (this.selectable && _isUndefined(this.selectedStep)) {\n \n }\n }\n\n onStepClick(step: any) {\n this.selectedStep = step;\n //console.log(this.selectedStep)\n this.onStepClicked.emit(step);\n }\n}\n","<div class=\"guide-container\">\n <div class=\"guide-header\">\n <p class=\"guide-header-title\">{{ title }}</p>\n </div>\n <div class=\"guide-content\">\n @for (step of steps; track step; let last = $last) {\n <div class=\"step\" [ngClass]=\"step?.isCompleted ? 'connectedSource-step': '' \">\n <div class=\"step-indicator\">\n @if(selectable) {\n @if(step?.isCompleted){\n <sa-icon [icon]=\"'checkCircleFilled'\" class=\"source-circle\" customClass=\"colored-icon\"\n size=\"20\"></sa-icon>\n }\n @else{\n <div [ngClass]=\"step === selectedStep ? 'step-circle-selected': 'step-circle-normal'\">\n </div>\n }\n }@else{\n <div class=\"step-circle\"></div>\n }\n @if (!last) {\n <div class=\"step-line\"></div>\n }\n </div>\n <div class=\"step-content\">\n <div class=\"step-title\" (click)=\"selectable ? onStepClick(step) : null\"\n [ngClass]=\"selectable ? (step === selectedStep ? 'selected-step' : 'other-step') : ''\">\n {{ step.title }}\n @if(step?.chipData) {\n <sa-chip [type]=\"step?.chipData.type\" [state]=\"step?.chipData.state\"\n [filling]=\"step?.chipData.filling\" [text]=\"step?.chipData.text\"\n [iconPosition]='step?.chipData.iconPosition' [iconPath]=\"step?.chipData.iconPath\"></sa-chip>\n }\n </div>\n @if (step?.description) {\n <p class=\"step-description\">{{ step.description }}</p>\n }\n </div>\n </div>\n }\n </div>\n</div>","import { Component, Input, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\nimport { MessageType } from '../../interfaces/message-banner';\nimport { IconComponent } from \"../icon/icon.component\";\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconService } from '../icon/icon.service';\nimport { ButtonComponent } from '../button/button.component';\nimport { IconName } from '../../interfaces/icon-interface';\nimport { ButtonIconPosition, ButtonInterface, ButtonSize, ButtonType } from '../../interfaces/button-interface';\nimport { isUndefined, kebabCase } from 'lodash'\n@Component({\n selector: 'sa-message-banner',\n standalone: true,\n imports: [HttpClientModule, IconComponent, ButtonComponent],\n providers: [IconService],\n templateUrl: './message-banner.component.html',\n styleUrl: './message-banner.component.css',\n encapsulation: ViewEncapsulation.None\n})\nexport class MessageBannerComponent {\n @Input() type: MessageType = 'info';\n @Input() actionText?: string;\n @Input() content?: string = '';\n @Input() bannerIcon?: IconName;\n @Input() bannerIconSize?: string = '';\n @Input() buttonIcon?: IconName;\n @Input() buttonType?: ButtonType;\n @Input() buttonIconPosition?: ButtonIconPosition;\n @Input() buttonSize?: ButtonSize;\n @Input() buttonIconSize?: string;\n @Input() button?: ButtonInterface;\n @Input() onAction: () => void = () => { };\n @Output() actionClick = new EventEmitter<any>();\n\n handleButtonClick(event: any, button?: ButtonInterface): void {\n if(isUndefined(button)) {\n button = {\n icon: this.buttonIcon,\n iconPosition: this.buttonIconPosition,\n size: this.buttonSize,\n buttonIconSize: this.buttonIconSize,\n type: this.buttonType,\n text: this.actionText,\n id: `message-banner-${kebabCase(this.actionText)}`,\n state: 'default'\n }\n }\n this.actionClick.emit(button);\n }\n}\n","<div class=\"message-banner\" [class]=\"type\">\n <div class=\"content\">\n @if (bannerIcon) {\n <sa-icon class=\"icon\" [icon]=\"bannerIcon\" [size]=\"bannerIconSize\" [style.height.px]=\"bannerIconSize\"></sa-icon>\n }\n <ng-content></ng-content>\n </div>\n @if (actionText) {\n <sa-button class=\"action-button\" [text]=\"actionText\" [icon]=\"buttonIcon\" [size]=\"buttonSize\" [type]=\"buttonType\"\n [iconPosition]=\"buttonIconPosition\" [size]=\"buttonSize\" [buttonIconSize]=\"buttonIconSize\"\n (click)=\"onAction()\" (onClickEvent)=\"handleButtonClick($event)\">{{\n actionText\n }}</sa-button>\n }\n @else if(button) {\n <sa-button\n [text]=\"button?.text\"\n [icon]=\"button?.icon\"\n [size]=\"button?.size\"\n [type]=\"button?.type\"\n [iconPosition]=\"button?.iconPosition\"\n [buttonIconSize]=\"button?.buttonIconSize\"\n (onClickEvent)=\"handleButtonClick(button, $event)\"\n role=\"button\"\n [attr.aria-label]=\"button?.text\"\n >\n \n </sa-button>\n }\n</div>","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GuideCardComponent } from '../guide-card/guide-card.component';\nimport { FieldType, } from '@ngx-formly/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { CardComponent } from '../card.component';\nimport { CardCustomHeaderComponent } from '../card-custom-header/card-custom-header.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { ChipsComponent } from '../../chips/chips.component';\nimport { IconComponent } from '../../icon/icon.component';\nimport { ButtonComponent } from '../../button/button.component';\nimport { CardTitleActionsComponent } from '../card-title-actions/card-title-actions.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { find as _find } from 'lodash'\nimport { MessageBannerComponent } from '../../message-banner/message-banner.component';\n@Component({\n selector: 'sa-menu-card',\n standalone: true,\n imports: [ChipsComponent, CommonModule, GuideCardComponent, FormsModule, ReactiveFormsModule, FormlyModule, CardComponent, CardCustomHeaderComponent, IconComponent, MatExpansionModule, ButtonComponent, CardTitleActionsComponent, MatTooltipModule, MessageBannerComponent],\n templateUrl: './menu-card.component.html',\n styleUrl: './menu-card.component.css'\n})\nexport class MenuCardComponent extends FieldType {\n @Input() title: string = 'Categories:';\n @Input() steps: any[];\n @Input() footerDetails: any;\n @Output() onButtonClickEvent = new EventEmitter<any>();\n @Output() onCardClickEvent = new EventEmitter<any>();\n @Output() onFooterClickEvent = new EventEmitter<any>();\n @Output() onStepChangeEvent = new EventEmitter<any>();\n selectedStep: any;\n selectedGuideStep: any | null = null;\n customClassWrapper = 'menuCardSourceContainer';\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['steps']) {\n this.selectedStep = _find(this.steps, { isSelected: true })\n }\n }\n\n onStepChanged(event) {\n this.selectedStep = event;\n this.onStepChangeEvent.emit(event);\n }\n\n onCardClick(source: any, button: any, event: Event) {\n event.stopPropagation();\n event.preventDefault();\n this.onCardClickEvent.emit({ category: this.selectedStep, source: source, button: button })\n }\n\n onAdvancedFeaturesOpened() {\n this.selectedStep.advancedFeaturesExpanded = true;\n }\n\n onAdvancedFeaturesClosed() {\n this.selectedStep.advancedFeaturesExpanded = false;\n }\n\n actionHandler(button: any, event: Event) {\n event.stopPropagation();\n event.preventDefault();\n this.onButtonClickEvent.next({ category: this.selectedStep, button: button });\n }\n\n showSources(sourceType: any) {\n this.onFooterClickEvent.emit(sourceType);\n //console.log(sourceType)\n this.onStepChanged(sourceType)\n }\n}\n","<div class=\"menu-card-container\">\n <div class=\"left-card-container\">\n <sa-guide-card [title]=\"'Categories:'\" [steps]=\"steps\" [selectable]=\"true\"\n (onStepClicked)=\"onStepChanged($event)\" [selectedStep]=\"selectedStep\"></sa-guide-card>\n <div class=\"card-footer-container\">\n <span class=\"horizontal-line\"></span>\n <ng-container *ngFor=\"let footerDetail of footerDetails\">\n <div (click)=\"showSources(footerDetail)\" class=\"footer\"\n [ngClass]=\"footerDetail === selectedStep ? 'selected-step' : 'other-step'\">\n <span class=\"footer-text\">\n {{footerDetail?.title}}\n <ng-container *ngIf=\"footerDetail?.count\">\n <span>({{footerDetail?.count}})</span>\n </ng-container>\n </span>\n <ng-container *ngIf=\"footerDetail?.chipData\">\n <span>\n <sa-chip [type]=\"footerDetail?.chipData.type\" [state]=\"footerDetail?.chipData.state\"\n [filling]=\"footerDetail?.chipData.filling\" [text]=\"footerDetail?.chipData.text\"\n [iconPosition]='footerDetail?.chipData.iconPosition'\n [iconPath]=\"footerDetail?.chipData.iconPath\">\n </sa-chip>\n </span>\n </ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"right-card-container\">\n @if(selectedStep?.messageContent || selectedStep?.messageBanner?.content){\n <div class=\"message-container\">\n <sa-message-banner [bannerIcon]=\"selectedStep?.messageBanner?.bannerIcon\"\n [bannerIconSize]=\"selectedStep?.messageBanner?.bannerIconSize\" \n [buttonIcon]=\"selectedStep?.messageBanner?.buttonIcon\"\n [buttonType]=\"selectedStep?.messageBanner?.buttonType\"\n [buttonSize]=\"selectedStep?.messageBanner?.buttonSize\"\n [buttonIconPosition]=\"selectedStep?.messageBanner?.buttonIconPosition\"\n [actionText]=\"selectedStep?.messageBanner?.buttonText\"\n [buttonIconSize]=\"selectedStep?.messageBanner?.buttonIconSize\"\n [type]=\"selectedStep?.messageBanner?.type || 'info'\">\n <div class=\"message-content\" [innerHtml]=\"selectedStep?.messageContent || selectedStep?.messageBanner?.content\">\n </div>\n </sa-message-banner>\n </div>\n }\n <div class=\"heading-container\">\n <span class=\"heading-style\">{{selectedStep?.sourcesHeading || 'Available Sources'}}:</span>\n </div>\n <div *ngIf=\"selectedStep?.sourcesList\" class=\"cards-container\">\n <ng-container *ngFor=\"let source of selectedStep.sourcesList\">\n <ng-container\n *ngTemplateOutlet=\"cardTemplate; context: { source: source, selectedStep: selectedStep, actionButton: selectedStep?.actionButton }\">\n </ng-container>\n </ng-container>\n </div>\n <!-- for advanced options -->\n <div *ngIf=\"selectedStep?.advancedSourcesList && selectedStep.advancedSourcesList.length > 0\"\n class=\"menu-card-advanced-features-section\">\n\n <mat-expansion-panel hideToggle [expanded]=\"selectedStep?.advancedFeaturesExpanded || false\"\n (opened)=\"onAdvancedFeaturesOpened()\" (closed)=\"onAdvancedFeaturesClosed()\"\n class=\"menuAdvancedAccordion\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <div class=\"panel-container\">\n @if(!selectedStep?.['advancedFeaturesExpanded']){\n <span class=\"d-flex align-center source-icon\">\n <sa-icon [icon]=\"props?.['advancedFeatureCollapsedIcon'] || 'sourcesOutlined'\" class=\"d-flex\"\n customClass=\"colored-icon\" size=\"16\"></sa-icon>\n </span>\n }@else{\n <span class=\"d-flex align-center\">\n <sa-icon [icon]=\"props?.['advancedFeatureExpandedIcon'] || 'downChevronOutlined'\" class=\"d-flex\"\n size=\"20\"></sa-icon>\n </span>\n }\n <span class=\"advanced-title\">{{ selectedStep?.['advancedFeaturesExpanded'] ?\n selectedStep?.['advancedFeatureToggleTitle'] :\n selectedStep?.['advancedFeatureTitle'] }}</span>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"expansion-container\">\n @if(selectedStep?.advancedFeatureDisclaimer){\n <div class=\"disclaimer-container\">\n <sa-message-banner [type]=\"'disclaimer'\">\n <div class=\"disclaimer-content\">\n @if(selectedStep?.advancedFeatureDisclaimerTooltip){\n <span class=\"tooltip-container\">\n <sa-icon icon=\"infoCircleOutlined\"\n [matTooltip]=\"selectedStep?.advancedFeatureDisclaimerTooltip\" customClass=\"info-icon\"\n class=\"tooltip-icon\"></sa-icon>\n </span>\n }\n <span class=\"disclaimer-style\">{{selectedStep?.advancedFeatureDisclaimer}}</span>\n </div>\n @if(selectedStep?.advancedFeatureDisclaimerButtons) {\n <div class=\"disclaimer-buttons-container\">\n <ng-container *ngFor=\"let button of selectedStep.advancedFeatureDisclaimerButtons\">\n <sa-button [text]=\"button.text\" [type]=\"button.type\" [size]=\"button.size\"\n [state]=\"button.state\" [iconPosition]=\"button.iconPosition\" [icon]=\"button.icon\"\n [buttonIconSize]=\"button.buttonIconSize\"\n (click)=\"actionHandler(button, $event)\"></sa-button>\n </ng-container>\n </div>\n }\n </sa-message-banner>\n </div>\n }\n <div class=\"cards-container\">\n <ng-container *ngFor=\"let source of selectedStep?.advancedSourcesList\">\n <ng-container\n *ngTemplateOutlet=\"cardTemplate; context: { source: source, selectedStep: selectedStep, actionButton: selectedStep?.actionButton }\">\n </ng-container>\n </ng-container>\n </div>\n </div>\n </mat-expansion-panel>\n </div>\n @if(selectedStep?.connectedSourcesList && selectedStep.connectedSourcesList.length > 0) {\n <div class=\"heading-container\">\n <span class=\"heading-style\">{{selectedStep?.sourcesHeading || 'Connected Sources'}}:</span>\n </div>\n <div class=\"cards-container\">\n <ng-container *ngFor=\"let source of selectedStep.connectedSourcesList\">\n <ng-container\n *ngTemplateOutlet=\"cardTemplate; context: { source: source, selectedStep: selectedStep, actionButton: selectedStep?.actionButton }\">\n </ng-container>\n </ng-container>\n </div>\n }\n </div>\n</div>\n\n<ng-template #cardTemplate let-source=\"source\" let-selectedStep=\"selectedStep\" let-actionButton=\"actionButton\">\n <sa-card [column]=\"false\" [showCardHeader]=\"true\" [showCardBody]=\"false\"\n [width]=\"selectedStep.sourcesCardWidth || '471px'\" [showHeaderBodyDivider]=\"false\"\n [customWrapperClass]=\"selectedStep.customWrapperClass || customClassWrapper\"\n class=\"{{source.disabled ? 'disabled-card': 'enabled-card'}}\">\n <sa-card-title-header>\n <div class=\"sa-card-accordion-title-container\">\n <div class=\"sa-menu-card-title-icon-container\">\n <div class=\"sa-menu-card-custom-title\">\n <ng-container *ngIf=\"source.logoUrl\">\n <sa-icon [img]=\"source.logoUrl\" [size]=\"'20'\" class=\"d-flex\" [customClass]=\"'auto-dimensions'\"></sa-icon>\n </ng-container>\n <span [matTooltip]=\"source?.tooltip\">\n {{source?.name}}\n <ng-container *ngIf=\"source?.count\">\n <span>({{source.count}})</span>\n </ng-container>\n </span>\n <ng-container *ngIf=\"source?.chipData\">\n <span>\n <sa-chip [type]=\"source?.chipData.type\" [state]=\"source?.chipData.state\"\n [filling]=\"source?.chipData.filling\" [text]=\"source?.chipData.text\"\n [iconPosition]='source?.chipData.iconPosition'\n [iconPath]=\"source?.chipData.iconPath\">\n </sa-chip>\n </span>\n </ng-container>\n </div>\n </div>\n <ng-container\n *ngIf=\"!source.disabled && (selectedStep?.actionButton && (selectedStep?.showActionActionButton ? actionButton : null)) as button\">\n <div class=\"sa-card-titleIcon no-margin\">\n <sa-card-title-actions>\n <sa-button [text]=\"button.text\" [type]=\"button.type\" [size]=\"button.size\"\n [state]=\"button.state\" [iconPosition]=\"button.iconPosition\" [icon]=\"button.icon\"\n [buttonIconSize]=\"button.buttonIconSize\" (click)=\"onCardClick(source, button, $event)\">\n </sa-button>\n </sa-card-title-actions>\n </div>\n </ng-container>\n </div>\n </sa-card-title-header>\n </sa-card>\n</ng-template>","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { ChipsComponent } from '../../chips/chips.component';\nimport { CardComponent } from '../card.component';\nimport { IconComponent } from '../../icon/icon.component';\nimport { CardBodyComponent } from '../card-body/card-body.component';\nimport { CardCustomHeaderComponent } from '../card-custom-header/card-custom-header.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { isArray, isString, map, join, every, get, isUndefined, includes } from 'lodash';\n\nexport interface ThumbnailStatus {\n text: string;\n type: 'regular' | 'small' | 'large';\n state: 'primary' | 'secondary' | 'neutral' | 'error' | 'warning' | 'success';\n filling: 'outline' | 'filled';\n iconPath?: string;\n iconPosition?: 'left' | 'right' | 'both' | '';\n largeStateIcon?: string;\n largeStateText?: string;\n tooltip?: string;\n}\n\nexport interface ThumbnailData {\n title: string;\n subtitle: string;\n description: string;\n descriptionTooltip?: string;\n thumbnailUrl: string;\n statuses: ThumbnailStatus[];\n [key: string]: any\n}\n\n@Component({\n selector: 'sa-thumbnail-card',\n standalone: true,\n imports: [\n CommonModule,\n ChipsComponent,\n CardComponent,\n IconComponent,\n CardBodyComponent,\n CardCustomHeaderComponent,\n MatTooltipModule,\n ],\n templateUrl: './thumbnail-card.component.html',\n styleUrls: ['./thumbnail-card.component.css']\n})\nexport class ThumbnailCardComponent {\n @Input() data: ThumbnailData;\n @Input() size: 'small' | 'medium' | 'large' = 'medium';\n @Output() cardClick = new EventEmitter<ThumbnailData>();\n\n /**\n * Handles changes to component inputs\n * @param changes SimpleChanges object containing changed properties\n */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data']) {\n this.data = changes['data'].currentValue;\n this.updateDescriptionTooltip();\n }\n }\n \n /**\n * Updates the description tooltip if it exists\n * @private\n */\n private updateDescriptionTooltip(): void {\n const tooltip = get(this.data, 'descriptionTooltip');\n if (!isUndefined(tooltip)) {\n this.data.descriptionTooltip = this.formattedTooltip(tooltip);\n }\n }\n\n onCardClick(): void {\n this.cardClick.emit(this.data);\n }\n\n getChipConfig(status: string): Partial<ThumbnailStatus> {\n switch (status) {\n case 'active':\n return {\n type: 'small',\n state: 'success',\n filling: 'filled'\n };\n default:\n return {\n type: 'small',\n state: 'neutral',\n filling: 'outline'\n };\n }\n }\n\n formattedTooltip(tooltip: any): string {\n try {\n // Parse the JSON string\n const parsedData = JSON.parse(tooltip);\n // Check if parsedData is an array\n if (isArray(parsedData)) {\n // Handle case where it's an array of objects\n if (\n every(\n parsedData,\n (item) => item && typeof item === 'object' && 'name' in item,\n )\n ) {\n return join(map(parsedData, (item: any) => item.name), '\\n');\n }\n // Handle case where it's an array of strings\n if (every(parsedData, (item) => isString(item))) {\n return join(parsedData, '\\n');\n }\n throw new Error('Invalid array structure');\n } else {\n throw new Error('Parsed data is not an array');\n }\n } catch (error) {\n if (includes(tooltip, '\\n')) {\n return tooltip; // Assuming it's already formatted correctly\n }\n console.error('Error parsing tooltip data:', error);\n // Return a fallback message in case of an error\n return '';\n }\n }\n}\n","<div class=\"thumbnail-card\" [class.small]=\"size === 'small'\" [class.medium]=\"size === 'medium'\"\n [class.large]=\"size === 'large'\" (click)=\"onCardClick()\" role=\"button\" tabindex=\"0\" (keydown.enter)=\"onCardClick()\">\n <sa-card [showCustomCardBody]=\"true\" [customWrapperClass]=\"'sa-card-custom-wrapper'\">\n <sa-card-custom-body>\n <div class=\"thumbnail-content\">\n <div class=\"thumbnail-container\">\n <img [src]=\"data?.thumbnailUrl\" [alt]=\"data?.title\" class=\"thumbnail\">\n </div>\n <div class=\"thumbnail-info\">\n <div class=\"thumbnail-header\">\n <h3 class=\"thumbnail-title\">{{ data?.title }}</h3>\n <div class=\"status-chips\">\n @for (status of data?.statuses; track status.text) {\n <sa-chip [text]=\"status.text\" [type]=\"'small'\" [state]=\"status.state\" [filling]=\"status.filling\"\n [iconPath]=\"status.iconPath\" [iconPosition]=\"status.iconPosition\"\n [largeStateIcon]=\"status.largeStateIcon\" [largeStateText]=\"status.largeStateText\" [matTooltip]=\"status?.tooltip\" matTooltipClass=\"custom-status-tooltip\">\n </sa-chip>\n }\n </div>\n </div>\n <div class=\"thumbnail-metadata\">\n <span class=\"thumbnail-description\" [matTooltip]=\"data?.descriptionTooltip\" matTooltipClass=\"custom-description-tooltip\">{{ data?.description }}</span>\n <span class=\"separator\"></span>\n <span class=\"thumbnail-subtitle\">{{ data?.subtitle }}</span>\n </div>\n </div>\n </div>\n </sa-card-custom-body>\n </sa-card>\n</div>\n","import { Component, OnInit, Input, OnDestroy, ViewEncapsulation, SimpleChanges, OnChanges, ChangeDetectionStrategy, ChangeDetectorRef, NgZone } from '@angular/core';\nimport { CardComponent } from '../card/card.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { CardCustomHeaderComponent } from '../card/card-custom-header/card-custom-header.component';\nimport { CardCarousel } from '../../interfaces/card-carousel-interface';\nimport { AvatarComponent } from \"../avatar/avatar.component\";\nimport { map as _map, split as _split, words as _words } from 'lodash';\n\n@Component({\n selector: 'sa-card-carousel',\n standalone: true,\n imports: [CardComponent, IconComponent, CardCustomHeaderComponent, AvatarComponent],\n templateUrl: './card-carousel.component.html',\n styleUrls: ['./card-carousel.component.css'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CardCarouselComponent implements OnInit, OnDestroy, OnChanges {\n protected Math = Math;\n\n @Input() cards: CardCarousel[] = [];\n @Input() interval: number = 5000;\n @Input() autoPlay: boolean = true;\n @Input() showNavigationArrows: boolean = true;\n @Input() showIndicators: boolean = true;\n @Input() showBrandFooter: boolean = true;\n\n visibleLogos: (CardCarousel & { index: number; isActive: boolean })[] = [];\n currentIndex: number = 0;\n private timer: any;\n\n constructor(\n private cdr: ChangeDetectorRef,\n private ngZone: NgZone\n ) {}\n\n ngOnInit() {\n this.updateVisibleLogos();\n if (this.autoPlay && this.cards.length > 0) {\n this.startTimer();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['cards'] && this.cards?.length > 0) {\n this.cards = _map(this.cards, (card) => {\n const nameWords = _words(card.title, /[A-Za-z]+/g);\n const wordsToUse = nameWords.length > 2 \n ? [nameWords[0], nameWords[nameWords.length - 1]]\n : nameWords;\n const initials = _map(wordsToUse, word => word.charAt(0).toUpperCase()).join('');\n return { ...card, altText: initials };\n });\n \n if (this.currentIndex >= this.cards.length) {\n this.currentIndex = 0;\n }\n this.updateVisibleLogos();\n if (this.autoPlay) {\n this.resetTimer();\n }\n this.cdr.markForCheck();\n }\n }\n\n ngOnDestroy() {\n this.stopTimer();\n }\n\n startTimer() {\n this.stopTimer();\n this.ngZone.runOutsideAngular(() => {\n this.timer = setInterval(() => {\n this.ngZone.run(() => {\n this.next();\n this.cdr.markForCheck();\n });\n }, this.interval);\n });\n }\n\n stopTimer() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n }\n\n resetTimer() {\n this.stopTimer();\n if (this.autoPlay && this.cards.length > 0) {\n this.startTimer();\n }\n }\n\n selectCard(index: number) {\n if (index !== this.currentIndex && index >= 0 && index < this.cards.length) {\n this.currentIndex = index;\n this.updateVisibleLogos();\n this.resetTimer();\n this.cdr.markForCheck();\n }\n }\n\n next() {\n if (this.cards.length > 0) {\n this.currentIndex = (this.currentIndex + 1) % this.cards.length;\n this.updateVisibleLogos();\n this.resetTimer();\n this.cdr.markForCheck();\n }\n }\n\n prev() {\n if (this.cards.length > 0) {\n this.currentIndex = (this.currentIndex - 1 + this.cards.length) % this.cards.length;\n this.updateVisibleLogos();\n this.resetTimer();\n this.cdr.markForCheck();\n }\n }\n\n updateVisibleLogos() {\n if (this.cards.length === 0) {\n this.visibleLogos = [];\n return;\n }\n\n const maxVisibleCards = Math.min(5, this.cards.length);\n const startOffset = Math.floor(maxVisibleCards / 2) * -1;\n const endOffset = maxVisibleCards + startOffset;\n \n this.visibleLogos = [];\n for (let i = startOffset; i < endOffset; i++) {\n const index = (this.currentIndex + i + this.cards.length) % this.cards.length;\n this.visibleLogos.push({\n ...this.cards[index],\n index: index,\n isActive: index === this.currentIndex\n });\n }\n }\n}\n","<!-- card-carousel.component.html -->\n<div class=\"carousel-container\">\n <div class=\"carousel-top-wrapper\">\n <div class=\"controls\">\n @if (showIndicators) {\n <div class=\"dots\">\n @for (card of cards; track card.id; let i = $index) {\n <span class=\"dot\" [class.active]=\"i === currentIndex\" (click)=\"selectCard(i)\"></span>\n }\n </div>\n }\n @if (showNavigationArrows) {\n <div class=\"arrow-controls\">\n <sa-icon [icon]=\"'leftChevronCircle'\" size=\"24\" (click)=\"prev()\"></sa-icon>\n <sa-icon [icon]=\"'rightChevronCircle'\" size=\"24\" (click)=\"next()\"></sa-icon>\n </div>\n }\n </div>\n\n <div class=\"card-container\">\n @if (cards[currentIndex]) {\n <sa-card [customWrapperClass]=\"'sa-card-custom-wrapper'\" [width]=\"'24.063rem'\" [column]=\"false\"\n [showCardHeader]=\"true\" [showCardBody]=\"true\" [body]=\"cards[currentIndex]?.body\"\n [showHeaderBodyDivider]=\"true\">\n <sa-card-title-header>\n <div class=\"sa-card-custom-header-container\">\n <sa-avatar [altText]=\"cards[currentIndex]?.altText\" [imagePath]=\"cards[currentIndex]?.avatarIcon\" [size]=\"'extra-large'\"></sa-avatar>\n <div class=\"sa-card-title-subtitle-container\">\n <div class=\"sa-card-custom-title\">{{ cards[currentIndex]?.title }}</div>\n <div class=\"sa-card-subtitle\">{{ cards[currentIndex]?.subtitle }}</div>\n </div>\n <div class=\"sa-card-titleIcon\">\n <sa-icon [icon]=\"cards[currentIndex]?.logoIcon\" [iconUrl]=\"cards[currentIndex]?.logoUrl\" [size]=\"cards[currentIndex]?.logoSize || '50'\" customClass=\"logo-style\"></sa-icon>\n </div>\n </div>\n </sa-card-title-header>\n </sa-card>\n }\n </div>\n </div>\n\n @if (showBrandFooter) {\n <div class=\"brand-logos-container\">\n <div class=\"brand-logos\">\n @for (logo of visibleLogos; track logo.id) {\n <div> \n <sa-icon [icon]=\"logo.logoIcon\" [iconUrl]=\"logo.logoUrl\" [size]=\"logo.logoSize || '50'\" [class.active]=\"logo.isActive\" (click)=\"selectCard(logo.index)\"\n [customClass]=\"'logo-style'\">\n </sa-icon>\n </div>\n }\n </div>\n </div>\n }\n</div>","import { Component } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { isObservable, of } from 'rxjs';\nimport { includes as _includes } from 'lodash'\n\n@Component({\n selector: 'sa-checkbox',\n standalone: true,\n imports: [MatChipsModule, CommonModule, FormsModule],\n templateUrl: './checkbox.component.html',\n styleUrl: './checkbox.component.css'\n})\nexport class CheckboxComponent extends FieldType {\n toggleSelection(option: any): void {\n const selected = this.formControl.value || [];\n const index = selected.indexOf(option.value);\n if (index === -1) {\n selected.push(option.value);\n } else {\n selected.splice(index, 1);\n }\n this.formControl.setValue([...selected]);\n }\n\n // Checks if an option is selected\n isSelected(option: any): boolean {\n return _includes((this.formControl.value || []), option.value);\n }\n\n get options$() {\n const options = this.props?.options;\n return isObservable(options) ? options : of(options || []);\n }\n\n}\n","<div class=\"checkbox-container\">\n <div class=\"title-container\">\n @if(props['label']){\n <div class=\"form-field-title\">\n <span>{{ props['label'] }}</span>\n </div>\n }\n @if(props['description']){\n <div class=\"form-field-description\">\n <span>{{ props['description'] }}</span>\n </div>\n }\n </div>\n <div class=\"form-field\">\n <mat-chip-listbox selectable multiple [disabled]=\"props.disabled\" aria-label=\"Select options\">\n <mat-chip-option *ngFor=\"let option of options$ | async\" class=\"custom-chip\" [value]=\"option.value\"\n (click)=\"toggleSelection(option)\" [selected]=\"isSelected(option)\">\n {{ option.label }}\n </mat-chip-option>\n </mat-chip-listbox>\n </div>\n @if(props['helpText']){\n <div class=\"form-field-helpText\">\n <span>{{ props['helpText'] }}</span>\n </div>\n }\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-component-library',\n standalone: true,\n imports: [],\n template: `\n <p>\n component-library works!\n </p>\n `,\n styles: ``\n})\nexport class TestLibraryComponent {\n\n}\n","\nimport { Component, Input, OnInit, Output, EventEmitter, OnDestroy } from '@angular/core';\n\n@Component({\n selector: 'sa-dashboard-loader',\n standalone: true,\n imports: [],\n templateUrl: './dashboard-loader.component.html',\n styleUrl: './dashboard-loader.component.css',\n host: {\n '[style.--animation-duration]': 'animationDuration + \"s\"'\n }\n})\nexport class DashboardLoaderComponent implements OnInit, OnDestroy {\n @Input() animationDuration = 6; // Default duration in seconds\n @Output() animationCycleComplete = new EventEmitter<void>();\n\n private animationInterval: any;\n\n ngOnInit() {\n if (this.animationDuration <= 0) {\n console.warn('Animation duration must be greater than 0. Using default value of 6s.');\n this.animationDuration = 6;\n }\n\n // Emit event at the end of each animation cycle\n this.animationInterval = setInterval(() => {\n this.animationCycleComplete.emit();\n }, this.animationDuration * 1000);\n }\n\n ngOnDestroy() {\n if (this.animationInterval) {\n clearInterval(this.animationInterval);\n }\n }\n}\n","<span class=\"loader\"></span>","import { Component, Input } from '@angular/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { NgFor } from '@angular/common';\nimport { NgIf } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FieldTypeConfig } from '@ngx-formly/core';\nimport { CalendarHeaderComponent } from '../calendar-header/calendar-header.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'sa-datepicker',\n standalone: true,\n providers: [],\n imports: [\n MatFormFieldModule,\n MatInputModule,\n MatDatepickerModule,\n NgFor,\n NgIf,\n ReactiveFormsModule,\n CalendarHeaderComponent,\n CommonModule,\n MatNativeDateModule\n ],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.css'\n})\nexport class DatepickerComponent extends FieldType<FieldTypeConfig> {\n @Input() range: any;\n\n readonly CalendarHeaderComponent = CalendarHeaderComponent;\n\n}\n","<mat-form-field class=\"date-picker\">\n <mat-label>Choose a date</mat-label>\n <mat-date-range-input [rangePicker]=\"picker\" [formGroup]=\"range\">\n <input formControlName=\"start\" matStartDate placeholder=\"Start date\">\n <input formControlName=\"end\" matEndDate placeholder=\"End date\">\n </mat-date-range-input>\n <mat-hint>MM/DD/YYYY</mat-hint>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker [calendarHeaderComponent]=\"CalendarHeaderComponent\" #picker>\n </mat-date-range-picker>\n</mat-form-field>\n","import { Component, Input, computed, signal, effect, EventEmitter, Output, SimpleChanges, OnChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconService } from '../icon/icon.service';\nimport { ButtonComponent } from '../button/button.component';\nimport { IconName } from '../../interfaces/icon-interface';\nimport { ButtonIconPosition, ButtonSize, ButtonType, ButtonInterface, ButtonClickEvent } from '../../interfaces/button-interface';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconComponent } from '../icon/icon.component';\n\ninterface MessageBannerState {\n type: 'default' | 'connection' | 'access' | 'accessRestricted';\n title: string;\n description: string;\n messageIcon: string;\n messageIconSize?: {\n width?: string;\n height?: string;\n };\n spacingBetweenImageAndDescription?: string;\n contentGap?: string; \n contactUrl?: string;\n titleClass?: string;\n descriptionClass?: string;\n}\n\n@Component({\n selector: 'sa-message-banner-v2',\n standalone: true,\n imports: [CommonModule, IconComponent, ButtonComponent, HttpClientModule],\n providers: [IconService],\n templateUrl: './message-banner-v2.component.html',\n styleUrls: ['./message-banner-v2.component.css']\n})\nexport class MessageBannerV2Component implements OnChanges {\n // State management using signals\n private state = signal<MessageBannerState>({\n type: 'default',\n title: '',\n description: '',\n messageIcon: '',\n messageIconSize: {\n height: '12.5rem'\n }\n });\n\n // Computed properties\n protected bannerContent = computed(() => {\n const currentState = this.state();\n return {\n ...currentState,\n description: this.sanitizeDescription(currentState.description)\n };\n });\n\n @Input() messageType: 'default' | 'connection' | 'access' | 'accessRestricted';\n @Input() contactUrl?: string;\n @Input() spacingBetweenImageAndDescription?: string;\n @Input() contentGap?: string;\n @Input() titleClass?: string;\n @Input() descriptionClass?: string;\n\n\n @Input() set messageIcon(value: string) {\n this.state.update(s => ({ ...s, messageIcon: value }));\n }\n\n @Input() set messageIconSize(value: { width?: string; height?: string }) {\n this.state.update(s => ({ ...s, messageIconSize: value }));\n }\n\n @Input() set title(value: string) {\n this.state.update(s => ({ ...s, title: value }));\n }\n\n @Input() set description(value: string) {\n this.state.update(s => ({ ...s, description: value }));\n }\n\n @Input() buttons: ButtonInterface[] = [];\n @Output() buttonClick = new EventEmitter<ButtonClickEvent>();\n\n ngOnChanges(changes: SimpleChanges): void {\n // Check if this is the first initialization or if messageType has changed\n const shouldUpdateBasedOnType = changes['messageType'] && \n // Only update based on type if we don't have custom values set\n !(this.state().title || this.state().description || this.state().messageIcon);\n \n if (shouldUpdateBasedOnType) {\n this.updateContentBasedOnType(this.messageType || 'default');\n }\n }\n\n private updateContentBasedOnType(type: 'default' | 'connection' | 'access' | 'accessRestricted') {\n // Define a type for the content items to ensure all properties are properly typed\n type ContentItem = {\n title: string;\n description: string;\n messageIcon: string;\n spacingBetweenImageAndDescription?: string;\n contentGap?: string;\n titleClass?: string;\n descriptionClass?: string;\n };\n\n // Only apply default content if custom content hasn't been provided\n const currentState = this.state();\n const content: Record<'default' | 'connection' | 'access' | 'accessRestricted', ContentItem> = {\n default: {\n title: 'Oops! Something went wrong. Please try again or try after some time',\n description: 'If the issue persists, contact our support team at <span class=\"support-email\">support@sarasanalytics.com</span>',\n messageIcon: '/assets/error.gif'\n },\n connection: {\n title: 'We\\'re having trouble connecting. Please check your internet connection and try again',\n description: 'You can also reach out to our support team at <span class=\"support-email\">support@sarasanalytics.com</span> for assistance',\n messageIcon: '/assets/lost-connection.gif'\n },\n access: {\n title: 'This is taking a bit longer than usual. Please hold on!',\n description: 'If the delay continues, check your connection and try refreshing the page.',\n messageIcon: '/assets/long-loading.gif'\n },\n accessRestricted: {\n title: 'Access Restricted!',\n description: `Looks like you don't have access to this module just yet. No worries—reach out to your admin to request access to this feature. If you're facing any issues, feel free to <a class=\"custom-contact-link\" href=\"${this.contactUrl ?? 'https://support.default.com'}\" target=\"_blank\">Contact Us</a>.`,\n messageIcon: '/assets/access-restricted.gif',\n spacingBetweenImageAndDescription: '0px',\n contentGap:'20px',\n titleClass: 'access-restricted-title',\n descriptionClass: 'access-restricted-description',\n }\n };\n\n const contentItem = content[type];\n\n this.state.update(s => ({\n ...s,\n type,\n // Only apply default values if custom values haven't been provided\n title: s.title || contentItem.title,\n description: s.description || contentItem.description,\n messageIcon: s.messageIcon || contentItem.messageIcon,\n // For other properties, only apply them if they exist in the contentItem\n ...(contentItem.spacingBetweenImageAndDescription && { spacingBetweenImageAndDescription: contentItem.spacingBetweenImageAndDescription }),\n ...(contentItem.contentGap && { contentGap: contentItem.contentGap }),\n ...(contentItem.titleClass && { titleClass: contentItem.titleClass }),\n ...(contentItem.descriptionClass && { descriptionClass: contentItem.descriptionClass })\n }));\n }\n\n private sanitizeDescription(description: string): string {\n return description.replace(\n /support@sarasanalytics\\.com/g,\n '<span class=\"support-email\">support@sarasanalytics.com</span>'\n );\n }\n\n onButtonClick(button: ButtonInterface, event: Event): void {\n this.buttonClick.emit({\n type: button.type as 'primary' | 'secondary',\n button,\n originalEvent: event\n });\n }\n}\n","@if (bannerContent(); as content) {\n <div class=\"error-page message-banner-v2\">\n <div class=\"content-container\" \n [ngStyle]=\"{ gap: contentGap || 'var(--medium-32px, 32px)' }\">\n <div class=\"image-container\"\n [ngStyle]=\"{ 'margin-bottom': spacingBetweenImageAndDescription ?? 'var(--small-16px, 16px)' }\">\n <img [src]=\"content.messageIcon\" \n [alt]=\"content.type + ' image'\"\n [style.--message-icon-height]=\"content.messageIconSize?.height\"\n [style.--message-icon-width]=\"content.messageIconSize?.width\" />\n </div>\n <div class=\"details\">\n <div class=\"title-description\">\n <div class=\"title-class\" [ngClass]=\"titleClass || 'title-class'\" [innerHTML]=\"content.title\"></div>\n <p class=\"description\" [ngClass]=\"descriptionClass || 'description'\" [innerHTML]=\"content.description\"></p>\n </div>\n @if(buttons){\n <div class=\"button-group\">\n @for (button of buttons; track button.text) {\n <sa-button \n [text]=\"button.text\"\n [icon]=\"button.icon\"\n [size]=\"button.size\"\n [type]=\"button.type\"\n [iconPosition]=\"button.iconPosition\"\n [buttonIconSize]=\"button.buttonIconSize\"\n (onClickEvent)=\"onButtonClick(button, $event)\"\n role=\"button\"\n [attr.aria-label]=\"button.text\">\n </sa-button>\n }\n </div>\n }\n </div>\n </div>\n </div>\n}\n","import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output } from '@angular/core';\nimport { MessageBannerComponent } from '../message-banner/message-banner.component';\nimport { ButtonClickEvent, ButtonInterface } from '../../interfaces/button-interface';\nimport { MessageBannerV2Component } from '../message-banner-v2/message-banner-v2.component';\nimport { CommonModule } from '@angular/common';\nimport { ButtonComponent } from '../button/button.component';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { IconComponent } from '../icon/icon.component';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'sa-dialog',\n standalone: true,\n imports: [MessageBannerComponent, MessageBannerV2Component, CommonModule, ButtonComponent, MatCheckboxModule, IconComponent, MatDialogModule],\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.css']\n})\nexport class DialogComponent {\n @Input() dialogData: {\n topMessageBanners?: any[];\n middleRegion?: any;\n lowerMessageBanners?: any[];\n buttons?: ButtonInterface[];\n buttonsWithType?: any[];\n closeButton?: string;\n showCloseButton?: boolean;\n };\n\n @Output() dialogButtonClick = new EventEmitter();\n\n constructor(\n @Optional() public dialogRef: MatDialogRef<DialogComponent>,\n @Optional() @Inject(MAT_DIALOG_DATA) public data: any\n ) {\n if (this.data) {\n this.dialogData = this.data;\n }\n }\n\n onButtonClick(button: any, event?: any): void {\n if (event?.evt) {\n event?.evt.preventDefault();\n event?.evt.stopPropagation();\n }\n this.dialogButtonClick.emit({event, button});\n }\n\n handleButtonClick(event: ButtonClickEvent) {\n this.dialogButtonClick.emit({event});\n }\n\n onCloseButtonClick(event: Event): void {\n this.dialogButtonClick.emit({ event: event, type: 'close' });\n }\n}\n","<div class=\"dialog-container\">\n <!-- top banner region -->\n <div class=\"top-container\">\n @if (!!dialogData?.topMessageBanners) {\n <div class=\"top-message-container\">\n @for (\n messageBanner of dialogData?.topMessageBanners;\n track messageBanner.content\n ) {\n <sa-message-banner\n [type]=\"messageBanner?.type\"\n [bannerIcon]=\"messageBanner?.bannerIcon\"\n [bannerIconSize]=\"messageBanner?.bannerIconSize || '24'\"\n [button]=\"messageBanner?.button\"\n (actionClick)=\"onButtonClick(messageBanner?.button, $event)\"\n [style]=\"messageBanner?.style || 'width:39.438rem'\"\n >\n <div class=\"{{ messageBanner?.className }} message-content-style\">\n {{ messageBanner?.content }}\n </div>\n </sa-message-banner>\n }\n </div>\n }\n @if (!!dialogData?.closeButton || dialogData?.showCloseButton) {\n <div class=\"cross-btn\" (click)=\"onCloseButtonClick($event)\">\n <sa-icon\n [icon]=\"dialogData?.closeButton || 'closeOutlined'\"\n class=\"d-flex\"\n size=\"20\"\n ></sa-icon>\n </div>\n }\n </div>\n <!-- middle region -->\n @if (!!dialogData?.middleRegion) {\n <ng-container *ngIf=\"dialogData?.middleRegion as middleRegion\">\n <div class=\"image-description-container {{ middleRegion?.className }}\">\n <sa-message-banner-v2\n [messageType]=\"middleRegion?.messageType || 'default'\"\n [messageIcon]=\"middleRegion?.messageIcon\"\n [messageIconSize]=\"middleRegion?.messageIconSize\"\n [title]=\"middleRegion?.title\"\n [description]=\"middleRegion?.description\"\n [buttons]=\"middleRegion?.buttons\"\n (buttonClick)=\"middleRegion?.buttons ? onButtonClick($event) : ''\"\n >\n </sa-message-banner-v2>\n </div>\n </ng-container>\n }\n <!-- lower message banner region -->\n @if (!!dialogData?.lowerMessageBanners) {\n <div class=\"lower-message-container\">\n @for (\n messageBanner of dialogData?.lowerMessageBanners;\n track messageBanner.content\n ) {\n <sa-message-banner\n [type]=\"messageBanner?.type\"\n [bannerIcon]=\"messageBanner?.bannerIcon\"\n [buttonIcon]=\"messageBanner?.buttonIcon\"\n [bannerIconSize]=\"messageBanner?.bannerIconSize || '24'\"\n [button]=\"messageBanner?.button\"\n [style]=\"messageBanner?.style || 'width:-webkit-fill-available'\"\n (actionClick)=\"onButtonClick(messageBanner?.button, $event)\"\n >\n <div\n class=\"{{ messageBanner?.className }} message-content-style\"\n ></div>\n {{ messageBanner?.content }}\n </sa-message-banner>\n }\n </div>\n }\n <!-- button region -->\n @if (!!dialogData?.buttons) {\n <div class=\"button-group-container\">\n @for (button of dialogData?.buttons; track button.text) {\n <sa-button\n [text]=\"button.text\"\n [icon]=\"button.icon\"\n [size]=\"button.size\"\n [type]=\"button.type\"\n [iconPosition]=\"button.iconPosition\"\n [buttonIconSize]=\"button.buttonIconSize\"\n (onClickEvent)=\"onButtonClick(button, $event)\"\n role=\"button\"\n [attr.aria-label]=\"button.text\"\n >\n </sa-button>\n }\n </div>\n }\n @if (!!dialogData?.buttonsWithType) {\n <div class=\"buttonWithType-group-container\">\n @for (button of dialogData?.buttonsWithType; track button.text) {\n @if (button?.type === \"checkbox\") {\n <div class=\"checkbox-container {{ button.className }}\">\n <mat-checkbox [id]=\"button.id\" (change)=\"onButtonClick(button)\" class=\"checkbox-style\">{{\n button.text\n }}</mat-checkbox>\n </div>\n }\n }\n </div>\n }\n</div>\n","import { AbstractControl, AsyncValidatorFn, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { catchError, debounceTime, delay, distinctUntilChanged, map, Observable, of, Subject, switchMap } from 'rxjs';\nimport { get as _get, find as _find, has as _has, keys as _keys, startCase as _startCase } from 'lodash';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\n\nexport function phoneNumberValidator(dependent?: string): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const dependentFormControl = dependent ? control.parent?.get(dependent) : null;\n if (dependentFormControl && !!dependentFormControl.value?.length) {\n console.log('validator', dependentFormControl.value);\n\n if (dependentFormControl.value[0].id === 0) {\n if (!/^\\+1[2-9]\\d{2}[2-9]\\d{6}$/.test(control.value)) {\n return { invalid: 'invalid phone number' };\n }\n }\n }\n return null;\n }\n}\n\nexport const customEmailValidator = (\n control: AbstractControl\n): { [key: string]: string } | null => {\n const email = control.value;\n // Replace the regular expression with the pattern you want to use.\n\n const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/;\n\n if (emailPattern.test(email) && isWorkEmail(email)) {\n return null; // Valid email\n } else {\n return {\n invalid:\n 'Please use a work email; personal emails (e.g., @gmail, @yahoo) are not accepted.',\n }; // Invalid email\n }\n};\nconst isWorkEmail = (email: string): boolean => {\n const invalidEmailHosts: string[] = ['gmail', 'yahoo', 'hotmail'];\n if (email) {\n let [userName, domainName] = email.split('@');\n for (let i = 0; i < invalidEmailHosts.length; i++) {\n let re = new RegExp(`.*${invalidEmailHosts[i]}\\..*`);\n if (re.test(domainName)) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n/*\nexport function workEmailValidation(): AsyncValidatorFn {\n return (control: AbstractControl): Observable<ValidationErrors | null> => {\n if (!control.value) {\n return of(null); // No value to validate\n }\n\n !control.pending && control.markAsPending();\n // !control.touched && control.markAsTouched();\n // return of({ invalid: 'Enter your work email' });\n return of(null);\n return new Observable((ob) => {\n setTimeout(() => {\n if (control.value === 'sairaj@gmail.com')\n return ob.next(null)\n return ob.next({ invalid: 'This is not a workemail' });\n }, 500)\n });\n\n return of(control.value).pipe(\n delay(500), // Simulate network delay\n\n map(value => {\n return of({ invalid: 'This is not a workemail' })//existingUsernames.includes(username) ? { usernameTaken: true } : null;\n })\n // catchError(() => of(null)) // Handle any errors\n );\n };\n}*/\nexport function getValidationMessage(errors: any, placeholder: string = 'Input', additionalProperties?: any): string {\n const messages = _get(additionalProperties, 'nativeValidationObject.messages', {});\n const field = _get(additionalProperties, 'field', {});\n \n if (errors) {\n // Check if any key in errors matches with messages using lodash\n const matchingKey = _find(_keys(errors), key => _has(messages, key));\n if (matchingKey && messages[matchingKey]) {\n // If message is a function, execute it with errors and nativeValidationObject\n if (typeof messages[matchingKey] === 'function') {\n return messages[matchingKey](errors[matchingKey], field);\n }\n return messages[matchingKey];\n }\n \n // Fall back to default messages\n if (errors['minlength']) {\n return `Minimum ${errors['minlength']['requiredLength']} characters required`;\n } else if (errors['maxlength']) {\n return `Maximum of ${errors['maxlength']['requiredLength']} characters accepted`;\n } else if (errors['required']) {\n return `${placeholder} cannot be empty`;\n } else if (errors['invalid']) {\n return errors['invalid'];\n } else if (errors['email']) {\n return 'Enter a valid email';\n } else if (errors['pattern']) {\n return 'Enter a valid phone number';\n } else {\n return `Invalid ${placeholder}`;\n }\n }\n return `Invalid ${placeholder}`;\n}\n\nexport function numberRangeValidator(range: { min: number; max: number }, type = null): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n let value = control.value;\n\n if (type === 'percentage' && typeof value === 'string') {\n value = value.replace('%', '');\n }\n\n // Convert to a number if it's not null or undefined\n const numericValue = value !== null && value !== undefined ? parseFloat(value) : NaN;\n\n // Check if the value is a valid number and within the range\n if (isNaN(numericValue) || numericValue < range.min || numericValue > range.max) {\n return {\n invalid: `Please enter a valid number between ${range.min} and ${range.max}`\n };\n }\n\n return null;\n }\n}\n\nexport const requiredValidatorMessage = (error: any, field: FormlyFieldConfig) => {\n return `${_startCase(_get(field, 'props.label'))} is required.`;\n}","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n FormsModule,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FieldType, FieldTypeConfig } from '@ngx-formly/core';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { CommonModule } from '@angular/common';\nimport {\n getValidationMessage,\n phoneNumberValidator,\n} from '../../utils/validators';\nimport { IconComponent } from '../icon/icon.component';\nimport { get as _get, set as _set } from 'lodash';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n@Component({\n selector: 'sa-input',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n FormlyModule,\n IconComponent,\n MatTooltipModule\n ],\n templateUrl: './form-input.component.html',\n styleUrl: './form-input.component.css',\n})\nexport class FormInputComponent extends FieldType<FieldTypeConfig> {\n @ViewChild('formInput') formInput!: ElementRef;\n\n @Input('icon') icon: IInputIcon;\n\n pretext: string;\n\n inputState = 'idle';\n inputVal = '';\n params: IInputParam | null;\n dependent: AbstractControl<any, any> | null;\n dependentVal: any = null;\n // dynamicIcon: DynamicIcon | null;\n // icon: IInputIcon | null;\n\n type: string = '';\n validators: any[];\n asyncValidators: any[];\n\n inputErrorText: string = 'invalid input';\n\n showEmailIcon: boolean = false;\n disabled: boolean = false;\n\n private suppressOnBlur = false;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.inputVal =\n this.field.props['value'] || this.model[this.key as string] || '';\n this.disabled = this.field.props.disabled || false;\n this.formControl?.setValue(this.inputVal);\n\n this.params = this.field.props['params'];\n this.icon = this.field.props['icon'] || {};\n this.type = this.params?.type || '';\n\n // this.dynamicIcon = this.field.props['dynamicIcon'];\n this.setValidators();\n this.setDependents();\n\n this.formControl.statusChanges.subscribe((state) => {\n if (this.type === 'email') {\n if (!!this.inputVal && !this.formControl.touched) {\n this.formControl.markAsTouched();\n }\n this.showEmailIcon =\n state === 'VALID' ||\n (state === 'INVALID' &&\n this.formControl.hasError('invalid') &&\n !!this.formControl.value);\n }\n });\n this.formControl.valueChanges.subscribe((val) => {\n _set(this.formInput, 'nativeElement.value', val);\n });\n }\n\n setValidators() {\n this.validators = this.params?.validators || this.predefinedValidators[this.type] || [];\n this.asyncValidators = this.params?.asyncValidators || [];\n if(!_get(this.field, 'validators.validation', null)) {\n this.formControl?.setValidators([\n ...(this.type ? this.predefinedValidators[this.type] || [] : []),\n ...(this.validators),\n ]);\n }\n if (this.asyncValidators) {\n this.formControl?.setAsyncValidators(this.asyncValidators);\n }\n }\n\n /*\n Assuming dependent field is a single select dropdown\n */\n setDependents() {\n if (this.params?.dependent) {\n this.dependent = this.form.get([this.params?.dependent]);\n\n this.dependentVal = this.getDependentVal(_get(this.dependent, 'value'));\n if (this.type === 'tel') {\n this.pretext = this.dependentVal?.dial_code;\n }\n\n this.dependent?.valueChanges.subscribe((val) => {\n this.dependentVal = this.getDependentVal(val);\n this.formControl.reset();\n this.formControl.setValue(this.inputVal);\n if (this.type === 'tel') {\n this.pretext = this.dependentVal?.dial_code;\n }\n });\n }\n }\n getDependentVal(value: any) {\n let dependentValue: any;\n if (Array.isArray(value)) {\n dependentValue = value.length ? value[0] : null;\n } else {\n dependentValue = value;\n }\n return dependentValue;\n }\n\n checkValidity(defaultInputState = 'focus') {\n if (\n this.formControl &&\n !this.formControl.valid &&\n this.formControl.touched &&\n !this.formControl.pending\n ) {\n this.inputState = 'invalid';\n this.inputErrorText =\n getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input', {\n field: this.field,\n nativeValidationObject: this.field.validation,\n }) || `invalid ${this.params?.placeholder || this.field.props?.label || 'input'}`\n } else {\n this.inputState = defaultInputState;\n }\n }\n\n onFocus() {\n if (this.formControl.valid) this.inputState = 'focus';\n }\n onBlur() {\n setTimeout(() => {\n if (!this.suppressOnBlur) {\n this.formControl.markAsTouched();\n this.checkValidity('idle');\n }\n this.suppressOnBlur = false;\n }, 200);\n }\n\n onInput(event: any) {\n if (this.params?.type === 'tel') {\n this.inputVal = this.inputVal.replace(/[^0-9()+\\- ]/g, '');\n this.inputVal = this.hyphenatePhoneNumber();\n }\n if (this.params?.type === 'percentage') {\n let value = this.inputVal.replace(/[^0-9.]/g, '');\n this.inputVal = value ? `${value}%` : '';\n }\n this.formControl?.setValue(this.inputVal);\n this.checkValidity();\n /*if (this.params?.eventListener) {\n this.params?.eventListener({\n type: IInputEventType.INPUT_CHANGE,\n value: this.inputVal,\n formControl: this.formControl\n } as IInputEvent).then(this.onFieldCallback.bind(this));\n }*/\n }\n\n hyphenatePhoneNumber() {\n let newStr = '';\n let i = 0;\n let hyphenatedCount = 1;\n const value = this.inputVal.replaceAll('-', '');\n for (; i < value.length; i++) {\n newStr = newStr + value.charAt(i);\n if (!(hyphenatedCount % 3)) {\n if (!((i + 1) % 10) && i + 1 < value.length) {\n newStr = newStr + '-';\n hyphenatedCount++;\n }\n } else if (\n !((i + 1 - Math.floor(hyphenatedCount / 3)) % 3) &&\n i + 1 < value.length\n ) {\n newStr = newStr + '-';\n hyphenatedCount++;\n }\n }\n\n return newStr;\n }\n\n onInputFieldClick(event: any = 'input') {\n if (\n event === 'input' ||\n event.target.classList.contains('sa-input-field')\n ) {\n this.formInput.nativeElement.focus();\n if (this.params?.type !== 'email')\n setTimeout(() => {\n this.formInput.nativeElement.setSelectionRange(\n this.inputVal.length,\n this.inputVal.length,\n );\n }, 10);\n }\n }\n\n inputIconClick() {\n if (this.params?.type === 'password') {\n this.suppressOnBlur = true;\n if (this.type === 'password') {\n this.type = 'text';\n this.icon.name = 'eyeOff';\n } else {\n this.type = 'password';\n this.icon.name = 'eyeOutlined';\n }\n this.onInputFieldClick();\n }\n }\n\n /*onFieldCallback(param: IInputParam) {\n this.icon = param.icon || this.icon;\n this.checkValidity();\n }*/\n\n getFormSupportText() {\n if (this.formControl.invalid && this.formControl.touched) {\n return (\n getValidationMessage(this.formControl.errors, this.params?.placeholder || this.field.props?.label || 'Input',{\n field: this.field,\n nativeValidationObject: _get(this.field, 'validation'),\n }) ||\n `invalid ${this.params?.placeholder || this.field.props?.label || 'input'}`\n );\n } else {\n return this.params?.supportText || '';\n }\n }\n\n predefinedValidators: any = {\n email: [Validators.email, Validators.required],\n password: [Validators.required],\n tel: [Validators.pattern('^[0-9 +\\\\-()]*$')],\n };\n\n getLabelFieldGap(): string {\n if (this.props?.['bigLabel']) {\n return 'var(--medium-20px)';\n } else if (this.props?.['label']) {\n return 'var(--small-4px)';\n } else {\n return '0px'; // No gap\n }\n }\n}\n\nexport interface IInputIcon {\n name: string;\n show?: boolean;\n color?: string;\n size?: string;\n}\n\nexport interface IInputParam {\n validators?: any[];\n asyncValidators?: any[];\n supportText?: string;\n placeholder?: string;\n type?: string;\n dependent?: string;\n eventListener?: Function;\n icon?: IInputIcon;\n errors?: { [key: string]: any };\n className?: string;\n}\nexport interface IInputEvent {\n type: IInputEventType;\n value: string;\n callBack: any;\n formControl: FormControl;\n}\nexport enum IInputEventType {\n INPUT_CHANGE = 'INPUT_CHANGE',\n STATE_CHANGE = 'STATE_CHANGE',\n ICON_CLICK = 'ICON_CLICK',\n}\n","<div class=\"sa-input-container {{props?.['inputContainerClass']}}\" [ngStyle]=\"{'gap': getLabelFieldGap()}\">\n @if (!!props?.['bigLabel'] || !!props?.['bigDescription']) {\n <div class=\"sa-input-big-label-container\" [ngClass]=\"disabled ? 'disabled' : '' \">\n <h2 class=\"sa-input-big-label\">\n {{props?.['bigLabel']}}\n </h2>\n <p class=\"sa-input-big-description\">\n {{props?.['bigDescription']}}\n </p>\n </div>\n }\n @if(!!props?.['label']){\n <div class=\"sa-input-label-container\" [ngClass]=\"disabled ? 'disabled' : '' \">\n <div class=\"sa-input-label-tooltip-container\">\n <span class=\"sa-input-label\">\n {{props?.['label']}}\n </span>\n @if(!!props?.['tooltip']){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"props?.['tooltipIcon'] || 'infoCircleOutlined'\" customClass=\"info-icon\"\n [matTooltip]=\"props?.['tooltip']\" matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon d-flex\"\n [size]=\"props?.['tooltipIconSize'] || '20'\"></sa-icon>\n </span>\n }\n </div>\n @if(!!props?.['description']) {\n <p class=\"sa-input-description\">\n {{props?.['description']}}\n </p>\n }\n </div>\n }\n <div class=\"sa-input\" [ngClass]=\"disabled ? 'disabled' : '' \">\n @if((pretext || (!!inputVal?.length && (!!params?.placeholder || !!props?.placeholder))) && props?.['showTag']\n !== false){\n <span class=\"sa-input-tag\">{{params?.placeholder || props?.placeholder}}</span>\n }\n <div class=\"sa-input-field\" [ngClass]=\"formControl.invalid && formControl.touched ? 'invalid' : 'idle' \"\n (click)=\"onInputFieldClick($event)\">\n @if(pretext){\n <div class=\"sa-input-pretext\">\n {{pretext}}\n </div>\n }\n\n <input\n [ngClass]=\"(!!inputVal && (params?.type === 'password' || props?.type === 'password') && icon.name !== 'eyeOff') ? 'masked' : ''\"\n matInput [type]=\"type\" value=\"\" [pattern]=\"type==='tel' ? '[0-9]' : '' \"\n [disabled]=\"field.props.disabled || false\"\n [placeholder]=\"!pretext && props?.placeholder || params?.placeholder || ''\" (focus)=\"onFocus()\"\n (blur)=\"onBlur()\" (input)=\"onInput($event)\" [(ngModel)]=\"inputVal\" #formInput />\n\n @if(params?.type === 'password'){\n <sa-icon class=\"flex\" icon=\"eyeOutlined\" [size]=\"icon.size || '24'\" (click)=\"inputIconClick()\"\n [ngClass]=\"!icon.name || icon.name === 'eyeOutlined' ? '' : 'hide'\"></sa-icon>\n <sa-icon class=\"flex\" icon=\"eyeOff\" [size]=\"icon.size || '24'\" (click)=\"inputIconClick()\"\n [ngClass]=\"icon.name === 'eyeOff' ? '' : 'hide'\"></sa-icon>\n }@else if(params?.type === 'email' && icon.show){\n <sa-icon class=\"flex\" [icon]=\"icon.name || 'checkCircleOutlined'\" [size]=\"icon.size || '24'\"\n (click)=\"inputIconClick()\" [ngClass]=\"showEmailIcon ? '' : 'hide'\"></sa-icon>\n }\n @else if(icon?.name){\n <sa-icon class=\"flex\" [icon]=\"icon.name\" [size]=\"icon?.size || '24'\" [color]=\"icon?.color || ''\"\n [ngClass]=\"icon?.show ? '' : 'hide'\"></sa-icon>\n }\n </div>\n @if((!formControl.valid) || (params?.supportText)){\n <div class=\"support-label {{formControl.invalid && formControl.touched ? params?.className : ''}}\" [ngClass]=\"[\n formControl.invalid && formControl.touched ? 'invalid' : 'idle'\n ]\">\n <!-- {{!formControl.valid ? inputErrorText : params.supportText}} -->\n {{getFormSupportText()}}\n </div>\n }\n </div>\n</div>","import { Component, EventEmitter, Output } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FieldType, FieldTypeConfig } from '@ngx-formly/core';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { NgIf, NgFor } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';\nimport { SelectInterface, SelectSubInterface } from '../../public-api';\n\n@Component({\n selector: 'lib-form-select',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n FormlyModule,\n ReactiveFormsModule,\n NgSelectModule,\n ChipsComponent,\n NgIf,\n NgFor,\n MatTooltipModule,\n IconComponent,\n CommonModule,\n MatTooltipModule\n ],\n templateUrl: './form-select.component.html',\n styleUrl: './form-select.component.css'\n})\nexport class FormSelectComponent extends FieldType<FieldTypeConfig> {\n selectables: any;\n params: any;\n\n svgStyle = {};\n openState: boolean = false;\n topLabel: boolean;\n startInd: number = 0;\n labelLimit: number = 2;\n\n placeholderLabel: string;\n @Output('hoverEvent') hoverEvent: EventEmitter<selectHoverEvent> = new EventEmitter();\n\n ngOnInit() {\n this.selectables = this.field.props.options;\n this.params = this.field.props['params'];\n this.placeholderLabel = this.params.label;\n this.svgStyle = {\n '-webkit-mask-image': `url(${this.params.dropIcon})})`,\n 'mask-image': `url(${this.params.dropIcon})`,\n }\n }\n openClose(state: boolean) {\n if (this.field.props.disabled) return;\n this.openState = state;\n if (state || this.formControl.value?.length > 0) {\n this.placeholderLabel = this.params.placeholder\n } else {\n this.placeholderLabel = this.params.label;\n }\n }\n shiftLabel(action: string) {\n if (action == 'clicked') this.startInd++;\n if (action == 'cleared') this.startInd = 0;\n if (action == 'removed' && this.startInd > 0) this.startInd--;\n this.topLabel = this.formControl.value?.length > 0; \n this.placeholderLabel = this.openState || this.formControl.value?.length > 0 \n ? this.params.placeholder \n : this.params.label;\n }\n checkForZero(selected: any, state?: boolean) {\n this.topLabel = selected?.length == 0 ? false : true;\n // console.log(\"test\", this.formControl.value?.length)\n // console.log(\"test\", this.openState)\n // console.log(\"placeholder--- \", this.placeholderLabel)\n // console.log(\"params.label--- \", this.params.label)\n this.openState = state;\n if (state || this.formControl.value?.length > 0) {\n this.placeholderLabel = this.params.placeholder;\n } else {\n this.placeholderLabel = this.params.label;\n }\n }\n mouseHover(item: SelectSubInterface, event: any = null, tooltip: MatTooltip) { // New method for mouseenter event\n this.hoverEvent.emit({\n event,\n item\n });\n if (tooltip) {\n tooltip.show();\n }\n }\n}\n\nexport interface selectHoverEvent {\n event: any,\n item: SelectSubInterface\n}","<div class=\"sa-select-container {{props?.['inputContainerClass']}}\">\n @if(!!props?.['label']){\n <div class=\"sa-select-label-container\">\n <div class=\"sa-select-label-tooltip-container\">\n <span class=\"sa-select-label\">\n {{props?.['label']}}\n </span>\n @if(!!props?.['tooltip']){\n <span class=\"tooltip-container\">\n <sa-icon [icon]=\"props?.['tooltipIcon'] || 'infoCircleOutlined'\" customClass=\"info-icon\"\n [matTooltip]=\"props?.['tooltip']\" matTooltipClass=\"custom-tooltip\" class=\"tooltip-icon d-flex\"\n [size]=\"props?.['tooltipIconSize'] || '20'\"></sa-icon>\n </span>\n }\n </div>\n @if(!!props?.['description']) {\n <p class=\"sa-select-description\">\n {{props?.['description']}}\n </p>\n }\n </div>\n }\n <div class=\"sa-select-field-container\">\n <div [style.visibility]=\"(props?.['showTag'] !== false && (openState || topLabel)) ? 'visible' : 'hidden'\"\n class=\"clicked-label\">{{params.label}}\n </div>\n <div\n class=\"ng-select-field {{openState ? 'activated' : 'idle'}} {{field.props.disabled ? 'disabled' : ''}} {{formControl.valid ? '' : 'invalid'}}\">\n <div role=\"button\" title=\"drop-button\" tabindex=\"0\" class=\"left-icon svg-icon\" [style]=\"svgStyle\"\n (click)=\"openClose(true)\" (blur)=\"openClose(false)\"\n *ngIf=\"(params.dropIconPosition == 'left' || params.dropIconPosition == 'both')\">\n </div>\n <ng-select (change)=\"checkForZero($event)\" (remove)=\"shiftLabel('removed')\" (clear)=\"shiftLabel('cleared')\"\n (search)=\"openClose(true)\" (focus)=\"openClose(true)\" (blur)=\" openClose(false)\" [isOpen]=\"openState\"\n [placeholder]=\"placeholderLabel\" [bindLabel]=\"props?.['bindLabel'] || 'name'\" [bindValue]=\"props?.['bindValue'] || null\" [items]=\"selectables\" [multiple]=\"params?.multiple\"\n [formControl]=\"formControl\" [style] [formlyAttributes]=\"field\" [searchable]=\"field.props['searchable']\">\n <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n <div *ngFor=\"let item of (items ? items.slice(startInd,startInd+labelLimit): [])\">\n <sa-chip (onClickEvent)=\" (!field.props.disabled) ? clear(item) : null\" [id]=\"item.id\"\n [iconPath]=\"params.iconPath\" [text]=\"item.name\" [type]=\"params.type\"\n [state]=\"field.props.disabled ? 'neutral' : params.state\" [filling]=\"params.filling\"\n [iconPosition]=\"params.iconPosition\">\n </sa-chip>\n </div>\n <div (click)=\"shiftLabel('clicked')\" class=\"ng-value overflow-label\"\n *ngIf=\"items.length > (startInd+labelLimit)\">\n <sa-chip text=\"+{{items.length-(startInd+labelLimit)}}\" type=\"regular\" state=\"default\" filling=\"filled\">\n </sa-chip>\n </div>\n <div (click)=\"shiftLabel('cleared')\" *ngIf=\"startInd == items.length-labelLimit\"\n class=\"ng-value overflow-label\">\n <sa-chip text=\"...\" type=\"regular\" state=\"default\" filling=\"filled\">\n </sa-chip>\n </div>\n </ng-template>\n </ng-select>\n <div *ngIf=\"(params.dropIconPosition == 'right' || params.dropIconPosition == 'both')\" class=\"right-icon\">\n <sa-icon [icon]=\"'downChevronOutlined'\" class=\"d-flex\" [size]=\"'18'\" (click)=\"openClose(true)\"\n (blur)=\"openClose(false)\"></sa-icon>\n </div>\n <!-- <div role=\"button\" title=\"drop-button\" tabindex=\"0\" class=\"right-icon svg-icon\" [style]=\"svgStyle\"\n (click)=\"openClose(true)\" (blur)=\"openClose(false)\"\n *ngIf=\"(params.dropIconPosition == 'right' || params.dropIconPosition == 'both')\">\n </div> -->\n\n </div>\n </div>\n @if(!formControl.valid){\n <div class=\"error-message-container\">\n <span class=\"error-message\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </span>\n </div>\n }\n <div class=\"support-label\">{{params.supportText}}</div>\n</div>","import { Component, EventEmitter } from '@angular/core';\nimport { Output } from '@angular/core';\nimport { AvatarComponent } from '../avatar/avatar.component';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { ButtonComponent } from '../button/button.component';\nimport { NgFor } from '@angular/common';\nimport { ICellRendererAngularComp, IHeaderAngularComp } from 'ag-grid-angular';\nimport { GridInterface } from '../../interfaces/grid-interface';\n\n@Component({\n selector: 'lib-grid-cell',\n standalone: true,\n imports: [\n AvatarComponent,\n ChipsComponent,\n ButtonComponent,\n NgFor\n ],\n templateUrl: './grid-cell.component.html',\n styleUrl: './grid-cell.component.css'\n})\nexport class GridCellComponent implements ICellRendererAngularComp, IHeaderAngularComp {\n params: GridInterface;\n rowNum: number;\n\n @Output() onClickButtonEvent = new EventEmitter();\n @Output() onClickChipEvent = new EventEmitter();\n @Output() onClickLinkEvent = new EventEmitter();\n @Output() onClickAvatarEvent = new EventEmitter();\n\n buttonClicked(evt: Event) {\n this.params.buttonClicked && this.params.buttonClicked({ // calls the function passed via params in gridInterface.\n ...evt,\n rowId: this.rowNum\n });\n this.onClickButtonEvent.emit({ ...evt, rowId: this.rowNum }); // this event isn't caught by anything. \n }\n\n // above function behavior is same for all functions in this class\n\n chipClicked(evt: Event) {\n this.params.chipClicked && this.params.chipClicked({\n ...evt,\n rowId: this.rowNum\n });\n this.onClickChipEvent.emit({ ...evt, rowId: this.rowNum });\n }\n\n linkClicked() {\n if (this.params.cellType != \"interactive\") return;\n\n this.params.linkClicked && this.params.linkClicked({ //calling function passed in params with rowId object in arguments\n rowId: this.rowNum\n });\n\n if (this.params.interactiveLink != \"\") {\n if (this.params.interactiveLinkTarget == \"blank\") {\n window.open(this.params.interactiveLink)!;\n }\n else if (this.params.interactiveLinkTarget == \"self\") {\n location.href = this.params.interactiveLink!;\n }\n }\n this.onClickLinkEvent.emit({ rowId: this.rowNum });\n }\n\n avatarClicked(evt: Event) {\n this.params.avatarClicked && this.params.avatarClicked({\n ...evt,\n rowId: this.rowNum\n });\n this.onClickChipEvent.emit({ ...evt, rowId: this.rowNum });\n }\n\n agInit(inParams: any): void { // must exist when class implements ICellRendererAngularComp / IHeaderAngularComp\n\n this.rowNum = inParams.rowIndex;\n this.params = inParams.value; // inParams.value exists when gridCell is rendered as cell, `cellRenderer: GridCellComponent`\n if (inParams.value == undefined) { // inParams.value is undefined when gridCell is rendered as header, `headerComponent: GridCellComponent`, \n this.params = inParams\n }\n // console.log(this.params);\n }\n\n refresh(params: any) { // must exist when class implements ICellRendererAngularComp / IHeaderAngularComp\n return false; // not sure what this return value does.\n }\n\n}\n","<div class=\"grid-cell {{params.cellType}}\">\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewLeadingIcon) ? 'block' : 'none'\" alt=\"\">\n\n <sa-avatar [id]=\"params.avatarConfig?.id\" [altText]=\"params.avatarConfig?.altText\"\n [imagePath]=\"params.avatarConfig?.imagePath\" [size]=\"params.avatarConfig?.size\"\n [style.display]=\"(params.viewAvatar) ? 'block' : 'none'\" (onClickEvent)=\"avatarClicked($event)\">\n </sa-avatar>\n\n <div class=\"grid-text\" [style.display]=\"(params.viewText) ? 'block' : 'none'\">\n <div [style.display]=\"(params.text) ? 'block' : 'none'\" (click)=\"linkClicked()\" class=\"main-text\">{{params.text}}\n </div>\n\n <div [style.display]=\"(params.subText) ? 'block' : 'none'\" class=\"sub-text\">{{params.subText}}</div>\n </div>\n\n <img class=\"icons\" src={{params.iconPath}} [style.display]=\"(params.viewTrailingIcon) ? 'block' : 'none'\" alt=\"\">\n\n\n <sa-chip *ngFor=\"let config of params.chipConfig, let i = index\" [id]=\"config.id\" [filling]=\"config.filling\"\n id=\"chip_{{rowNum}}_{{config.id}}\" [iconPath]=\"config.iconPath\" [iconPosition]=\"config.iconPosition\"\n [largeStateIcon]=\"config.largeStateIcon\" [state]=\"config.state\" [type]=\"config.type\" [text]=\"config.text\"\n [style.display]=\"(params.viewChip) ? 'block' : 'none'\" (onClickEvent)=\"chipClicked($event)\"></sa-chip>\n\n <sa-button [iconPosition]=\"params.buttonConfig?.iconPosition\" [ImagePath]=\"params.buttonConfig?.imagePath\"\n [id]=\"params.buttonConfig?.id\" [size]=\"params.buttonConfig?.size\" [state]=\"params.buttonConfig?.state\"\n [type]=\"params.buttonConfig?.type\" [text]=\"params.buttonConfig?.text\" [href]=\"params.buttonConfig?.href\"\n [hrefTarget]=\"params.buttonConfig?.hrefTarget\" [style.display]=\"(params.viewButton) ? 'block' : 'none'\"\n (onClickEvent)=\"buttonClicked($event)\"></sa-button>\n\n</div>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { ButtonClickEvent, ButtonInterface, ButtonSize, ButtonType } from '../../interfaces/button-interface';\nimport { ButtonComponent } from '../button/button.component';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconService } from '../icon/icon.service';\nimport { ChipInterface } from '../../interfaces/chip-interface';\nimport { HeaderChipConfig, HeaderConfig, HeaderInfoItem } from '../../interfaces/header-interface';\n\n@Component({\n selector: 'sa-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css'],\n standalone: true,\n imports: [IconComponent, ChipsComponent, ButtonComponent, HttpClientModule],\n providers: [IconService]\n})\nexport class HeaderComponent implements OnChanges {\n @Input() header: HeaderConfig = {};\n @Input() chipConfig: HeaderChipConfig[] = [];\n @Input() info: HeaderInfoItem[] = [];\n @Input() buttonHelper?: ButtonInterface;\n @Input() buttonMain?: ButtonInterface;\n\n @Output() buttonClick = new EventEmitter<ButtonClickEvent>();\n\n constructor() { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['header']) {\n this.header = changes['header'].currentValue;\n } else if (changes['chipConfig']) {\n this.chipConfig = changes['chipConfig'].currentValue;\n } else if (changes['info']) {\n this.info = changes['info'].currentValue;\n } else if (changes['buttonHelper']) {\n this.buttonHelper = changes['buttonHelper'].currentValue;\n } else if (changes['buttonMain']) {\n this.buttonMain = changes['buttonMain'].currentValue;\n }\n }\n\n onButtonClick(type: 'primary' | 'secondary', event: Event) {\n const button = type === 'secondary' ? this.buttonHelper : this.buttonMain;\n if (button) {\n this.buttonClick.emit({ type, button, originalEvent: event });\n }\n }\n}\n","<div class=\"header\">\n <div class=\"header-content\">\n @if (header?.text || header?.html || header.icon?.iconUrl) {\n <div class=\"heading\">\n <div class=\"header-name-container\">\n @if (header.icon?.iconUrl) {\n <sa-icon [iconUrl]=\"header?.icon?.iconUrl\" [size]=\"header?.icon?.size || '24px'\" />\n }\n <div class=\"header-name\" [innerHTML]=\"header?.html || header?.text\"></div>\n </div>\n @for(chip of chipConfig; track chip.text) {\n <div>\n <sa-chip \n [id]=\"chip.id\"\n [type]=\"chip.type\"\n [state]=\"chip.state\"\n [filling]=\"chip.filling\"\n [text]=\"chip.text\"\n [iconPosition]=\"chip.iconPosition\"\n [iconPath]=\"chip.iconPath\"\n [largeStateIcon]=\"chip.largeStateIcon\"\n [largeStateText]=\"chip.largeStateText\"\n ></sa-chip>\n </div>\n }\n </div>\n }\n <div class=\"header-info\">\n @for(item of info; track item.text) {\n <div class=\"info-item\">\n @if(item.icon) {\n <img [src]=\"item.icon\" alt=\"\">\n }\n {{item.text}}\n </div>\n }\n </div>\n </div>\n <div class=\"actions\">\n @if(buttonHelper) {\n <sa-button \n (onClickEvent)=\"onButtonClick('secondary', $event)\"\n [id]=\"buttonHelper.id\"\n [text]=\"buttonHelper.text\"\n [type]=\"buttonHelper.type\"\n [size]=\"buttonHelper.size\"\n [state]=\"buttonHelper.state\"\n [ImagePath]=\"buttonHelper.imagePath\"\n [iconPosition]=\"buttonHelper.iconPosition\"\n [href]=\"buttonHelper.href\"\n [hrefTarget]=\"buttonHelper.hrefTarget\"\n [isSubmit]=\"buttonHelper.isSubmit\">\n </sa-button>\n }\n @if(buttonMain) {\n <sa-button\n (onClickEvent)=\"onButtonClick('primary', $event)\"\n [id]=\"buttonMain.id\"\n [text]=\"buttonMain.text\"\n [type]=\"buttonMain.type\"\n [size]=\"buttonMain.size\"\n [state]=\"buttonMain.state\"\n [ImagePath]=\"buttonMain.imagePath\"\n [iconPosition]=\"buttonMain.iconPosition\"\n [href]=\"buttonMain.href\"\n [hrefTarget]=\"buttonMain.hrefTarget\"\n [isSubmit]=\"buttonMain.isSubmit\">\n </sa-button>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { LayoutSectionInterface } from '../../interfaces/layout-section-interface';\nimport { ButtonInterface, ButtonClickEvent } from '../../interfaces/button-interface';\nimport { ChipInterface } from '../../interfaces/chip-interface';\nimport { ButtonComponent } from '../button/button.component';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconService } from '../icon/icon.service';\n\n@Component({\n selector: 'sa-layout-section',\n templateUrl: './layout-section.component.html',\n imports: [\n CommonModule,\n ButtonComponent,\n ChipsComponent,\n IconComponent,\n HttpClientModule\n ],\n providers: [IconService],\n standalone: true,\n styleUrls: ['./layout-section.component.css']\n})\nexport class LayoutSectionComponent {\n @Input() config: LayoutSectionInterface;\n @Output() buttonClick = new EventEmitter<ButtonClickEvent>();\n\n onButtonClick(type: 'primary' | 'secondary', event: Event): void {\n const button = type === 'primary' ? this.config.primaryButton : this.config.secondaryButton;\n if (button) {\n this.buttonClick.emit({ type, button, originalEvent: event });\n }\n }\n} ","<div class=\"layout-section\">\n <div class=\"layout-section__header\">\n <div class=\"layout-section__title\">\n <div class=\"header-name-container\">\n @if (config?.headerIcon?.icon) {\n <sa-icon [style.height]=\"config?.headerIcon.size || '24'\"\n [icon]=\"config?.headerIcon.icon\"\n [size]=\"config?.headerIcon.size || '24'\" />\n }\n <h2>{{ config?.headerText }}</h2>\n </div>\n @if (config?.chips?.length) {\n <div class=\"layout-section__chips\">\n @for (chip of config?.chips; track chip.id) {\n <sa-chip\n [id]=\"chip.id\"\n [text]=\"chip.text\"\n [type]=\"chip.type\"\n [state]=\"chip.state\"\n [filling]=\"chip.filling\"\n [iconPath]=\"chip.iconPath\"\n [iconPosition]=\"chip.iconPosition\"\n [largeStateIcon]=\"chip.largeStateIcon\"\n [largeStateText]=\"chip.largeStateText\">\n </sa-chip>\n }\n </div>\n }\n </div>\n <div class=\"layout-section__actions\">\n @if (config?.secondaryButton) {\n <sa-button \n [id]=\"config.secondaryButton.id\"\n [text]=\"config.secondaryButton.text\"\n [type]=\"config.secondaryButton.type\"\n [state]=\"config.secondaryButton.state\"\n [size]=\"config.secondaryButton.size\"\n [ImagePath]=\"config.secondaryButton.imagePath\"\n [icon]=\"config.secondaryButton.icon\"\n [iconPosition]=\"config.secondaryButton.iconPosition\"\n [href]=\"config.secondaryButton.href\"\n [hrefTarget]=\"config.secondaryButton.hrefTarget\"\n [width]=\"config?.secondaryButton.width\"\n [isSubmit]=\"config.secondaryButton.isSubmit\"\n [buttonIconSize]=\"config.secondaryButton.buttonIconSize\"\n [showSpinner]=\"config.secondaryButton.showSpinner\"\n (onClickEvent)=\"onButtonClick('secondary', $event)\">\n </sa-button>\n }\n @if (config?.primaryButton) {\n <sa-button\n [id]=\"config.primaryButton.id\"\n [text]=\"config.primaryButton.text\"\n [type]=\"config.primaryButton.type\"\n [state]=\"config.primaryButton.state\"\n [size]=\"config.primaryButton.size\"\n [ImagePath]=\"config.primaryButton.imagePath\"\n [icon]=\"config.primaryButton.icon\"\n [iconPosition]=\"config.primaryButton.iconPosition\"\n [href]=\"config.primaryButton.href\"\n [hrefTarget]=\"config.primaryButton.hrefTarget\"\n [width]=\"config.primaryButton.width\"\n [isSubmit]=\"config.primaryButton.isSubmit\"\n [buttonIconSize]=\"config.primaryButton.buttonIconSize\"\n [showSpinner]=\"config.primaryButton.showSpinner\"\n (onClickEvent)=\"onButtonClick('primary', $event)\">\n </sa-button>\n }\n </div>\n </div>\n \n <div class=\"layout-section__content\">\n <ng-content></ng-content>\n </div>\n</div> ","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StatusDotConfig } from '../../interfaces/status-dot.interface';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n selector: 'sa-status-dot',\n standalone: true,\n imports: [CommonModule, MatTooltipModule],\n template: `\n <div [matTooltip]=\"config.tooltip\"\n class=\"status-dot\"\n [class]=\"config.status\"\n [class.outline]=\"config.theme === 'outline'\"\n [style.width.px]=\"config.size\"\n [style.height.px]=\"config.size\">\n </div>\n `,\n styles: [`\n :host {\n display: inline-block;\n }\n \n .status-dot {\n border-radius: 50%;\n display: inline-block;\n cursor: pointer;\n }\n\n .primary {\n background-color: var(--primary-500, #007bff);\n border: 2px solid var(--primary-500, #007bff);\n }\n\n .secondary {\n background-color: var(--secondary-500, #6c757d);\n border: 2px solid var(--secondary-500, #6c757d);\n }\n\n .success {\n background-color: var(--semantic-success-500, #33961F);\n border: 2px solid var(--semantic-success-500, #33961F);\n }\n\n .error {\n background-color: var(--semantic-error-500, #dc3545);\n border: 2px solid var(--semantic-error-500, #dc3545);\n }\n\n .warning {\n background-color: var(--semantic-yellow-600, #DC9408);\n border: 2px solid var(--semantic-yellow-600, #DC9408);\n }\n\n .outline {\n background-color: transparent !important;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class StatusDotComponent {\n @Input() config: StatusDotConfig = {\n status: 'primary',\n size: 16,\n theme: 'filled',\n tooltip: ''\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, EventEmitter, forwardRef, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ChipsComponent } from '../../chips/chips.component';\nimport { IconComponent } from '../../icon/icon.component';\nimport { IMenuItem } from '../../../interfaces/menu.interface';\nimport { StatusDotComponent } from '../../status-dot/status-dot.component';\nimport { MenuDirective } from '../menu.directive';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconService } from '../../icon/icon.service';\n\n@Component({\n selector: 'sa-menu-item',\n standalone: true,\n imports: [CommonModule, ChipsComponent,HttpClientModule, IconComponent, StatusDotComponent,\n forwardRef(() => MenuDirective) \n ],\n providers: [IconService],\n templateUrl: './menu-item.component.html',\n styleUrl: './menu-item.component.css'\n})\nexport class SAMenuItemComponent implements AfterViewInit {\n @Input('item') item: IMenuItem;\n @Input('showRound') showRound: boolean;\n @Output() onEvent: EventEmitter<any> = new EventEmitter();\n @ViewChild(forwardRef(() => MenuDirective)) menuDirective: MenuDirective;\n // @ViewChild(MenuDirective) menuDirective?: MenuDirective;\n\n ngAfterViewInit() {\n if (this.menuDirective) {\n this.menuDirective.onEvent.subscribe((event) => {\n this.onEvent.emit(event); // ✅ re-emit to SAMenuComponent\n });\n }\n }\n\n optionClicked(item: IMenuItem) {\n this.onEvent.emit({ type: 'click', item });\n }\n}\n","<!-- <div mat-menu-item class=\"sa-menu-item\">\n <span>{{item.label}}</span>\n</div> -->\n\n<div class=\"section-item {{item?.sepratorPosition}}\" [ngStyle]=\"{ 'border-radius': showRound ? '5px' : '0' }\" [ngClass]=\"item.isSelected ? 'selected' : ''\" (click)=\"optionClicked(item)\">\n <div class=\"status {{item['className']}}\" [saMenu]=\"item?.subMenu\">\n <sa-status-dot *ngIf=\"item.statusDot\" [config]=\"item?.statusDot\"></sa-status-dot>\n <sa-icon class=\"flex\" *ngIf=\"item.icon\" [icon]=\"item?.icon?.icon\" [iconPath]=\"item['icon']?.iconPath\" [iconUrl]=\"item['icon']?.iconUrl\" [size]=\"item['icon']?.size\" [customClass]=\"item['icon']?.customClass\"></sa-icon>\n <span class=\"sa-groupItem-lable\" >{{item.label}}</span>\n <div *ngIf=\"item?.subMenu\" class=\"flex ml-auto\">\n <sa-icon [icon]=\"'rightChevronOutlined'\" class=\"flex\" [size]=\"'20'\"></sa-icon>\n </div>\n </div>\n <!-- Section for showing chips if chips are available in object -->\n <div *ngIf=\"item.chips\" class=\"tags\">\n @for (itm of item.chips; track $index) {\n <sa-chip *ngIf=\"itm.text\" [type]=\"itm.type\" [state]=\"itm.state\" [filling]=\"itm.filling\"\n [text]=\"itm.text\"></sa-chip>\n <!-- <span [ngClass]=\"itm.status == 'active' ? 'tag-active' : 'tag-inactive'\" class=\"\">{{itm.label}}</span> -->\n }\n </div>\n</div>\n","import {\n Component,\n Input,\n Output,\n SimpleChanges,\n OnChanges,\n EventEmitter,\n ViewChild,\n forwardRef,\n ViewChildren,\n QueryList,\n} from '@angular/core';\nimport {\n MatMenu,\n MatMenuDefaultOptions,\n MatMenuItem,\n MatMenuTrigger,\n} from '@angular/material/menu';\nimport {\n Overlay,\n PositionStrategy,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { CardComponent } from '../card/card.component';\nimport { MenuItem } from '@material-ui/core';\nimport { SAMenuItemComponent } from './menu-list/menu-item.component';\nimport { CommonModule } from '@angular/common';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { IMenu, IMenuItem } from '../../interfaces/menu.interface';\nimport { AvatarComponent} from '../avatar/avatar.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IconService } from '../icon/icon.service';\n@Component({\n selector: 'sa-menu',\n standalone: true,\n imports: [\n CommonModule,\n SAMenuItemComponent,\n MatMenu,\n MatMenuItem,\n ChipsComponent,\n HttpClientModule,\n IconComponent,\n AvatarComponent,\n],\nproviders: [IconService],\n templateUrl: './menu.component.html',\n styleUrl: './menu.component.css',\n // animations: [\n // trigger('slideInOut', [\n // state('in', style({\n // width: '', // When expanded (fully shown)\n // })),\n // state('out', style({\n // width: '0', // When collapsed (hidden)\n // })),\n // transition('in <=> out', [\n // animate('0.2s ease-in-out'), // Animation speed and easing\n // ])\n // ])\n // ]\n})\nexport class SAMenuComponent implements OnChanges {\n @Input() position: 'left' | 'right' | 'top' | 'bottom' = 'bottom'; // Default position\n @Input() menu: IMenu;\n @Input() hostEl: any;\n @Output() onEvent: EventEmitter<any> = new EventEmitter();\n @Output() onKeyUpEvent: EventEmitter<any> = new EventEmitter();\n @Output() closeEvent: EventEmitter<any> = new EventEmitter();\n // @ViewChild('menu', {static: true}) menu;\n isExpanded: boolean = false;\n constructor(\n private overlay: Overlay,\n ) {\n }\n\n \n ngOnChanges(changes: SimpleChanges) {\n if (changes['menu'] && changes['menu'].currentValue) {\n console.log('Menu component detected changes:', changes['menu'].currentValue);\n \n // Reset active tab index if tabs have changed\n if (this.menu?.tabs?.length && this.activeTabIndex >= this.menu.tabs.length) {\n this.activeTabIndex = 0;\n }\n \n // Prevent the menu from closing by stopping propagation of any events\n // that might trigger menu closing during this update cycle\n setTimeout(() => {\n // This ensures the menu stays open after the change detection cycle completes\n console.log('Menu update complete, menu should remain open');\n }, 0);\n }\n }\n\n ngAfterViewInit(): void {\n this.isExpanded = true;\n } \n\n setPosition() {\n // const positions: { [key: string]: ConnectedPosition } = {\n // left: { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'top' },\n // right: { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'top' },\n // top: { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },\n // bottom: { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' }\n // };\n\n // const overlayRef = this.overlay.create();\n // const userProfilePortal = new ComponentPortal(CardComponent);\n // const compRef = overlayRef.attach(userProfilePortal);\n // compRef.instance.title = 'need nduk ra bhai'\n // compRef.instance.body = 'sometime little bit this sometimes little bit that. Comming not comming'\n // compRef.instance.avatar = '../assets/avatar.svg'\n }\n\n itemClicked(event){\n this.onMenuItemClick(null,event.item)\n } \n\n onMenuItemClick(event: any, item: IMenuItem){\n // item.isSelected = !item.isSelected;\n this.onEvent.emit({type: 'CLICK', item, menu: this.menu});\n \n // Close the menu after the item is clicked, just like the close button\n if(item.subMenu === null || item.subMenu === undefined){\n this.closeEvent.emit(event);\n }\n }\n\n onSearch(event: any){\n this.onEvent.emit({type: 'SEARCH', value:event.target.value})\n }\n\n activeTabIndex: number = 0; // Track the active tab index\n\n setActiveTab(index: number,tabname): void {\n this.activeTabIndex = index; // Update the active tab index\n this.onEvent.emit({type: 'TAB_CLICK', activeTab:tabname, menu: this.menu})\n }\n\n\n}\n","<div class=\"sa-menu\" [ngClass]=\"menu.showTray ? 'sa-menu-tray sa-round-border' : ''\"\n [ngStyle]=\"{width: menu.width || 'max-content'}\">\n @if(menu?.title){\n <div class=\"sa-menu-title\">\n <h1>{{menu?.title}}</h1>\n <sa-icon [icon]=\"'closeOutlined'\" [size]=\"'20'\" class=\"sa-menu-close-icon\"\n (click)=\"closeEvent.emit($event)\"></sa-icon>\n </div>\n }\n\n <!-- @if(menu?.itemGroups && menu.itemGroups.length){\n @for (groupItem of menu.itemGroups; track groupItem) {\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n \n @for (item of groupItem.items; track $index) {\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n }\n } @else if(menu?.items && menu.items.length){\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n }\n </div>\n } -->\n\n\n <!-- Tab Content or Item Groups -->\n <div class=\"sa-menu-content\">\n <div class=\"sa-menu-content-inner {{menu?.showSearch ? 'sa-menu-content-with-search' : ''}}\">\n @if(menu?.showSearch){\n <div class=\"search-container\">\n <sa-icon icon=\"search\"></sa-icon>\n <input class=\"search-input\" (keyup)=\"onSearch($event)\" type=\"text\" [placeholder]=\"menu.searchPlaceholder\" \n />\n <button *ngIf=\"menu?.showAddIcon\"><i class=\"fas fa-plus\"></i></button>\n </div>\n }\n \n <!-- Tabs -->\n @if(menu?.tabs){\n <div class=\"sa-menu-tabs\">\n <button *ngFor=\"let tab of menu.tabs; let i = index\" [class.active]=\"i === activeTabIndex\"\n (click)=\"setActiveTab(i,tab.label)\">\n {{ tab.label }}\n <!-- ({{ tab.itemGroups.length }}) -->\n </button>\n </div>\n }\n <!-- Tabs End -->\n\n @if(menu?.tabs?.length){\n @if(menu.tabs[activeTabIndex]?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.tabs[activeTabIndex].itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n } @else if(menu?.itemGroups?.length){\n <ng-container *ngFor=\"let groupItem of menu.itemGroups\">\n <div class=\"sa-menu-group\">\n <h2>{{groupItem.groupTitle}}</h2>\n <ng-container *ngFor=\"let item of groupItem.items\">\n <sa-menu-item [item]=\"item\" [showRound]=\"menu.showTray\"\n (click)=\"onMenuItemClick($event, item)\"></sa-menu-item>\n </ng-container>\n </div>\n </ng-container>\n }\n </div>\n </div>\n\n @if(menu?.items && menu?.items?.length){\n <div *ngIf=\"menu?.user\" class=\"profile-badge\">\n <div class=\"avatar\">\n <sa-avatar [altText]=\"menu?.user?.altText\" [imagePath]=\"''\" [size]=\"'large'\"></sa-avatar>\n </div>\n <div class=\"profile-info\">\n <p class=\"profile-name\">{{menu?.user?.name}}</p>\n <p class=\"profile-email\">{{menu?.user?.email}}</p>\n </div>\n </div>\n <div class=\"sa-menu-items\">\n @for (item of menu.items; track item) {\n <sa-menu-item [item]=\"item\" (onEvent)=\"itemClicked($event)\"> </sa-menu-item>\n }\n </div>\n }\n\n</div>","import { ConnectedPosition, ConnectionPositionPair, FlexibleConnectedPositionStrategyOrigin, Overlay, OverlayContainer, PositionStrategy } from '@angular/cdk/overlay';\nimport { Directive, ElementRef, EventEmitter, HostListener, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { SAMenuComponent } from './menu.component';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { IMenu, MyOverlayPositions } from '../../interfaces/menu.interface';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\n\n@Directive({\n selector: '[saMenu]',\n standalone: true\n})\nexport class MenuDirective implements OnInit, OnChanges, OnDestroy {\n // Stream to track menu configuration changes\n private menuConfig$ = new BehaviorSubject<IMenu | null>(null);\n \n // Stream to handle component destruction\n private destroy$ = new Subject<void>();\n\n // @Input('saMenuObj') saMenuObj = {};\n @Input('saMenuRef') saMenuRef: ViewContainerRef | TemplateRef<ElementRef> | null = null;\n @Output('onMenuEvent') onMenuEvent: EventEmitter<any> = new EventEmitter();\n @Output() onEvent: EventEmitter<any> = new EventEmitter();\n @Output() onAttached: EventEmitter<{ element: ElementRef, menu: IMenu }> = new EventEmitter();\n @Output() onDetached: EventEmitter<{ element: ElementRef, menu: IMenu }> = new EventEmitter();\n\n _saMenu: IMenu;\n _position: 'left' | 'right' | 'top' | 'bottom' = 'right';\n @Input('saMenu')\n get saMenu(): IMenu {\n return this._saMenu;\n }\n\n set saMenu(value: IMenu) {\n this._saMenu = value;\n // Emit the new configuration to the stream\n this.menuConfig$.next(value);\n }\n\n @Input('saManuPosition')\n get position(){\n return this._position;\n }\n set position(value: 'left' | 'right' | 'top' | 'bottom'){\n this._position = value;\n }\n\n constructor(\n private overlay: Overlay,\n private overlayContainer: OverlayContainer,\n private elRef:ElementRef\n ) {}\n\n @HostListener('click', ['$event'])\n onClick(e) {\n if(!!this._saMenu?.items?.length || !!this._saMenu?.itemGroups?.length || !!this._saMenu?.tabs?.length)\n this.attachMenu();\n }\n\n private overlayRef: any = null;\n private compRef: any = null;\n\n ngOnInit() {\n // Subscribe to menu configuration changes\n this.menuConfig$\n .pipe(takeUntil(this.destroy$))\n .subscribe(config => {\n if (!config) return;\n \n // If the menu is already open, update it without closing\n if (this.overlayRef && this.compRef) {\n console.log('Updating open menu with new config');\n this.compRef.instance.menu = config;\n \n // Manually trigger change detection if needed\n if (this.compRef.instance.ngOnChanges) {\n this.compRef.instance.ngOnChanges({\n menu: {\n currentValue: config,\n previousValue: null,\n firstChange: false,\n isFirstChange: () => false\n }\n });\n }\n }\n });\n }\n\n ngAfterViewInit() {\n }\n\n // We've moved this functionality to the reactive stream\n \n ngOnChanges(changes: SimpleChanges): void {\n // Menu changes are now handled through the reactive stream\n }\n\n ngOnDestroy(): void {\n // Clean up subscriptions\n this.destroy$.next();\n this.destroy$.complete();\n \n // Clean up the overlay\n this.detachMenu();\n }\n\n attachMenu() {\n const hostElement = this.elRef.nativeElement;\n const menuPortal = new ComponentPortal(SAMenuComponent);\n \n // Get the base position from MENU_POSITIONS\n const basePosition = MENU_POSITIONS[this._position];\n \n // Create the position strategy with fallback to MENU_POSITIONS if overlayConfig is not provided\n const positionStrategy: PositionStrategy = this.overlay.position()\n .flexibleConnectedTo(hostElement) // Position relative to the target element (the button)\n .withPositions([{\n ...basePosition,\n offsetX: this._saMenu.overlayConfig?.offsetX !== undefined ? this._saMenu.overlayConfig.offsetX : basePosition.offsetX,\n offsetY: this._saMenu.overlayConfig?.offsetY !== undefined ? this._saMenu.overlayConfig.offsetY : basePosition.offsetY\n }]);\n\n // Add custom class to the overlay container\n this.overlayContainer.getContainerElement().classList.add('sa-menu-overlay-container');\n \n this.overlayRef = this.overlay.create({\n positionStrategy, \n scrollStrategy: this.overlay.scrollStrategies.reposition(), \n panelClass: 'custom-menu-overlay'\n });\n this.compRef = this.overlayRef.attach(menuPortal);\n this.compRef.instance.menu = this.saMenu;\n this.compRef.instance.hostEl = hostElement;\n\n // Subscribe to menu component events and emit them\n this.compRef.instance.onEvent.subscribe((res) => {\n this.onEvent.emit(res);\n });\n\n this.compRef.instance.closeEvent.subscribe((res) => {\n this.detachMenu();\n });\n\n this.overlayRef.outsidePointerEvents().subscribe(() => {\n this.detachMenu();\n });\n\n this.onAttached.emit({\n element: this.elRef,\n menu: this._saMenu\n });\n }\n\n detachMenu() {\n if (this.overlayRef) {\n this.onDetached.emit({\n element: this.elRef,\n menu: this._saMenu\n });\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.compRef = null;\n \n // Remove the custom class from the overlay container\n this.overlayContainer.getContainerElement().classList.remove('sa-menu-overlay-container');\n }\n }\n}\n\nconst MENU_POSITIONS: MyOverlayPositions= {\n 'right': {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 20,\n offsetY: 0\n },\n 'left': {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: 20,\n offsetY: 0\n },\n 'top': {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetX: 0,\n offsetY: 20\n },\n 'bottom': {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetX: 0,\n offsetY: 20\n }\n}","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, inject, Inject, Input, OnChanges, Output, signal, SimpleChanges, ViewChild, viewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AvatarComponent } from '../avatar/avatar.component';\nimport { IconComponent } from '../icon/icon.component';\n// import { AvatarComponent } from '../avatar/avatar.component';\n\nimport {\n MatTooltip,\n MatTooltipModule\n} from '@angular/material/tooltip';\nimport { MenuDirective } from '../menu/menu.directive';\nimport { SAMenuComponent } from '../menu/menu.component';\nimport { ILeftNav, ILeftNavBlurEvent, ILeftNavClickEvent, ILeftNavItem, ILeftNavLogo } from '../../interfaces/left-nav-interface';\nimport { IMenu } from '../../interfaces/menu.interface';\nimport { IconService } from '../icon/icon.service';\n@Component({\n selector: 'sa-left-nav',\n standalone: true,\n imports: [\n CommonModule,\n AvatarComponent,\n IconComponent,\n MatTooltipModule,\n MenuDirective,\n SAMenuComponent,\n IconComponent\n ],\n providers: [IconService],\n templateUrl: './left-nav.component.html',\n styleUrl: './left-nav.component.css'\n})\nexport class LeftNavComponent implements OnChanges {\n\n // Signal to track if a menu is currently attached/open\n isMenuAttached = signal(false);\n \n // Track which menu is currently open\n private activeMenuItemRef: { itemType: 'nav' | 'footer', index: number } | null = null;\n @Input('config') config: ILeftNav;\n @Output('clickEvent') clickEvent: EventEmitter<ILeftNavClickEvent>;\n @Output('hoverEvent') hoverEvent: EventEmitter<ILeftNavBlurEvent>;\n @Output('onEvent') onEvent: EventEmitter<any> = new EventEmitter();\n\n // @Inject(ActivatedRoute) activeRouteService: ActivatedRoute;\n // @Inject(Router) routerService: Router;\n\n private activeItem: ILeftNavItem | null;\n\n constructor(private route: ActivatedRoute, private router: Router) {\n this.clickEvent = new EventEmitter();\n this.hoverEvent = new EventEmitter();\n }\n\n ngOnInit() {\n console.log(this.config.items);\n if (!this.config.footerItems) {\n this.config.footerItems = data.footerItems;\n }\n\n // This logic should not be as part of the library. It should be handled by the application.\n // if (this.config?.items?.length) {\n // this.onNavItemClick(this.config.items[0], 0);\n // }\n }\n\n ngAfterViewInit() {\n \n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['config'] && !changes['config'].firstChange) {\n // Handle config changes\n console.log('Config changed:', changes['config'].currentValue);\n \n // Update any derived state or trigger UI updates\n if (this.config?.items) {\n // Find and maintain active state when config changes\n const activeItemIndex = this.config.items.findIndex(item => item.active);\n if (activeItemIndex >= 0) {\n this.activeItem = this.config.items[activeItemIndex];\n }\n \n // To ensure Angular's change detection properly propagates changes to the menu directive,\n // we can use the Object.assign approach which preserves object references but updates properties\n // This is important for Angular's OnPush change detection strategy in child components\n \n // Update menu objects in items without changing their references\n if (this.activeMenuItemRef && this.activeMenuItemRef.itemType === 'nav') {\n const activeIndex = this.activeMenuItemRef.index;\n if (this.config.items[activeIndex]?.menu) {\n // Using a console.log to visually verify the approach is being applied\n console.log('Maintaining menu reference for active nav item:', activeIndex);\n }\n }\n }\n }\n }\n\n setItemActive(index: number) {\n try {\n if (this.activeItem) {\n this.activeItem.active = false;\n }\n if (this.config?.items?.length) {\n this.activeItem = this.config.items[index];\n this.activeItem.active = true;\n }\n } catch (e) {\n console.log(e);\n }\n }\n\n onNavItemClick(item: ILeftNavItem, index: number, event: any = null) {\n\n this.clickEvent.emit({\n event,\n type: 'NAV_ITEM_CLICK',\n item\n });\n this.config.items.forEach((item) => item.active = false);\n this.config.items[index].active = true;\n \n if (!item.disable && item.path) {\n this.setItemActive(index);\n this.router.navigate([item.path])\n }\n this.onEvent.emit({ item, index, event });\n }\n\n onFooterItemClick(item: ILeftNavItem, index: number, event: any = null) {\n this.clickEvent.emit({\n event,\n type: 'FOOTER_ITEM_CLICK',\n item\n });\n }\n onFooterItemBlur(item: ILeftNavItem, index: number, event: any = null, tooltip: MatTooltip) {\n this.hoverEvent.emit({\n event,\n type: 'FOOTER_ITEM_HOVER',\n item\n });\n if (tooltip) {\n tooltip.show();\n }\n }\n onNavItemBlur(item: ILeftNavItem, index: number, event: any = null, tooltip: MatTooltip) {\n this.hoverEvent.emit({\n event,\n type: 'NAV_ITEM_HOVER',\n item\n });\n if (tooltip) {\n tooltip.show();\n }\n }\n\n onTemplateItemClick(event: any, index: number, item: any) {\n this.clickEvent.emit({\n event,\n item,\n type: 'TEMPLATE_ITEM_CLICK'\n });\n }\n\n onMenuEvent(event: any){\n console.log('onMenuEvent', event)\n }\n\n onLogoClick(event: any, logo: ILeftNavLogo) {\n this.clickEvent.emit({\n event,\n type: 'LOGO_CLICK',\n item: {\n ...logo,\n title: logo.altText\n }\n });\n }\n\n /**\n * Handler for the onAttached event from the MenuDirective\n * This is triggered when the saMenu directive is attached to an element\n * @param event The event data containing the element and menu configuration\n * @param itemType The type of item ('nav' or 'footer')\n * @param item The nav/footer item that the menu is attached to\n * @param index The index of the item in the items array\n */\n onMenuAttached(event: { element: ElementRef, menu: IMenu }, itemType: 'nav' | 'footer', item: ILeftNavItem, index: number): void {\n // Emit an event that can be captured by parent applications\n this.isMenuAttached.set(true);\n \n // Track which menu is open\n this.activeMenuItemRef = { itemType, index };\n \n this.onEvent.emit({\n type: 'MENU_ATTACHED',\n itemType,\n item,\n index,\n element: event.element,\n menu: event.menu\n });\n }\n\n /**\n * Handler for the onDetached event from the MenuDirective\n * This is triggered when the menu is closed/detached\n * @param event The event data containing the element and menu configuration\n * @param itemType The type of item ('nav' or 'footer')\n * @param item The nav/footer item that the menu was attached to\n * @param index The index of the item in the items array\n */\n onMenuDetached(event: { element: ElementRef, menu: IMenu }, itemType: 'nav' | 'footer', item: ILeftNavItem, index: number): void {\n this.isMenuAttached.set(false);\n \n // Clear the active menu reference\n this.activeMenuItemRef = null;\n \n this.onEvent.emit({\n type: 'MENU_DETACHED',\n itemType,\n item,\n index,\n element: event.element,\n menu: event.menu\n });\n }\n\n\n}\n\n\nconst data: ILeftNav = {\n items: [{\n title: 'Home',\n icon: '',\n disable: false,\n tooltip: '',\n relativePath: true,\n path: 'home'\n }, {\n title: 'Pricing',\n icon: '',\n disable: true,\n tooltip: '',\n relativePath: true,\n path: ''\n }, {\n title: 'Setting',\n icon: 'settingsOutlined',\n disable: true,\n tooltip: 'coming soon',\n relativePath: true,\n path: ''\n }],\n footerItems: [{\n title: 'Help',\n icon: 'chatHelpOutlined',\n disable: true,\n tooltip: 'coming soon'\n }, {\n title: 'Name',\n disable: false,\n tooltip: '',\n type: 'AVATAR'\n }, {\n title: 'Chevron',\n icon: 'doubleDownOutlined',\n disable: true,\n tooltip: ''\n }]\n}","<div class=\"sa-left-nav\" >\n\n <div class=\"sa-left-nav-container {{isMenuAttached() ? 'menu-attached' : ''}}\">\n <div class=\"sa-left-nav-logo\">\n <sa-icon (click)=\"onLogoClick($event, config?.logo)\" [matTooltip]=\"config?.logo?.tooltip\" [matTooltipPosition]=\"'right'\" matTooltipClass=\"sa-left-nav-tooltip\" [icon]=\"config?.logo?.icon\" [size]=\"config?.logo?.iconSize\"></sa-icon>\n </div>\n <div class=\"sa-left-nav-items-container\">\n @if(config && config?.items && !!config?.items?.length){\n <div class=\"sa-left-nav-items-group\">\n <ng-container *ngFor=\"let item of config?.items; let i = index\">\n <div class=\"sa-left-nav-items\">\n <div class=\"sa-left-nav-item\" [ngClass]=\"item.active ? 'active' : '' \"\n [saMenu]=\"item.menu\" (onEvent)=\"onEvent.emit($event)\"\n (onAttached)=\"onMenuAttached($event, 'nav', item, i)\" (onDetached)=\"onMenuDetached($event, 'nav', item, i)\"\n (click)=\"onNavItemClick(item, i, $event)\" (mouseenter)=\"onNavItemBlur(item,i,$event,tooltip)\"\n #tooltip=\"matTooltip\" [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\n\n <sa-icon class=\"sa-left-nav-item-icon\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.active ? item.color : 'var(--grey-200)'\"></sa-icon>\n <!-- <span>{{item.tooltip}}</span> -->\n <!-- <span class=\"sa-left-nav-item-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url + ')' }\"></span> -->\n </div>\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\n </div>\n </ng-container>\n </div>\n }\n </div>\n <div class=\"sa-template-item-container\">\n @if(config && config.templateItems && !!config.templateItems.length){\n <div (click)=\"onTemplateItemClick($event, i, item)\" class=\"sa-template-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.templateItems; let i = index\">\n <sa-icon [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip sa-left-nav-template-tooltip\" [icon]=\"item.icon\" [size]=\"item.iconSize || '24'\" [color]=\"item.color\"></sa-icon>\n </div>\n }\n </div>\n <div class=\"sa-left-nav-footer\">\n @if(config && config.footerItems && !!config.footerItems.length){\n <div class=\"sa-left-nav-footer-container\">\n <div class=\"sa-left-nav-footer-item\" [ngClass]=\"item.className\" *ngFor=\"let item of config.footerItems; let i = index\">\n <div class=\"footer-item-icon\" [ngClass]=\"item.active ? 'active' : '' \"\n (click)=\"onFooterItemClick(item, i, $event)\" (onEvent)=\"onEvent.emit($event)\"\n [saMenu]=\"item.menu\" (onAttached)=\"onMenuAttached($event, 'footer', item, i)\" (onDetached)=\"onMenuDetached($event, 'footer', item, i)\"\n (mouseenter)=\"onFooterItemBlur(item,i,$event,tooltip)\" #tooltip=\"matTooltip\"\n [matTooltip]=\"item.tooltip\" matTooltipPosition=\"right\" matTooltipClass=\"sa-left-nav-tooltip\">\n @if(item.type === 'AVATAR'){\n <!-- <span class=\"sa-left-nav-footer-name\">ET</span> -->\n <sa-avatar [altText]=\"item.altText\" [imagePath]=\"''\" size=\"extra-small\"></sa-avatar>\n }@else{\n <sa-icon class=\"sa-left-nav-footer-icon\" [icon]=\"item.icon\" size=\"24\" color=\"white\"></sa-icon>\n <!-- <span clasi ss=\"sa-left-nav-footer-icon\"\n [ngStyle]=\"{ 'background-image': 'url(' + item.icon_url || '' + ')' }\"></span> -->\n }\n </div>\n <p class=\"sa-icon-label\" [ngClass]=\"item.active ? 'active' : '' \">{{item.iconLabel}}</p>\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"sa-left-nav-content\">\n <ng-content></ng-content>\n </div>\n\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { CardComponent } from '../card/card.component';\nimport { CardCustomHeaderComponent } from '../card/card-custom-header/card-custom-header.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ChipsComponent } from '../chips/chips.component';\nimport { CardTitleActionsComponent } from '../card/card-title-actions/card-title-actions.component';\nimport { ButtonComponent } from '../button/button.component';\nimport { StatusDotComponent } from '../status-dot/status-dot.component';\nimport { IconService } from '../icon/icon.service';\n\n@Component({\n selector: 'sa-mini-card',\n standalone: true,\n imports: [CardComponent, CardCustomHeaderComponent, IconComponent, MatTooltip, ChipsComponent, \n CardTitleActionsComponent, ButtonComponent, StatusDotComponent\n ],\n providers: [IconService],\n templateUrl: './mini-card.component.html',\n styleUrl: './mini-card.component.css'\n})\nexport class MiniCardComponent implements OnChanges {\n @Input() cardData: any;\n @Output() onCardClickEvent = new EventEmitter<any>();\n \n\n customClassWrapper = 'mini-card-container'\n\n card: any = {\n \"width\": \"500px\",\n \"height\": \"auto\",\n \"customWrapperClass\": this.customClassWrapper,\n \"source\": \n {\n \"id\": 342,\n \"created\": 1648807710970,\n \"updated\": 1688016005213,\n \"displayName\": \"Xero V2\",\n \"displayCategory\": 13,\n \"logoUrl\": \"assets/images/png/Amazon-Ads.png\",\n \"type\": \"XERO_V2\",\n \"loginType\": \"CUSTOM\",\n \"cdkSource\": true,\n \"datasourceCategory\": \"STANDARD\",\n \"name\": \"Xero V2\"\n },\n \"showActionActionButton\": true,\n \"disabled\": true,\n \"actionButton\": {\n \"text\": \"Add Source\",\n \"type\": \"primary\",\n \"size\": \"small\",\n \"state\": \"default\",\n \"id\": \"add-source\"\n },\n \"chipData\": {\n \"type\": \"small\",\n \"state\": \"error\",\n \"filling\": \"filled\",\n \"text\": \"Connected\",\n \"tooltip\": \"Some big text here to show tooltip text here\"\n },\n \"statusDot\": {\n \"status\": \"success\",\n \"size\": 10,\n \"theme\": \"filled\",\n \"tooltip\": \"success\"\n },\n \"action\": \"connect\"\n };\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['cardData'] || changes['cardData']) {\n this.card = changes['cardData'].currentValue;\n }\n }\n\n onCardClick(source: any, button: any, event: any) {\n this.onCardClickEvent.emit({ source, button, event });\n }\n\n}\n","<sa-card [column]=\"false\" [showCardHeader]=\"true\" [showCardBody]=\"false\"\n [width]=\"card?.width || '471px'\" [height]=\"card?.height || '100px'\" [showHeaderBodyDivider]=\"false\"\n [customWrapperClass]=\"card?.customWrapperClass || customClassWrapper\"\n class=\"{{card?.disabled ? 'disabled-card': 'enabled-card'}}\">\n <sa-card-title-header>\n <div class=\"sa-card-accordion-title-container\">\n <div class=\"sa-mini-card-title-icon-container\">\n <div class=\"sa-mini-card-custom-title\">\n @if(card?.source?.logoUrl){\n <sa-icon [img]=\"card?.source?.logoUrl\" [size]=\"'20'\" class=\"d-flex\" [customClass]=\"'auto-dimensions'\"></sa-icon>\n }\n <span [matTooltip]=\"card?.source?.tooltip\">\n {{card?.source?.name}}\n @if(card?.source?.count){\n <ng-container>\n <span>({{card?.source?.count}})</span>\n </ng-container>\n }\n </span>\n @if(card?.statusDot){\n <span>\n <sa-status-dot [config]=\"card.statusDot\">\n </sa-status-dot>\n </span>\n }\n @if(card?.chipData){\n <span>\n <sa-chip [type]=\"card?.chipData.type\" [state]=\"card?.chipData.state\"\n [filling]=\"card?.chipData.filling\" [text]=\"card?.chipData.text\"\n [iconPosition]='card?.chipData.iconPosition'\n [iconPath]=\"card?.chipData.iconPath\" [tooltip]=\"card?.chipData.tooltip\">\n </sa-chip>\n </span>\n }\n </div>\n </div>\n @if(!card?.disabled && (card?.actionButton && (card?.showActionActionButton ? card?.actionButton : null))){\n <div class=\"sa-card-titleIcon no-margin\">\n <sa-card-title-actions>\n <sa-button [text]=\"card?.actionButton?.text\" [type]=\"card?.actionButton?.type\" [size]=\"card?.actionButton?.size\"\n [state]=\"card?.actionButton?.state\" [iconPosition]=\"card?.actionButton?.iconPosition\" [icon]=\"card?.actionButton?.icon\"\n [buttonIconSize]=\"card?.actionButton?.buttonIconSize\" (onClickEvent)=\"onCardClick(card?.source, card?.actionButton, $event)\">\n </sa-button>\n </sa-card-title-actions>\n </div>\n }\n </div>\n </sa-card-title-header>\n </sa-card>","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'sa-page-layout',\n standalone: true,\n imports: [],\n templateUrl: './page-layout.component.html',\n styleUrl: './page-layout.component.css'\n})\nexport class PageLayoutComponent {\n @Input() showRightContent: boolean = false;\n @Input() showFooterContent: boolean = false;\n @Input() showProgressBarContent;\n}\n","<div class=\"layout-container\" [class]=\"showProgressBarContent === false ? 'no-padding': 'padding'\">\n <div class=\"layout-inner-container\"\n [class]=\"showProgressBarContent === false ? 'no-border-radius': 'border-radius'\">\n @if (showProgressBarContent) {\n <div class=\"progress-bar-container\">\n <ng-content select=\"[progress-bar-content]\"></ng-content>\n </div>\n }\n <div class=\"content-container\">\n <div class=\"left-section\">\n <div class=\"top-section\">\n <ng-content select=\"[top-content]\"></ng-content>\n </div>\n <div class=\"left-wrapper\">\n <ng-content select=\"[left-content]\"></ng-content>\n </div>\n @if (showFooterContent) {\n <div class=\"footer-section\">\n <ng-content select=\"[footer-content]\"></ng-content>\n </div>\n }\n </div>\n @if (showRightContent) {\n <div class=\"right-section\">\n <ng-content select=\"[right-content]\"></ng-content>\n </div>\n }\n </div>\n </div>\n</div>","import { Component, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { NgStyle } from '@angular/common';\n\n\n@Component({\n selector: 'sa-progress-bar',\n standalone: true,\n templateUrl: './progress-bar.component.html',\n styleUrl: './progress-bar.component.css',\n imports: [MatProgressBarModule, NgStyle],\n})\n\nexport class ProgressBarComponent implements OnInit {\n @Input() progressValue: number = 10;\n @Input() borderRadius: string = '10px';\n @Input() height: string = '8px';\n\n constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n ngOnInit(): void {\n }\n\n}\n","<mat-progress-bar mode=\"determinate\" [value]=\"progressValue\" class=\"progress-bar\" [ngStyle]=\"{\n '--dynamic-height': height ,\n '--dynamic-border-radius': borderRadius \n }\"></mat-progress-bar>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatRadioButton, MatRadioModule } from '@angular/material/radio';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { isObservable, of } from 'rxjs';\n\n@Component({\n selector: 'sa-radio-button',\n standalone: true,\n imports: [MatRadioButton, MatRadioModule, CommonModule, FormsModule, ReactiveFormsModule],\n templateUrl: './radio-button.component.html',\n styleUrl: './radio-button.component.css'\n})\n\nexport class RadioButtonComponent extends FieldType {\n\n ngOnInit() {\n // console.log(this)\n }\n\n get options$() {\n const options = this.props?.options;\n return isObservable(options) ? options : of(options || []);\n }\n\n override get formControl(): FormControl {\n return super.formControl as FormControl;\n }\n\n selectRadio(value: any, radio: MatRadioButton): void {\n this.formControl.setValue(value);\n radio.checked = true;\n }\n}\n","<div class=\"radio-group-container\" [ngClass]=\"[props['column'] ? 'column' : '']\">\n <div class=\"title-container\">\n @if(props['label']){\n <div class=\"form-field-title\">\n <span>{{ props['label'] }}</span>\n </div>\n }\n @if(props['description']){\n <div class=\"form-field-description\">\n <span>{{ props['description'] }}</span>\n </div>\n }\n </div>\n <div class=\"form-field\">\n <mat-radio-group [formControl]=\"formControl\" name=\"radioButtons\">\n <div *ngFor=\"let option of options$ | async\" class=\"radio-box\" (click)=\"selectRadio(option.value, radio)\">\n <mat-radio-button [disableRipple]=\"true\" #radio [value]=\"option.value\">\n {{ option.label }}\n </mat-radio-button>\n </div>\n </mat-radio-group>\n </div>\n @if(props['helpText']){\n <div class=\"form-field-helpText\">\n <span>{{ props['helpText'] }}</span>\n </div>\n }\n</div>","import { Component, Input, OnInit, AfterViewInit, ViewChild, ElementRef, ChangeDetectorRef, SimpleChanges, OnDestroy, ChangeDetectionStrategy } from '@angular/core';\nimport { CardComponent } from '../card/card.component';\nimport { IconService } from '../icon/icon.service';\nimport { HttpClientModule } from '@angular/common/http';\nimport { IScrollingCardData } from '../../interfaces/scrolling-card-interface';\n\n@Component({\n selector: 'sa-scrolling-cards',\n standalone: true,\n imports: [HttpClientModule, CardComponent],\n providers: [IconService],\n templateUrl: './scrolling-cards.component.html',\n styleUrls: ['./scrolling-cards.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ScrollingCardsComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input({ required: true }) cards: IScrollingCardData[] = [];\n @Input() duration: number = 10;\n @Input() direction: 'up' | 'down' | 'left' | 'right' = 'up';\n @ViewChild('cardContainer') cardContainer!: ElementRef;\n\n displayCards: IScrollingCardData[] = [];\n animationPaused = false;\n isVertical: boolean;\n private animationFrame: number | null = null;\n\n constructor(private cdr: ChangeDetectorRef) { }\n\n ngOnInit() {\n if (this.cards?.length) {\n this.displayCards = [...this.cards, ...this.cards];\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['cards'] && !changes['cards'].firstChange && this.cards?.length) {\n this.displayCards = [...this.cards, ...this.cards];\n this.initializeAnimation();\n }\n }\n\n ngAfterViewInit() {\n if (this.cards?.length) {\n this.initializeAnimation();\n }\n }\n\n private initializeAnimation() {\n if (this.animationFrame) {\n cancelAnimationFrame(this.animationFrame);\n }\n\n this.animationFrame = requestAnimationFrame(() => {\n this.setAnimationProperties();\n });\n }\n\n private setAnimationProperties() {\n if (!this.cardContainer?.nativeElement) return;\n\n const container = this.cardContainer.nativeElement;\n this.isVertical = this.direction === 'up' || this.direction === 'down';\n\n // Set vertical/horizontal classes\n container.classList.toggle('vertical', this.isVertical);\n container.classList.toggle('horizontal', !this.isVertical);\n\n const containerSize = this.isVertical ? container.scrollHeight : container.scrollWidth;\n const duration = containerSize / this.duration;\n\n container.style.setProperty('--scroll-duration', `${duration}s`);\n container.style.setProperty('--scroll-direction', this.direction === 'down' || this.direction === 'right' ? 'reverse' : 'normal');\n\n // Reset animation\n container.style.animation = 'none';\n container.offsetHeight; // Trigger reflow\n container.style.animation = null;\n\n this.cdr.markForCheck();\n }\n\n pauseScroll() {\n if (!this.cardContainer?.nativeElement) return;\n this.animationPaused = true;\n this.cardContainer.nativeElement.style.animationPlayState = 'paused';\n }\n\n resumeScroll() {\n if (!this.cardContainer?.nativeElement) return;\n this.animationPaused = false;\n this.cardContainer.nativeElement.style.animationPlayState = 'running';\n }\n\n ngOnDestroy() {\n if (this.animationFrame) {\n cancelAnimationFrame(this.animationFrame);\n }\n }\n}","<div class=\"scrolling-cards-container {{this.isVertical ? 'vertical': 'horizontal'}}\" (mouseenter)=\"pauseScroll()\"\n (mouseleave)=\"resumeScroll()\">\n <div #cardContainer class=\"card-container\">\n @for (card of displayCards; track card.title) {\n <sa-card [title]=\"card.title\" [body]=\"card.body\" [avatar]=\"card?.avatar\" [icon]=\"card.icon\" [iconSize]=\"'54'\"\n [customWrapperClass]=\"'sa-card-secondary-wrapper'\" [width]=\"'24.063rem'\" [column]=\"false\"\n [showCardBody]=\"true\">\n </sa-card>\n }\n </div>\n</div>","import { Component, Input, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'sa-skeleton-base',\n standalone: true,\n template: `<ng-content></ng-content>`,\n styles: [`\n :host {\n display: block;\n position: relative;\n overflow: hidden;\n background: var(--sa-skeleton-background, #e9ecef);\n border-radius: var(--sa-skeleton-radius, 4px);\n }\n\n :host::after {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n transparent,\n var(--sa-skeleton-shine, rgba(255, 255, 255, 0.3)),\n transparent\n );\n animation: shimmer var(--sa-skeleton-animation-duration, 1.5s) infinite;\n }\n\n @keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n }\n `]\n})\nexport class SkeletonBaseComponent {\n @Input() width: string = '100%';\n @Input() height: string = '1rem';\n\n @HostBinding('style.width') get getWidth() {\n return this.width;\n }\n\n @HostBinding('style.height') get getHeight() {\n return this.height;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { NgStyle } from '@angular/common';\n\n@Component({\n selector: 'sa-skeleton-container',\n standalone: true,\n imports: [NgStyle],\n template: `\n <div class=\"skeleton-container\" [ngStyle]=\"containerStyles\">\n <ng-content></ng-content>\n </div>\n `,\n styles: [`\n .skeleton-container {\n display: flex;\n flex-direction: column;\n gap: var(--sa-skeleton-gap, 1rem);\n padding: var(--sa-skeleton-padding, 1rem);\n }\n `]\n})\nexport class SkeletonContainerComponent {\n @Input() gap?: string;\n @Input() padding?: string;\n @Input() direction: 'row' | 'column' = 'column';\n\n get containerStyles() {\n return {\n gap: this.gap,\n padding: this.padding,\n flexDirection: this.direction\n };\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { SkeletonBaseComponent } from './skeleton-base.component';\n\n@Component({\n selector: 'sa-skeleton-text',\n standalone: true,\n imports: [SkeletonBaseComponent],\n template: `<sa-skeleton-base [width]=\"width\" [height]=\"height\"></sa-skeleton-base>`,\n})\nexport class SkeletonTextComponent {\n @Input() width: string = '100%';\n @Input() height: string = '1rem';\n}\n\n@Component({\n selector: 'sa-skeleton-circle',\n standalone: true,\n imports: [SkeletonBaseComponent],\n template: `<sa-skeleton-base [width]=\"size\" [height]=\"size\" style=\"border-radius: 50%\"></sa-skeleton-base>`,\n})\nexport class SkeletonCircleComponent {\n @Input() size: string = '3rem';\n}\n\n@Component({\n selector: 'sa-skeleton-rectangle',\n standalone: true,\n imports: [SkeletonBaseComponent],\n template: `<sa-skeleton-base [width]=\"width\" [height]=\"height\"></sa-skeleton-base>`,\n})\nexport class SkeletonRectangleComponent {\n @Input() width: string = '100%';\n @Input() height: string = '100px';\n}\n\n@Component({\n selector: 'sa-skeleton-elliptical',\n standalone: true,\n imports: [SkeletonBaseComponent],\n template: `<sa-skeleton-base [width]=\"width\" [height]=\"height\" style=\"border-radius: 100px;\"></sa-skeleton-base>`,\n})\nexport class SkeletonEllipticalComponent {\n @Input() width: string = '200px';\n @Input() height: string = '48px';\n}\n","export interface SkeletonConfig {\n type: 'text' | 'circle' | 'rectangle' | 'elliptical' | 'container';\n width?: string;\n height?: string;\n size?: string;\n direction?: 'row' | 'column';\n gap?: string;\n items?: SkeletonConfig[];\n}\n\nexport interface SkeletonPreset {\n items: readonly SkeletonConfig[];\n containerConfig?: {\n gap?: string;\n padding?: string;\n direction?: 'row' | 'column';\n };\n}\n\nexport const SKELETON_PRESETS = {\n // Preset for a card with title, subtitle and content\n card: {\n items: [\n { type: 'text', width: '60%', height: '1.5rem' },\n { type: 'text', width: '40%', height: '1rem' },\n { type: 'rectangle', height: '100px' }\n ],\n containerConfig: {\n padding: '1rem',\n gap: '0.75rem'\n }\n },\n \n // Preset for a list item with avatar\n listItem: {\n items: [\n { type: 'circle', size: '2.5rem' },\n { type: 'text', width: '70%', height: '1rem' }\n ],\n containerConfig: {\n direction: 'row',\n gap: '1rem',\n padding: '0.5rem'\n }\n },\n\n // Preset for form fields\n formField: {\n items: [\n { type: 'text', width: '30%', height: '1rem' },\n { type: 'rectangle', height: '2.5rem' }\n ],\n containerConfig: {\n gap: '0.5rem'\n }\n }\n} as const;\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SkeletonBaseComponent } from './skeleton-base.component';\nimport { SkeletonTextComponent, SkeletonCircleComponent, SkeletonRectangleComponent, SkeletonEllipticalComponent } from './skeleton-shapes.component';\nimport { SkeletonContainerComponent } from './skeleton-container.component';\nimport { SkeletonConfig, SkeletonPreset, SKELETON_PRESETS } from './skeleton-presets';\n\n@Component({\n selector: 'sa-skeleton-loader',\n standalone: true,\n imports: [\n CommonModule,\n SkeletonBaseComponent,\n SkeletonTextComponent,\n SkeletonCircleComponent,\n SkeletonRectangleComponent,\n SkeletonEllipticalComponent,\n SkeletonContainerComponent\n ],\n template: `\n <sa-skeleton-container\n [gap]=\"config?.containerConfig?.gap\"\n [padding]=\"config?.containerConfig?.padding\"\n [direction]=\"config?.containerConfig?.direction || 'column'\"\n >\n @for (item of config?.items; track $index) {\n @switch (item.type) {\n @case ('text') {\n <sa-skeleton-text\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></sa-skeleton-text>\n }\n @case ('circle') {\n <sa-skeleton-circle\n [size]=\"item.size\"\n ></sa-skeleton-circle>\n }\n @case ('rectangle') {\n <sa-skeleton-rectangle\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></sa-skeleton-rectangle>\n }\n @case ('elliptical') {\n <sa-skeleton-elliptical\n [width]=\"item.width\"\n [height]=\"item.height\"\n ></sa-skeleton-elliptical>\n }\n @case ('container') {\n <sa-skeleton-container [direction]=\"item.direction\" [gap]=\"item.gap\">\n @for (subItem of item.items; track $index) {\n @switch (subItem.type) {\n @case ('text') {\n <sa-skeleton-text\n [width]=\"subItem.width\"\n [height]=\"subItem.height\"\n ></sa-skeleton-text>\n }\n @case ('circle') {\n <sa-skeleton-circle\n [size]=\"subItem.size\"\n ></sa-skeleton-circle>\n }\n @case ('rectangle') {\n <sa-skeleton-rectangle\n [width]=\"subItem.width\"\n [height]=\"subItem.height\"\n ></sa-skeleton-rectangle>\n }\n @case ('elliptical') {\n <sa-skeleton-elliptical\n [width]=\"subItem.width\"\n [height]=\"subItem.height\"\n ></sa-skeleton-elliptical>\n }\n @case ('container') {\n <sa-skeleton-container [direction]=\"subItem.direction\" [gap]=\"subItem.gap\">\n @for (subSubItem of subItem.items; track $index) {\n @switch (subSubItem.type) {\n @case ('text') {\n <sa-skeleton-text\n [width]=\"subSubItem.width\"\n [height]=\"subSubItem.height\"\n ></sa-skeleton-text>\n }\n @case ('circle') {\n <sa-skeleton-circle\n [size]=\"subSubItem.size\"\n ></sa-skeleton-circle>\n }\n @case ('rectangle') {\n <sa-skeleton-rectangle\n [width]=\"subSubItem.width\"\n [height]=\"subSubItem.height\"\n ></sa-skeleton-rectangle>\n }\n @case ('elliptical') {\n <sa-skeleton-elliptical\n [width]=\"subSubItem.width\"\n [height]=\"subSubItem.height\"\n ></sa-skeleton-elliptical>\n }\n }\n }\n </sa-skeleton-container>\n }\n }\n }\n </sa-skeleton-container>\n }\n }\n }\n </sa-skeleton-container>\n `\n})\nexport class SkeletonLoaderComponent implements OnChanges {\n @Input() preset?: keyof typeof SKELETON_PRESETS;\n @Input() config?: SkeletonPreset;\n\n ngOnInit() {\n this.updateConfig();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.updateConfig();\n }\n\n private updateConfig() {\n if (this.preset && (!this.config || !this.config.items?.length)) {\n this.config = SKELETON_PRESETS[this.preset];\n }\n }\n}\n","import { Component, EventEmitter, Input } from '@angular/core';\nimport { FieldType, FieldTypeConfig } from '@ngx-formly/core';\nimport { NgFor, NgIf } from '@angular/common';\nimport { Output } from '@angular/core';\n\nlet nextId = 0; // used to give unique ids to inputs used in html\n\n@Component({\n selector: 'sa-stepper',\n standalone: true,\n imports: [NgFor, NgIf],\n templateUrl: './stepper.component.html',\n styleUrl: './stepper.component.css'\n})\nexport class StepperComponent extends FieldType<FieldTypeConfig> {\n @Input() latestStep: number = -1;\n @Input() editable: boolean = true;\n @Input() stepLabels: any;\n @Input() doneIcon: string;\n\n @Output() stepped = new EventEmitter;\n\n uuid: number = nextId++;\n\n isDisabled: boolean = false;\n\n tickIcon = {};\n\n // {\n // '-webkit-mask-image': `url(${this.ImagePath})`,\n // 'mask-image': `url(${this.ImagePath})`,\n // }\n\n ngOnInit() {\n if (this.field.props) {\n this.stepLabels = this.field.props.options;\n this.editable = this.field.props['params'].editable;\n this.latestStep = this.model[`${this.key}`] ? this.model[`${this.key}`].id : -1;\n this.doneIcon = this.field.props['params'].doneIcon;\n\n this.isDisabled = this.field.props.disabled!;\n }\n console.log(this.doneIcon);\n this.tickIcon = {\n '-webkit-mask-image': `url(${this.doneIcon})`,\n 'mask-image': `url(${this.doneIcon})`\n };\n }\n\n update(chosen: number) {\n if (!this.editable || this.field.props?.disabled) return;\n this.latestStep = chosen;\n if (!this.formControl) {\n this.stepped.emit(this.latestStep);\n return;\n }\n this.formControl.setValue({\n id: this.latestStep\n });\n }\n}\n","<div class=\"stepper {{isDisabled ? 'disabled' : 'active'}}\">\n <div class=\"steps\" *ngFor=\"let label of stepLabels; let i = index\">\n <input id=\"stepper-{{uuid}}-{{i}}\" (change)=\"update(i)\" name=\"stepper-radio-{{uuid}}\"\n [checked]=\"i == latestStep ? true: false\" class=\"step-hide\" type=\"radio\">\n <div\n class=\"label-wrapper {{i < latestStep ? 'done' : ''}} {{i > latestStep ? 'default' : ''}} {{i == latestStep ? 'latest' : ''}}\">\n <label [style]=\"i < latestStep ? tickIcon : ''\" for=\"stepper-{{uuid}}-{{i}}\"\n class=\"step-label-icon {{i > latestStep ? 'undone' : ''}}\">\n </label>\n <label for=\"stepper-{{uuid}}-{{i}}\" class=\"step-label-text\">{{label.name}}</label>\n </div>\n <div *ngIf=\" i !=stepLabels.length-1\" class=\"line {{i < latestStep ? 'done' : 'default'}}\"></div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TabInterface } from '../../interfaces/tab-interface';\nimport { NgFor } from '@angular/common';\nimport { NgIf } from '@angular/common';\n\n\nlet nextId = 0; // used to give unique ids to inputs used in html\n@Component({\n selector: 'sa-tabs',\n standalone: true,\n imports: [NgFor, NgIf],\n templateUrl: './tabs.component.html',\n styleUrl: './tabs.component.css'\n})\nexport class TabsComponent {\n @Input() tabs: TabInterface[];\n @Input() type: string;\n @Input() defaultTab: number;\n\n @Output() tabChanged = new EventEmitter();\n\n\n uuid: number = nextId++;\n svgStyle: any = [];\n\n ngOnChanges(): void {\n this.svgStyle = this.tabs.map((item) => {\n return {\n '-webkit-mask-image': `url(${item.tabIcon})`,\n 'mask-image': `url(${item.tabIcon})`,\n }\n })\n }\n tabChange(evt: any) {\n this.tabChanged.emit(evt.target.value)\n }\n}\n","<div class=\"tab-wrapper {{type}}\">\n <div class=\"tabs\">\n <div *ngFor=\"let item of tabs, let i = index\" class=\"tab-item\">\n <input [checked]=\"(defaultTab == i) ? true : false\" [value]=\"i\" (change)=\"tabChange($event)\"\n id=\"tab-check-{{i}}-{{uuid}}\" class=\"tab-checks\" type=\"radio\" name=\"tab-checkbox-{{uuid}}\">\n <label for=\"tab-check-{{i}}-{{uuid}}\" class=\"tab-label\">\n <div *ngIf=\"item.iconPosition == 'left' || item.iconPosition == 'both'\" class=\"svg-icon\" [style]=\"svgStyle[i]\">\n </div>\n {{item.tabName}}\n <div *ngIf=\"item.iconPosition == 'right' || item.iconPosition == 'both'\" class=\"svg-icon\" [style]=\"svgStyle[i]\">\n </div>\n <div class=\"badge\" *ngIf=\"item.badgeContent\">{{item.badgeContent}}</div>\n </label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { ButtonComponent } from '../button/button.component';\nimport { Input, Output } from '@angular/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { NgIf } from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'sa-toast',\n standalone: true,\n imports: [CommonModule, ButtonComponent, IconComponent, ButtonComponent, MatIcon, NgIf],\n templateUrl: './toast.component.html',\n styleUrl: './toast.component.css'\n})\nexport class ToastComponent implements OnChanges {\n @Input() finishPercentage: number = -1;\n @Input() heading: string;\n @Input() subHeading: string;\n @Input() statusIcon: string = '';\n @Input() toastCloseIcon: string = 'closeOutlined';\n @Input() status: 'success' | 'failure' | 'caution' | 'positive' | 'negative' | 'tentative';\n @Input() firstButtonName: string;\n @Input() secondButtonName: string;\n @Input() closable: boolean;\n @Input() filled: boolean = true;\n @Input() width: number | string = '';\n @Input() toastIconSize: string = '24';\n @Input() toastCloseIconSize: string = '24';\n\n @Output() toastEvent: EventEmitter<IToastEvent> = new EventEmitter();\n @Output() firstButton = new EventEmitter();\n @Output() secondButton = new EventEmitter();\n @Output() closed = new EventEmitter();\n\n\n toastStyles = { backgroundColor: 'transparent', color: '', width: this.width + '%' };\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes && (changes['status'] || changes['filled'])) {\n this.statusIcon = toastInfo[this.status]?.icon;\n this.toastStyles.backgroundColor = toastInfo[this.status]?.bgColor;\n this.toastStyles.color = toastInfo[this.status]?.color;\n }\n if (changes && changes['width']) {\n this.toastStyles.width = typeof this.width === 'number' ? this.width + '%' : this.width;\n }\n\n if (this.finishPercentage > 100) this.finishPercentage = 100;\n\n }\n\n clicked(num: number) {\n if (num == 0) this.firstButton.emit();\n else if (num == 1) this.secondButton.emit();\n else if (num == 2) this.closed.emit();\n }\n\n closeToast() {\n this.toastEvent.emit({\n type: 'TOAST_CLOSED',\n params: {}\n })\n }\n\n}\n\nconst toastInfo: any = {\n 'success': {\n icon: 'checkCircleOutlined',\n bgColor: '#EBF5E9',\n color: '#246B16'\n },\n 'failure': {\n icon: 'infoCircleOutlined',\n bgColor: '#F8E9E9',\n color: '#861C15'\n },\n 'caution': {\n icon: 'infoTriangleOutlined',\n bgColor: '',\n color: ''\n }\n}\n\nexport interface IToastEvent {\n type: 'TOAST_CLOSED' | 'ACTION_CLICKED';\n event?: any;\n params?: any;\n}","<div class=\"toast\" [ngStyle]=\"toastStyles\">\n <div class=\"content\">\n <div class=\"toast-icon {{status}}\">\n <sa-icon [icon]=\"statusIcon\" [size]=\"toastIconSize\"></sa-icon>\n <!-- <img [src]=\"statusIcon\" alt=\"\"> -->\n </div>\n <div class=\"head-subhead\">\n <p class=\"heading\">{{heading}}</p>\n <p class=\"subheading\">{{subHeading}}</p>\n </div>\n @if(closable){\n <!-- <img class=\"cross\" (click)=\"closeToast()\" [src]=\"crossmark\" alt=\"\"> -->\n <sa-icon class=\"cross\" [icon]=\"toastCloseIcon\" [size]=\"toastCloseIconSize\" (click)=\"closeToast()\"></sa-icon>\n }\n </div>\n <!-- <div class=\"controls\">\n <sa-button *ngIf=\"firstButtonName\" (onClickEvent)=\"clicked(0)\" [text]=\"firstButtonName\" type=\"transparent\"\n size=\"medium\" state=\"default\">\n </sa-button>\n <sa-button *ngIf=\"secondButtonName\" (onClickEvent)=\"clicked(1)\" [text]=\"secondButtonName\" type=\"outline\"\n size=\"medium\" state=\"default\">\n </sa-button>\n </div> -->\n\n <div *ngIf=\"finishPercentage >= 0\" class=\"progress-bar\">\n <div class=\"progress-done\" [style.width]=\"finishPercentage+'%'\"></div>\n <div class=\"progress-left\" [style.width]=\"100-finishPercentage+'%'\"></div>\n </div>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ButtonComponent } from '../button/button.component';\nimport { NgFor } from '@angular/common';\nimport { NgIf } from '@angular/common';\n\n@Component({\n selector: 'sa-tool-tip',\n standalone: true,\n imports: [ButtonComponent, NgFor, NgIf],\n templateUrl: './tool-tip.component.html',\n styleUrl: './tool-tip.component.css'\n})\nexport class ToolTipComponent {\n @Input() messages: string[];\n @Input() pointerPosition: string;\n\n @Output() toolTipSkipped = new EventEmitter();\n @Output() toolTipSeen = new EventEmitter();\n arrowIcon = \"../assets/rightChevronOutlined.svg\";\n pointer = \"../assets/upwardTriangleFilled.svg\";\n\n msgInd: number = 0; // is the index of current message being displayed\n\n updateMsgInd(k: number) {\n this.msgInd += k;\n if (this.msgInd < 0) this.msgInd = 0;\n if (this.msgInd > this.messages.length - 1) {\n this.msgInd = this.messages.length - 1;\n this.toolTipSeen.emit();\n }\n }\n\n skipToolTip() {\n this.toolTipSkipped.emit();\n }\n\n}\n","<div class=\"tool-tip-vertical\">\n <div class=\"tool-tip-pointer-icon pointer-top\" *ngIf=\"pointerPosition == 'top'\"></div>\n <div class=\"tool-tip-horizontal\">\n <div class=\"tool-tip-pointer-icon pointer-left\" *ngIf=\"pointerPosition == 'left'\"></div>\n <div class=\"tool-tip\">\n <div class=\"tool-tip-content\">\n <div class=\"tool-tip-heading\">Heading</div>\n <div *ngFor=\"let msg of messages, let i = index\" class=\"tool-tip-message {{msgInd != i ? 'hidden-msg': ''}}\">\n {{msg}}\n </div>\n </div>\n <div class=\"tool-tip-break\">\n </div>\n <div class=\"tool-tip-controls\">\n <div class=\"tool-tip-navigate\">\n <img class=\"left-icon tool-tip-navigate-icon\" (click)=\"updateMsgInd(-1)\" [src]=\"arrowIcon\" alt=\"\">\n {{msgInd+1}} of {{messages.length}}\n <img class=\"right-icon tool-tip-navigate-icon\" (click)=\"updateMsgInd(1)\" [src]=\"arrowIcon\" alt=\"\">\n </div>\n <div class=\"tool-tip-control-buttons\">\n <sa-button (onClickEvent)=\"skipToolTip()\" class=\"skip-button\" text=\"Skip\" type=\"transparent\" size=\"medium\"\n state=\"default\"></sa-button>\n <sa-button (onClickEvent)=\"updateMsgInd(1)\" text=\"Next\" type=\"primary\" size=\"medium\" state=\"default\">\n </sa-button>\n </div>\n </div>\n </div>\n <div class=\"tool-tip-pointer-icon pointer-right\" *ngIf=\"pointerPosition == 'right'\"></div>\n </div>\n <div class=\"tool-tip-pointer-icon pointer-bottom\" *ngIf=\"pointerPosition == 'bottom'\"></div>\n</div>\n","import { Component, Input, OnInit, OnDestroy, OnChanges, SimpleChanges, signal, computed, effect, ChangeDetectionStrategy, DestroyRef, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { interval, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { TextAnimationConfig } from '../../interfaces/typography-animation-interface';\n\n@Component({\n selector: 'sa-typography-animation',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './typography-animation.component.html',\n styleUrl: './typography-animation.component.css',\n animations: [\n trigger('slideAnimation', [\n state('hidden', style({\n opacity: 0,\n transform: 'translateY(1px)'\n })),\n state('visible', style({\n opacity: 1,\n transform: 'translateY(-50%)'\n })),\n transition('hidden => visible', [\n animate('{{duration}}ms ease-out')\n ], { params: { duration: 300 } }),\n transition('visible => hidden', [\n animate('{{duration}}ms ease-in')\n ], { params: { duration: 300 } })\n ])\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TypographyAnimationComponent implements OnInit, OnDestroy, OnChanges {\n @Input() config: TextAnimationConfig = {\n words: [],\n prefix: '',\n animationDelay: 3000,\n animationDuration: 200,\n showFirstWordImmediately: false\n };\n\n currentWordIndex = signal<number>(0);\n animationState = signal<'initializing' | 'running'>('initializing');\n private intervalId: any;\n\n ngOnInit() {\n // Set animation state to running after a brief initialization period\n // This helps ensure the first word appears immediately when requested\n setTimeout(() => {\n this.animationState.set('running');\n }, 50);\n \n this.startAnimation();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // Check if config has changed and is not the first change\n if (changes['config'] && !changes['config'].firstChange) {\n // Reset the current word index\n this.currentWordIndex.set(0);\n \n // Clear the existing interval if it exists\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n \n // Restart the animation with the new configuration\n this.startAnimation();\n }\n }\n\n ngOnDestroy() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n private startAnimation() {\n // Trigger the first animation immediately\n this.currentWordIndex.update(current => \n (current + 1) % this.config.words.length\n );\n\n // Add a small delay before starting the interval to ensure DOM is ready\n setTimeout(() => {\n this.intervalId = setInterval(() => {\n this.currentWordIndex.update(current => \n (current + 1) % this.config.words.length\n );\n }, this.config.animationDelay || 3000);\n }, 100);\n }\n}","<div class=\"text-animation\">\n <span class=\"prefix\" *ngIf=\"config.prefix\">{{ config.prefix }}</span>\n <span class=\"words-wrapper\">\n <ng-container *ngFor=\"let word of config.words; let i = index\">\n <span\n class=\"word\"\n [@slideAnimation]=\"currentWordIndex() === i ? 'visible' : 'hidden'\"\n [style.transition-delay]=\"config.animationDelay + 'ms'\"\n >\n {{ word }}\n </span>\n </ng-container>\n </span>\n </div>","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TestLibraryService {\n\n constructor() { }\n}\n","export interface ButtonInterface {\n id: string | number,\n text: string,\n type: string,\n size: ButtonSize,\n state: string,\n imagePath?: string,\n icon?: any,\n iconPosition?: ButtonIconPosition,\n href?: string,\n hrefTarget?: string,\n isSubmit?: boolean,\n width?: any,\n buttonIconSize?: any,\n showSpinner?: boolean\n}\n\nexport const buttonSizes = [\n 'small', 'medium', 'large'\n] as const;\n\ntype PredefinedButtonSizes = typeof buttonSizes[number];\n\nexport type ButtonSize = PredefinedButtonSizes | string;\n\nexport const buttonPosition = [\n 'left', 'right', 'both'\n] as const;\n\ntype PredefinedButtonPositions = typeof buttonPosition[number]\n\nexport type ButtonIconPosition = PredefinedButtonPositions | string;\n\n\nexport const buttonType = [\n 'primary', 'outline', 'transparent'\n] as const;\n\ntype PredefinedButtonType = typeof buttonType[number]\n\nexport type ButtonType = PredefinedButtonType | string;\n\n\nexport interface ButtonClickEvent {\n type: 'primary' | 'secondary';\n button: ButtonInterface;\n originalEvent: Event;\n}","export const iconNames = [\n 'analysis', 'arrowRightOutlined', 'avatar',\n 'businessStatsFilled', 'chatHelpOutlined', 'checkCircleFilled',\n 'checkCircleOutlined', 'checkOutlined', 'circleFilled',\n 'closeBlueOutlined', 'closeCircleFilled', 'closeOutlined',\n 'doubleDownOutlined', 'eyeFilled',\n 'eyeOutlined', 'formDetailsOutlined', 'gridViewOutlined',\n 'homeOutlined', 'infoCircleOutlined', 'infoTriangleFilled',\n 'infoTriangleOutlined', 'innosupps', 'locationOutlined',\n 'mailOutlined', 'multiConnectionHub', 'personOutlined',\n 'rightChevronOutlined', 'sarasWhite', 'settingsOutlined',\n 'sourcesOutlined', 'targetScanOutlined', 'upwardTriangleFilled',\n 'headsetOutlined', 'sarasFullLogo', 'leftChevronCircle', 'rightChevronCircle', 'errorCircleOutlined',\n 'errorCrossOutlined', 'downChevronOutlined', 'peopleAudience', 'screenPerson', 'slideSettings', 'desktopSpeakerOutlined',\n 'tabDesktopArrowClockwiseOutlined', 'disabledCheckboxFilled', 'timerOutlined', 'refresh', 'chatIcon', 'add', 'calendar',\n 'compassNorthWest'\n] as const;\n\n// Define a type for the predefined icon names\ntype PredefinedIconName = typeof iconNames[number];\n\n// Define IconName as a union of PredefinedIconName and string\nexport type IconName = PredefinedIconName | string;\n\nexport interface IconInterface {\n icon?: IconName | string,\n size?: string,\n iconUrl?: string\n}\n\n\nexport interface saIcon {\n icon?: IconName;\n iconPath?: string;\n iconUrl?: string;\n size?: string;\n color?: string;\n customClass?: string;\n }","import { IMenu } from \"./menu.interface\";\n\nexport interface ILeftNav {\n logo?: ILeftNavLogo;\n items?: ILeftNavItem[];\n templateItems?: ITemplateItem[];\n footerItems?: ILeftNavItem[];\n }\n\n export interface ILeftNavLogo extends ILeftNavItem {\n \n }\n \n export interface ILeftNavItem {\n title: string,\n // icon_url?: string,\n icon?: string,\n iconSize?: string,\n color?: string,\n disable?: boolean,\n tooltip?: string,\n relativePath?: boolean,\n path?: string,\n active?: boolean,\n type?: 'ICON' | 'AVATAR';\n menu?: IMenu;\n altText?: string,\n showSearch?: boolean,\n iconLabel?: string,\n className?: string;\n itemType?: string;\n [key: string]: any;\n }\n \n export interface ILeftNavClickEvent {\n type: 'NAV_ITEM_CLICK' | 'FOOTER_ITEM_CLICK' | 'LOGO_CLICK' | 'TEMPLATE_ITEM_CLICK' | 'CLICK';\n event: any,\n item: ILeftNavItem\n }\n export interface ILeftNavBlurEvent {\n type: 'NAV_ITEM_HOVER' | 'FOOTER_ITEM_HOVER' | 'LOGO_HOVER';\n event: any,\n item: ILeftNavItem\n }\n \n export enum ILeftNavTypes {\n \n }\n\n export interface ITemplateItem extends ILeftNavItem {\n iconSize?: string;\n backgroundColor?: string;\n }","/*\n * Public API Surface of component-library\n */\n\n// ... existing code ...\n\n\n// Components\nexport * from './lib/accordion/accordion.component';\nexport * from './lib/avatar/avatar.component';\nexport * from './lib/button/button.component';\nexport * from './lib/calendar-header/calendar-header.component';\nexport * from './lib/card/card-body/card-body.component';\nexport * from './lib/card/card-custom-header/card-custom-header.component';\nexport * from './lib/card/card-footer-actions/card-footer-actions.component';\nexport * from './lib/card/card-icon/card-icon.component';\nexport * from './lib/card/card-title-actions/card-title-actions.component';\nexport * from './lib/card/card.component';\nexport * from './lib/card/checkbox-card/checkbox-card.component';\nexport * from './lib/card/guide-card/guide-card.component';\nexport * from './lib/card/menu-card/menu-card.component';\nexport * from './lib/card/thumbnail-card/thumbnail-card.component';\nexport * from './lib/card-carousel/card-carousel.component';\nexport * from './lib/checkbox/checkbox.component';\nexport * from './lib/chips/chips.component';\nexport * from './lib/component-library.component';\nexport * from './lib/dashboard-loader/dashboard-loader.component';\nexport * from './lib/datepicker/datepicker.component';\nexport * from './lib/dialog/dialog.component';\nexport * from './lib/form-input/form-input.component';\nexport * from './lib/form-select/form-select.component';\nexport * from './lib/grid-cell/grid-cell.component';\nexport * from './lib/header/header.component';\nexport * from './lib/icon/icon.component';\nexport * from './lib/layout-section/layout-section.component';\nexport * from './lib/left-nav/left-nav.component';\nexport * from './lib/list/list.component';\nexport * from './lib/menu/menu-list/menu-item.component';\nexport * from './lib/menu/menu.component';\nexport * from './lib/message-banner/message-banner.component';\nexport * from './lib/message-banner-v2/message-banner-v2.component';\nexport * from './lib/mini-card/mini-card.component';\nexport * from './lib/page-layout/page-layout.component';\nexport * from './lib/progress-bar/progress-bar.component';\nexport * from './lib/radio-button/radio-button.component';\nexport * from './lib/scrolling-cards/scrolling-cards.component';\nexport * from './lib/skeleton/skeleton-base.component';\nexport * from './lib/skeleton/skeleton-container.component';\nexport * from './lib/skeleton/skeleton-loader.component';\nexport * from './lib/skeleton/skeleton-shapes.component';\nexport * from './lib/spinner/spinner.component';\nexport * from './lib/status-dot/status-dot.component';\nexport * from './lib/stepper/stepper.component';\nexport * from './lib/tabs/tabs.component';\nexport * from './lib/toast/toast.component';\nexport * from './lib/tool-tip/tool-tip.component';\nexport * from './lib/typography-animation/typography-animation.component';\n\n// Services\nexport * from './lib/component-library.service';\nexport * from './lib/icon/icon.service';\n\n// Interfaces\nexport * from './interfaces/avatar-interface';\nexport * from './interfaces/button-interface';\nexport * from './interfaces/card-carousel-interface';\nexport * from './interfaces/chip-interface';\nexport * from './interfaces/grid-interface';\nexport * from './interfaces/guide-card-interface';\nexport * from './interfaces/header-interface';\nexport * from './interfaces/icon-interface';\nexport * from './interfaces/layout-section-interface';\nexport * from './interfaces/left-nav-interface';\nexport * from './interfaces/menu.interface';\nexport * from './interfaces/message-banner';\nexport * from './interfaces/option-interface';\nexport * from './interfaces/scrolling-card-interface';\nexport * from './interfaces/select-interface';\nexport * from './interfaces/status-dot.interface';\nexport * from './interfaces/tab-interface';\nexport * from './interfaces/toast-interface';\nexport * from './interfaces/typography-animation-interface';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId","i1","_get","_includes","_replace","_toString","i3","i2","_isUndefined","_first","_find","_map","_words","_keys","_has","_startCase","_set","i4","takeUntil"],"mappings":"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"}
|