@3dsource/source-ui 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"3dsource-source-ui.mjs","sources":["../../../../projects/3dsource/source-ui/src/lib/components/source-modal/constants/sourceModalIcon.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/components/source-modal.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/components/source-modal.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/constants/sourceModalContext.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/tokens/sourcePopoverDataToken.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/interfaces/defaultSourcePopover.config.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/services/sourcePopover.service.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover-trigger.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover-trigger.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tab-line/components/source-tab-line.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tab-line/components/source-tab-line.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tab-line/constants/sourceTabAppearance.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tabs/source-tabs.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tabs/source-tabs.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tab/source-tab.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tab/source-tab.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/tokens/sourceTooltipDataToken.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/components/source-tooltip.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/components/source-tooltip.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/constants/position.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/interfaces/source-tooltip.interface.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/helpers/index.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/directives/source-tooltip.directive.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/drawPaletteGradient.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/RGBtoHSV.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/calculatePosition.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/clampf.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/RGBtoHEX.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/color-palette/color-palette.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/color-palette/color-palette.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/drawGradient.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/color-slider/color-slider.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/color-slider/color-slider.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/randomUUID.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/container/source-color-picker.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/container/source-color-picker.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/interfaces/source-color-picker.interface.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-slider-group/components/source-slider-group.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-slider-group/components/source-slider-group.component.html","../../../../projects/3dsource/source-ui/src/3dsource-source-ui.ts"],"sourcesContent":["const svgIcons = {\n info: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M11.1 16.7999H12.9V10.7999H11.1V16.7999ZM11.9947 8.9999C12.2482 8.9999 12.4625 8.91415 12.6375 8.74265C12.8125 8.57115 12.9 8.35865 12.9 8.10515C12.9 7.85165 12.8142 7.6374 12.6427 7.4624C12.4712 7.2874 12.2587 7.1999 12.0052 7.1999C11.7517 7.1999 11.5375 7.28565 11.3625 7.45715C11.1875 7.62865 11.1 7.84115 11.1 8.09465C11.1 8.34815 11.1857 8.5624 11.3572 8.7374C11.5287 8.9124 11.7412 8.9999 11.9947 8.9999ZM12.007 21.5999C10.6857 21.5999 9.44166 21.3499 8.27499 20.8499C7.10833 20.3499 6.08749 19.6624 5.21249 18.7874C4.33749 17.9124 3.64999 16.8919 3.14999 15.7259C2.64999 14.5599 2.39999 13.3141 2.39999 11.9884C2.39999 10.6627 2.64999 9.42074 3.14999 8.2624C3.64999 7.10407 4.33749 6.0874 5.21249 5.2124C6.08749 4.3374 7.10799 3.6499 8.27399 3.1499C9.43999 2.6499 10.6858 2.3999 12.0115 2.3999C13.3372 2.3999 14.5792 2.6499 15.7375 3.1499C16.8958 3.6499 17.9125 4.3374 18.7875 5.2124C19.6625 6.0874 20.35 7.1059 20.85 8.2679C21.35 9.43007 21.6 10.6717 21.6 11.9929C21.6 13.3142 21.35 14.5582 20.85 15.7249C20.35 16.8916 19.6625 17.9124 18.7875 18.7874C17.9125 19.6624 16.894 20.3499 15.732 20.8499C14.5698 21.3499 13.3282 21.5999 12.007 21.5999Z\" fill=\"#017BFF\"/></svg>',\n success:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M10.725 15.5999L16.675 9.6749L15.4 8.3999L10.725 13.0499L8.59999 10.9499L7.32499 12.2249L10.725 15.5999ZM12 21.5999C10.6833 21.5999 9.44166 21.3499 8.27499 20.8499C7.10833 20.3499 6.08749 19.6624 5.21249 18.7874C4.33749 17.9124 3.64999 16.8916 3.14999 15.7249C2.64999 14.5582 2.39999 13.3166 2.39999 11.9999C2.39999 10.6666 2.64999 9.42074 3.14999 8.2624C3.64999 7.10407 4.33749 6.0874 5.21249 5.2124C6.08749 4.3374 7.10833 3.6499 8.27499 3.1499C9.44166 2.6499 10.6833 2.3999 12 2.3999C13.3333 2.3999 14.5792 2.6499 15.7375 3.1499C16.8958 3.6499 17.9125 4.3374 18.7875 5.2124C19.6625 6.0874 20.35 7.10407 20.85 8.2624C21.35 9.42074 21.6 10.6666 21.6 11.9999C21.6 13.3166 21.35 14.5582 20.85 15.7249C20.35 16.8916 19.6625 17.9124 18.7875 18.7874C17.9125 19.6624 16.8958 20.3499 15.7375 20.8499C14.5792 21.3499 13.3333 21.5999 12 21.5999Z\" fill=\"#16A34A\"/></svg>',\n distruct:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M12 12.9505C12.2832 12.9505 12.5292 12.8461 12.738 12.6373C12.946 12.4293 13.05 12.1837 13.05 11.9005V8.04969C13.05 7.76649 12.946 7.52489 12.738 7.32489C12.5292 7.12489 12.2832 7.02489 12 7.02489C11.7168 7.02489 11.4708 7.12929 11.262 7.33809C11.054 7.54609 10.95 7.79169 10.95 8.07489V11.9257C10.95 12.2089 11.054 12.4505 11.262 12.6505C11.4708 12.8505 11.7168 12.9505 12 12.9505ZM12 17.0257C12.2832 17.0257 12.5292 16.9297 12.738 16.7377C12.946 16.5457 13.05 16.2913 13.05 15.9745C13.05 15.6913 12.946 15.4457 12.738 15.2377C12.5292 15.0297 12.2832 14.9257 12 14.9257C11.7168 14.9257 11.4708 15.0297 11.262 15.2377C11.054 15.4457 10.95 15.6913 10.95 15.9745C10.95 16.2913 11.054 16.5457 11.262 16.7377C11.4708 16.9297 11.7168 17.0257 12 17.0257ZM12 21.9997C10.6168 21.9997 9.3168 21.7373 8.1 21.2125C6.8832 20.6877 5.8248 19.9753 4.9248 19.0753C4.0248 18.1753 3.3124 17.1169 2.7876 15.9001C2.2628 14.6833 2.0004 13.3833 2.0004 12.0001C2.0004 10.6169 2.2628 9.31689 2.7876 8.10009C3.3124 6.88329 4.0248 5.82489 4.9248 4.92489C5.8248 4.02489 6.8832 3.31249 8.1 2.78769C9.3168 2.26289 10.6168 2.00049 12 2.00049C13.3832 2.00049 14.6832 2.26289 15.9 2.78769C17.1168 3.31249 18.1752 4.02489 19.0752 4.92489C19.9752 5.82489 20.6876 6.88329 21.2124 8.10009C21.7372 9.31689 21.9996 10.6169 21.9996 12.0001C21.9996 13.3833 21.7372 14.6833 21.2124 15.9001C20.6876 17.1169 19.9752 18.1753 19.0752 19.0753C18.1752 19.9753 17.1168 20.6877 15.9 21.2125C14.6832 21.7373 13.3832 21.9997 12 21.9997Z\" fill=\"#F24122\"/></svg>',\n};\n\nexport const sourceModalIcon = [\n {\n name: 'info',\n svg: svgIcons.info,\n },\n {\n name: 'success',\n svg: svgIcons.success,\n },\n {\n name: 'distruct',\n svg: svgIcons.distruct,\n },\n {\n name: 'error',\n svg: svgIcons.distruct,\n },\n];\n","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport {\n SourceButton,\n SourceButtonComponent,\n sourceButtonDefaultConfig,\n SourceIconButtonComponent,\n} from '@3dsource/source-ui-native';\nimport type { SourceModalData, DialogButtonsData } from '../interfaces';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { sourceModalIcon } from '../constants/sourceModalIcon';\nimport { HttpClient } from '@angular/common/http';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { SourceModalContextKeys } from '../constants';\n\n@Component({\n selector: 'src-modal',\n templateUrl: './source-modal.component.html',\n styleUrls: ['./source-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SourceIconButtonComponent,\n NgScrollbarModule,\n SourceButtonComponent,\n ],\n})\nexport class SourceModalComponent {\n readonly data: SourceModalData = inject(DIALOG_DATA);\n http = inject(HttpClient);\n sanitizer = inject(DomSanitizer);\n context = signal<SourceModalContextKeys>(this.data?.context || 'default');\n\n testID = signal(this.data?.testID || 'modal');\n stringContent = signal<string | null>(\n typeof this.data.content === 'string' ? this.data.content : null,\n );\n #dialogRef = inject(DialogRef<SourceModalComponent>);\n\n close(result?: any) {\n this.#dialogRef.close(result);\n }\n\n goBack() {\n this.#dialogRef.close();\n }\n\n isArrayOfArrays(\n footerButtons: DialogButtonsData | DialogButtonsData[],\n ): footerButtons is DialogButtonsData[] {\n return (\n Array.isArray(footerButtons) &&\n footerButtons.length > 0 &&\n Array.isArray(footerButtons[0])\n );\n }\n\n getButtonConfig(\n externalConfig: Partial<SourceButton> | undefined,\n ): SourceButton {\n return {\n ...sourceButtonDefaultConfig,\n ...externalConfig,\n };\n }\n\n getSingleButtonArray(\n footerButtons: DialogButtonsData | DialogButtonsData[],\n ): DialogButtonsData {\n return footerButtons as DialogButtonsData;\n }\n\n getIconSvg(iconName: string): SafeHtml {\n const icon = sourceModalIcon.find((icon) => icon.name === iconName);\n const svgContent = icon?.svg || '';\n return this.sanitizer.bypassSecurityTrustHtml(svgContent);\n }\n\n hasIcon(): boolean {\n return (\n this.data.context !== 'default' &&\n !!sourceModalIcon.find((icon) => icon.name === this.data.context)\n );\n }\n}\n","<div [attr.data-testid]=\"testID()\" class=\"src-modal\">\n <div class=\"src-modal__header\">\n @if (data['closeButton']) {\n <src-icon-button\n class=\"src-modal__close\"\n appearance=\"plain\"\n shape=\"round\"\n size=\"sm\"\n weight=\"secondary\"\n [data-testid]=\"testID() + '-header-close'\"\n (onClick)=\"close()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path\n d=\"M10.0001 11.229L6.68618 14.5429C6.51951 14.7096 6.31818 14.7896 6.08218 14.7829C5.84618 14.7756 5.64485 14.6886 5.47818 14.5219C5.31151 14.3553 5.22818 14.1506 5.22818 13.9079C5.22818 13.6646 5.31151 13.4596 5.47818 13.2929L8.77107 10L5.45718 6.68615C5.29051 6.51949 5.21051 6.31482 5.21718 6.07215C5.22451 5.82882 5.31151 5.62382 5.47818 5.45715C5.64485 5.29049 5.84951 5.20715 6.09218 5.20715C6.33551 5.20715 6.54051 5.29049 6.70718 5.45715L10.0001 8.77105L13.314 5.45715C13.4806 5.29049 13.6853 5.20715 13.928 5.20715C14.1713 5.20715 14.3763 5.29049 14.543 5.45715C14.7096 5.62382 14.793 5.82882 14.793 6.07215C14.793 6.31482 14.7096 6.51949 14.543 6.68615L11.2291 10L14.543 13.3139C14.7096 13.4806 14.793 13.6819 14.793 13.9179C14.793 14.1539 14.7096 14.3553 14.543 14.5219C14.3763 14.6886 14.1713 14.7719 13.928 14.7719C13.6853 14.7719 13.4806 14.6886 13.314 14.5219L10.0001 11.229Z\"\n fill=\"currentColor\"\n />\n </svg>\n </src-icon-button>\n }\n </div>\n\n <div\n [class.src-modal__body--scrollable]=\"scrollbar.isVerticallyScrollable()\"\n [class.src-modal__body--icon]=\"hasIcon()\"\n class=\"src-modal__body\"\n >\n @if (hasIcon()) {\n <div\n class=\"src-modal__icon\"\n [innerHTML]=\"getIconSvg(data['context']!)\"\n ></div>\n }\n <div\n [attr.data-testid]=\"testID() + '-header-title'\"\n class=\"src-modal__title\"\n >\n {{ data['headerTitle'] }}\n </div>\n <ng-scrollbar #scrollbar class=\"src-modal__scroll-box\">\n @if (stringContent(); as content) {\n <div [innerHTML]=\"content\"></div>\n }\n </ng-scrollbar>\n </div>\n\n @if (data.footerButtons) {\n <div class=\"src-modal__footer\">\n @if (isArrayOfArrays(data.footerButtons)) {\n @for (buttonGroup of data.footerButtons; track $index) {\n <div class=\"src-modal__footer-group\">\n @for (footerButton of buttonGroup; track footerButton.label) {\n <src-button\n [srcButtonConfig]=\"\n getButtonConfig(footerButton.srcButtonConfig)\n \"\n (onClick)=\"close(footerButton.action())\"\n >\n {{ footerButton.label }}\n </src-button>\n }\n </div>\n }\n } @else {\n <div class=\"src-modal__footer-group\">\n @for (\n footerButton of getSingleButtonArray(data.footerButtons);\n track footerButton.label\n ) {\n <src-button\n [srcButtonConfig]=\"getButtonConfig(footerButton.srcButtonConfig)\"\n (onClick)=\"close(footerButton.action())\"\n >\n {{ footerButton.label }}\n </src-button>\n }\n </div>\n }\n </div>\n }\n</div>\n","export const SourceModalContext = {\n DEFAULT: 'default',\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type SourceModalContextKeys =\n (typeof SourceModalContext)[keyof typeof SourceModalContext];\n","import { InjectionToken } from '@angular/core';\nimport type { SourcePopoverData } from '../interfaces';\n\nexport const SOURCE_POPOVER_DATA = new InjectionToken<SourcePopoverData>(\n 'SourcePopoverData',\n);\n","import type {\n HorizontalConnectionPos,\n VerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport type { SourcePopoverData } from './sourcePopoverData.interface';\n\nexport const defaultSourcePopoverConfig: SourcePopoverData = {\n headerTitle: undefined,\n backButton: false,\n closeButton: true,\n popoverMaxHeight: 'auto',\n panelCustomClass: '',\n breakpointDesktop: '(min-width: 1024px)',\n hasBackdrop: true,\n closeOnBackdropClick: true,\n position: [\n {\n originX: 'start' as HorizontalConnectionPos,\n originY: 'bottom' as VerticalConnectionPos,\n overlayX: 'start' as HorizontalConnectionPos,\n overlayY: 'top' as VerticalConnectionPos,\n offsetY: 4,\n },\n {\n originX: 'start' as HorizontalConnectionPos,\n originY: 'top' as VerticalConnectionPos,\n overlayX: 'start' as HorizontalConnectionPos,\n overlayY: 'bottom' as VerticalConnectionPos,\n offsetY: -8,\n },\n ],\n testID: '',\n};\n","import {\n DestroyRef,\n inject,\n Injectable,\n Injector,\n signal,\n ViewContainerRef,\n} from '@angular/core';\nimport type { SourcePopoverData } from '../interfaces';\nimport { defaultSourcePopoverConfig } from '../interfaces';\nimport {\n CdkOverlayOrigin,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { SOURCE_POPOVER_DATA } from '../tokens/sourcePopoverDataToken';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { SourcePopoverComponent } from '../components/source-popover.component';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class SourcePopoverService {\n #breakpointObserver = inject(BreakpointObserver);\n #overlay = inject(Overlay);\n #destroyRef$ = inject(DestroyRef);\n #defaultSourcePopoverConfig = defaultSourcePopoverConfig;\n #isMobile = signal(false);\n readonly backButtonClicked = signal<OverlayRef | null>(null);\n\n show(\n overlayOrigin: CdkOverlayOrigin,\n viewContainerRef: ViewContainerRef,\n override: Partial<SourcePopoverData>,\n ): OverlayRef {\n const addedPanelClasses = ['src-popover-panel'];\n const backdropClasses = ['src-popover-backdrop'];\n const updatedConfig = this.getUpdatedConfig(override);\n\n if (updatedConfig.panelCustomClass) {\n addedPanelClasses.push(updatedConfig.panelCustomClass);\n }\n this.#breakpointObserver\n .observe(updatedConfig.breakpointDesktop)\n .pipe(takeUntilDestroyed(this.#destroyRef$))\n .subscribe((res) => this.#isMobile.set(!res.matches));\n\n if (this.#isMobile()) {\n addedPanelClasses.push('src-popover-panel--mobile');\n backdropClasses.push('src-popover-backdrop--mobile');\n }\n\n const dropdownPositionStrategy = this.#overlay\n .position()\n .flexibleConnectedTo(overlayOrigin.elementRef)\n .withPositions(updatedConfig.position);\n const drawerPositionStrategy = this.#overlay\n .position()\n .global()\n .centerHorizontally()\n .bottom('0px');\n const scrollStrategy = this.#overlay.scrollStrategies.reposition();\n const config = new OverlayConfig({\n panelClass: addedPanelClasses,\n hasBackdrop: updatedConfig.hasBackdrop,\n backdropClass: backdropClasses,\n positionStrategy: this.#isMobile()\n ? drawerPositionStrategy\n : dropdownPositionStrategy,\n scrollStrategy: scrollStrategy,\n width: this.#isMobile() ? '100%' : 'auto',\n });\n\n const overlayRef = this.#overlay.create(config);\n const injector = Injector.create({\n parent: viewContainerRef.injector,\n providers: [\n {\n provide: SOURCE_POPOVER_DATA,\n useValue: {\n ...updatedConfig,\n overlayRef,\n },\n },\n ],\n });\n const template = new ComponentPortal(\n SourcePopoverComponent,\n viewContainerRef,\n injector,\n );\n overlayRef.attach(template);\n return overlayRef;\n }\n\n closePopover(overlayRef: OverlayRef) {\n overlayRef.dispose();\n }\n\n getUpdatedConfig(override: Partial<SourcePopoverData>): SourcePopoverData {\n return {\n srcPopoverTpl: override?.srcPopoverTpl,\n headerTitle:\n override?.headerTitle ?? this.#defaultSourcePopoverConfig.headerTitle,\n hasBackButton:\n override?.hasBackButton ??\n this.#defaultSourcePopoverConfig.hasBackButton,\n hasCloseButton:\n override?.hasCloseButton ??\n this.#defaultSourcePopoverConfig.hasCloseButton,\n popoverMaxHeight:\n override?.popoverMaxHeight ??\n this.#defaultSourcePopoverConfig.popoverMaxHeight,\n panelCustomClass:\n override?.panelCustomClass ??\n this.#defaultSourcePopoverConfig.panelCustomClass,\n breakpointDesktop:\n override?.breakpointDesktop ??\n this.#defaultSourcePopoverConfig.breakpointDesktop,\n position: override?.position\n ? override?.position\n : this.#defaultSourcePopoverConfig.position,\n closeOnBackdropClick:\n override?.closeOnBackdropClick ??\n this.#defaultSourcePopoverConfig.closeOnBackdropClick,\n hasBackdrop:\n override?.hasBackdrop ?? this.#defaultSourcePopoverConfig.hasBackdrop,\n testID: override?.testID ?? this.#defaultSourcePopoverConfig.testID,\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SOURCE_POPOVER_DATA } from '../tokens/sourcePopoverDataToken';\nimport { SourcePopoverService } from '../services';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { SourceIconButtonComponent } from '@3dsource/source-ui-native';\n\n@Component({\n selector: 'src-popover',\n templateUrl: './source-popover.component.html',\n styleUrls: ['./source-popover.component.scss'],\n imports: [SourceIconButtonComponent, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourcePopoverComponent {\n readonly data = inject(SOURCE_POPOVER_DATA);\n template = signal(\n this.data.srcPopoverTpl instanceof TemplateRef\n ? this.data.srcPopoverTpl\n : null,\n );\n testID = signal(this.data.testID || 'popover');\n #sourcePopoverService = inject(SourcePopoverService);\n\n close() {\n this.#sourcePopoverService.closePopover(this.data.overlayRef!);\n }\n\n emitBackAction() {\n this.#sourcePopoverService.closePopover(this.data.overlayRef!);\n }\n}\n","<div\n class=\"src-popover\"\n [style.maxHeight]=\"data.popoverMaxHeight\"\n [attr.data-testid]=\"testID()\"\n>\n @if (\n data['hasBackButton'] ||\n data['hasCloseButton'] ||\n (data['headerTitle'] && data['headerTitle'] !== '')\n ) {\n <div class=\"src-popover__header\">\n @if (data['hasBackButton']) {\n <src-icon-button\n class=\"src-popover__back\"\n shape=\"round\"\n size=\"sm\"\n weight=\"ghost\"\n [data-testid]=\"testID() + '-header-back'\"\n (onClick)=\"emitBackAction()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n >\n <path\n d=\"m438-480 164 164q11 11 11 25.5T602-265q-11 11-25.5 11t-25.84-11.34L361-455q-5-5.4-7.5-11.7-2.5-6.3-2.5-13.5t2.5-13.5Q356-500 361-505l189.66-189.66Q562-706 576.5-706t25.5 11q11 11 11 25.5T602-644L438-480Z\"\n />\n </svg>\n </src-icon-button>\n }\n\n <div\n class=\"src-popover__title\"\n [attr.data-testid]=\"testID() + '-header-title'\"\n >\n {{ data.headerTitle }}\n </div>\n\n @if (data['hasCloseButton']) {\n <src-icon-button\n class=\"src-popover__close\"\n shape=\"round\"\n size=\"sm\"\n weight=\"ghost\"\n [data-testid]=\"testID() + '-header-close'\"\n (click)=\"close()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M10.0001 11.229L6.68618 14.5429C6.51951 14.7096 6.31818 14.7896 6.08218 14.7829C5.84618 14.7756 5.64485 14.6886 5.47818 14.5219C5.31151 14.3553 5.22818 14.1506 5.22818 13.9079C5.22818 13.6646 5.31151 13.4596 5.47818 13.2929L8.77107 10L5.45718 6.68615C5.29051 6.51949 5.21051 6.31482 5.21718 6.07215C5.22451 5.82882 5.31151 5.62382 5.47818 5.45715C5.64485 5.29049 5.84951 5.20715 6.09218 5.20715C6.33551 5.20715 6.54051 5.29049 6.70718 5.45715L10.0001 8.77105L13.314 5.45715C13.4806 5.29049 13.6853 5.20715 13.928 5.20715C14.1713 5.20715 14.3763 5.29049 14.543 5.45715C14.7096 5.62382 14.793 5.82882 14.793 6.07215C14.793 6.31482 14.7096 6.51949 14.543 6.68615L11.2291 10L14.543 13.3139C14.7096 13.4806 14.793 13.6819 14.793 13.9179C14.793 14.1539 14.7096 14.3553 14.543 14.5219C14.3763 14.6886 14.1713 14.7719 13.928 14.7719C13.6853 14.7719 13.4806 14.6886 13.314 14.5219L10.0001 11.229Z\"\n fill=\"currentColor\"\n />\n </svg>\n </src-icon-button>\n }\n </div>\n }\n\n <div class=\"src-popover__body\">\n @if (template()) {\n <ng-template [ngTemplateOutlet]=\"template()\"></ng-template>\n }\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n CdkOverlayOrigin,\n ConnectedPosition,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport type { SourcePopoverData } from '../interfaces';\nimport { SourcePopoverService } from '../services';\nimport { take } from 'rxjs';\n\n@Component({\n selector: 'src-popover-trigger',\n templateUrl: './source-popover-trigger.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [SourcePopoverService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CdkOverlayOrigin],\n})\nexport class SourcePopoverTriggerComponent {\n overlayOrigin = viewChild(CdkOverlayOrigin);\n srcPopoverTpl = input.required<TemplateRef<HTMLElement>>();\n headerTitle = input<string>();\n activeClass = input<string>();\n hasBackButton = input(false);\n hasCloseButton = input(true);\n hasBackdrop = input(true);\n closeOnBackdropClick = input(true);\n popoverMaxHeight = input('auto');\n panelCustomClass = input<string>();\n testID = input('', { alias: 'data-testid' });\n breakpointDesktop = input('(min-width: 1024px)');\n positions = input<ConnectedPosition[]>([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ]);\n\n popoverShown = signal(false);\n onPopoverShown = output<boolean>();\n onBackButtonClick = output<OverlayRef>();\n overlayRef: OverlayRef | null = null;\n #sourcePopoverService = inject(SourcePopoverService, { self: true });\n #viewContainerRef = inject(ViewContainerRef);\n\n _ = effect(() => {\n if (this.#sourcePopoverService.backButtonClicked()) {\n this.onBackButtonClick.emit(this.overlayRef!);\n }\n });\n\n showPopover() {\n const config: Partial<SourcePopoverData> = {\n srcPopoverTpl: this.srcPopoverTpl(),\n overlayOrigin: this.overlayOrigin(),\n headerTitle: this.headerTitle(),\n hasBackButton: this.hasBackButton(),\n hasCloseButton: this.hasCloseButton(),\n popoverMaxHeight: this.popoverMaxHeight(),\n panelCustomClass: this.panelCustomClass(),\n breakpointDesktop: this.breakpointDesktop(),\n position: this.positions(),\n hasBackdrop: this.hasBackdrop(),\n closeOnBackdropClick: this.closeOnBackdropClick(),\n testID: this.testID(),\n };\n\n this.overlayRef = this.#sourcePopoverService.show(\n this.overlayOrigin()!,\n this.#viewContainerRef,\n config,\n );\n\n this.popoverShown.set(true);\n this.onPopoverShown.emit(true);\n\n this.overlayRef\n .detachments()\n .pipe(take(1))\n .subscribe(() => {\n this.popoverShown.set(false);\n this.onPopoverShown.emit(false);\n this.overlayRef = null;\n });\n\n this.overlayRef\n .backdropClick()\n .pipe(take(1))\n .subscribe(() => this.overlayRef?.detach());\n }\n}\n","<div\n cdkOverlayOrigin\n [attr.data-testid]=\"testID()\"\n (click)=\"showPopover()\"\n [class]=\"popoverShown() ? activeClass() || 'active' : ''\"\n>\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n CUSTOM_ELEMENTS_SCHEMA,\n effect,\n ElementRef,\n input,\n linkedSignal,\n output,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { register } from 'swiper/element/bundle';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { SourceTabAppearanceKeys } from '../constants';\n\nregister();\n\n@Component({\n selector: 'src-tab-line',\n templateUrl: './source-tab-line.component.html',\n styleUrls: ['./source-tab-line.component.scss'],\n imports: [NgClass, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SourceTabLineComponent {\n swiperRef = viewChild<ElementRef>('swiperRef');\n tabs = input.required<any[]>();\n label = input.required<string>();\n selectedIndex = input(0);\n appearance = input<SourceTabAppearanceKeys>('default');\n isCompact = input(false);\n offsetBefore = input<number | undefined>(undefined);\n offsetAfter = input<number | undefined>(undefined);\n spaceBetween = input<number | undefined>(undefined);\n isFullWidth = input(false);\n isSwiper = input(false);\n testID = input('', { alias: 'data-testid' });\n tabsSelectedIndex = linkedSignal(() => this.selectedIndex());\n onSelectTab = output<number>();\n\n classes = computed(() =>\n [\n `src-tab-line--${this.appearance()}`,\n this.isFullWidth() ? 'src-tab-line--full-width' : '',\n ].filter(Boolean),\n );\n\n variables = computed(\n () =>\n `--srcTabsOffsetBefore: ${this.tabsOffsetBefore()}px; --srcTabsOffsetAfter: ${this.tabsOffsetAfter()}px; --srcTabsSpaceBetween: ${this.spacing()}px;`,\n );\n tabsOffsetBefore = computed(\n () => this.offsetBefore() ?? (this.isCompact() ? 8 : 16),\n );\n tabsOffsetAfter = computed(\n () => this.offsetAfter() ?? (this.isCompact() ? 8 : 16),\n );\n spacing = computed(() => this.spaceBetween() ?? (this.isCompact() ? 0 : 4));\n\n _ = effect(() => {\n const swiperRef = this.swiperRef();\n untracked(() => {\n if (!swiperRef?.nativeElement || !this.isSwiper()) return;\n Object.assign(swiperRef.nativeElement, {\n spaceBetween: this.spacing(),\n slidesOffsetBefore: this.tabsOffsetBefore(),\n slidesOffsetAfter: this.tabsOffsetAfter(),\n slidesPerView: 'auto',\n centeredSlides: false,\n slideToClickedSlide: true,\n });\n swiperRef.nativeElement.initialize();\n });\n });\n\n selectTab(tabIndex: number) {\n this.tabsSelectedIndex.set(tabIndex);\n this.onSelectTab.emit(tabIndex);\n }\n}\n","<div [attr.data-testid]=\"testID()\" [ngClass]=\"classes()\" class=\"src-tab-line\">\n @if (isSwiper()) {\n <div class=\"src-tabs__nav src-tabs__nav--swiper\">\n <swiper-container #swiperRef init=\"false\">\n @for (tab of tabs(); track tab) {\n <swiper-slide class=\"src-tabs__nav-slide\">\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{ tab: tab, index: $index }\"\n ></ng-container>\n </swiper-slide>\n }\n </swiper-container>\n </div>\n } @else {\n <div class=\"src-tabs__nav\" [style]=\"variables()\">\n @for (tab of tabs(); track tab) {\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{ tab: tab, index: $index }\"\n ></ng-container>\n }\n </div>\n }\n</div>\n\n<ng-template #template let-i=\"index\" let-tab=\"tab\">\n <div\n class=\"src-tabs__nav-item\"\n [class.src-tabs__nav-item--active]=\"i === tabsSelectedIndex()\"\n >\n <div\n class=\"src-button src-button--plain\"\n [class.src-button--pressed]=\"i === tabsSelectedIndex()\"\n (click)=\"selectTab(i)\"\n [attr.data-testid]=\"testID() + '-tab-label-' + tab[label()]\"\n [class.src-button--full-width]=\"isFullWidth()\"\n [class.src-button--disabled]=\"tab.isDisabled\"\n >\n {{ tab[label()] }}\n </div>\n </div>\n</ng-template>\n","export const SourceTabAppearance = {\n DEFAULT: 'default',\n BUTTON: 'button',\n};\nexport type SourceTabAppearanceKeys =\n (typeof SourceTabAppearance)[keyof typeof SourceTabAppearance];\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { SourceTabData } from '../../interfaces';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { SwiperOptions } from 'swiper/types';\nimport { SourceTabLineComponent } from '../../../source-tab-line';\n\n@Component({\n selector: 'src-tabs',\n templateUrl: './source-tabs.component.html',\n imports: [NgTemplateOutlet, SourceTabLineComponent],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceTabsComponent {\n label = input.required<string>();\n data = input.required<SourceTabData[]>();\n selectedIndex = input(0);\n headerTemplate = input<TemplateRef<any>>();\n isCompact = input(false);\n isFullWidth = input(false);\n isSwiper = input(false);\n swiperConfig = input<SwiperOptions>();\n testID = input('', { alias: 'data-testid' });\n onSelectTab = output<number>();\n\n setActive(idx: number) {\n this.onSelectTab.emit(idx);\n }\n}\n","<div class=\"src-tabs\">\n <ng-template #defaultTabsHeader>\n <src-tab-line\n [tabs]=\"data()\"\n [label]=\"label()\"\n [isCompact]=\"isCompact()\"\n [isFullWidth]=\"isFullWidth()\"\n [selectedIndex]=\"selectedIndex()\"\n [isSwiper]=\"isSwiper()\"\n [data-testid]=\"testID()\"\n (onSelectTab)=\"setActive($event)\"\n ></src-tab-line>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate() ? headerTemplate()! : defaultTabsHeader;\n context: { tabs: this.data }\n \"\n >\n </ng-container>\n\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'src-tab',\n templateUrl: './source-tab.component.html',\n styleUrls: ['./source-tab.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceTabComponent {\n isActive = input(false);\n}\n","<div [hidden]=\"!isActive()\" class=\"src-tab-content\">\n <ng-content></ng-content>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport type { SourceTooltipData } from '../interfaces/source-tooltip.interface';\n\nexport const SOURCE_TOOLTIP_DATA = new InjectionToken<SourceTooltipData>(\n 'Data to display in tooltip',\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { SOURCE_TOOLTIP_DATA } from '../tokens/sourceTooltipDataToken';\n\n@Component({\n selector: 'src-tooltip',\n templateUrl: './source-tooltip.component.html',\n styleUrls: ['./source-tooltip.component.scss'],\n imports: [NgClass, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceTooltipComponent {\n readonly data = inject(SOURCE_TOOLTIP_DATA);\n\n get asString() {\n return typeof this.data.content === 'string' ? this.data.content : false;\n }\n\n get asTemplate() {\n return this.data.content instanceof TemplateRef ? this.data.content : false;\n }\n}\n","<div\n class=\"src-tooltip\"\n [ngClass]=\"data.srcTooltipCustomClass\"\n [style.--srcTooltipMaxWidth]=\"data.srcTooltipMaxWidth\"\n>\n <div\n class=\"src-tooltip__content\"\n [class.src-tooltip__content--custom]=\"asTemplate\"\n >\n @if (asString) {\n {{ asString }}\n }\n\n @if (asTemplate) {\n <ng-template [ngTemplateOutlet]=\"asTemplate\"></ng-template>\n }\n </div>\n\n @if (data.srcTooltipPosition === 'top') {\n <svg\n class=\"src-tooltip__pin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n >\n <path\n d=\"M6.26822 5.07814C5.86842 5.55789 5.13157 5.55789 4.73178 5.07813L0.500001 -1.35106e-06L10.5 -4.76837e-07L6.26822 5.07814Z\"\n fill=\"currentColor\"\n />\n </svg>\n }\n\n @if (data.srcTooltipPosition === 'right') {\n <svg\n class=\"src-tooltip__pin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"6\"\n height=\"10\"\n viewBox=\"0 0 6 10\"\n fill=\"none\"\n >\n <path\n d=\"M0.921864 5.76822C0.44211 5.36842 0.442111 4.63157 0.921865 4.23178L6 -2.62268e-07L6 10L0.921864 5.76822Z\"\n fill=\"currentColor\"\n />\n </svg>\n }\n\n @if (data.srcTooltipPosition === 'bottom') {\n <svg\n class=\"src-tooltip__pin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n >\n <path\n d=\"M4.73178 0.921865C5.13158 0.44211 5.86843 0.442111 6.26822 0.921866L10.5 6L0.5 6L4.73178 0.921865Z\"\n fill=\"currentColor\"\n />\n </svg>\n }\n\n @if (data.srcTooltipPosition === 'left') {\n <svg\n class=\"src-tooltip__pin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"6\"\n height=\"10\"\n viewBox=\"0 0 6 10\"\n fill=\"none\"\n >\n <path\n d=\"M5.07814 5.76822C5.55789 5.36842 5.55789 4.63157 5.07813 4.23178L-3.97233e-08 -2.62268e-07L-4.76837e-07 10L5.07814 5.76822Z\"\n fill=\"currentColor\"\n />\n </svg>\n }\n</div>\n","import type { ConnectedPosition } from '@angular/cdk/overlay';\nimport type { SourceTooltipPositionKeys } from '../interfaces/source-tooltip.interface';\n\nexport const TooltipPositions: Record<\n SourceTooltipPositionKeys,\n ConnectedPosition\n> = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n panelClass: 'src-tooltip--top',\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n panelClass: 'src-tooltip--bottom',\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n panelClass: 'src-tooltip--left',\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n panelClass: 'src-tooltip--right',\n },\n};\n","import { TemplateRef } from '@angular/core';\n\nexport const SourceTooltipPosition = {\n TOP: 'top',\n BOTTOM: 'bottom',\n LEFT: 'left',\n RIGHT: 'right',\n} as const;\n\nexport type SourceTooltipPositionKeys =\n (typeof SourceTooltipPosition)[keyof typeof SourceTooltipPosition];\n\nexport interface SourceTooltipData {\n content?: string | TemplateRef<void>;\n srcTooltipMaxWidth: string;\n srcTooltipHideDelay: number;\n srcTooltipPosition: SourceTooltipPositionKeys;\n srcTooltipCustomClass: string;\n}\n","export const isDesktop = () => {\n // 1) Try the newer userAgentData API if available\n const uaData = (navigator as any).userAgentData;\n if (uaData && typeof uaData.mobile === 'boolean') {\n return !uaData.mobile;\n }\n\n // 2) Fallback to a broader UA regex\n const mobileRegex =\n /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile|Windows Phone|webOS|BlackBerry/i;\n return !mobileRegex.test(navigator.userAgent);\n};\n","import { Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n Directive,\n effect,\n ElementRef,\n HostListener,\n inject,\n Injector,\n input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { SourceTooltipComponent } from '../components/source-tooltip.component';\nimport { TooltipPositions } from '../constants/position';\nimport {\n SourceTooltipData,\n SourceTooltipPosition,\n SourceTooltipPositionKeys,\n} from '../interfaces/source-tooltip.interface';\nimport { SOURCE_TOOLTIP_DATA } from '../tokens/sourceTooltipDataToken';\nimport { isDesktop } from '../helpers';\n\n@Directive({\n selector: '[srcTooltip]',\n})\nexport class SourceTooltipDirective implements OnInit, OnDestroy {\n srcTooltip = input.required<string | TemplateRef<void>>();\n srcTooltipPosition = input<SourceTooltipPositionKeys>('top');\n srcTooltipHideDelay = input(0);\n srcTooltipMaxWidth = input('280px');\n srcTooltipCustomClass = input('');\n sourceTooltipData = input<SourceTooltipData>();\n\n private _config!: SourceTooltipData;\n private overlayRef: OverlayRef | null = null;\n private hideTimeout?: number;\n private hoverDevice = this.isDeviceWithHover();\n\n private element = inject<ElementRef<HTMLElement>>(ElementRef);\n private overlay = inject(Overlay);\n private viewContainer = inject(ViewContainerRef);\n\n _ = effect(() => {\n const tooltip = this.srcTooltip();\n\n this._config = {\n ...this._config,\n content: tooltip,\n };\n });\n\n @HostListener('mouseenter')\n @HostListener('focus')\n showTooltip() {\n this.addTooltip();\n }\n\n @HostListener('mouseleave')\n @HostListener('blur')\n hideTooltip() {\n this.removeTooltip();\n }\n\n ngOnInit() {\n if (\n !Object.values(SourceTooltipPosition).includes(this.srcTooltipPosition())\n ) {\n throw new Error(\n 'Invalid tooltip position. Please provide a valid position',\n );\n }\n if (this.sourceTooltipData()) {\n this._config = {\n ...this.sourceTooltipData()!,\n content: this.srcTooltip() ?? '',\n };\n } else {\n this._config = {\n content: this.srcTooltip(),\n srcTooltipMaxWidth: this.srcTooltipMaxWidth(),\n srcTooltipHideDelay: this.srcTooltipHideDelay(),\n srcTooltipPosition: this.srcTooltipPosition(),\n srcTooltipCustomClass: this.srcTooltipCustomClass(),\n };\n }\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n destroy() {\n if (this.overlayRef !== null) {\n window.clearInterval(this.hideTimeout);\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n }\n\n private addTooltip() {\n if (\n !this.hoverDevice ||\n this.overlayRef?.hasAttached() === true ||\n !this._config.content\n ) {\n return;\n }\n\n window.clearInterval(this.hideTimeout);\n this.attachTooltip(this._config.srcTooltipPosition);\n }\n\n private removeTooltip() {\n if (!this.hoverDevice || this.overlayRef?.hasAttached() === false) {\n return;\n }\n\n if (this._config.srcTooltipHideDelay === 0) {\n this.destroy();\n\n return;\n }\n\n this.hideTimeout = window.setTimeout(\n this.destroy.bind(this),\n this._config.srcTooltipHideDelay,\n );\n }\n\n private attachTooltip(position: SourceTooltipPositionKeys) {\n if (this.overlayRef === null) {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.getPositionStrategy(position),\n });\n }\n\n const injector = Injector.create({\n providers: [\n {\n provide: SOURCE_TOOLTIP_DATA,\n useValue: this._config,\n },\n ],\n });\n\n const component = new ComponentPortal(\n SourceTooltipComponent,\n this.viewContainer,\n injector,\n );\n this.overlayRef.attach(component);\n }\n\n private getPositionStrategy(\n position: SourceTooltipPositionKeys,\n ): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions([TooltipPositions[position]]);\n }\n\n private isDeviceWithHover() {\n const hasHover = window.matchMedia('(hover: hover)').matches;\n const hasFinePointer = window.matchMedia('(pointer: fine)').matches;\n const userAgent = navigator.userAgent;\n const isSamsungDevice = /Samsung/i.test(userAgent);\n return (hasHover || hasFinePointer) && isDesktop() && !isSamsungDevice;\n }\n}\n","export function drawPaletteGradient(\n ctx: CanvasRenderingContext2D,\n rectWidth: number,\n rectHeight: number,\n): void {\n const whiteGrad = ctx.createLinearGradient(0, 0, rectWidth, 0);\n whiteGrad.addColorStop(0, 'rgba(255,255,255,1)');\n whiteGrad.addColorStop(1, 'rgba(255,255,255,0)');\n\n ctx.fillStyle = whiteGrad;\n ctx.fillRect(0, 0, rectWidth, rectHeight);\n\n const blackGrad = ctx.createLinearGradient(0, 0, 0, rectHeight);\n blackGrad.addColorStop(0, 'rgba(0,0,0,0)');\n blackGrad.addColorStop(1, 'rgba(0,0,0,1)');\n\n ctx.fillStyle = blackGrad;\n ctx.fillRect(0, 0, rectWidth, rectHeight);\n}\n","/**\n * RGB from the respective figures, HSV sequences in terms of returns.\n * RGB values are as follows.\n * R - a number from 0 to 255\n * G - a number from 0 to 255\n * B - a number from 0 to 255\n *\n * HSV values are as follows.\n * H - a number between 360-0\n * S - number between 0 and 1.0\n * V - number between 0 and 1.0\n *\n * Cannot compute, including alpha.\n * @ Param r the red (R) indicating the number (0x00 to 0xFF to)\n * @ Param g green (G) indicates the number (0x00 to 0xFF to)\n * @ Param b blue (B) shows the number (0x00 to 0xFF to)\n * @ Return HSV values into an any[] of [H, S, V]\n **/\nexport function RGBtoHSV(r: number, g: number, b: number): any[] {\n r /= 255;\n g /= 255;\n b /= 255;\n let h = 0,\n s = 0,\n v = 0;\n let x: number, y: number;\n if (r >= g) x = r;\n else x = g;\n if (b > x) x = b;\n if (r <= g) y = r;\n else y = g;\n if (b < y) y = b;\n v = x;\n const c: number = x - y;\n if (x == 0) s = 0;\n else s = c / x;\n if (s != 0) {\n if (r == x) {\n h = (g - b) / c;\n } else {\n if (g == x) {\n h = 2 + (b - r) / c;\n } else {\n if (b == x) {\n h = 4 + (r - g) / c;\n }\n }\n }\n h = h * 60;\n if (h < 0) h = h + 360;\n }\n return [h, s, v];\n}\n","import { RGBtoHSV } from './RGBtoHSV';\nimport type { SourceColorPickerOrientationKeys } from '../interfaces/source-color-picker.interface';\n\nexport function calculatePosition(\n width: number,\n height: number,\n color: string,\n orientation?: SourceColorPickerOrientationKeys,\n) {\n const [r, g, b] = color\n .slice(1)\n .match(/.{1,2}/g)!\n .map((x) => parseInt(x, 16));\n const [h, s, l] = RGBtoHSV(r, g, b);\n\n if (orientation === undefined) {\n return { x: width * s, y: height * (1 - l) };\n }\n\n return orientation === 'horizontal'\n ? { x: (width * h) / 360, y: height / 2 }\n : { x: width / 2, y: (height * h) / 360 };\n}\n","export function clampf(min: number, max: number, value: number): number {\n return Math.min(max, Math.max(min, value));\n}\n","export function RGBtoHEX(r: number, g: number, b: number): string {\n let _r = r.toString(16);\n let _g = g.toString(16);\n let _b = b.toString(16);\n\n if (_r.length === 1) {\n _r = '0' + _r;\n }\n if (_g.length === 1) {\n _g = '0' + _g;\n }\n if (_b.length === 1) {\n _b = '0' + _b;\n }\n\n return (_r + _g + _b).toUpperCase();\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n HostListener,\n input,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { drawPaletteGradient } from '../../helpers/drawPaletteGradient';\nimport { calculatePosition } from '../../helpers/calculatePosition';\nimport { clampf } from '../../helpers/clampf';\nimport { RGBtoHEX } from '../../helpers/RGBtoHEX';\n\n@Component({\n standalone: true,\n selector: 'src-color-palette',\n templateUrl: './color-palette.component.html',\n styleUrls: ['./color-palette.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ColorPaletteComponent {\n paletteContainer =\n viewChild<ElementRef<HTMLCanvasElement>>('paletteContainer');\n canvas = viewChild<ElementRef<HTMLCanvasElement>>('paletteCanvas');\n indicator = viewChild<ElementRef<HTMLSpanElement>>('indicator');\n selectedHex = input.required<string>();\n isNeedUpdatePalette = input.required<string | null>();\n paletteColorUpdate = output<string>();\n selectedPosition = signal({ x: 0, y: 0 });\n ctx = signal<CanvasRenderingContext2D | null>(null);\n width = signal(0);\n height = signal(0);\n\n _ = effect(() => {\n const container = this.paletteContainer();\n const canvas = this.canvas();\n\n untracked(() => {\n if (container?.nativeElement && canvas?.nativeElement) {\n this.width.set(container.nativeElement.offsetWidth);\n this.height.set(container.nativeElement.offsetHeight);\n requestAnimationFrame(() => this.redraw());\n }\n });\n });\n _isNeedUpdatePalette = effect(() => {\n const isNeedUpdatePalette = this.isNeedUpdatePalette();\n untracked(() => {\n if (isNeedUpdatePalette) {\n this.redraw();\n }\n });\n });\n #mousedown = false;\n\n redraw() {\n this.calcPosition();\n this.drawPalette();\n this.drawIndicator();\n }\n\n @HostListener('window:mouseup', ['$event'])\n onMouseUp() {\n this.#mousedown = false;\n }\n\n onMouseDown(event: MouseEvent) {\n this.#mousedown = true;\n this.updatePosition(event);\n }\n\n onMouseMove(event: MouseEvent) {\n if (this.#mousedown) {\n this.updatePosition(event);\n }\n }\n\n private calcPosition() {\n if (this.width() === undefined || this.height() === undefined) {\n return;\n }\n this.selectedPosition.set(\n calculatePosition(this.width(), this.height(), this.selectedHex()),\n );\n }\n\n private updatePosition(event: MouseEvent) {\n if (this.width() === undefined || this.height() === undefined) {\n return;\n }\n this.selectedPosition.set({\n x: clampf(0, this.width() - 1, event.offsetX),\n y: clampf(0, this.height() - 1, event.offsetY),\n });\n\n this.drawIndicator();\n this.updateColor();\n }\n\n private drawPalette() {\n this.ctx.set(\n this.canvas()?.nativeElement.getContext('2d', {\n willReadFrequently: true,\n })!,\n );\n const ctx = this.ctx();\n if (!ctx) {\n return;\n }\n ctx.fillStyle = this.selectedHex() || 'rgba(255,255,255,1)';\n ctx.fillRect(0, 0, this.width(), this.height());\n drawPaletteGradient(ctx, this.width(), this.height());\n }\n\n private drawIndicator() {\n const indicator = this.indicator()?.nativeElement;\n if (!indicator) {\n return;\n }\n indicator.style.left = this.selectedPosition().x + 'px';\n indicator.style.top = this.selectedPosition().y + 'px';\n }\n\n private updateColor() {\n const imageData = this.ctx()!.getImageData(\n this.selectedPosition().x,\n this.selectedPosition().y,\n 1,\n 1,\n ).data;\n this.paletteColorUpdate.emit(\n `#${RGBtoHEX(imageData[0], imageData[1], imageData[2])}`,\n );\n }\n}\n","<div #paletteContainer class=\"src-color-palette\">\n <canvas\n #paletteCanvas\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n [height]=\"height()\"\n [width]=\"width()\"\n class=\"src-color-palette__canvas\"\n >\n </canvas>\n</div>\n<span #indicator class=\"src-color-picker-indicator\"></span>\n","import type { SourceColorPickerOrientationKeys } from '../interfaces/source-color-picker.interface';\n\nexport function drawGradient(\n ctx: CanvasRenderingContext2D,\n rectWidth: number,\n rectHeight: number,\n orientation: SourceColorPickerOrientationKeys,\n): void {\n const gradient =\n orientation === 'horizontal'\n ? ctx.createLinearGradient(0, 0, rectWidth, 0)\n : ctx.createLinearGradient(0, 0, 0, rectHeight);\n gradient.addColorStop(0, 'red');\n gradient.addColorStop(1 / 6, 'yellow');\n gradient.addColorStop(2 / 6, 'lime');\n gradient.addColorStop(3 / 6, 'cyan');\n gradient.addColorStop(4 / 6, 'blue');\n gradient.addColorStop(5 / 6, 'magenta');\n gradient.addColorStop(1, 'red');\n\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, rectWidth, rectHeight);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n HostListener,\n input,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { SourceColorPickerOrientationKeys } from '../../interfaces/source-color-picker.interface';\nimport { calculatePosition } from '../../helpers/calculatePosition';\nimport { drawGradient } from '../../helpers/drawGradient';\nimport { clampf } from '../../helpers/clampf';\nimport { RGBtoHEX } from '../../helpers/RGBtoHEX';\n\n@Component({\n standalone: true,\n selector: 'src-color-slider',\n templateUrl: './color-slider.component.html',\n styleUrls: ['./color-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ColorSliderComponent {\n sliderContainer = viewChild<ElementRef<HTMLDivElement>>('sliderContainer');\n canvas = viewChild<ElementRef<HTMLCanvasElement>>('canvas');\n indicator = viewChild<ElementRef<HTMLSpanElement>>('indicator');\n selectedHex = input.required<string>();\n orientation = input.required<SourceColorPickerOrientationKeys>();\n sliderThickness = input.required<number>();\n isNeedUpdateSlider = input.required<string | null>();\n sliderColorUpdate = output<string>();\n selectedPosition = signal({ x: 0, y: 0 });\n width = signal(0);\n height = signal(0);\n ctx = signal<CanvasRenderingContext2D | null>(null);\n\n _ = effect(() => {\n const container = this.sliderContainer();\n const canvas = this.canvas();\n\n untracked(() => {\n if (container?.nativeElement && canvas?.nativeElement) {\n this.width.set(\n this.orientation() === 'horizontal'\n ? container.nativeElement.clientWidth\n : this.sliderThickness(),\n );\n this.height.set(\n this.orientation() === 'horizontal'\n ? this.sliderThickness()\n : container.nativeElement.clientHeight,\n );\n requestAnimationFrame(() => this.redraw());\n }\n });\n });\n _isNeedUpdateSlider = effect(() => {\n const isNeedUpdateSlider = this.isNeedUpdateSlider();\n untracked(() => {\n if (isNeedUpdateSlider) {\n this.redraw();\n }\n });\n });\n #mousedown = false;\n\n redraw() {\n this.calcPosition();\n this.drawSlider();\n this.drawIndicator();\n }\n\n @HostListener('window:mouseup', ['$event'])\n onMouseUp() {\n this.#mousedown = false;\n }\n\n onMouseDown(event: MouseEvent) {\n this.#mousedown = true;\n this.updatePosition(event);\n }\n\n onMouseMove(event: MouseEvent) {\n if (this.#mousedown) {\n this.updatePosition(event);\n }\n }\n\n private calcPosition() {\n if (this.width() === undefined || this.height() === undefined) {\n return;\n }\n this.selectedPosition.set(\n calculatePosition(\n this.width(),\n this.height(),\n this.selectedHex(),\n this.orientation(),\n ),\n );\n }\n\n private updatePosition(event: MouseEvent) {\n if (this.width() === undefined || this.height() === undefined) {\n return;\n }\n this.selectedPosition.set(\n this.orientation() === 'horizontal'\n ? {\n x: clampf(0, this.width() - 1, event.offsetX),\n y: this.height() / 2,\n }\n : {\n x: this.width() / 2,\n y: clampf(0, this.height() - 1, event.offsetY),\n },\n );\n this.drawIndicator();\n this.updateColor();\n }\n\n private drawSlider() {\n this.ctx.set(\n this.canvas()?.nativeElement.getContext('2d', {\n willReadFrequently: true,\n })!,\n );\n const ctx = this.ctx();\n if (!ctx) {\n return;\n }\n ctx.fillRect(0, 0, this.width(), this.height());\n drawGradient(ctx, this.width(), this.height(), this.orientation());\n }\n\n private drawIndicator() {\n const indicator = this.indicator()?.nativeElement;\n if (!indicator) {\n return;\n }\n indicator.style.left = this.selectedPosition().x + 'px';\n indicator.style.top = this.selectedPosition().y + 'px';\n }\n\n private updateColor() {\n const imageData = this.ctx()!.getImageData(\n this.selectedPosition().x,\n this.selectedPosition().y,\n 1,\n 1,\n ).data;\n this.sliderColorUpdate.emit(\n `#${RGBtoHEX(imageData[0], imageData[1], imageData[2])}`,\n );\n }\n}\n","<div #sliderContainer class=\"src-color-slider\">\n <canvas\n #canvas\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n [height]=\"height()\"\n [width]=\"width()\"\n class=\"src-color-slider__canvas\"\n >\n </canvas>\n <span #indicator class=\"src-color-picker-indicator\"></span>\n</div>\n","export const randomUUID = (): string => crypto.randomUUID();\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n linkedSignal,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ColorPaletteComponent } from '../color-palette/color-palette.component';\nimport { ColorSliderComponent } from '../color-slider/color-slider.component';\nimport { SourceColorPickerOrientationKeys } from '../../interfaces/source-color-picker.interface';\nimport { randomUUID } from '../../helpers/randomUUID';\n\nconst matchRegexp = /^#[0-9a-f]{6}$/i;\n\n@Component({\n selector: 'src-color-picker',\n templateUrl: './source-color-picker.component.html',\n styleUrls: ['./source-color-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ColorSliderComponent, ColorPaletteComponent],\n})\nexport class SourceColorPickerComponent {\n selectedColor = input.required<string>();\n isCompact = input(false);\n orientation = input<SourceColorPickerOrientationKeys>('horizontal');\n hasInput = input(true);\n sliderThickness = input(28);\n testID = input('', { alias: 'data-testid' });\n\n colorUpdate = output<string>();\n selectedHex = linkedSignal(() => this.selectedColor());\n isNeedUpdatePalette = signal<string | null>(null);\n isNeedUpdateSlider = signal<string | null>(null);\n\n paletteColorUpdate(color: string) {\n this.update(color);\n }\n\n sliderColorUpdate(color: string) {\n this.update(color);\n this.isNeedUpdatePalette.set(randomUUID());\n }\n\n inputUpdate(event: Event) {\n const input = event.target as HTMLInputElement;\n this.update(input.value);\n this.isNeedUpdatePalette.set(randomUUID());\n this.isNeedUpdateSlider.set(randomUUID());\n }\n\n update(color: string) {\n if (!color.match(matchRegexp)) {\n return;\n }\n this.selectedHex.set(color);\n this.colorUpdate.emit(color);\n }\n}\n","<div\n [class.src-color-picker--compact]=\"isCompact()\"\n [class.src-color-picker--horizontal]=\"orientation() === 'horizontal'\"\n [class.src-color-picker--vertical]=\"orientation() === 'vertical'\"\n [style.--srcColorPickerSliderThickness]=\"sliderThickness() + 'px'\"\n class=\"src-color-picker\"\n [attr.data-testid]=\"testID()\"\n>\n <div class=\"src-color-picker__wrapper\">\n <src-color-palette\n (paletteColorUpdate)=\"paletteColorUpdate($event)\"\n [isNeedUpdatePalette]=\"isNeedUpdatePalette()\"\n [selectedHex]=\"selectedHex()\"\n ></src-color-palette>\n <src-color-slider\n (sliderColorUpdate)=\"sliderColorUpdate($event)\"\n [isNeedUpdateSlider]=\"isNeedUpdateSlider()\"\n [orientation]=\"orientation()\"\n [selectedHex]=\"selectedHex()\"\n [sliderThickness]=\"sliderThickness()\"\n ></src-color-slider>\n </div>\n @if (hasInput()) {\n <div class=\"src-color-picker__input-row\">\n <input\n class=\"src-input src-color-picker__input\"\n type=\"text\"\n [attr.data-testid]=\"testID() + '-hex-input'\"\n [value]=\"selectedHex()\"\n (input)=\"inputUpdate($event)\"\n />\n <div\n class=\"src-color-picker__swatch\"\n [attr.data-testid]=\"testID() + '-swatch'\"\n [style.background-color]=\"selectedHex() || 'white'\"\n ></div>\n </div>\n }\n</div>\n","export const SourceColorPickerOrientation = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n} as const;\n\nexport type SourceColorPickerOrientationKeys =\n (typeof SourceColorPickerOrientation)[keyof typeof SourceColorPickerOrientation];\n","import { SourceSliderComponent } from '@3dsource/source-ui-native';\nimport {\n ChangeDetectionStrategy,\n Component,\n input,\n linkedSignal,\n OnInit,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'src-slider-group',\n templateUrl: './source-slider-group.component.html',\n styleUrls: ['./source-slider-group.component.scss'],\n imports: [FormsModule, SourceSliderComponent],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceSliderGroupComponent implements OnInit {\n min = input.required<number>();\n max = input.required<number>();\n value = input.required<number>();\n label = input('');\n id = input('');\n step = input(1);\n units = input('%');\n showTicks = input(false);\n showRange = input(false);\n isDisabled = input(false);\n testID = input('', { alias: 'data-testid' });\n groupValueChange = output<number>();\n\n inputValue = linkedSignal(() => this.value());\n sliderValue = linkedSignal(() =>\n Math.min(Math.max(this.value(), this.min()), this.max()),\n );\n\n ngOnInit() {\n this.groupValueChange.emit(this.sliderValue());\n }\n\n updateSliderValue(event: number) {\n const value = Math.min(this.max(), Math.max(this.min(), +event));\n this.inputValue.set(value);\n this.sliderValue.set(value);\n this.groupValueChange.emit(value);\n }\n\n updateSliderValueFromInput(event: Event) {\n const value = Math.min(\n this.max(),\n Math.max(this.min(), (event.target as HTMLInputElement).valueAsNumber),\n );\n this.inputValue.set(value);\n this.sliderValue.set(value);\n this.groupValueChange.emit(value);\n }\n\n onEnter(event: Event) {\n event.preventDefault();\n this.updateSliderValueFromInput(event);\n (event.target as HTMLInputElement).blur();\n }\n}\n","<div\n [attr.data-testid]=\"testID()\"\n [class.src-slider-group--disabled]=\"isDisabled()\"\n class=\"src-slider-group\"\n>\n <div class=\"src-slider-group__label\">\n <label [attr.data-testid]=\"testID() + '-label'\" [for]=\"id()\">\n {{ label() }}</label\n >\n </div>\n <div class=\"src-slider-group__input\">\n <input\n (change)=\"updateSliderValueFromInput($event)\"\n (keydown.enter)=\"onEnter($event)\"\n [attr.data-testid]=\"testID() + '-input'\"\n [disabled]=\"isDisabled()\"\n [max]=\"max()\"\n [min]=\"min()\"\n [value]=\"inputValue()\"\n class=\"src-slider-group__number\"\n type=\"number\"\n />\n @if (units()) {\n <div class=\"src-slider-group__units\">{{ units() }}</div>\n }\n </div>\n <src-slider\n (onChange)=\"updateSliderValue($event)\"\n [data-testid]=\"testID() + '-slider'\"\n [id]=\"id()\"\n [isDisabled]=\"isDisabled()\"\n [max]=\"max()\"\n [min]=\"min()\"\n [showTicks]=\"showTicks()\"\n [step]=\"step()\"\n [value]=\"sliderValue()\"\n ></src-slider>\n @if (showRange()) {\n <div class=\"src-slider-group__range\">\n <span class=\"src-slider-group__range-min\">{{ min() }}</span>\n <span class=\"src-slider-group__range-max\">{{ max() }}</span>\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"3dsource-source-ui.mjs","sources":["../../../../projects/3dsource/source-ui/src/lib/components/source-modal/constants/sourceModalIcon.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/constants/sourceModalContext.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/components/source-modal.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-modal/components/source-modal.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/tokens/sourcePopoverDataToken.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/interfaces/defaultSourcePopover.config.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/services/sourcePopover.service.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover-trigger.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-popover/components/source-popover-trigger.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tab-line/components/source-tab-line.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tab-line/components/source-tab-line.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tab-line/constants/sourceTabAppearance.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tabs/source-tabs.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tabs/source-tabs.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tab/source-tab.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tabs/components/source-tab/source-tab.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/tokens/sourceTooltipDataToken.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/components/source-tooltip.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/components/source-tooltip.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/constants/position.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/interfaces/source-tooltip.interface.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/helpers/index.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-tooltip/directives/source-tooltip.directive.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/drawPaletteGradient.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/RGBtoHSV.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/calculatePosition.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/clampf.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/RGBtoHEX.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/color-palette/color-palette.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/color-palette/color-palette.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/drawGradient.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/color-slider/color-slider.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/color-slider/color-slider.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/helpers/randomUUID.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/container/source-color-picker.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/components/container/source-color-picker.component.html","../../../../projects/3dsource/source-ui/src/lib/components/source-color-picker/interfaces/source-color-picker.interface.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-slider-group/components/source-slider-group.component.ts","../../../../projects/3dsource/source-ui/src/lib/components/source-slider-group/components/source-slider-group.component.html","../../../../projects/3dsource/source-ui/src/3dsource-source-ui.ts"],"sourcesContent":["const svgIcons = {\n info: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M11.1 16.7999H12.9V10.7999H11.1V16.7999ZM11.9947 8.9999C12.2482 8.9999 12.4625 8.91415 12.6375 8.74265C12.8125 8.57115 12.9 8.35865 12.9 8.10515C12.9 7.85165 12.8142 7.6374 12.6427 7.4624C12.4712 7.2874 12.2587 7.1999 12.0052 7.1999C11.7517 7.1999 11.5375 7.28565 11.3625 7.45715C11.1875 7.62865 11.1 7.84115 11.1 8.09465C11.1 8.34815 11.1857 8.5624 11.3572 8.7374C11.5287 8.9124 11.7412 8.9999 11.9947 8.9999ZM12.007 21.5999C10.6857 21.5999 9.44166 21.3499 8.27499 20.8499C7.10833 20.3499 6.08749 19.6624 5.21249 18.7874C4.33749 17.9124 3.64999 16.8919 3.14999 15.7259C2.64999 14.5599 2.39999 13.3141 2.39999 11.9884C2.39999 10.6627 2.64999 9.42074 3.14999 8.2624C3.64999 7.10407 4.33749 6.0874 5.21249 5.2124C6.08749 4.3374 7.10799 3.6499 8.27399 3.1499C9.43999 2.6499 10.6858 2.3999 12.0115 2.3999C13.3372 2.3999 14.5792 2.6499 15.7375 3.1499C16.8958 3.6499 17.9125 4.3374 18.7875 5.2124C19.6625 6.0874 20.35 7.1059 20.85 8.2679C21.35 9.43007 21.6 10.6717 21.6 11.9929C21.6 13.3142 21.35 14.5582 20.85 15.7249C20.35 16.8916 19.6625 17.9124 18.7875 18.7874C17.9125 19.6624 16.894 20.3499 15.732 20.8499C14.5698 21.3499 13.3282 21.5999 12.007 21.5999Z\" fill=\"#017BFF\"/></svg>',\n success:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M10.725 15.5999L16.675 9.6749L15.4 8.3999L10.725 13.0499L8.59999 10.9499L7.32499 12.2249L10.725 15.5999ZM12 21.5999C10.6833 21.5999 9.44166 21.3499 8.27499 20.8499C7.10833 20.3499 6.08749 19.6624 5.21249 18.7874C4.33749 17.9124 3.64999 16.8916 3.14999 15.7249C2.64999 14.5582 2.39999 13.3166 2.39999 11.9999C2.39999 10.6666 2.64999 9.42074 3.14999 8.2624C3.64999 7.10407 4.33749 6.0874 5.21249 5.2124C6.08749 4.3374 7.10833 3.6499 8.27499 3.1499C9.44166 2.6499 10.6833 2.3999 12 2.3999C13.3333 2.3999 14.5792 2.6499 15.7375 3.1499C16.8958 3.6499 17.9125 4.3374 18.7875 5.2124C19.6625 6.0874 20.35 7.10407 20.85 8.2624C21.35 9.42074 21.6 10.6666 21.6 11.9999C21.6 13.3166 21.35 14.5582 20.85 15.7249C20.35 16.8916 19.6625 17.9124 18.7875 18.7874C17.9125 19.6624 16.8958 20.3499 15.7375 20.8499C14.5792 21.3499 13.3333 21.5999 12 21.5999Z\" fill=\"#16A34A\"/></svg>',\n distruct:\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M12 12.9505C12.2832 12.9505 12.5292 12.8461 12.738 12.6373C12.946 12.4293 13.05 12.1837 13.05 11.9005V8.04969C13.05 7.76649 12.946 7.52489 12.738 7.32489C12.5292 7.12489 12.2832 7.02489 12 7.02489C11.7168 7.02489 11.4708 7.12929 11.262 7.33809C11.054 7.54609 10.95 7.79169 10.95 8.07489V11.9257C10.95 12.2089 11.054 12.4505 11.262 12.6505C11.4708 12.8505 11.7168 12.9505 12 12.9505ZM12 17.0257C12.2832 17.0257 12.5292 16.9297 12.738 16.7377C12.946 16.5457 13.05 16.2913 13.05 15.9745C13.05 15.6913 12.946 15.4457 12.738 15.2377C12.5292 15.0297 12.2832 14.9257 12 14.9257C11.7168 14.9257 11.4708 15.0297 11.262 15.2377C11.054 15.4457 10.95 15.6913 10.95 15.9745C10.95 16.2913 11.054 16.5457 11.262 16.7377C11.4708 16.9297 11.7168 17.0257 12 17.0257ZM12 21.9997C10.6168 21.9997 9.3168 21.7373 8.1 21.2125C6.8832 20.6877 5.8248 19.9753 4.9248 19.0753C4.0248 18.1753 3.3124 17.1169 2.7876 15.9001C2.2628 14.6833 2.0004 13.3833 2.0004 12.0001C2.0004 10.6169 2.2628 9.31689 2.7876 8.10009C3.3124 6.88329 4.0248 5.82489 4.9248 4.92489C5.8248 4.02489 6.8832 3.31249 8.1 2.78769C9.3168 2.26289 10.6168 2.00049 12 2.00049C13.3832 2.00049 14.6832 2.26289 15.9 2.78769C17.1168 3.31249 18.1752 4.02489 19.0752 4.92489C19.9752 5.82489 20.6876 6.88329 21.2124 8.10009C21.7372 9.31689 21.9996 10.6169 21.9996 12.0001C21.9996 13.3833 21.7372 14.6833 21.2124 15.9001C20.6876 17.1169 19.9752 18.1753 19.0752 19.0753C18.1752 19.9753 17.1168 20.6877 15.9 21.2125C14.6832 21.7373 13.3832 21.9997 12 21.9997Z\" fill=\"#F24122\"/></svg>',\n};\n\nexport const sourceModalIcon = [\n {\n name: 'info',\n svg: svgIcons.info,\n },\n {\n name: 'success',\n svg: svgIcons.success,\n },\n {\n name: 'distruct',\n svg: svgIcons.distruct,\n },\n {\n name: 'error',\n svg: svgIcons.distruct,\n },\n];\n","export const SourceModalContext = {\n DEFAULT: 'default',\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n} as const;\n\nexport type SourceModalContextKeys =\n (typeof SourceModalContext)[keyof typeof SourceModalContext];\n","import { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport {\n SourceButton,\n SourceButtonComponent,\n sourceButtonDefaultConfig,\n SourceIconButtonComponent,\n} from '@3dsource/source-ui-native';\nimport type { DialogButtonsData, SourceModalData } from '../interfaces';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { SourceModalContextKeys, sourceModalIcon } from '../constants';\nimport { HttpClient } from '@angular/common/http';\n\n@Component({\n selector: 'src-modal',\n templateUrl: './source-modal.component.html',\n styleUrls: ['./source-modal.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SourceIconButtonComponent,\n NgScrollbarModule,\n SourceButtonComponent,\n ],\n})\nexport class SourceModalComponent {\n readonly data: SourceModalData = inject(DIALOG_DATA);\n http = inject(HttpClient);\n sanitizer = inject(DomSanitizer);\n context = signal<SourceModalContextKeys>(this.data?.context || 'default');\n\n testID = signal(this.data?.testID || 'modal');\n stringContent = signal<string | null>(\n typeof this.data.content === 'string' ? this.data.content : null,\n );\n #dialogRef = inject(DialogRef<SourceModalComponent>);\n\n close(result?: any) {\n this.#dialogRef.close(result);\n }\n\n goBack() {\n this.#dialogRef.close();\n }\n\n isArrayOfArrays(\n footerButtons: DialogButtonsData | DialogButtonsData[],\n ): footerButtons is DialogButtonsData[] {\n return (\n Array.isArray(footerButtons) &&\n footerButtons.length > 0 &&\n Array.isArray(footerButtons[0])\n );\n }\n\n getButtonConfig(\n externalConfig: Partial<SourceButton> | undefined,\n ): SourceButton {\n return {\n ...sourceButtonDefaultConfig,\n ...externalConfig,\n };\n }\n\n getSingleButtonArray(\n footerButtons: DialogButtonsData | DialogButtonsData[],\n ): DialogButtonsData {\n return footerButtons as DialogButtonsData;\n }\n\n getIconSvg(iconName: string): SafeHtml {\n const icon = sourceModalIcon.find((icon) => icon.name === iconName);\n const svgContent = icon?.svg || '';\n return this.sanitizer.bypassSecurityTrustHtml(svgContent);\n }\n\n hasIcon(): boolean {\n return (\n this.data.context !== 'default' &&\n !!sourceModalIcon.find((icon) => icon.name === this.data.context)\n );\n }\n}\n","<div [attr.data-testid]=\"testID()\" class=\"src-modal\">\n <div class=\"src-modal__header\">\n @if (data['closeButton']) {\n <src-icon-button\n class=\"src-modal__close\"\n appearance=\"plain\"\n shape=\"round\"\n size=\"sm\"\n weight=\"secondary\"\n [data-testid]=\"testID() + '-header-close'\"\n (onClick)=\"close()\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path\n d=\"M10.0001 11.229L6.68618 14.5429C6.51951 14.7096 6.31818 14.7896 6.08218 14.7829C5.84618 14.7756 5.64485 14.6886 5.47818 14.5219C5.31151 14.3553 5.22818 14.1506 5.22818 13.9079C5.22818 13.6646 5.31151 13.4596 5.47818 13.2929L8.77107 10L5.45718 6.68615C5.29051 6.51949 5.21051 6.31482 5.21718 6.07215C5.22451 5.82882 5.31151 5.62382 5.47818 5.45715C5.64485 5.29049 5.84951 5.20715 6.09218 5.20715C6.33551 5.20715 6.54051 5.29049 6.70718 5.45715L10.0001 8.77105L13.314 5.45715C13.4806 5.29049 13.6853 5.20715 13.928 5.20715C14.1713 5.20715 14.3763 5.29049 14.543 5.45715C14.7096 5.62382 14.793 5.82882 14.793 6.07215C14.793 6.31482 14.7096 6.51949 14.543 6.68615L11.2291 10L14.543 13.3139C14.7096 13.4806 14.793 13.6819 14.793 13.9179C14.793 14.1539 14.7096 14.3553 14.543 14.5219C14.3763 14.6886 14.1713 14.7719 13.928 14.7719C13.6853 14.7719 13.4806 14.6886 13.314 14.5219L10.0001 11.229Z\"\n fill=\"currentColor\"\n />\n </svg>\n </src-icon-button>\n }\n </div>\n\n <div\n [class.src-modal__body--icon]=\"hasIcon()\"\n class=\"src-modal__body src-modal__body--scrollable\"\n >\n @if (hasIcon()) {\n <div\n class=\"src-modal__icon\"\n [innerHTML]=\"getIconSvg(data['context']!)\"\n ></div>\n }\n <div\n [attr.data-testid]=\"testID() + '-header-title'\"\n class=\"src-modal__title\"\n >\n {{ data['headerTitle'] }}\n </div>\n <ng-scrollbar class=\"src-modal__scroll-box\">\n @if (stringContent(); as content) {\n <div [innerHTML]=\"content\"></div>\n }\n </ng-scrollbar>\n </div>\n\n @if (data.footerButtons) {\n <div class=\"src-modal__footer\">\n @if (isArrayOfArrays(data.footerButtons)) {\n @for (buttonGroup of data.footerButtons; track $index) {\n <div class=\"src-modal__footer-group\">\n @for (footerButton of buttonGroup; track footerButton.label) {\n <src-button\n [srcButtonConfig]=\"\n getButtonConfig(footerButton.srcButtonConfig)\n \"\n (onClick)=\"close(footerButton.action())\"\n >\n {{ footerButton.label }}\n </src-button>\n }\n </div>\n }\n } @else {\n <div class=\"src-modal__footer-group\">\n @for (\n footerButton of getSingleButtonArray(data.footerButtons);\n track footerButton.label\n ) {\n <src-button\n [srcButtonConfig]=\"getButtonConfig(footerButton.srcButtonConfig)\"\n (onClick)=\"close(footerButton.action())\"\n >\n {{ footerButton.label }}\n </src-button>\n }\n </div>\n }\n </div>\n }\n</div>\n","import { InjectionToken } from '@angular/core';\nimport type { SourcePopoverData } from '../interfaces';\n\nexport const SOURCE_POPOVER_DATA = new InjectionToken<SourcePopoverData>(\n 'SourcePopoverData',\n);\n","import type {\n HorizontalConnectionPos,\n VerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport type { SourcePopoverData } from './sourcePopoverData.interface';\n\nexport const defaultSourcePopoverConfig: SourcePopoverData = {\n headerTitle: undefined,\n backButton: false,\n closeButton: true,\n popoverMaxHeight: 'auto',\n panelCustomClass: '',\n breakpointDesktop: '(min-width: 1024px)',\n hasBackdrop: true,\n closeOnBackdropClick: true,\n position: [\n {\n originX: 'start' as HorizontalConnectionPos,\n originY: 'bottom' as VerticalConnectionPos,\n overlayX: 'start' as HorizontalConnectionPos,\n overlayY: 'top' as VerticalConnectionPos,\n offsetY: 4,\n },\n {\n originX: 'start' as HorizontalConnectionPos,\n originY: 'top' as VerticalConnectionPos,\n overlayX: 'start' as HorizontalConnectionPos,\n overlayY: 'bottom' as VerticalConnectionPos,\n offsetY: -8,\n },\n ],\n testID: '',\n};\n","import {\n DestroyRef,\n inject,\n Injectable,\n Injector,\n signal,\n ViewContainerRef,\n} from '@angular/core';\nimport type { SourcePopoverData } from '../interfaces';\nimport { defaultSourcePopoverConfig } from '../interfaces';\nimport {\n CdkOverlayOrigin,\n Overlay,\n OverlayConfig,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { SOURCE_POPOVER_DATA } from '../tokens/sourcePopoverDataToken';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { SourcePopoverComponent } from '../components/source-popover.component';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class SourcePopoverService {\n #breakpointObserver = inject(BreakpointObserver);\n #overlay = inject(Overlay);\n #destroyRef$ = inject(DestroyRef);\n #defaultSourcePopoverConfig = defaultSourcePopoverConfig;\n #isMobile = signal(false);\n readonly backButtonClicked = signal<OverlayRef | null>(null);\n\n show(\n overlayOrigin: CdkOverlayOrigin,\n viewContainerRef: ViewContainerRef,\n override: Partial<SourcePopoverData>,\n ): OverlayRef {\n const addedPanelClasses = ['src-popover-panel'];\n const backdropClasses = ['src-popover-backdrop'];\n const updatedConfig = this.getUpdatedConfig(override);\n\n if (updatedConfig.panelCustomClass) {\n addedPanelClasses.push(updatedConfig.panelCustomClass);\n }\n this.#breakpointObserver\n .observe(updatedConfig.breakpointDesktop)\n .pipe(takeUntilDestroyed(this.#destroyRef$))\n .subscribe((res) => this.#isMobile.set(!res.matches));\n\n if (this.#isMobile()) {\n addedPanelClasses.push('src-popover-panel--mobile');\n backdropClasses.push('src-popover-backdrop--mobile');\n }\n\n const dropdownPositionStrategy = this.#overlay\n .position()\n .flexibleConnectedTo(overlayOrigin.elementRef)\n .withPositions(updatedConfig.position);\n const drawerPositionStrategy = this.#overlay\n .position()\n .global()\n .centerHorizontally()\n .bottom('0px');\n const scrollStrategy = this.#overlay.scrollStrategies.reposition();\n const config = new OverlayConfig({\n panelClass: addedPanelClasses,\n hasBackdrop: updatedConfig.hasBackdrop,\n backdropClass: backdropClasses,\n positionStrategy: this.#isMobile()\n ? drawerPositionStrategy\n : dropdownPositionStrategy,\n scrollStrategy: scrollStrategy,\n width: this.#isMobile() ? '100%' : 'auto',\n });\n\n const overlayRef = this.#overlay.create(config);\n const injector = Injector.create({\n parent: viewContainerRef.injector,\n providers: [\n {\n provide: SOURCE_POPOVER_DATA,\n useValue: {\n ...updatedConfig,\n overlayRef,\n },\n },\n ],\n });\n const template = new ComponentPortal(\n SourcePopoverComponent,\n viewContainerRef,\n injector,\n );\n overlayRef.attach(template);\n return overlayRef;\n }\n\n closePopover(overlayRef: OverlayRef) {\n overlayRef.dispose();\n }\n\n getUpdatedConfig(override: Partial<SourcePopoverData>): SourcePopoverData {\n return {\n srcPopoverTpl: override?.srcPopoverTpl,\n headerTitle:\n override?.headerTitle ?? this.#defaultSourcePopoverConfig.headerTitle,\n hasBackButton:\n override?.hasBackButton ??\n this.#defaultSourcePopoverConfig.hasBackButton,\n hasCloseButton:\n override?.hasCloseButton ??\n this.#defaultSourcePopoverConfig.hasCloseButton,\n popoverMaxHeight:\n override?.popoverMaxHeight ??\n this.#defaultSourcePopoverConfig.popoverMaxHeight,\n panelCustomClass:\n override?.panelCustomClass ??\n this.#defaultSourcePopoverConfig.panelCustomClass,\n breakpointDesktop:\n override?.breakpointDesktop ??\n this.#defaultSourcePopoverConfig.breakpointDesktop,\n position: override?.position\n ? override?.position\n : this.#defaultSourcePopoverConfig.position,\n closeOnBackdropClick:\n override?.closeOnBackdropClick ??\n this.#defaultSourcePopoverConfig.closeOnBackdropClick,\n hasBackdrop:\n override?.hasBackdrop ?? this.#defaultSourcePopoverConfig.hasBackdrop,\n testID: override?.testID ?? this.#defaultSourcePopoverConfig.testID,\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SOURCE_POPOVER_DATA } from '../tokens/sourcePopoverDataToken';\nimport { SourcePopoverService } from '../services';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { SourceIconButtonComponent } from '@3dsource/source-ui-native';\n\n@Component({\n selector: 'src-popover',\n templateUrl: './source-popover.component.html',\n styleUrls: ['./source-popover.component.scss'],\n imports: [SourceIconButtonComponent, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourcePopoverComponent {\n readonly data = inject(SOURCE_POPOVER_DATA);\n template = signal(\n this.data.srcPopoverTpl instanceof TemplateRef\n ? this.data.srcPopoverTpl\n : null,\n );\n testID = signal(this.data.testID || 'popover');\n #sourcePopoverService = inject(SourcePopoverService);\n\n close() {\n this.#sourcePopoverService.closePopover(this.data.overlayRef!);\n }\n\n emitBackAction() {\n this.#sourcePopoverService.closePopover(this.data.overlayRef!);\n }\n}\n","<div\n class=\"src-popover\"\n [style.maxHeight]=\"data.popoverMaxHeight\"\n [attr.data-testid]=\"testID()\"\n>\n @if (\n data['hasBackButton'] ||\n data['hasCloseButton'] ||\n (data['headerTitle'] && data['headerTitle'] !== '')\n ) {\n <div class=\"src-popover__header\">\n @if (data['hasBackButton']) {\n <src-icon-button\n class=\"src-popover__back\"\n shape=\"round\"\n size=\"sm\"\n weight=\"ghost\"\n [data-testid]=\"testID() + '-header-back'\"\n (onClick)=\"emitBackAction()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 -960 960 960\"\n fill=\"currentColor\"\n >\n <path\n d=\"m438-480 164 164q11 11 11 25.5T602-265q-11 11-25.5 11t-25.84-11.34L361-455q-5-5.4-7.5-11.7-2.5-6.3-2.5-13.5t2.5-13.5Q356-500 361-505l189.66-189.66Q562-706 576.5-706t25.5 11q11 11 11 25.5T602-644L438-480Z\"\n />\n </svg>\n </src-icon-button>\n }\n\n <div\n class=\"src-popover__title\"\n [attr.data-testid]=\"testID() + '-header-title'\"\n >\n {{ data.headerTitle }}\n </div>\n\n @if (data['hasCloseButton']) {\n <src-icon-button\n class=\"src-popover__close\"\n shape=\"round\"\n size=\"sm\"\n weight=\"ghost\"\n [data-testid]=\"testID() + '-header-close'\"\n (click)=\"close()\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M10.0001 11.229L6.68618 14.5429C6.51951 14.7096 6.31818 14.7896 6.08218 14.7829C5.84618 14.7756 5.64485 14.6886 5.47818 14.5219C5.31151 14.3553 5.22818 14.1506 5.22818 13.9079C5.22818 13.6646 5.31151 13.4596 5.47818 13.2929L8.77107 10L5.45718 6.68615C5.29051 6.51949 5.21051 6.31482 5.21718 6.07215C5.22451 5.82882 5.31151 5.62382 5.47818 5.45715C5.64485 5.29049 5.84951 5.20715 6.09218 5.20715C6.33551 5.20715 6.54051 5.29049 6.70718 5.45715L10.0001 8.77105L13.314 5.45715C13.4806 5.29049 13.6853 5.20715 13.928 5.20715C14.1713 5.20715 14.3763 5.29049 14.543 5.45715C14.7096 5.62382 14.793 5.82882 14.793 6.07215C14.793 6.31482 14.7096 6.51949 14.543 6.68615L11.2291 10L14.543 13.3139C14.7096 13.4806 14.793 13.6819 14.793 13.9179C14.793 14.1539 14.7096 14.3553 14.543 14.5219C14.3763 14.6886 14.1713 14.7719 13.928 14.7719C13.6853 14.7719 13.4806 14.6886 13.314 14.5219L10.0001 11.229Z\"\n fill=\"currentColor\"\n />\n </svg>\n </src-icon-button>\n }\n </div>\n }\n\n <div class=\"src-popover__body\">\n @if (template()) {\n <ng-template [ngTemplateOutlet]=\"template()\"></ng-template>\n }\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n input,\n output,\n signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n CdkOverlayOrigin,\n ConnectedPosition,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport type { SourcePopoverData } from '../interfaces';\nimport { SourcePopoverService } from '../services';\nimport { take } from 'rxjs';\n\n@Component({\n selector: 'src-popover-trigger',\n templateUrl: './source-popover-trigger.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [SourcePopoverService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CdkOverlayOrigin],\n})\nexport class SourcePopoverTriggerComponent {\n overlayOrigin = viewChild(CdkOverlayOrigin);\n srcPopoverTpl = input.required<TemplateRef<HTMLElement>>();\n headerTitle = input<string>();\n activeClass = input<string>();\n hasBackButton = input(false);\n hasCloseButton = input(true);\n hasBackdrop = input(true);\n closeOnBackdropClick = input(true);\n popoverMaxHeight = input('auto');\n panelCustomClass = input<string>();\n testID = input('', { alias: 'data-testid' });\n breakpointDesktop = input('(min-width: 1024px)');\n positions = input<ConnectedPosition[]>([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8,\n },\n ]);\n\n popoverShown = signal(false);\n onPopoverShown = output<boolean>();\n onBackButtonClick = output<OverlayRef>();\n overlayRef: OverlayRef | null = null;\n #sourcePopoverService = inject(SourcePopoverService, { self: true });\n #viewContainerRef = inject(ViewContainerRef);\n\n _ = effect(() => {\n if (this.#sourcePopoverService.backButtonClicked()) {\n this.onBackButtonClick.emit(this.overlayRef!);\n }\n });\n\n showPopover() {\n const config: Partial<SourcePopoverData> = {\n srcPopoverTpl: this.srcPopoverTpl(),\n overlayOrigin: this.overlayOrigin(),\n headerTitle: this.headerTitle(),\n hasBackButton: this.hasBackButton(),\n hasCloseButton: this.hasCloseButton(),\n popoverMaxHeight: this.popoverMaxHeight(),\n panelCustomClass: this.panelCustomClass(),\n breakpointDesktop: this.breakpointDesktop(),\n position: this.positions(),\n hasBackdrop: this.hasBackdrop(),\n closeOnBackdropClick: this.closeOnBackdropClick(),\n testID: this.testID(),\n };\n\n this.overlayRef = this.#sourcePopoverService.show(\n this.overlayOrigin()!,\n this.#viewContainerRef,\n config,\n );\n\n this.popoverShown.set(true);\n this.onPopoverShown.emit(true);\n\n this.overlayRef\n .detachments()\n .pipe(take(1))\n .subscribe(() => {\n this.popoverShown.set(false);\n this.onPopoverShown.emit(false);\n this.overlayRef = null;\n });\n\n this.overlayRef\n .backdropClick()\n .pipe(take(1))\n .subscribe(() => this.overlayRef?.detach());\n }\n}\n","<div\n cdkOverlayOrigin\n [attr.data-testid]=\"testID()\"\n (click)=\"showPopover()\"\n [class]=\"popoverShown() ? activeClass() || 'active' : ''\"\n>\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n CUSTOM_ELEMENTS_SCHEMA,\n effect,\n ElementRef,\n input,\n linkedSignal,\n output,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { register } from 'swiper/element/bundle';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { SourceTabAppearanceKeys } from '../constants';\n\nregister();\n\n@Component({\n selector: 'src-tab-line',\n templateUrl: './source-tab-line.component.html',\n styleUrls: ['./source-tab-line.component.scss'],\n imports: [NgClass, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class SourceTabLineComponent {\n swiperRef = viewChild<ElementRef>('swiperRef');\n tabs = input.required<any[]>();\n label = input.required<string>();\n selectedIndex = input(0);\n appearance = input<SourceTabAppearanceKeys>('default');\n isCompact = input(false);\n offsetBefore = input<number | undefined>(undefined);\n offsetAfter = input<number | undefined>(undefined);\n spaceBetween = input<number | undefined>(undefined);\n isFullWidth = input(false);\n isSwiper = input(false);\n testID = input('', { alias: 'data-testid' });\n tabsSelectedIndex = linkedSignal(() => this.selectedIndex());\n onSelectTab = output<number>();\n\n classes = computed(() =>\n [\n `src-tab-line--${this.appearance()}`,\n this.isFullWidth() ? 'src-tab-line--full-width' : '',\n ].filter(Boolean),\n );\n\n variables = computed(\n () =>\n `--srcTabsOffsetBefore: ${this.tabsOffsetBefore()}px; --srcTabsOffsetAfter: ${this.tabsOffsetAfter()}px; --srcTabsSpaceBetween: ${this.spacing()}px;`,\n );\n tabsOffsetBefore = computed(\n () => this.offsetBefore() ?? (this.isCompact() ? 8 : 16),\n );\n tabsOffsetAfter = computed(\n () => this.offsetAfter() ?? (this.isCompact() ? 8 : 16),\n );\n spacing = computed(() => this.spaceBetween() ?? (this.isCompact() ? 0 : 4));\n\n _ = effect(() => {\n const swiperRef = this.swiperRef();\n untracked(() => {\n if (!swiperRef?.nativeElement || !this.isSwiper()) return;\n Object.assign(swiperRef.nativeElement, {\n spaceBetween: this.spacing(),\n slidesOffsetBefore: this.tabsOffsetBefore(),\n slidesOffsetAfter: this.tabsOffsetAfter(),\n slidesPerView: 'auto',\n centeredSlides: false,\n slideToClickedSlide: true,\n });\n swiperRef.nativeElement.initialize();\n });\n });\n\n selectTab(tabIndex: number) {\n this.tabsSelectedIndex.set(tabIndex);\n this.onSelectTab.emit(tabIndex);\n }\n}\n","<div [attr.data-testid]=\"testID()\" [ngClass]=\"classes()\" class=\"src-tab-line\">\n @if (isSwiper()) {\n <div class=\"src-tabs__nav src-tabs__nav--swiper\">\n <swiper-container #swiperRef init=\"false\">\n @for (tab of tabs(); track tab) {\n <swiper-slide class=\"src-tabs__nav-slide\">\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{ tab: tab, index: $index }\"\n ></ng-container>\n </swiper-slide>\n }\n </swiper-container>\n </div>\n } @else {\n <div class=\"src-tabs__nav\" [style]=\"variables()\">\n @for (tab of tabs(); track tab) {\n <ng-container\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{ tab: tab, index: $index }\"\n ></ng-container>\n }\n </div>\n }\n</div>\n\n<ng-template #template let-i=\"index\" let-tab=\"tab\">\n <div\n class=\"src-tabs__nav-item\"\n [class.src-tabs__nav-item--active]=\"i === tabsSelectedIndex()\"\n >\n <div\n class=\"src-button src-button--plain\"\n [class.src-button--pressed]=\"i === tabsSelectedIndex()\"\n (click)=\"selectTab(i)\"\n [attr.data-testid]=\"testID() + '-tab-label-' + tab[label()]\"\n [class.src-button--full-width]=\"isFullWidth()\"\n [class.src-button--disabled]=\"tab.isDisabled\"\n >\n {{ tab[label()] }}\n </div>\n </div>\n</ng-template>\n","export const SourceTabAppearance = {\n DEFAULT: 'default',\n BUTTON: 'button',\n};\nexport type SourceTabAppearanceKeys =\n (typeof SourceTabAppearance)[keyof typeof SourceTabAppearance];\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { SourceTabData } from '../../interfaces';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport type { SwiperOptions } from 'swiper/types';\nimport { SourceTabLineComponent } from '../../../source-tab-line';\n\n@Component({\n selector: 'src-tabs',\n templateUrl: './source-tabs.component.html',\n imports: [NgTemplateOutlet, SourceTabLineComponent],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceTabsComponent {\n label = input.required<string>();\n data = input.required<SourceTabData[]>();\n selectedIndex = input(0);\n headerTemplate = input<TemplateRef<any>>();\n isCompact = input(false);\n isFullWidth = input(false);\n isSwiper = input(false);\n swiperConfig = input<SwiperOptions>();\n testID = input('', { alias: 'data-testid' });\n onSelectTab = output<number>();\n\n setActive(idx: number) {\n this.onSelectTab.emit(idx);\n }\n}\n","<div class=\"src-tabs\">\n <ng-template #defaultTabsHeader>\n <src-tab-line\n [tabs]=\"data()\"\n [label]=\"label()\"\n [isCompact]=\"isCompact()\"\n [isFullWidth]=\"isFullWidth()\"\n [selectedIndex]=\"selectedIndex()\"\n [isSwiper]=\"isSwiper()\"\n [data-testid]=\"testID()\"\n (onSelectTab)=\"setActive($event)\"\n ></src-tab-line>\n </ng-template>\n\n <ng-container\n *ngTemplateOutlet=\"\n headerTemplate() ? headerTemplate()! : defaultTabsHeader;\n context: { tabs: this.data }\n \"\n >\n </ng-container>\n\n <ng-content></ng-content>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\n@Component({\n selector: 'src-tab',\n templateUrl: './source-tab.component.html',\n styleUrls: ['./source-tab.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceTabComponent {\n isActive = input(false);\n}\n","<div [hidden]=\"!isActive()\" class=\"src-tab-content\">\n <ng-content></ng-content>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport type { SourceTooltipData } from '../interfaces/source-tooltip.interface';\n\nexport const SOURCE_TOOLTIP_DATA = new InjectionToken<SourceTooltipData>(\n 'Data to display in tooltip',\n);\n","import {\n ChangeDetectionStrategy,\n Component,\n inject,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { SOURCE_TOOLTIP_DATA } from '../tokens/sourceTooltipDataToken';\n\n@Component({\n selector: 'src-tooltip',\n templateUrl: './source-tooltip.component.html',\n styleUrls: ['./source-tooltip.component.scss'],\n imports: [NgClass, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceTooltipComponent {\n readonly data = inject(SOURCE_TOOLTIP_DATA);\n\n get asString() {\n return typeof this.data.content === 'string' ? this.data.content : false;\n }\n\n get asTemplate() {\n return this.data.content instanceof TemplateRef ? this.data.content : false;\n }\n}\n","<div\n class=\"src-tooltip\"\n [ngClass]=\"data.srcTooltipCustomClass\"\n [style.--srcTooltipMaxWidth]=\"data.srcTooltipMaxWidth\"\n>\n <div\n class=\"src-tooltip__content\"\n [class.src-tooltip__content--custom]=\"asTemplate\"\n >\n @if (asString) {\n {{ asString }}\n }\n\n @if (asTemplate) {\n <ng-template [ngTemplateOutlet]=\"asTemplate\"></ng-template>\n }\n </div>\n\n @if (data.srcTooltipPosition === 'top') {\n <svg\n class=\"src-tooltip__pin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n >\n <path\n d=\"M6.26822 5.07814C5.86842 5.55789 5.13157 5.55789 4.73178 5.07813L0.500001 -1.35106e-06L10.5 -4.76837e-07L6.26822 5.07814Z\"\n fill=\"currentColor\"\n />\n </svg>\n }\n\n @if (data.srcTooltipPosition === 'right') {\n <svg\n class=\"src-tooltip__pin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"6\"\n height=\"10\"\n viewBox=\"0 0 6 10\"\n fill=\"none\"\n >\n <path\n d=\"M0.921864 5.76822C0.44211 5.36842 0.442111 4.63157 0.921865 4.23178L6 -2.62268e-07L6 10L0.921864 5.76822Z\"\n fill=\"currentColor\"\n />\n </svg>\n }\n\n @if (data.srcTooltipPosition === 'bottom') {\n <svg\n class=\"src-tooltip__pin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"11\"\n height=\"6\"\n viewBox=\"0 0 11 6\"\n fill=\"none\"\n >\n <path\n d=\"M4.73178 0.921865C5.13158 0.44211 5.86843 0.442111 6.26822 0.921866L10.5 6L0.5 6L4.73178 0.921865Z\"\n fill=\"currentColor\"\n />\n </svg>\n }\n\n @if (data.srcTooltipPosition === 'left') {\n <svg\n class=\"src-tooltip__pin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"6\"\n height=\"10\"\n viewBox=\"0 0 6 10\"\n fill=\"none\"\n >\n <path\n d=\"M5.07814 5.76822C5.55789 5.36842 5.55789 4.63157 5.07813 4.23178L-3.97233e-08 -2.62268e-07L-4.76837e-07 10L5.07814 5.76822Z\"\n fill=\"currentColor\"\n />\n </svg>\n }\n</div>\n","import type { ConnectedPosition } from '@angular/cdk/overlay';\nimport type { SourceTooltipPositionKeys } from '../interfaces/source-tooltip.interface';\n\nexport const TooltipPositions: Record<\n SourceTooltipPositionKeys,\n ConnectedPosition\n> = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n panelClass: 'src-tooltip--top',\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n panelClass: 'src-tooltip--bottom',\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n panelClass: 'src-tooltip--left',\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n panelClass: 'src-tooltip--right',\n },\n};\n","import { TemplateRef } from '@angular/core';\n\nexport const SourceTooltipPosition = {\n TOP: 'top',\n BOTTOM: 'bottom',\n LEFT: 'left',\n RIGHT: 'right',\n} as const;\n\nexport type SourceTooltipPositionKeys =\n (typeof SourceTooltipPosition)[keyof typeof SourceTooltipPosition];\n\nexport interface SourceTooltipData {\n content?: string | TemplateRef<void>;\n srcTooltipMaxWidth: string;\n srcTooltipHideDelay: number;\n srcTooltipPosition: SourceTooltipPositionKeys;\n srcTooltipCustomClass: string;\n}\n","export const isDesktop = () => {\n // 1) Try the newer userAgentData API if available\n const uaData = (navigator as any).userAgentData;\n if (uaData && typeof uaData.mobile === 'boolean') {\n return !uaData.mobile;\n }\n\n // 2) Fallback to a broader UA regex\n const mobileRegex =\n /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile|Windows Phone|webOS|BlackBerry/i;\n return !mobileRegex.test(navigator.userAgent);\n};\n","import { Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n Directive,\n effect,\n ElementRef,\n HostListener,\n inject,\n Injector,\n input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { SourceTooltipComponent } from '../components/source-tooltip.component';\nimport { TooltipPositions } from '../constants/position';\nimport {\n SourceTooltipData,\n SourceTooltipPosition,\n SourceTooltipPositionKeys,\n} from '../interfaces/source-tooltip.interface';\nimport { SOURCE_TOOLTIP_DATA } from '../tokens/sourceTooltipDataToken';\nimport { isDesktop } from '../helpers';\n\n@Directive({\n selector: '[srcTooltip]',\n})\nexport class SourceTooltipDirective implements OnInit, OnDestroy {\n srcTooltip = input.required<string | TemplateRef<void>>();\n srcTooltipPosition = input<SourceTooltipPositionKeys>('top');\n srcTooltipHideDelay = input(0);\n srcTooltipMaxWidth = input('280px');\n srcTooltipCustomClass = input('');\n sourceTooltipData = input<SourceTooltipData>();\n\n private _config!: SourceTooltipData;\n private overlayRef: OverlayRef | null = null;\n private hideTimeout?: number;\n private hoverDevice = this.isDeviceWithHover();\n\n private element = inject<ElementRef<HTMLElement>>(ElementRef);\n private overlay = inject(Overlay);\n private viewContainer = inject(ViewContainerRef);\n\n _ = effect(() => {\n const tooltip = this.srcTooltip();\n\n this._config = {\n ...this._config,\n content: tooltip,\n };\n });\n\n @HostListener('mouseenter')\n @HostListener('focus')\n showTooltip() {\n this.addTooltip();\n }\n\n @HostListener('mouseleave')\n @HostListener('blur')\n hideTooltip() {\n this.removeTooltip();\n }\n\n ngOnInit() {\n if (\n !Object.values(SourceTooltipPosition).includes(this.srcTooltipPosition())\n ) {\n throw new Error(\n 'Invalid tooltip position. Please provide a valid position',\n );\n }\n if (this.sourceTooltipData()) {\n this._config = {\n ...this.sourceTooltipData()!,\n content: this.srcTooltip() ?? '',\n };\n } else {\n this._config = {\n content: this.srcTooltip(),\n srcTooltipMaxWidth: this.srcTooltipMaxWidth(),\n srcTooltipHideDelay: this.srcTooltipHideDelay(),\n srcTooltipPosition: this.srcTooltipPosition(),\n srcTooltipCustomClass: this.srcTooltipCustomClass(),\n };\n }\n }\n\n ngOnDestroy() {\n this.destroy();\n }\n\n destroy() {\n if (this.overlayRef !== null) {\n window.clearInterval(this.hideTimeout);\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n }\n\n private addTooltip() {\n if (\n !this.hoverDevice ||\n this.overlayRef?.hasAttached() === true ||\n !this._config.content\n ) {\n return;\n }\n\n window.clearInterval(this.hideTimeout);\n this.attachTooltip(this._config.srcTooltipPosition);\n }\n\n private removeTooltip() {\n if (!this.hoverDevice || this.overlayRef?.hasAttached() === false) {\n return;\n }\n\n if (this._config.srcTooltipHideDelay === 0) {\n this.destroy();\n\n return;\n }\n\n this.hideTimeout = window.setTimeout(\n this.destroy.bind(this),\n this._config.srcTooltipHideDelay,\n );\n }\n\n private attachTooltip(position: SourceTooltipPositionKeys) {\n if (this.overlayRef === null) {\n this.overlayRef = this.overlay.create({\n positionStrategy: this.getPositionStrategy(position),\n });\n }\n\n const injector = Injector.create({\n providers: [\n {\n provide: SOURCE_TOOLTIP_DATA,\n useValue: this._config,\n },\n ],\n });\n\n const component = new ComponentPortal(\n SourceTooltipComponent,\n this.viewContainer,\n injector,\n );\n this.overlayRef.attach(component);\n }\n\n private getPositionStrategy(\n position: SourceTooltipPositionKeys,\n ): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.element)\n .withPositions([TooltipPositions[position]]);\n }\n\n private isDeviceWithHover() {\n const hasHover = window.matchMedia('(hover: hover)').matches;\n const hasFinePointer = window.matchMedia('(pointer: fine)').matches;\n const userAgent = navigator.userAgent;\n const isSamsungDevice = /Samsung/i.test(userAgent);\n return (hasHover || hasFinePointer) && isDesktop() && !isSamsungDevice;\n }\n}\n","export function drawPaletteGradient(\n ctx: CanvasRenderingContext2D,\n rectWidth: number,\n rectHeight: number,\n): void {\n const whiteGrad = ctx.createLinearGradient(0, 0, rectWidth, 0);\n whiteGrad.addColorStop(0, 'rgba(255,255,255,1)');\n whiteGrad.addColorStop(1, 'rgba(255,255,255,0)');\n\n ctx.fillStyle = whiteGrad;\n ctx.fillRect(0, 0, rectWidth, rectHeight);\n\n const blackGrad = ctx.createLinearGradient(0, 0, 0, rectHeight);\n blackGrad.addColorStop(0, 'rgba(0,0,0,0)');\n blackGrad.addColorStop(1, 'rgba(0,0,0,1)');\n\n ctx.fillStyle = blackGrad;\n ctx.fillRect(0, 0, rectWidth, rectHeight);\n}\n","/**\n * RGB from the respective figures, HSV sequences in terms of returns.\n * RGB values are as follows.\n * R - a number from 0 to 255\n * G - a number from 0 to 255\n * B - a number from 0 to 255\n *\n * HSV values are as follows.\n * H - a number between 360-0\n * S - number between 0 and 1.0\n * V - number between 0 and 1.0\n *\n * Cannot compute, including alpha.\n * @ Param r the red (R) indicating the number (0x00 to 0xFF to)\n * @ Param g green (G) indicates the number (0x00 to 0xFF to)\n * @ Param b blue (B) shows the number (0x00 to 0xFF to)\n * @ Return HSV values into an any[] of [H, S, V]\n **/\nexport function RGBtoHSV(r: number, g: number, b: number): any[] {\n r /= 255;\n g /= 255;\n b /= 255;\n let h = 0,\n s = 0,\n v = 0;\n let x: number, y: number;\n if (r >= g) x = r;\n else x = g;\n if (b > x) x = b;\n if (r <= g) y = r;\n else y = g;\n if (b < y) y = b;\n v = x;\n const c: number = x - y;\n if (x == 0) s = 0;\n else s = c / x;\n if (s != 0) {\n if (r == x) {\n h = (g - b) / c;\n } else {\n if (g == x) {\n h = 2 + (b - r) / c;\n } else {\n if (b == x) {\n h = 4 + (r - g) / c;\n }\n }\n }\n h = h * 60;\n if (h < 0) h = h + 360;\n }\n return [h, s, v];\n}\n","import { RGBtoHSV } from './RGBtoHSV';\nimport type { SourceColorPickerOrientationKeys } from '../interfaces/source-color-picker.interface';\n\nexport function calculatePosition(\n width: number,\n height: number,\n color: string,\n orientation?: SourceColorPickerOrientationKeys,\n) {\n const [r, g, b] = color\n .slice(1)\n .match(/.{1,2}/g)!\n .map((x) => parseInt(x, 16));\n const [h, s, l] = RGBtoHSV(r, g, b);\n\n if (orientation === undefined) {\n return { x: width * s, y: height * (1 - l) };\n }\n\n return orientation === 'horizontal'\n ? { x: (width * h) / 360, y: height / 2 }\n : { x: width / 2, y: (height * h) / 360 };\n}\n","export function clampf(min: number, max: number, value: number): number {\n return Math.min(max, Math.max(min, value));\n}\n","export function RGBtoHEX(r: number, g: number, b: number): string {\n let _r = r.toString(16);\n let _g = g.toString(16);\n let _b = b.toString(16);\n\n if (_r.length === 1) {\n _r = '0' + _r;\n }\n if (_g.length === 1) {\n _g = '0' + _g;\n }\n if (_b.length === 1) {\n _b = '0' + _b;\n }\n\n return (_r + _g + _b).toUpperCase();\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n HostListener,\n input,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { drawPaletteGradient } from '../../helpers/drawPaletteGradient';\nimport { calculatePosition } from '../../helpers/calculatePosition';\nimport { clampf } from '../../helpers/clampf';\nimport { RGBtoHEX } from '../../helpers/RGBtoHEX';\n\n@Component({\n standalone: true,\n selector: 'src-color-palette',\n templateUrl: './color-palette.component.html',\n styleUrls: ['./color-palette.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ColorPaletteComponent {\n paletteContainer =\n viewChild<ElementRef<HTMLCanvasElement>>('paletteContainer');\n canvas = viewChild<ElementRef<HTMLCanvasElement>>('paletteCanvas');\n indicator = viewChild<ElementRef<HTMLSpanElement>>('indicator');\n selectedHex = input.required<string>();\n isNeedUpdatePalette = input.required<string | null>();\n paletteColorUpdate = output<string>();\n selectedPosition = signal({ x: 0, y: 0 });\n ctx = signal<CanvasRenderingContext2D | null>(null);\n width = signal(0);\n height = signal(0);\n\n _redraw = effect(() => {\n const container = this.paletteContainer();\n const canvas = this.canvas();\n\n untracked(() => {\n if (container?.nativeElement && canvas?.nativeElement) {\n this.width.set(container.nativeElement.offsetWidth);\n this.height.set(container.nativeElement.offsetHeight);\n requestAnimationFrame(() => this.redraw());\n }\n });\n });\n _isNeedUpdatePalette = effect(() => {\n const isNeedUpdatePalette = this.isNeedUpdatePalette();\n untracked(() => {\n if (isNeedUpdatePalette) {\n this.redraw();\n }\n });\n });\n #mousedown = false;\n\n redraw() {\n this.calcPosition();\n this.drawPalette();\n this.drawIndicator();\n }\n\n @HostListener('window:mouseup')\n onMouseUp() {\n this.#mousedown = false;\n }\n\n onMouseDown(event: MouseEvent) {\n this.#mousedown = true;\n this.updatePosition(event);\n }\n\n onMouseMove(event: MouseEvent) {\n if (this.#mousedown) {\n this.updatePosition(event);\n }\n }\n\n private calcPosition() {\n if (this.width() === undefined || this.height() === undefined) {\n return;\n }\n this.selectedPosition.set(\n calculatePosition(this.width(), this.height(), this.selectedHex()),\n );\n }\n\n private updatePosition(event: MouseEvent) {\n if (this.width() === undefined || this.height() === undefined) {\n return;\n }\n this.selectedPosition.set({\n x: clampf(0, this.width() - 1, event.offsetX),\n y: clampf(0, this.height() - 1, event.offsetY),\n });\n\n this.drawIndicator();\n this.updateColor();\n }\n\n private drawPalette() {\n this.ctx.set(\n this.canvas()?.nativeElement.getContext('2d', {\n willReadFrequently: true,\n })!,\n );\n const ctx = this.ctx();\n if (!ctx) {\n return;\n }\n ctx.fillStyle = this.selectedHex() || 'rgba(255,255,255,1)';\n ctx.fillRect(0, 0, this.width(), this.height());\n drawPaletteGradient(ctx, this.width(), this.height());\n }\n\n private drawIndicator() {\n const indicator = this.indicator()?.nativeElement;\n if (!indicator) {\n return;\n }\n indicator.style.left = this.selectedPosition().x + 'px';\n indicator.style.top = this.selectedPosition().y + 'px';\n }\n\n private updateColor() {\n const imageData = this.ctx()!.getImageData(\n this.selectedPosition().x,\n this.selectedPosition().y,\n 1,\n 1,\n ).data;\n this.paletteColorUpdate.emit(\n `#${RGBtoHEX(imageData[0], imageData[1], imageData[2])}`,\n );\n }\n}\n","<div #paletteContainer class=\"src-color-palette\">\n <canvas\n #paletteCanvas\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n [height]=\"height()\"\n [width]=\"width()\"\n class=\"src-color-palette__canvas\"\n >\n </canvas>\n</div>\n<span #indicator class=\"src-color-picker-indicator\"></span>\n","import type { SourceColorPickerOrientationKeys } from '../interfaces/source-color-picker.interface';\n\nexport function drawGradient(\n ctx: CanvasRenderingContext2D,\n rectWidth: number,\n rectHeight: number,\n orientation: SourceColorPickerOrientationKeys,\n): void {\n const gradient =\n orientation === 'horizontal'\n ? ctx.createLinearGradient(0, 0, rectWidth, 0)\n : ctx.createLinearGradient(0, 0, 0, rectHeight);\n gradient.addColorStop(0, 'red');\n gradient.addColorStop(1 / 6, 'yellow');\n gradient.addColorStop(2 / 6, 'lime');\n gradient.addColorStop(3 / 6, 'cyan');\n gradient.addColorStop(4 / 6, 'blue');\n gradient.addColorStop(5 / 6, 'magenta');\n gradient.addColorStop(1, 'red');\n\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, rectWidth, rectHeight);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n HostListener,\n input,\n output,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { SourceColorPickerOrientationKeys } from '../../interfaces/source-color-picker.interface';\nimport { calculatePosition } from '../../helpers/calculatePosition';\nimport { drawGradient } from '../../helpers/drawGradient';\nimport { clampf } from '../../helpers/clampf';\nimport { RGBtoHEX } from '../../helpers/RGBtoHEX';\n\n@Component({\n standalone: true,\n selector: 'src-color-slider',\n templateUrl: './color-slider.component.html',\n styleUrls: ['./color-slider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ColorSliderComponent {\n sliderContainer = viewChild<ElementRef<HTMLDivElement>>('sliderContainer');\n canvas = viewChild<ElementRef<HTMLCanvasElement>>('canvas');\n indicator = viewChild<ElementRef<HTMLSpanElement>>('indicator');\n selectedHex = input.required<string>();\n orientation = input.required<SourceColorPickerOrientationKeys>();\n sliderThickness = input.required<number>();\n isNeedUpdateSlider = input.required<string | null>();\n sliderColorUpdate = output<string>();\n selectedPosition = signal({ x: 0, y: 0 });\n width = signal(0);\n height = signal(0);\n ctx = signal<CanvasRenderingContext2D | null>(null);\n\n _ = effect(() => {\n const container = this.sliderContainer();\n const canvas = this.canvas();\n\n untracked(() => {\n if (container?.nativeElement && canvas?.nativeElement) {\n this.width.set(\n this.orientation() === 'horizontal'\n ? container.nativeElement.clientWidth\n : this.sliderThickness(),\n );\n this.height.set(\n this.orientation() === 'horizontal'\n ? this.sliderThickness()\n : container.nativeElement.clientHeight,\n );\n requestAnimationFrame(() => this.redraw());\n }\n });\n });\n _isNeedUpdateSlider = effect(() => {\n const isNeedUpdateSlider = this.isNeedUpdateSlider();\n untracked(() => {\n if (isNeedUpdateSlider) {\n this.redraw();\n }\n });\n });\n #mousedown = false;\n\n redraw() {\n this.calcPosition();\n this.drawSlider();\n this.drawIndicator();\n }\n\n @HostListener('window:mouseup')\n onMouseUp() {\n this.#mousedown = false;\n }\n\n onMouseDown(event: MouseEvent) {\n this.#mousedown = true;\n this.updatePosition(event);\n }\n\n onMouseMove(event: MouseEvent) {\n if (this.#mousedown) {\n this.updatePosition(event);\n }\n }\n\n private calcPosition() {\n if (this.width() === undefined || this.height() === undefined) {\n return;\n }\n this.selectedPosition.set(\n calculatePosition(\n this.width(),\n this.height(),\n this.selectedHex(),\n this.orientation(),\n ),\n );\n }\n\n private updatePosition(event: MouseEvent) {\n if (this.width() === undefined || this.height() === undefined) {\n return;\n }\n this.selectedPosition.set(\n this.orientation() === 'horizontal'\n ? {\n x: clampf(0, this.width() - 1, event.offsetX),\n y: this.height() / 2,\n }\n : {\n x: this.width() / 2,\n y: clampf(0, this.height() - 1, event.offsetY),\n },\n );\n this.drawIndicator();\n this.updateColor();\n }\n\n private drawSlider() {\n this.ctx.set(\n this.canvas()?.nativeElement.getContext('2d', {\n willReadFrequently: true,\n })!,\n );\n const ctx = this.ctx();\n if (!ctx) {\n return;\n }\n ctx.fillRect(0, 0, this.width(), this.height());\n drawGradient(ctx, this.width(), this.height(), this.orientation());\n }\n\n private drawIndicator() {\n const indicator = this.indicator()?.nativeElement;\n if (!indicator) {\n return;\n }\n indicator.style.left = this.selectedPosition().x + 'px';\n indicator.style.top = this.selectedPosition().y + 'px';\n }\n\n private updateColor() {\n const imageData = this.ctx()!.getImageData(\n this.selectedPosition().x,\n this.selectedPosition().y,\n 1,\n 1,\n ).data;\n this.sliderColorUpdate.emit(\n `#${RGBtoHEX(imageData[0], imageData[1], imageData[2])}`,\n );\n }\n}\n","<div #sliderContainer class=\"src-color-slider\">\n <canvas\n #canvas\n (mousedown)=\"onMouseDown($event)\"\n (mousemove)=\"onMouseMove($event)\"\n [height]=\"height()\"\n [width]=\"width()\"\n class=\"src-color-slider__canvas\"\n >\n </canvas>\n <span #indicator class=\"src-color-picker-indicator\"></span>\n</div>\n","export const randomUUID = (): string => crypto.randomUUID();\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n linkedSignal,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ColorPaletteComponent } from '../color-palette/color-palette.component';\nimport { ColorSliderComponent } from '../color-slider/color-slider.component';\nimport { SourceColorPickerOrientationKeys } from '../../interfaces/source-color-picker.interface';\nimport { randomUUID } from '../../helpers/randomUUID';\n\nconst matchRegexp = /^#[0-9a-f]{6}$/i;\n\n@Component({\n selector: 'src-color-picker',\n templateUrl: './source-color-picker.component.html',\n styleUrls: ['./source-color-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ColorSliderComponent, ColorPaletteComponent],\n})\nexport class SourceColorPickerComponent {\n selectedColor = input.required<string>();\n isCompact = input(false);\n orientation = input<SourceColorPickerOrientationKeys>('horizontal');\n hasInput = input(true);\n sliderThickness = input(28);\n testID = input('', { alias: 'data-testid' });\n\n colorUpdate = output<string>();\n selectedHex = linkedSignal(() => this.selectedColor());\n isNeedUpdatePalette = signal<string | null>(null);\n isNeedUpdateSlider = signal<string | null>(null);\n\n paletteColorUpdate(color: string) {\n this.update(color);\n }\n\n sliderColorUpdate(color: string) {\n this.update(color);\n this.isNeedUpdatePalette.set(randomUUID());\n }\n\n inputUpdate(event: Event) {\n const input = event.target as HTMLInputElement;\n this.update(input.value);\n this.isNeedUpdatePalette.set(randomUUID());\n this.isNeedUpdateSlider.set(randomUUID());\n }\n\n update(color: string) {\n if (!color.match(matchRegexp)) {\n return;\n }\n this.selectedHex.set(color);\n this.colorUpdate.emit(color);\n }\n}\n","<div\n [class.src-color-picker--compact]=\"isCompact()\"\n [class.src-color-picker--horizontal]=\"orientation() === 'horizontal'\"\n [class.src-color-picker--vertical]=\"orientation() === 'vertical'\"\n [style.--srcColorPickerSliderThickness]=\"sliderThickness() + 'px'\"\n class=\"src-color-picker\"\n [attr.data-testid]=\"testID()\"\n>\n <div class=\"src-color-picker__wrapper\">\n <src-color-palette\n (paletteColorUpdate)=\"paletteColorUpdate($event)\"\n [isNeedUpdatePalette]=\"isNeedUpdatePalette()\"\n [selectedHex]=\"selectedHex()\"\n ></src-color-palette>\n <src-color-slider\n (sliderColorUpdate)=\"sliderColorUpdate($event)\"\n [isNeedUpdateSlider]=\"isNeedUpdateSlider()\"\n [orientation]=\"orientation()\"\n [selectedHex]=\"selectedHex()\"\n [sliderThickness]=\"sliderThickness()\"\n ></src-color-slider>\n </div>\n @if (hasInput()) {\n <div class=\"src-color-picker__input-row\">\n <input\n class=\"src-input src-color-picker__input\"\n type=\"text\"\n [attr.data-testid]=\"testID() + '-hex-input'\"\n [value]=\"selectedHex()\"\n (input)=\"inputUpdate($event)\"\n />\n <div\n class=\"src-color-picker__swatch\"\n [attr.data-testid]=\"testID() + '-swatch'\"\n [style.background-color]=\"selectedHex() || 'white'\"\n ></div>\n </div>\n }\n</div>\n","export const SourceColorPickerOrientation = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n} as const;\n\nexport type SourceColorPickerOrientationKeys =\n (typeof SourceColorPickerOrientation)[keyof typeof SourceColorPickerOrientation];\n","import { SourceSliderComponent } from '@3dsource/source-ui-native';\nimport {\n ChangeDetectionStrategy,\n Component,\n input,\n linkedSignal,\n OnInit,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'src-slider-group',\n templateUrl: './source-slider-group.component.html',\n styleUrls: ['./source-slider-group.component.scss'],\n imports: [FormsModule, SourceSliderComponent],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SourceSliderGroupComponent implements OnInit {\n min = input.required<number>();\n max = input.required<number>();\n value = input.required<number>();\n label = input('');\n id = input('');\n step = input(1);\n units = input('%');\n showTicks = input(false);\n showRange = input(false);\n isDisabled = input(false);\n testID = input('', { alias: 'data-testid' });\n groupValueChange = output<number>();\n\n inputValue = linkedSignal(() => this.value());\n sliderValue = linkedSignal(() =>\n Math.min(Math.max(this.value(), this.min()), this.max()),\n );\n\n ngOnInit() {\n this.groupValueChange.emit(this.sliderValue());\n }\n\n updateSliderValue(event: number) {\n const value = Math.min(this.max(), Math.max(this.min(), +event));\n this.inputValue.set(value);\n this.sliderValue.set(value);\n this.groupValueChange.emit(value);\n }\n\n updateSliderValueFromInput(event: Event) {\n const value = Math.min(\n this.max(),\n Math.max(this.min(), (event.target as HTMLInputElement).valueAsNumber),\n );\n this.inputValue.set(value);\n this.sliderValue.set(value);\n this.groupValueChange.emit(value);\n }\n\n onEnter(event: Event) {\n event.preventDefault();\n this.updateSliderValueFromInput(event);\n (event.target as HTMLInputElement).blur();\n }\n}\n","<div\n [attr.data-testid]=\"testID()\"\n [class.src-slider-group--disabled]=\"isDisabled()\"\n class=\"src-slider-group\"\n>\n <div class=\"src-slider-group__label\">\n <label [attr.data-testid]=\"testID() + '-label'\" [for]=\"id()\">\n {{ label() }}</label\n >\n </div>\n <div class=\"src-slider-group__input\">\n <input\n (change)=\"updateSliderValueFromInput($event)\"\n (keydown.enter)=\"onEnter($event)\"\n [attr.data-testid]=\"testID() + '-input'\"\n [disabled]=\"isDisabled()\"\n [max]=\"max()\"\n [min]=\"min()\"\n [value]=\"inputValue()\"\n class=\"src-slider-group__number\"\n type=\"number\"\n />\n @if (units()) {\n <div class=\"src-slider-group__units\">{{ units() }}</div>\n }\n </div>\n <src-slider\n (onChange)=\"updateSliderValue($event)\"\n [data-testid]=\"testID() + '-slider'\"\n [id]=\"id()\"\n [isDisabled]=\"isDisabled()\"\n [max]=\"max()\"\n [min]=\"min()\"\n [showTicks]=\"showTicks()\"\n [step]=\"step()\"\n [value]=\"sliderValue()\"\n ></src-slider>\n @if (showRange()) {\n <div class=\"src-slider-group__range\">\n <span class=\"src-slider-group__range-min\">{{ min() }}</span>\n <span class=\"src-slider-group__range-max\">{{ max() }}</span>\n </div>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|