@ngstarter-ui/components 21.0.23 → 21.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ai/component-registry.json +14 -6
- package/fesm2022/ngstarter-ui-components-avatar.mjs +3 -3
- package/fesm2022/ngstarter-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-badge.mjs +1 -2
- package/fesm2022/ngstarter-ui-components-badge.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs +0 -2
- package/fesm2022/ngstarter-ui-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-button-toggle.mjs +1 -1
- package/fesm2022/ngstarter-ui-components-button-toggle.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-button.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-button.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-calendar.mjs +1 -1
- package/fesm2022/ngstarter-ui-components-calendar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-card-overlay.mjs +0 -1
- package/fesm2022/ngstarter-ui-components-card-overlay.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-card.mjs +7 -12
- package/fesm2022/ngstarter-ui-components-card.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-carousel.mjs +0 -3
- package/fesm2022/ngstarter-ui-components-carousel.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-chips.mjs +16 -19
- package/fesm2022/ngstarter-ui-components-chips.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-code-highlighter.mjs +4 -1
- package/fesm2022/ngstarter-ui-components-code-highlighter.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-command-bar.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-command-bar.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-comment-editor.mjs +4 -16
- package/fesm2022/ngstarter-ui-components-comment-editor.mjs.map +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-code-block.component-Czb0bvcr.mjs → ngstarter-ui-components-content-editor-code-block.component-CKrOhA7h.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-code-block.component-Czb0bvcr.mjs.map → ngstarter-ui-components-content-editor-code-block.component-CKrOhA7h.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-embed-block-c8Pq0Jdq.mjs → ngstarter-ui-components-content-editor-embed-block-zSApBzF3.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-embed-block-c8Pq0Jdq.mjs.map → ngstarter-ui-components-content-editor-embed-block-zSApBzF3.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-heading-block.component-CT5g3MLZ.mjs → ngstarter-ui-components-content-editor-heading-block.component-Dv8d0nCy.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-heading-block.component-CT5g3MLZ.mjs.map → ngstarter-ui-components-content-editor-heading-block.component-Dv8d0nCy.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-image-block.component-Cp_Yo7zI.mjs → ngstarter-ui-components-content-editor-image-block.component-g-H7a5Z_.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-image-block.component-Cp_Yo7zI.mjs.map → ngstarter-ui-components-content-editor-image-block.component-g-H7a5Z_.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-list-block.component-BvineUWy.mjs → ngstarter-ui-components-content-editor-list-block.component-PgqisgxY.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-list-block.component-BvineUWy.mjs.map → ngstarter-ui-components-content-editor-list-block.component-PgqisgxY.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-4_TqxgpH.mjs → ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-BuMm25ea.mjs} +12 -13
- package/fesm2022/ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-BuMm25ea.mjs.map +1 -0
- package/fesm2022/{ngstarter-ui-components-content-editor-paragraph-block.component-sH44U1I8.mjs → ngstarter-ui-components-content-editor-paragraph-block.component-DS_6CzuA.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-paragraph-block.component-sH44U1I8.mjs.map → ngstarter-ui-components-content-editor-paragraph-block.component-DS_6CzuA.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-quote-block.component-CA3KoZ-u.mjs → ngstarter-ui-components-content-editor-quote-block.component-Df92Nqvp.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-quote-block.component-CA3KoZ-u.mjs.map → ngstarter-ui-components-content-editor-quote-block.component-Df92Nqvp.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-table-block.component-GTZiYUjU.mjs → ngstarter-ui-components-content-editor-table-block.component-D4rdPkGz.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-table-block.component-GTZiYUjU.mjs.map → ngstarter-ui-components-content-editor-table-block.component-D4rdPkGz.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-content-editor-video-block.component-CzMZ1s6C.mjs → ngstarter-ui-components-content-editor-video-block.component-DqS9Lhp_.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-content-editor-video-block.component-CzMZ1s6C.mjs.map → ngstarter-ui-components-content-editor-video-block.component-DqS9Lhp_.mjs.map} +1 -1
- package/fesm2022/ngstarter-ui-components-content-editor.mjs +1 -1
- package/fesm2022/ngstarter-ui-components-core.mjs +0 -9
- package/fesm2022/ngstarter-ui-components-core.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-country-select.mjs +11 -11
- package/fesm2022/ngstarter-ui-components-country-select.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-data-view.mjs +0 -3
- package/fesm2022/ngstarter-ui-components-data-view.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-datepicker.mjs +27 -23
- package/fesm2022/ngstarter-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-dialog.mjs +0 -1
- package/fesm2022/ngstarter-ui-components-dialog.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-digit-roller.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-digit-roller.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-drawer.mjs +15 -7
- package/fesm2022/ngstarter-ui-components-drawer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-empty-state.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-empty-state.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-expansion.mjs +6 -6
- package/fesm2022/ngstarter-ui-components-expansion.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-filter-builder.mjs +0 -3
- package/fesm2022/ngstarter-ui-components-filter-builder.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-form-field.mjs +4 -4
- package/fesm2022/ngstarter-ui-components-form-field.mjs.map +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-autocomplete-many-field-BLhfO1zC.mjs → ngstarter-ui-components-form-renderer-autocomplete-many-field-CGQ3pJaG.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-form-renderer-autocomplete-many-field-BLhfO1zC.mjs.map → ngstarter-ui-components-form-renderer-autocomplete-many-field-CGQ3pJaG.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-datepicker-field-DRSVe0gK.mjs → ngstarter-ui-components-form-renderer-datepicker-field-Cf3jfPv7.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-form-renderer-datepicker-field-DRSVe0gK.mjs.map → ngstarter-ui-components-form-renderer-datepicker-field-Cf3jfPv7.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-input-field-DpGLKZjz.mjs → ngstarter-ui-components-form-renderer-input-field-tZHU8-_L.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-form-renderer-input-field-DpGLKZjz.mjs.map → ngstarter-ui-components-form-renderer-input-field-tZHU8-_L.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-DUCSU3iT.mjs → ngstarter-ui-components-form-renderer-radio-group-field-lc1V-NeL.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-form-renderer-radio-group-field-DUCSU3iT.mjs.map → ngstarter-ui-components-form-renderer-radio-group-field-lc1V-NeL.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-select-field-CCbpYyZo.mjs → ngstarter-ui-components-form-renderer-select-field-DyBidcIU.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-form-renderer-select-field-CCbpYyZo.mjs.map → ngstarter-ui-components-form-renderer-select-field-DyBidcIU.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-textarea-field-D89GlMDO.mjs → ngstarter-ui-components-form-renderer-textarea-field-DxbPsw3z.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-form-renderer-textarea-field-D89GlMDO.mjs.map → ngstarter-ui-components-form-renderer-textarea-field-DxbPsw3z.mjs.map} +1 -1
- package/fesm2022/{ngstarter-ui-components-form-renderer-timezone-field-C9wz7zPg.mjs → ngstarter-ui-components-form-renderer-timezone-field-DAWrM-jS.mjs} +2 -2
- package/fesm2022/{ngstarter-ui-components-form-renderer-timezone-field-C9wz7zPg.mjs.map → ngstarter-ui-components-form-renderer-timezone-field-DAWrM-jS.mjs.map} +1 -1
- package/fesm2022/ngstarter-ui-components-form-renderer.mjs +9 -9
- package/fesm2022/ngstarter-ui-components-form-renderer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-guided-tour.mjs +4 -5
- package/fesm2022/ngstarter-ui-components-guided-tour.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-headless-stepper.mjs +2 -2
- package/fesm2022/ngstarter-ui-components-headless-stepper.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-icon.mjs +1 -1
- package/fesm2022/ngstarter-ui-components-icon.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-image-designer.mjs +1 -1
- package/fesm2022/ngstarter-ui-components-image-designer.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-marquee.mjs +78 -8
- package/fesm2022/ngstarter-ui-components-marquee.mjs.map +1 -1
- package/fesm2022/ngstarter-ui-components-notifications.mjs +4 -5
- package/fesm2022/ngstarter-ui-components-notifications.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngstarter-ui-components-card.d.ts +1 -1
- package/types/ngstarter-ui-components-chips.d.ts +3 -3
- package/types/ngstarter-ui-components-datepicker.d.ts +6 -6
- package/types/ngstarter-ui-components-expansion.d.ts +2 -2
- package/types/ngstarter-ui-components-form-field.d.ts +2 -2
- package/types/ngstarter-ui-components-guided-tour.d.ts +1 -1
- package/types/ngstarter-ui-components-marquee.d.ts +19 -11
- package/fesm2022/ngstarter-ui-components-content-editor-ngstarter-ui-components-content-editor-4_TqxgpH.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngstarter-ui-components-carousel.mjs","sources":["../../../projects/components/carousel/src/types.ts","../../../projects/components/carousel/src/draggable-carousel.directive.ts","../../../projects/components/carousel/src/carousel/carousel.ts","../../../projects/components/carousel/src/carousel/carousel.html","../../../projects/components/carousel/src/carousel-card/carousel-card.ts","../../../projects/components/carousel/src/carousel-card/carousel-card.html","../../../projects/components/carousel/src/carousel-controls.directive.ts","../../../projects/components/carousel/src/carousel-previous.directive.ts","../../../projects/components/carousel/src/carousel-next.directive.ts","../../../projects/components/carousel/ngstarter-ui-components-carousel.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface CarouselApiInterface {\n previous: () => void;\n next: () => void;\n isPreviousDisabled: () => boolean;\n isNextDisabled: () => boolean;\n selectedIndex: () => number;\n}\n\nexport interface CarouselInterface {\n api: CarouselApiInterface\n}\n\nexport interface CarouselCardInterface {\n element: HTMLElement;\n}\n\nexport const CAROUSEL = new InjectionToken('CAROUSEL');\nexport const CAROUSEL_CARD = new InjectionToken('CAROUSEL_CARD');\n","import {\n Directive,\n ElementRef,\n Renderer2,\n OnInit,\n OnDestroy,\n NgZone,\n AfterContentInit,\n signal,\n input,\n inject,\n output, booleanAttribute\n} from '@angular/core';\n\nfunction easeOutQuad(t: number): number {\n return t * (2 - t);\n}\n\n@Directive({\n selector: '[ngsDraggableCarousel]',\n host: {\n '(scroll)': 'onScroll($event)',\n '(click)': 'onClick($event)',\n '(mousedown)': 'onMouseDown($event)',\n '(mouseleave)': 'onMouseLeaveElement($event)',\n '(document:mousemove)': 'onMouseMove($event)',\n '(document:mouseup)': 'onMouseUpOrLeave($event)',\n '(document:mouseleave)': 'onMouseUpOrLeave($event)',\n '[class.dragging-active]': 'isDragging()'\n }\n})\nexport class DraggableCarouselDirective implements OnInit, AfterContentInit, OnDestroy {\n cardSelector = input<string>('.ngs-carousel-card');\n snapToCenter = input<boolean>(true);\n snapDebounceTime = input<number>(50);\n snapDuration = input<number>(300);\n resistanceFactor = input<number>(0.5);\n velocityThreshold = input<number>(0.5);\n visibilityDebounceTime = input<number>(100);\n stopPropagation = input(true, {\n transform: booleanAttribute\n });\n\n indexChange = output<number>();\n\n isDragging = signal(false);\n private startX = signal(0);\n private scrollLeftStart = signal(0);\n private currentTranslateX = signal(0);\n private lastMoveX = signal<number | null>(null);\n private lastMoveTime = signal<number | null>(null);\n private currentVelocityX = signal(0);\n private lastEmittedIndex = signal<number | null>(null);\n\n private snapTimeoutId: ReturnType<typeof setTimeout> | null = null;\n private scrollAnimationId: number | null = null;\n private transformAnimationId: number | null = null;\n private visibilityDebounceTimeoutId: ReturnType<typeof setTimeout> | null = null;\n\n private el = inject(ElementRef<HTMLElement>);\n private renderer = inject(Renderer2);\n private zone = inject(NgZone);\n\n private hostElement!: HTMLElement;\n private cards: HTMLElement[] = [];\n\n ngOnInit(): void {\n this.hostElement = this.el.nativeElement;\n this.renderer.setStyle(this.hostElement, 'cursor', 'grab');\n this.hostElement.style.scrollBehavior = 'auto';\n }\n\n ngAfterContentInit(): void {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n\n // Initial state calculation after content is initialized and layout is stable\n setTimeout(() => {\n const actualInitialIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(actualInitialIndex);\n this.updateCardVisibilityClasses();\n }, 0);\n }\n\n ngOnDestroy(): void {\n this.clearSnapTimeout();\n this.cancelScrollAnimation();\n this.cancelTransformAnimation();\n clearTimeout(this.visibilityDebounceTimeoutId as any);\n }\n\n onScroll(event: Event): void {\n if (this.isDragging() || this.scrollAnimationId !== null || this.transformAnimationId !== null) {\n return;\n }\n\n if (this.visibilityDebounceTimeoutId !== null) {\n clearTimeout(this.visibilityDebounceTimeoutId);\n }\n this.visibilityDebounceTimeoutId = setTimeout(() => {\n this.updateCardVisibilityClasses();\n const currentIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(currentIndex);\n this.visibilityDebounceTimeoutId = null;\n }, this.visibilityDebounceTime());\n }\n\n onMouseDown(event: MouseEvent): void {\n clearTimeout(this.visibilityDebounceTimeoutId as any);\n this.clearSnapTimeout();\n this.cancelScrollAnimation();\n this.cancelTransformAnimation();\n\n if (this.currentTranslateX() !== 0) {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n }\n this.hostElement.style.scrollBehavior = 'auto';\n\n if (event.button !== 0) return;\n\n this.isDragging.set(true);\n this.startX.set(event.pageX - this.hostElement.offsetLeft);\n this.scrollLeftStart.set(this.hostElement.scrollLeft);\n\n this.lastMoveX.set(event.pageX);\n this.lastMoveTime.set(event.timeStamp);\n this.currentVelocityX.set(0);\n\n this.renderer.setStyle(this.hostElement, 'cursor', 'grabbing');\n event.preventDefault();\n }\n\n onMouseMove(event: MouseEvent): void {\n if (!this.isDragging()) return;\n event.preventDefault();\n\n const currentX = event.pageX;\n const currentTime = event.timeStamp;\n const lastMoveTime = this.lastMoveTime();\n const lastMoveX = this.lastMoveX();\n\n if (lastMoveTime !== null && lastMoveX !== null && currentTime > lastMoveTime) {\n const deltaX = currentX - lastMoveX;\n const deltaTime = currentTime - lastMoveTime;\n if (deltaTime > 0) {\n this.currentVelocityX.set(-deltaX / deltaTime);\n }\n }\n this.lastMoveX.set(currentX);\n this.lastMoveTime.set(currentTime);\n\n const dragDeltaX = currentX - (this.startX() + this.hostElement.offsetLeft);\n const intendedScrollLeft = this.scrollLeftStart() - dragDeltaX;\n const maxScrollLeft = this.hostElement.scrollWidth - this.hostElement.clientWidth;\n let targetScrollLeft = intendedScrollLeft;\n let translateX = 0;\n\n if (intendedScrollLeft < 0) {\n targetScrollLeft = 0;\n const overpull = -intendedScrollLeft;\n translateX = Math.min(overpull * this.resistanceFactor(), this.hostElement.clientWidth * 0.4);\n } else if (intendedScrollLeft > maxScrollLeft) {\n targetScrollLeft = maxScrollLeft;\n const overpull = intendedScrollLeft - maxScrollLeft;\n translateX = -Math.min(overpull * this.resistanceFactor(), this.hostElement.clientWidth * 0.4);\n }\n\n if (this.hostElement.scrollLeft !== targetScrollLeft) {\n this.hostElement.scrollLeft = targetScrollLeft;\n }\n\n if (this.currentTranslateX() !== translateX) {\n this.currentTranslateX.set(translateX);\n if (Math.abs(translateX) > 0.1) {\n this.renderer.setStyle(this.hostElement, 'transform', `translateX(${translateX}px)`);\n } else {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n }\n }\n }\n\n onMouseUpOrLeave(event: MouseEvent): void {\n if (!this.isDragging()) {\n return;\n }\n\n this.stopDragging();\n\n if (this.stopPropagation()) {\n event.stopPropagation();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n onMouseLeaveElement(event: MouseEvent): void {\n if (!this.isDragging()) {\n this.renderer.setStyle(this.hostElement, 'cursor', 'grab');\n }\n }\n\n private stopDragging(): void {\n if (!this.isDragging()) return;\n\n this.isDragging.set(false);\n this.renderer.setStyle(this.hostElement, 'cursor', 'grab');\n this.clearSnapTimeout();\n\n const wasPulled = Math.abs(this.currentTranslateX()) > 0.1;\n\n if (wasPulled) {\n this.snapTimeoutId = setTimeout(() => {\n this.animateTransformReset();\n this.snapTimeoutId = null;\n }, this.snapDebounceTime() / 2);\n } else if (this.snapToCenter()) {\n this.snapTimeoutId = setTimeout(() => {\n this.initiateSnap();\n this.snapTimeoutId = null;\n }, this.snapDebounceTime());\n } else {\n this.updateCardVisibilityClasses();\n const currentIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(currentIndex);\n }\n }\n\n private initiateSnap(): void {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n if (!this.cards.length) return;\n\n let targetCardIndex = -1;\n const currentScroll = this.hostElement.scrollLeft;\n const containerCenter = currentScroll + this.hostElement.clientWidth / 2;\n\n let currentNearestCardIndex = this.findNearestCardIndex(this.cards, containerCenter);\n if (currentNearestCardIndex < 0) return;\n\n const absVelocity = Math.abs(this.currentVelocityX());\n const threshold = this.velocityThreshold();\n\n if (absVelocity > threshold) {\n if (this.currentVelocityX() < 0) {\n targetCardIndex = currentNearestCardIndex - 1;\n } else {\n targetCardIndex = currentNearestCardIndex + 1;\n }\n targetCardIndex = Math.max(0, Math.min(targetCardIndex, this.cards.length - 1));\n } else {\n targetCardIndex = currentNearestCardIndex;\n }\n\n if (targetCardIndex >= 0 && targetCardIndex < this.cards.length) {\n this.scrollToCard(targetCardIndex, false);\n } else {\n this.updateCardVisibilityClasses();\n }\n }\n\n private scrollToCard(index: number, immediate: boolean = false): void {\n if (index < 0 || index >= this.cards.length) {\n return;\n }\n const targetCard = this.cards[index];\n if (!targetCard) return;\n\n const container = this.hostElement;\n const containerWidth = container.clientWidth;\n const targetCardLeft = targetCard.offsetLeft;\n const targetCardWidth = targetCard.offsetWidth;\n let targetScrollLeft = targetCardLeft + targetCardWidth / 2 - containerWidth / 2;\n const maxScrollLeft = container.scrollWidth - containerWidth;\n targetScrollLeft = Math.max(0, Math.min(targetScrollLeft, maxScrollLeft));\n\n this.cancelScrollAnimation();\n\n if (immediate) {\n container.scrollLeft = targetScrollLeft;\n this.updateCardVisibilityClasses();\n this.emitActiveIndex(index);\n } else {\n this.animateScroll(targetScrollLeft);\n }\n }\n\n private findNearestCardIndex(cards: HTMLElement[], position: number): number {\n let nearestIndex = -1;\n let minDistance = Infinity;\n cards.forEach((card, index) => {\n if (card instanceof HTMLElement) {\n const cardLeft = card.offsetLeft;\n const cardWidth = card.offsetWidth;\n const cardCenter = cardLeft + cardWidth / 2;\n const distance = Math.abs(cardCenter - position);\n if (distance < minDistance) {\n minDistance = distance;\n nearestIndex = index;\n }\n }\n });\n return nearestIndex;\n }\n\n private animateTransformReset(): void {\n this.cancelTransformAnimation();\n const startTranslateX = this.currentTranslateX();\n const distance = 0 - startTranslateX;\n if (Math.abs(distance) < 1) {\n if (startTranslateX !== 0) {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n }\n return;\n }\n const duration = this.snapDuration();\n let startTime: number | null = null;\n const step = (timestamp: number) => {\n if (startTime === null) startTime = timestamp;\n const elapsed = timestamp - startTime;\n const progress = Math.min(1, elapsed / duration);\n const easedProgress = easeOutQuad(progress);\n const newTranslateX = startTranslateX + distance * easedProgress;\n this.currentTranslateX.set(newTranslateX);\n this.renderer.setStyle(this.hostElement, 'transform', `translateX(${newTranslateX}px)`);\n if (progress < 1) {\n this.transformAnimationId = requestAnimationFrame(step);\n } else {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n this.transformAnimationId = null;\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n }\n };\n this.zone.runOutsideAngular(() => {\n this.transformAnimationId = requestAnimationFrame(step);\n });\n }\n\n private animateScroll(targetScrollLeft: number): void {\n this.cancelScrollAnimation();\n const container = this.hostElement;\n const startScrollLeft = container.scrollLeft;\n const distance = targetScrollLeft - startScrollLeft;\n if (Math.abs(distance) < 1) {\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n return;\n }\n const duration = this.snapDuration();\n let startTime: number | null = null;\n const step = (timestamp: number) => {\n if (startTime === null) startTime = timestamp;\n const elapsed = timestamp - startTime;\n const progress = Math.min(1, elapsed / duration);\n const easedProgress = easeOutQuad(progress);\n container.scrollLeft = startScrollLeft + distance * easedProgress;\n if (progress < 1) {\n this.scrollAnimationId = requestAnimationFrame(step);\n } else {\n container.scrollLeft = targetScrollLeft;\n this.scrollAnimationId = null;\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n }\n };\n this.zone.runOutsideAngular(() => {\n this.scrollAnimationId = requestAnimationFrame(step);\n });\n }\n\n private findCurrentCenterIndex(): number {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n if (!this.cards.length) return -1;\n const currentScroll = this.hostElement.scrollLeft;\n const containerCenter = currentScroll + this.hostElement.clientWidth / 2;\n return this.findNearestCardIndex(this.cards, containerCenter);\n }\n\n private emitActiveIndex(index: number): void {\n if (index >= 0 && index !== this.lastEmittedIndex()) {\n this.lastEmittedIndex.set(index);\n this.zone.run(() => {\n this.indexChange.emit(index);\n });\n }\n }\n\n private updateCardVisibilityClasses(): void {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n if (!this.cards.length || !this.hostElement.clientWidth) return;\n\n const viewportStart = this.hostElement.scrollLeft;\n const viewportWidth = this.hostElement.clientWidth;\n const viewportEnd = viewportStart + viewportWidth;\n const tolerance = 1;\n\n this.cards.forEach(card => {\n if (card instanceof HTMLElement) {\n const cardStart = card.offsetLeft;\n const cardEnd = cardStart + card.offsetWidth;\n const isSpanned = cardStart >= viewportStart - tolerance && cardEnd <= viewportEnd + tolerance;\n const isInView = cardEnd > viewportStart + tolerance && cardStart < viewportEnd - tolerance;\n\n if (isSpanned) {\n this.renderer.addClass(card, 'is-spanned');\n } else {\n this.renderer.removeClass(card, 'is-spanned');\n }\n\n if (isInView) {\n this.renderer.addClass(card, 'is-in-view');\n } else {\n this.renderer.removeClass(card, 'is-in-view');\n }\n }\n });\n }\n\n private cancelScrollAnimation(): void {\n if (this.scrollAnimationId !== null) {\n cancelAnimationFrame(this.scrollAnimationId);\n this.scrollAnimationId = null;\n }\n }\n\n private cancelTransformAnimation(): void {\n if (this.transformAnimationId !== null) {\n cancelAnimationFrame(this.transformAnimationId);\n this.transformAnimationId = null;\n }\n }\n\n private clearSnapTimeout(): void {\n if (this.snapTimeoutId !== null) {\n clearTimeout(this.snapTimeoutId);\n this.snapTimeoutId = null;\n }\n }\n\n protected onClick(event: MouseEvent): void {\n if (this.stopPropagation()) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\n","import {\n booleanAttribute,\n Component,\n contentChildren,\n ElementRef, input,\n output, signal,\n viewChild\n} from '@angular/core';\nimport { CAROUSEL, CAROUSEL_CARD, CarouselApiInterface, CarouselCardInterface } from '../types';\nimport { DraggableCarouselDirective } from '../draggable-carousel.directive';\n\n@Component({\n selector: 'ngs-carousel',\n exportAs: 'ngsCarousel',\n providers: [\n {\n provide: CAROUSEL,\n useExisting: Carousel\n }\n ],\n templateUrl: './carousel.html',\n styleUrl: './carousel.scss',\n hostDirectives: [],\n imports: [\n DraggableCarouselDirective\n ],\n host: {\n 'class': 'ngs-carousel',\n '[class.fade]': 'fade()',\n }\n})\nexport class Carousel {\n private _content = viewChild.required<ElementRef>('content');\n private _cards = contentChildren<CarouselCardInterface>(CAROUSEL_CARD);\n\n fade = input(false, {\n transform: booleanAttribute\n });\n snapToCenter = input<boolean>(true);\n snapDebounceTime = input<number>(50);\n snapDuration = input<number>(300);\n resistanceFactor = input<number>(0.5);\n velocityThreshold = input<number>(0.5);\n visibilityDebounceTime = input<number>(100);\n stopPropagation = input(true, {\n transform: booleanAttribute\n });\n\n readonly indexChange = output<number>();\n\n protected _index = signal(0);\n\n get api(): CarouselApiInterface {\n return {\n isNextDisabled: () => this._isNextDisabled,\n isPreviousDisabled: () => this._isPreviousDisabled,\n previous: () => this._previous(),\n next: () => this._next(),\n selectedIndex: () => this._index()\n }\n }\n\n protected onIndexChanged(index: number): void {\n if (this._index() === index) {\n return;\n }\n\n this._index.set(index);\n this.indexChange.emit(index);\n }\n\n private _previous(): void {\n const contentElement = this._content()?.nativeElement as HTMLElement;\n\n for (let index = this._cards().length - 1; index >= 0; index--) {\n if (index >= this._index()) {\n continue;\n }\n\n const card = this._cards().at(index) as CarouselCardInterface;\n\n if (!this._visibleInParentViewport(contentElement, card.element)) {\n this._scrollToCard(card);\n break;\n }\n }\n }\n\n private _next(): void {\n const contentElement = this._content().nativeElement as HTMLElement;\n const notVisibleCard = this._cards().find(\n (card: CarouselCardInterface, index: number) =>\n !this._visibleInParentViewport(contentElement, card.element) && index > this._index()\n );\n\n if (notVisibleCard) {\n this._scrollToCard(notVisibleCard);\n }\n }\n\n private _scrollToCard(notVisibleCard: CarouselCardInterface): void {\n this._index.set(this._cards().findIndex(card => card === notVisibleCard));\n this.indexChange.emit(this._index());\n notVisibleCard.element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n inline: 'center'\n });\n }\n\n private _visibleInParentViewport = (parent: HTMLElement, el: HTMLElement) => {\n const parentRect = parent.getBoundingClientRect();\n const elementRect = el.getBoundingClientRect();\n\n return (\n elementRect.right <= parentRect.right &&\n elementRect.left >= parentRect.left\n );\n }\n\n private get _isPreviousDisabled(): boolean {\n return this._index() === 0;\n }\n\n private get _isNextDisabled(): boolean {\n return this._index() === this._cards().length - 1;\n }\n}\n","<div #content class=\"content\"\n ngsDraggableCarousel\n [stopPropagation]=\"stopPropagation()\"\n [snapToCenter]=\"snapToCenter()\"\n [snapDebounceTime]=\"snapDebounceTime()\"\n [snapDuration]=\"snapDuration()\"\n [resistanceFactor]=\"resistanceFactor()\"\n [velocityThreshold]=\"velocityThreshold()\"\n [visibilityDebounceTime]=\"visibilityDebounceTime()\"\n (indexChange)=\"onIndexChanged($event)\">\n <ng-content select=\"ngs-carousel-card,[ngs-carousel-card]\" />\n</div>\n<div class=\"controls\">\n <ng-content select=\"[ngsCarouselControls]\" />\n</div>\n","import { Component, ElementRef, inject } from '@angular/core';\nimport { CAROUSEL_CARD } from '../types';\n\n@Component({\n selector: 'ngs-carousel-card,[ngs-carousel-card]',\n exportAs: 'ngsCarouselCard',\n imports: [],\n providers: [\n {\n provide: CAROUSEL_CARD,\n useExisting: CarouselCard\n }\n ],\n templateUrl: './carousel-card.html',\n styleUrl: './carousel-card.scss',\n host: {\n 'class': 'ngs-carousel-card',\n }\n})\nexport class CarouselCard {\n private _elementRef = inject(ElementRef);\n\n get element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n}\n","<ng-content />\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsCarouselControls]',\n standalone: true,\n host: {\n 'class': 'ngs-carousel-controls',\n }\n})\nexport class CarouselControlsDirective {\n\n}\n","import { Directive, inject, input, OnInit } from '@angular/core';\nimport { CAROUSEL, CarouselInterface } from './types';\n\n@Directive({\n selector: '[ngsCarouselPrevious]',\n exportAs: 'ngsCarouselPrevious',\n standalone: true,\n host: {\n 'class': 'ngs-carousel-previous',\n '[attr.disabled]': '_carousel?.api?.isPreviousDisabled() ? true : null',\n '(click)': '_handleClick()'\n }\n})\nexport class CarouselPreviousDirective implements OnInit {\n protected _carousel = inject<CarouselInterface>(CAROUSEL, {\n optional: true\n });\n\n carousel = input<CarouselInterface | null>(null);\n\n ngOnInit(): void {\n if (this.carousel() && !this._carousel) {\n this._carousel = this.carousel();\n }\n }\n\n _handleClick(): void {\n this._carousel?.api.previous();\n }\n}\n","import { Directive, inject, input, OnInit } from '@angular/core';\nimport { CAROUSEL, CarouselInterface } from './types';\n\n@Directive({\n selector: '[ngsCarouselNext]',\n exportAs: 'ngsCarouselNext',\n standalone: true,\n host: {\n 'class': 'ngs-carousel-next',\n '[attr.disabled]': '_carousel?.api?.isNextDisabled() ? true : null',\n '(click)': '_handleClick()'\n }\n})\nexport class CarouselNextDirective implements OnInit {\n protected _carousel = inject<CarouselInterface>(CAROUSEL, {\n optional: true\n });\n\n carousel = input<CarouselInterface | null>(null);\n\n ngOnInit(): void {\n if (this.carousel() && !this._carousel) {\n this._carousel = this.carousel();\n }\n }\n\n _handleClick(): void {\n this._carousel?.api.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngstarter-ui-components-carousel.mjs","sources":["../../../projects/components/carousel/src/types.ts","../../../projects/components/carousel/src/draggable-carousel.directive.ts","../../../projects/components/carousel/src/carousel/carousel.ts","../../../projects/components/carousel/src/carousel/carousel.html","../../../projects/components/carousel/src/carousel-card/carousel-card.ts","../../../projects/components/carousel/src/carousel-card/carousel-card.html","../../../projects/components/carousel/src/carousel-controls.directive.ts","../../../projects/components/carousel/src/carousel-previous.directive.ts","../../../projects/components/carousel/src/carousel-next.directive.ts","../../../projects/components/carousel/ngstarter-ui-components-carousel.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface CarouselApiInterface {\n previous: () => void;\n next: () => void;\n isPreviousDisabled: () => boolean;\n isNextDisabled: () => boolean;\n selectedIndex: () => number;\n}\n\nexport interface CarouselInterface {\n api: CarouselApiInterface\n}\n\nexport interface CarouselCardInterface {\n element: HTMLElement;\n}\n\nexport const CAROUSEL = new InjectionToken('CAROUSEL');\nexport const CAROUSEL_CARD = new InjectionToken('CAROUSEL_CARD');\n","import {\n Directive,\n ElementRef,\n Renderer2,\n OnInit,\n OnDestroy,\n NgZone,\n AfterContentInit,\n signal,\n input,\n inject,\n output, booleanAttribute\n} from '@angular/core';\n\nfunction easeOutQuad(t: number): number {\n return t * (2 - t);\n}\n\n@Directive({\n selector: '[ngsDraggableCarousel]',\n host: {\n '(scroll)': 'onScroll($event)',\n '(click)': 'onClick($event)',\n '(mousedown)': 'onMouseDown($event)',\n '(mouseleave)': 'onMouseLeaveElement($event)',\n '(document:mousemove)': 'onMouseMove($event)',\n '(document:mouseup)': 'onMouseUpOrLeave($event)',\n '(document:mouseleave)': 'onMouseUpOrLeave($event)',\n '[class.dragging-active]': 'isDragging()'\n }\n})\nexport class DraggableCarouselDirective implements OnInit, AfterContentInit, OnDestroy {\n cardSelector = input<string>('.ngs-carousel-card');\n snapToCenter = input<boolean>(true);\n snapDebounceTime = input<number>(50);\n snapDuration = input<number>(300);\n resistanceFactor = input<number>(0.5);\n velocityThreshold = input<number>(0.5);\n visibilityDebounceTime = input<number>(100);\n stopPropagation = input(true, {\n transform: booleanAttribute\n });\n\n indexChange = output<number>();\n\n isDragging = signal(false);\n private startX = signal(0);\n private scrollLeftStart = signal(0);\n private currentTranslateX = signal(0);\n private lastMoveX = signal<number | null>(null);\n private lastMoveTime = signal<number | null>(null);\n private currentVelocityX = signal(0);\n private lastEmittedIndex = signal<number | null>(null);\n\n private snapTimeoutId: ReturnType<typeof setTimeout> | null = null;\n private scrollAnimationId: number | null = null;\n private transformAnimationId: number | null = null;\n private visibilityDebounceTimeoutId: ReturnType<typeof setTimeout> | null = null;\n\n private el = inject(ElementRef<HTMLElement>);\n private renderer = inject(Renderer2);\n private zone = inject(NgZone);\n\n private hostElement!: HTMLElement;\n private cards: HTMLElement[] = [];\n\n ngOnInit(): void {\n this.hostElement = this.el.nativeElement;\n this.renderer.setStyle(this.hostElement, 'cursor', 'grab');\n this.hostElement.style.scrollBehavior = 'auto';\n }\n\n ngAfterContentInit(): void {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n\n // Initial state calculation after content is initialized and layout is stable\n setTimeout(() => {\n const actualInitialIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(actualInitialIndex);\n this.updateCardVisibilityClasses();\n }, 0);\n }\n\n ngOnDestroy(): void {\n this.clearSnapTimeout();\n this.cancelScrollAnimation();\n this.cancelTransformAnimation();\n clearTimeout(this.visibilityDebounceTimeoutId as any);\n }\n\n onScroll(event: Event): void {\n if (this.isDragging() || this.scrollAnimationId !== null || this.transformAnimationId !== null) {\n return;\n }\n\n if (this.visibilityDebounceTimeoutId !== null) {\n clearTimeout(this.visibilityDebounceTimeoutId);\n }\n this.visibilityDebounceTimeoutId = setTimeout(() => {\n this.updateCardVisibilityClasses();\n const currentIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(currentIndex);\n this.visibilityDebounceTimeoutId = null;\n }, this.visibilityDebounceTime());\n }\n\n onMouseDown(event: MouseEvent): void {\n clearTimeout(this.visibilityDebounceTimeoutId as any);\n this.clearSnapTimeout();\n this.cancelScrollAnimation();\n this.cancelTransformAnimation();\n\n if (this.currentTranslateX() !== 0) {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n }\n this.hostElement.style.scrollBehavior = 'auto';\n\n if (event.button !== 0) return;\n\n this.isDragging.set(true);\n this.startX.set(event.pageX - this.hostElement.offsetLeft);\n this.scrollLeftStart.set(this.hostElement.scrollLeft);\n\n this.lastMoveX.set(event.pageX);\n this.lastMoveTime.set(event.timeStamp);\n this.currentVelocityX.set(0);\n\n this.renderer.setStyle(this.hostElement, 'cursor', 'grabbing');\n event.preventDefault();\n }\n\n onMouseMove(event: MouseEvent): void {\n if (!this.isDragging()) return;\n event.preventDefault();\n\n const currentX = event.pageX;\n const currentTime = event.timeStamp;\n const lastMoveTime = this.lastMoveTime();\n const lastMoveX = this.lastMoveX();\n\n if (lastMoveTime !== null && lastMoveX !== null && currentTime > lastMoveTime) {\n const deltaX = currentX - lastMoveX;\n const deltaTime = currentTime - lastMoveTime;\n if (deltaTime > 0) {\n this.currentVelocityX.set(-deltaX / deltaTime);\n }\n }\n this.lastMoveX.set(currentX);\n this.lastMoveTime.set(currentTime);\n\n const dragDeltaX = currentX - (this.startX() + this.hostElement.offsetLeft);\n const intendedScrollLeft = this.scrollLeftStart() - dragDeltaX;\n const maxScrollLeft = this.hostElement.scrollWidth - this.hostElement.clientWidth;\n let targetScrollLeft = intendedScrollLeft;\n let translateX = 0;\n\n if (intendedScrollLeft < 0) {\n targetScrollLeft = 0;\n const overpull = -intendedScrollLeft;\n translateX = Math.min(overpull * this.resistanceFactor(), this.hostElement.clientWidth * 0.4);\n } else if (intendedScrollLeft > maxScrollLeft) {\n targetScrollLeft = maxScrollLeft;\n const overpull = intendedScrollLeft - maxScrollLeft;\n translateX = -Math.min(overpull * this.resistanceFactor(), this.hostElement.clientWidth * 0.4);\n }\n\n if (this.hostElement.scrollLeft !== targetScrollLeft) {\n this.hostElement.scrollLeft = targetScrollLeft;\n }\n\n if (this.currentTranslateX() !== translateX) {\n this.currentTranslateX.set(translateX);\n if (Math.abs(translateX) > 0.1) {\n this.renderer.setStyle(this.hostElement, 'transform', `translateX(${translateX}px)`);\n } else {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n }\n }\n }\n\n onMouseUpOrLeave(event: MouseEvent): void {\n if (!this.isDragging()) {\n return;\n }\n\n this.stopDragging();\n\n if (this.stopPropagation()) {\n event.stopPropagation();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n onMouseLeaveElement(event: MouseEvent): void {\n if (!this.isDragging()) {\n this.renderer.setStyle(this.hostElement, 'cursor', 'grab');\n }\n }\n\n private stopDragging(): void {\n if (!this.isDragging()) return;\n\n this.isDragging.set(false);\n this.renderer.setStyle(this.hostElement, 'cursor', 'grab');\n this.clearSnapTimeout();\n\n const wasPulled = Math.abs(this.currentTranslateX()) > 0.1;\n\n if (wasPulled) {\n this.snapTimeoutId = setTimeout(() => {\n this.animateTransformReset();\n this.snapTimeoutId = null;\n }, this.snapDebounceTime() / 2);\n } else if (this.snapToCenter()) {\n this.snapTimeoutId = setTimeout(() => {\n this.initiateSnap();\n this.snapTimeoutId = null;\n }, this.snapDebounceTime());\n } else {\n this.updateCardVisibilityClasses();\n const currentIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(currentIndex);\n }\n }\n\n private initiateSnap(): void {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n if (!this.cards.length) return;\n\n let targetCardIndex = -1;\n const currentScroll = this.hostElement.scrollLeft;\n const containerCenter = currentScroll + this.hostElement.clientWidth / 2;\n\n let currentNearestCardIndex = this.findNearestCardIndex(this.cards, containerCenter);\n if (currentNearestCardIndex < 0) return;\n\n const absVelocity = Math.abs(this.currentVelocityX());\n const threshold = this.velocityThreshold();\n\n if (absVelocity > threshold) {\n if (this.currentVelocityX() < 0) {\n targetCardIndex = currentNearestCardIndex - 1;\n } else {\n targetCardIndex = currentNearestCardIndex + 1;\n }\n targetCardIndex = Math.max(0, Math.min(targetCardIndex, this.cards.length - 1));\n } else {\n targetCardIndex = currentNearestCardIndex;\n }\n\n if (targetCardIndex >= 0 && targetCardIndex < this.cards.length) {\n this.scrollToCard(targetCardIndex, false);\n } else {\n this.updateCardVisibilityClasses();\n }\n }\n\n private scrollToCard(index: number, immediate: boolean = false): void {\n if (index < 0 || index >= this.cards.length) {\n return;\n }\n const targetCard = this.cards[index];\n if (!targetCard) return;\n\n const container = this.hostElement;\n const containerWidth = container.clientWidth;\n const targetCardLeft = targetCard.offsetLeft;\n const targetCardWidth = targetCard.offsetWidth;\n let targetScrollLeft = targetCardLeft + targetCardWidth / 2 - containerWidth / 2;\n const maxScrollLeft = container.scrollWidth - containerWidth;\n targetScrollLeft = Math.max(0, Math.min(targetScrollLeft, maxScrollLeft));\n\n this.cancelScrollAnimation();\n\n if (immediate) {\n container.scrollLeft = targetScrollLeft;\n this.updateCardVisibilityClasses();\n this.emitActiveIndex(index);\n } else {\n this.animateScroll(targetScrollLeft);\n }\n }\n\n private findNearestCardIndex(cards: HTMLElement[], position: number): number {\n let nearestIndex = -1;\n let minDistance = Infinity;\n cards.forEach((card, index) => {\n if (card instanceof HTMLElement) {\n const cardLeft = card.offsetLeft;\n const cardWidth = card.offsetWidth;\n const cardCenter = cardLeft + cardWidth / 2;\n const distance = Math.abs(cardCenter - position);\n if (distance < minDistance) {\n minDistance = distance;\n nearestIndex = index;\n }\n }\n });\n return nearestIndex;\n }\n\n private animateTransformReset(): void {\n this.cancelTransformAnimation();\n const startTranslateX = this.currentTranslateX();\n const distance = 0 - startTranslateX;\n if (Math.abs(distance) < 1) {\n if (startTranslateX !== 0) {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n }\n return;\n }\n const duration = this.snapDuration();\n let startTime: number | null = null;\n const step = (timestamp: number) => {\n if (startTime === null) startTime = timestamp;\n const elapsed = timestamp - startTime;\n const progress = Math.min(1, elapsed / duration);\n const easedProgress = easeOutQuad(progress);\n const newTranslateX = startTranslateX + distance * easedProgress;\n this.currentTranslateX.set(newTranslateX);\n this.renderer.setStyle(this.hostElement, 'transform', `translateX(${newTranslateX}px)`);\n if (progress < 1) {\n this.transformAnimationId = requestAnimationFrame(step);\n } else {\n this.currentTranslateX.set(0);\n this.renderer.setStyle(this.hostElement, 'transform', '');\n this.transformAnimationId = null;\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n }\n };\n this.zone.runOutsideAngular(() => {\n this.transformAnimationId = requestAnimationFrame(step);\n });\n }\n\n private animateScroll(targetScrollLeft: number): void {\n this.cancelScrollAnimation();\n const container = this.hostElement;\n const startScrollLeft = container.scrollLeft;\n const distance = targetScrollLeft - startScrollLeft;\n if (Math.abs(distance) < 1) {\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n return;\n }\n const duration = this.snapDuration();\n let startTime: number | null = null;\n const step = (timestamp: number) => {\n if (startTime === null) startTime = timestamp;\n const elapsed = timestamp - startTime;\n const progress = Math.min(1, elapsed / duration);\n const easedProgress = easeOutQuad(progress);\n container.scrollLeft = startScrollLeft + distance * easedProgress;\n if (progress < 1) {\n this.scrollAnimationId = requestAnimationFrame(step);\n } else {\n container.scrollLeft = targetScrollLeft;\n this.scrollAnimationId = null;\n const finalIndex = this.findCurrentCenterIndex();\n this.emitActiveIndex(finalIndex);\n this.updateCardVisibilityClasses();\n }\n };\n this.zone.runOutsideAngular(() => {\n this.scrollAnimationId = requestAnimationFrame(step);\n });\n }\n\n private findCurrentCenterIndex(): number {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n if (!this.cards.length) return -1;\n const currentScroll = this.hostElement.scrollLeft;\n const containerCenter = currentScroll + this.hostElement.clientWidth / 2;\n return this.findNearestCardIndex(this.cards, containerCenter);\n }\n\n private emitActiveIndex(index: number): void {\n if (index >= 0 && index !== this.lastEmittedIndex()) {\n this.lastEmittedIndex.set(index);\n this.zone.run(() => {\n this.indexChange.emit(index);\n });\n }\n }\n\n private updateCardVisibilityClasses(): void {\n this.cards = Array.from(this.hostElement.querySelectorAll<HTMLElement>(this.cardSelector()));\n if (!this.cards.length || !this.hostElement.clientWidth) return;\n\n const viewportStart = this.hostElement.scrollLeft;\n const viewportWidth = this.hostElement.clientWidth;\n const viewportEnd = viewportStart + viewportWidth;\n const tolerance = 1;\n\n this.cards.forEach(card => {\n if (card instanceof HTMLElement) {\n const cardStart = card.offsetLeft;\n const cardEnd = cardStart + card.offsetWidth;\n const isSpanned = cardStart >= viewportStart - tolerance && cardEnd <= viewportEnd + tolerance;\n const isInView = cardEnd > viewportStart + tolerance && cardStart < viewportEnd - tolerance;\n\n if (isSpanned) {\n this.renderer.addClass(card, 'is-spanned');\n } else {\n this.renderer.removeClass(card, 'is-spanned');\n }\n\n if (isInView) {\n this.renderer.addClass(card, 'is-in-view');\n } else {\n this.renderer.removeClass(card, 'is-in-view');\n }\n }\n });\n }\n\n private cancelScrollAnimation(): void {\n if (this.scrollAnimationId !== null) {\n cancelAnimationFrame(this.scrollAnimationId);\n this.scrollAnimationId = null;\n }\n }\n\n private cancelTransformAnimation(): void {\n if (this.transformAnimationId !== null) {\n cancelAnimationFrame(this.transformAnimationId);\n this.transformAnimationId = null;\n }\n }\n\n private clearSnapTimeout(): void {\n if (this.snapTimeoutId !== null) {\n clearTimeout(this.snapTimeoutId);\n this.snapTimeoutId = null;\n }\n }\n\n protected onClick(event: MouseEvent): void {\n if (this.stopPropagation()) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\n","import {\n booleanAttribute,\n Component,\n contentChildren,\n ElementRef, input,\n output, signal,\n viewChild\n} from '@angular/core';\nimport { CAROUSEL, CAROUSEL_CARD, CarouselApiInterface, CarouselCardInterface } from '../types';\nimport { DraggableCarouselDirective } from '../draggable-carousel.directive';\n\n@Component({\n selector: 'ngs-carousel',\n exportAs: 'ngsCarousel',\n providers: [\n {\n provide: CAROUSEL,\n useExisting: Carousel\n }\n ],\n templateUrl: './carousel.html',\n styleUrl: './carousel.scss',\n hostDirectives: [],\n imports: [\n DraggableCarouselDirective\n ],\n host: {\n 'class': 'ngs-carousel',\n '[class.fade]': 'fade()',\n }\n})\nexport class Carousel {\n private _content = viewChild.required<ElementRef>('content');\n private _cards = contentChildren<CarouselCardInterface>(CAROUSEL_CARD);\n\n fade = input(false, {\n transform: booleanAttribute\n });\n snapToCenter = input<boolean>(true);\n snapDebounceTime = input<number>(50);\n snapDuration = input<number>(300);\n resistanceFactor = input<number>(0.5);\n velocityThreshold = input<number>(0.5);\n visibilityDebounceTime = input<number>(100);\n stopPropagation = input(true, {\n transform: booleanAttribute\n });\n\n readonly indexChange = output<number>();\n\n protected _index = signal(0);\n\n get api(): CarouselApiInterface {\n return {\n isNextDisabled: () => this._isNextDisabled,\n isPreviousDisabled: () => this._isPreviousDisabled,\n previous: () => this._previous(),\n next: () => this._next(),\n selectedIndex: () => this._index()\n }\n }\n\n protected onIndexChanged(index: number): void {\n if (this._index() === index) {\n return;\n }\n\n this._index.set(index);\n this.indexChange.emit(index);\n }\n\n private _previous(): void {\n const contentElement = this._content()?.nativeElement as HTMLElement;\n\n for (let index = this._cards().length - 1; index >= 0; index--) {\n if (index >= this._index()) {\n continue;\n }\n\n const card = this._cards().at(index) as CarouselCardInterface;\n\n if (!this._visibleInParentViewport(contentElement, card.element)) {\n this._scrollToCard(card);\n break;\n }\n }\n }\n\n private _next(): void {\n const contentElement = this._content().nativeElement as HTMLElement;\n const notVisibleCard = this._cards().find(\n (card: CarouselCardInterface, index: number) =>\n !this._visibleInParentViewport(contentElement, card.element) && index > this._index()\n );\n\n if (notVisibleCard) {\n this._scrollToCard(notVisibleCard);\n }\n }\n\n private _scrollToCard(notVisibleCard: CarouselCardInterface): void {\n this._index.set(this._cards().findIndex(card => card === notVisibleCard));\n this.indexChange.emit(this._index());\n notVisibleCard.element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth',\n inline: 'center'\n });\n }\n\n private _visibleInParentViewport = (parent: HTMLElement, el: HTMLElement) => {\n const parentRect = parent.getBoundingClientRect();\n const elementRect = el.getBoundingClientRect();\n\n return (\n elementRect.right <= parentRect.right &&\n elementRect.left >= parentRect.left\n );\n }\n\n private get _isPreviousDisabled(): boolean {\n return this._index() === 0;\n }\n\n private get _isNextDisabled(): boolean {\n return this._index() === this._cards().length - 1;\n }\n}\n","<div #content class=\"content\"\n ngsDraggableCarousel\n [stopPropagation]=\"stopPropagation()\"\n [snapToCenter]=\"snapToCenter()\"\n [snapDebounceTime]=\"snapDebounceTime()\"\n [snapDuration]=\"snapDuration()\"\n [resistanceFactor]=\"resistanceFactor()\"\n [velocityThreshold]=\"velocityThreshold()\"\n [visibilityDebounceTime]=\"visibilityDebounceTime()\"\n (indexChange)=\"onIndexChanged($event)\">\n <ng-content select=\"ngs-carousel-card,[ngs-carousel-card]\" />\n</div>\n<div class=\"controls\">\n <ng-content select=\"[ngsCarouselControls]\" />\n</div>\n","import { Component, ElementRef, inject } from '@angular/core';\nimport { CAROUSEL_CARD } from '../types';\n\n@Component({\n selector: 'ngs-carousel-card,[ngs-carousel-card]',\n exportAs: 'ngsCarouselCard',\n imports: [],\n providers: [\n {\n provide: CAROUSEL_CARD,\n useExisting: CarouselCard\n }\n ],\n templateUrl: './carousel-card.html',\n styleUrl: './carousel-card.scss',\n host: {\n 'class': 'ngs-carousel-card',\n }\n})\nexport class CarouselCard {\n private _elementRef = inject(ElementRef);\n\n get element(): HTMLElement {\n return this._elementRef.nativeElement;\n }\n}\n","<ng-content />\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[ngsCarouselControls]',\n host: {\n 'class': 'ngs-carousel-controls',\n }\n})\nexport class CarouselControlsDirective {\n\n}\n","import { Directive, inject, input, OnInit } from '@angular/core';\nimport { CAROUSEL, CarouselInterface } from './types';\n\n@Directive({\n selector: '[ngsCarouselPrevious]',\n exportAs: 'ngsCarouselPrevious',\n host: {\n 'class': 'ngs-carousel-previous',\n '[attr.disabled]': '_carousel?.api?.isPreviousDisabled() ? true : null',\n '(click)': '_handleClick()'\n }\n})\nexport class CarouselPreviousDirective implements OnInit {\n protected _carousel = inject<CarouselInterface>(CAROUSEL, {\n optional: true\n });\n\n carousel = input<CarouselInterface | null>(null);\n\n ngOnInit(): void {\n if (this.carousel() && !this._carousel) {\n this._carousel = this.carousel();\n }\n }\n\n _handleClick(): void {\n this._carousel?.api.previous();\n }\n}\n","import { Directive, inject, input, OnInit } from '@angular/core';\nimport { CAROUSEL, CarouselInterface } from './types';\n\n@Directive({\n selector: '[ngsCarouselNext]',\n exportAs: 'ngsCarouselNext',\n host: {\n 'class': 'ngs-carousel-next',\n '[attr.disabled]': '_carousel?.api?.isNextDisabled() ? true : null',\n '(click)': '_handleClick()'\n }\n})\nexport class CarouselNextDirective implements OnInit {\n protected _carousel = inject<CarouselInterface>(CAROUSEL, {\n optional: true\n });\n\n carousel = input<CarouselInterface | null>(null);\n\n ngOnInit(): void {\n if (this.carousel() && !this._carousel) {\n this._carousel = this.carousel();\n }\n }\n\n _handleClick(): void {\n this._carousel?.api.next();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -99,11 +99,18 @@ class ChipRow extends Chip {
|
|
|
99
99
|
provide: Chip,
|
|
100
100
|
useExisting: forwardRef(() => ChipRow)
|
|
101
101
|
}
|
|
102
|
-
], viewQueries: [{ propertyName: "_editInput", first: true, predicate: ["editInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ngs-chip-content\">\n <span class=\"avatar\">\n <ng-content select=\"ngs-chip-avatar, [ngsChipAvatar]\"/>\n </span>\n <span class=\"shape\">\n <ng-content select=\"ngs-chip-shape, [ngsChipShape]\"/>\n </span>\n <span\n #editInput\n class=\"ngs-chip-label\"\n [attr.contenteditable]=\"_editing || null\"\n (blur)=\"_handleBlur()\"\n (keydown)=\"_handleKeydown($event)\"\n [ngsAutoFocus]=\"_editing\"\n >\n <ng-content/>\n </span>\n <div class=\"controls\">\n <ng-content select=\"ngs-chip-remove, [ngsChipRemove], [ngsChipControl], [ngsChipEdit]\"/>\n </div>\n</div>\n", styles: [":host{--ngs-chip-background: var(--ngs-color-surface-container-high);--ngs-chip-color: var(--ngs-color-on-surface);--ngs-chip-radius: var(--ngs-radius-xl);--ngs-chip-padding: 0 calc(var(--spacing, .25rem) * 3);--ngs-chip-font-size: var(--ngs-font-size-xs);--ngs-chip-font-weight: 500;--ngs-chip-height: calc(var(--spacing, .25rem) * 8);--ngs-chip-border-color: var(--ngs-chip-outline-color, var(--ngs-color-outline-variant));--ngs-chip-selected-background: var(--ngs-color-primary);--ngs-chip-selected-color: var(--ngs-color-on-primary);display:inline-flex;align-items:center;border-radius:var(--ngs-chip-radius);padding:var(--ngs-chip-padding);font-size:var(--ngs-chip-font-size);font-weight:var(--ngs-chip-font-weight);height:var(--ngs-chip-height);box-sizing:border-box;vertical-align:middle;white-space:nowrap;position:relative;overflow:hidden;cursor:pointer}:host[appearance=filled],:host.ngs-chip-filled{background:var(--ngs-chip-background);color:var(--ngs-chip-color)}:host[appearance=outlined],:host.ngs-chip-outlined{--ngs-chip-background: transparent;color:var(--ngs-chip-color);border:1px solid var(--ngs-chip-border-color)}:host[appearance=outlined].ngs-chip-selected,:host.ngs-chip-outlined.ngs-chip-selected{border-color:var(--ngs-chip-selected-background)}:host:not(.ngs-chip-selected):not(.ngs-chip-editing):hover{filter:brightness(97%)}:host:has(.avatar:not(:empty)){padding-left:calc(var(--spacing, .25rem) * 1.5)}:host:has(.shape:not(:empty)){padding-left:calc(var(--spacing, .25rem) * 1.5)}:host:has(.ngs-chip-remove:not(:empty)){padding-right:calc(var(--spacing, .25rem) * 1.5)}:host .avatar{position:relative;margin-right:calc(var(--spacing, .25rem) * 1);display:flex;height:100%;justify-content:center;align-items:center}:host .avatar:empty{display:none}:host .avatar ::ng-deep ngs-avatar,:host .avatar ::ng-deep ngs-dicebear{--ngs-avatar-size: calc(var(--spacing, .25rem) * 6)}:host .avatar ::ng-deep img{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);border-radius:50%}:host .shape{position:relative;max-height:max-content;display:flex;align-items:center;justify-content:center}:host .shape:empty{display:none}:host.ngs-chip-disabled{opacity:.4;cursor:default;pointer-events:none}:host .ngs-chip-content{display:flex;align-items:center;width:100%;height:100%;gap:calc(var(--spacing, .25rem) * 1)}:host .controls{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * .5)}:host .controls:empty{display:none}:host .controls ::ng-deep .ngs-chip-edit,:host .controls ::ng-deep .ngs-chip-remove{--ngs-icon-size: calc(var(--spacing, .25rem) * 4);appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:none;width:calc(var(--spacing, .25rem) * 5);height:calc(var(--spacing, .25rem) * 5);padding:0;margin:0;border:0;border-radius:50%;background:transparent;color:inherit;font:inherit;line-height:1;vertical-align:middle;cursor:pointer;opacity:.65}:host .controls ::ng-deep .ngs-chip-edit:hover,:host .controls ::ng-deep .ngs-chip-remove:hover{opacity:1}:host .controls ::ng-deep .ngs-chip-remove:hover{color:var(--ngs-color-danger)}:host .ngs-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .ngs-chip-label[contenteditable=true]{display:inline-block;min-width:calc(var(--spacing, .25rem) * 5);outline:none;margin-inline-end:calc(var(--spacing, .25rem) * 2)}:host .ngs-chip-avatar{margin-right:calc(var(--spacing, .25rem) * 2);display:flex;align-items:center;justify-content:center}:host.ngs-chip-editing .avatar,:host.ngs-chip-editing .controls{display:none}:host.ngs-chip-selected{--ngs-chip-background: var(--ngs-chip-selected-background);--ngs-chip-color: var(--ngs-chip-selected-color)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AutoFocusDirective, selector: "[ngsAutoFocus]", inputs: ["ngsAutoFocus"], exportAs: ["ngsAutoFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
102
|
+
], viewQueries: [{ propertyName: "_editInput", first: true, predicate: ["editInput"], descendants: true, isSignal: true }], exportAs: ["ngsChipRow"], usesInheritance: true, ngImport: i0, template: "<div class=\"ngs-chip-content\">\n <span class=\"avatar\">\n <ng-content select=\"ngs-chip-avatar, [ngsChipAvatar]\"/>\n </span>\n <span class=\"shape\">\n <ng-content select=\"ngs-chip-shape, [ngsChipShape]\"/>\n </span>\n <span\n #editInput\n class=\"ngs-chip-label\"\n [attr.contenteditable]=\"_editing || null\"\n (blur)=\"_handleBlur()\"\n (keydown)=\"_handleKeydown($event)\"\n [ngsAutoFocus]=\"_editing\"\n >\n <ng-content/>\n </span>\n <div class=\"controls\">\n <ng-content select=\"ngs-chip-remove, [ngsChipRemove], [ngsChipControl], [ngsChipEdit]\"/>\n </div>\n</div>\n", styles: [":host{--ngs-chip-background: var(--ngs-color-surface-container-high);--ngs-chip-color: var(--ngs-color-on-surface);--ngs-chip-radius: var(--ngs-radius-xl);--ngs-chip-padding: 0 calc(var(--spacing, .25rem) * 3);--ngs-chip-font-size: var(--ngs-font-size-xs);--ngs-chip-font-weight: 500;--ngs-chip-height: calc(var(--spacing, .25rem) * 8);--ngs-chip-border-color: var(--ngs-chip-outline-color, var(--ngs-color-outline-variant));--ngs-chip-selected-background: var(--ngs-color-primary);--ngs-chip-selected-color: var(--ngs-color-on-primary);display:inline-flex;align-items:center;border-radius:var(--ngs-chip-radius);padding:var(--ngs-chip-padding);font-size:var(--ngs-chip-font-size);font-weight:var(--ngs-chip-font-weight);height:var(--ngs-chip-height);box-sizing:border-box;vertical-align:middle;white-space:nowrap;position:relative;overflow:hidden;cursor:pointer}:host[appearance=filled],:host.ngs-chip-filled{background:var(--ngs-chip-background);color:var(--ngs-chip-color)}:host[appearance=outlined],:host.ngs-chip-outlined{--ngs-chip-background: transparent;color:var(--ngs-chip-color);border:1px solid var(--ngs-chip-border-color)}:host[appearance=outlined].ngs-chip-selected,:host.ngs-chip-outlined.ngs-chip-selected{border-color:var(--ngs-chip-selected-background)}:host:not(.ngs-chip-selected):not(.ngs-chip-editing):hover{filter:brightness(97%)}:host:has(.avatar:not(:empty)){padding-left:calc(var(--spacing, .25rem) * 1.5)}:host:has(.shape:not(:empty)){padding-left:calc(var(--spacing, .25rem) * 1.5)}:host:has(.ngs-chip-remove:not(:empty)){padding-right:calc(var(--spacing, .25rem) * 1.5)}:host .avatar{position:relative;margin-right:calc(var(--spacing, .25rem) * 1);display:flex;height:100%;justify-content:center;align-items:center}:host .avatar:empty{display:none}:host .avatar ::ng-deep ngs-avatar,:host .avatar ::ng-deep ngs-dicebear{--ngs-avatar-size: calc(var(--spacing, .25rem) * 6)}:host .avatar ::ng-deep img{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);border-radius:50%}:host .shape{position:relative;max-height:max-content;display:flex;align-items:center;justify-content:center}:host .shape:empty{display:none}:host.ngs-chip-disabled{opacity:.4;cursor:default;pointer-events:none}:host .ngs-chip-content{display:flex;align-items:center;width:100%;height:100%;gap:calc(var(--spacing, .25rem) * 1)}:host .controls{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * .5)}:host .controls:empty{display:none}:host .controls ::ng-deep .ngs-chip-edit,:host .controls ::ng-deep .ngs-chip-remove{--ngs-icon-size: calc(var(--spacing, .25rem) * 4);appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:none;width:calc(var(--spacing, .25rem) * 5);height:calc(var(--spacing, .25rem) * 5);padding:0;margin:0;border:0;border-radius:50%;background:transparent;color:inherit;font:inherit;line-height:1;vertical-align:middle;cursor:pointer;opacity:.65}:host .controls ::ng-deep .ngs-chip-edit:hover,:host .controls ::ng-deep .ngs-chip-remove:hover{opacity:1}:host .controls ::ng-deep .ngs-chip-remove:hover{color:var(--ngs-color-danger)}:host .ngs-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .ngs-chip-label[contenteditable=true]{display:inline-block;min-width:calc(var(--spacing, .25rem) * 5);outline:none;margin-inline-end:calc(var(--spacing, .25rem) * 2)}:host .ngs-chip-avatar{margin-right:calc(var(--spacing, .25rem) * 2);display:flex;align-items:center;justify-content:center}:host.ngs-chip-editing .avatar,:host.ngs-chip-editing .controls{display:none}:host.ngs-chip-selected{--ngs-chip-background: var(--ngs-chip-selected-background);--ngs-chip-color: var(--ngs-chip-selected-color)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], dependencies: [{ kind: "directive", type: AutoFocusDirective, selector: "[ngsAutoFocus]", inputs: ["ngsAutoFocus"], exportAs: ["ngsAutoFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
103
103
|
}
|
|
104
104
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ChipRow, decorators: [{
|
|
105
105
|
type: Component,
|
|
106
|
-
args: [{ selector: 'ngs-chip-row',
|
|
106
|
+
args: [{ selector: 'ngs-chip-row', exportAs: 'ngsChipRow', imports: [
|
|
107
|
+
AutoFocusDirective
|
|
108
|
+
], providers: [
|
|
109
|
+
{
|
|
110
|
+
provide: Chip,
|
|
111
|
+
useExisting: forwardRef(() => ChipRow)
|
|
112
|
+
}
|
|
113
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
107
114
|
'class': 'ngs-chip ngs-chip-row',
|
|
108
115
|
'[class.ngs-chip-disabled]': 'disabled()',
|
|
109
116
|
'[class.ngs-chip-editing]': '_editing',
|
|
@@ -114,14 +121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
114
121
|
'role': 'row',
|
|
115
122
|
'(keydown)': '_handleKeydown($event)',
|
|
116
123
|
'(click)': '_handleClick($event)',
|
|
117
|
-
},
|
|
118
|
-
AutoFocusDirective
|
|
119
|
-
], providers: [
|
|
120
|
-
{
|
|
121
|
-
provide: Chip,
|
|
122
|
-
useExisting: forwardRef(() => ChipRow)
|
|
123
|
-
}
|
|
124
|
-
], template: "<div class=\"ngs-chip-content\">\n <span class=\"avatar\">\n <ng-content select=\"ngs-chip-avatar, [ngsChipAvatar]\"/>\n </span>\n <span class=\"shape\">\n <ng-content select=\"ngs-chip-shape, [ngsChipShape]\"/>\n </span>\n <span\n #editInput\n class=\"ngs-chip-label\"\n [attr.contenteditable]=\"_editing || null\"\n (blur)=\"_handleBlur()\"\n (keydown)=\"_handleKeydown($event)\"\n [ngsAutoFocus]=\"_editing\"\n >\n <ng-content/>\n </span>\n <div class=\"controls\">\n <ng-content select=\"ngs-chip-remove, [ngsChipRemove], [ngsChipControl], [ngsChipEdit]\"/>\n </div>\n</div>\n", styles: [":host{--ngs-chip-background: var(--ngs-color-surface-container-high);--ngs-chip-color: var(--ngs-color-on-surface);--ngs-chip-radius: var(--ngs-radius-xl);--ngs-chip-padding: 0 calc(var(--spacing, .25rem) * 3);--ngs-chip-font-size: var(--ngs-font-size-xs);--ngs-chip-font-weight: 500;--ngs-chip-height: calc(var(--spacing, .25rem) * 8);--ngs-chip-border-color: var(--ngs-chip-outline-color, var(--ngs-color-outline-variant));--ngs-chip-selected-background: var(--ngs-color-primary);--ngs-chip-selected-color: var(--ngs-color-on-primary);display:inline-flex;align-items:center;border-radius:var(--ngs-chip-radius);padding:var(--ngs-chip-padding);font-size:var(--ngs-chip-font-size);font-weight:var(--ngs-chip-font-weight);height:var(--ngs-chip-height);box-sizing:border-box;vertical-align:middle;white-space:nowrap;position:relative;overflow:hidden;cursor:pointer}:host[appearance=filled],:host.ngs-chip-filled{background:var(--ngs-chip-background);color:var(--ngs-chip-color)}:host[appearance=outlined],:host.ngs-chip-outlined{--ngs-chip-background: transparent;color:var(--ngs-chip-color);border:1px solid var(--ngs-chip-border-color)}:host[appearance=outlined].ngs-chip-selected,:host.ngs-chip-outlined.ngs-chip-selected{border-color:var(--ngs-chip-selected-background)}:host:not(.ngs-chip-selected):not(.ngs-chip-editing):hover{filter:brightness(97%)}:host:has(.avatar:not(:empty)){padding-left:calc(var(--spacing, .25rem) * 1.5)}:host:has(.shape:not(:empty)){padding-left:calc(var(--spacing, .25rem) * 1.5)}:host:has(.ngs-chip-remove:not(:empty)){padding-right:calc(var(--spacing, .25rem) * 1.5)}:host .avatar{position:relative;margin-right:calc(var(--spacing, .25rem) * 1);display:flex;height:100%;justify-content:center;align-items:center}:host .avatar:empty{display:none}:host .avatar ::ng-deep ngs-avatar,:host .avatar ::ng-deep ngs-dicebear{--ngs-avatar-size: calc(var(--spacing, .25rem) * 6)}:host .avatar ::ng-deep img{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);border-radius:50%}:host .shape{position:relative;max-height:max-content;display:flex;align-items:center;justify-content:center}:host .shape:empty{display:none}:host.ngs-chip-disabled{opacity:.4;cursor:default;pointer-events:none}:host .ngs-chip-content{display:flex;align-items:center;width:100%;height:100%;gap:calc(var(--spacing, .25rem) * 1)}:host .controls{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * .5)}:host .controls:empty{display:none}:host .controls ::ng-deep .ngs-chip-edit,:host .controls ::ng-deep .ngs-chip-remove{--ngs-icon-size: calc(var(--spacing, .25rem) * 4);appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:none;width:calc(var(--spacing, .25rem) * 5);height:calc(var(--spacing, .25rem) * 5);padding:0;margin:0;border:0;border-radius:50%;background:transparent;color:inherit;font:inherit;line-height:1;vertical-align:middle;cursor:pointer;opacity:.65}:host .controls ::ng-deep .ngs-chip-edit:hover,:host .controls ::ng-deep .ngs-chip-remove:hover{opacity:1}:host .controls ::ng-deep .ngs-chip-remove:hover{color:var(--ngs-color-danger)}:host .ngs-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .ngs-chip-label[contenteditable=true]{display:inline-block;min-width:calc(var(--spacing, .25rem) * 5);outline:none;margin-inline-end:calc(var(--spacing, .25rem) * 2)}:host .ngs-chip-avatar{margin-right:calc(var(--spacing, .25rem) * 2);display:flex;align-items:center;justify-content:center}:host.ngs-chip-editing .avatar,:host.ngs-chip-editing .controls{display:none}:host.ngs-chip-selected{--ngs-chip-background: var(--ngs-chip-selected-background);--ngs-chip-color: var(--ngs-chip-selected-color)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
124
|
+
}, template: "<div class=\"ngs-chip-content\">\n <span class=\"avatar\">\n <ng-content select=\"ngs-chip-avatar, [ngsChipAvatar]\"/>\n </span>\n <span class=\"shape\">\n <ng-content select=\"ngs-chip-shape, [ngsChipShape]\"/>\n </span>\n <span\n #editInput\n class=\"ngs-chip-label\"\n [attr.contenteditable]=\"_editing || null\"\n (blur)=\"_handleBlur()\"\n (keydown)=\"_handleKeydown($event)\"\n [ngsAutoFocus]=\"_editing\"\n >\n <ng-content/>\n </span>\n <div class=\"controls\">\n <ng-content select=\"ngs-chip-remove, [ngsChipRemove], [ngsChipControl], [ngsChipEdit]\"/>\n </div>\n</div>\n", styles: [":host{--ngs-chip-background: var(--ngs-color-surface-container-high);--ngs-chip-color: var(--ngs-color-on-surface);--ngs-chip-radius: var(--ngs-radius-xl);--ngs-chip-padding: 0 calc(var(--spacing, .25rem) * 3);--ngs-chip-font-size: var(--ngs-font-size-xs);--ngs-chip-font-weight: 500;--ngs-chip-height: calc(var(--spacing, .25rem) * 8);--ngs-chip-border-color: var(--ngs-chip-outline-color, var(--ngs-color-outline-variant));--ngs-chip-selected-background: var(--ngs-color-primary);--ngs-chip-selected-color: var(--ngs-color-on-primary);display:inline-flex;align-items:center;border-radius:var(--ngs-chip-radius);padding:var(--ngs-chip-padding);font-size:var(--ngs-chip-font-size);font-weight:var(--ngs-chip-font-weight);height:var(--ngs-chip-height);box-sizing:border-box;vertical-align:middle;white-space:nowrap;position:relative;overflow:hidden;cursor:pointer}:host[appearance=filled],:host.ngs-chip-filled{background:var(--ngs-chip-background);color:var(--ngs-chip-color)}:host[appearance=outlined],:host.ngs-chip-outlined{--ngs-chip-background: transparent;color:var(--ngs-chip-color);border:1px solid var(--ngs-chip-border-color)}:host[appearance=outlined].ngs-chip-selected,:host.ngs-chip-outlined.ngs-chip-selected{border-color:var(--ngs-chip-selected-background)}:host:not(.ngs-chip-selected):not(.ngs-chip-editing):hover{filter:brightness(97%)}:host:has(.avatar:not(:empty)){padding-left:calc(var(--spacing, .25rem) * 1.5)}:host:has(.shape:not(:empty)){padding-left:calc(var(--spacing, .25rem) * 1.5)}:host:has(.ngs-chip-remove:not(:empty)){padding-right:calc(var(--spacing, .25rem) * 1.5)}:host .avatar{position:relative;margin-right:calc(var(--spacing, .25rem) * 1);display:flex;height:100%;justify-content:center;align-items:center}:host .avatar:empty{display:none}:host .avatar ::ng-deep ngs-avatar,:host .avatar ::ng-deep ngs-dicebear{--ngs-avatar-size: calc(var(--spacing, .25rem) * 6)}:host .avatar ::ng-deep img{width:calc(var(--spacing, .25rem) * 6);height:calc(var(--spacing, .25rem) * 6);border-radius:50%}:host .shape{position:relative;max-height:max-content;display:flex;align-items:center;justify-content:center}:host .shape:empty{display:none}:host.ngs-chip-disabled{opacity:.4;cursor:default;pointer-events:none}:host .ngs-chip-content{display:flex;align-items:center;width:100%;height:100%;gap:calc(var(--spacing, .25rem) * 1)}:host .controls{display:flex;align-items:center;gap:calc(var(--spacing, .25rem) * .5)}:host .controls:empty{display:none}:host .controls ::ng-deep .ngs-chip-edit,:host .controls ::ng-deep .ngs-chip-remove{--ngs-icon-size: calc(var(--spacing, .25rem) * 4);appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:none;width:calc(var(--spacing, .25rem) * 5);height:calc(var(--spacing, .25rem) * 5);padding:0;margin:0;border:0;border-radius:50%;background:transparent;color:inherit;font:inherit;line-height:1;vertical-align:middle;cursor:pointer;opacity:.65}:host .controls ::ng-deep .ngs-chip-edit:hover,:host .controls ::ng-deep .ngs-chip-remove:hover{opacity:1}:host .controls ::ng-deep .ngs-chip-remove:hover{color:var(--ngs-color-danger)}:host .ngs-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .ngs-chip-label[contenteditable=true]{display:inline-block;min-width:calc(var(--spacing, .25rem) * 5);outline:none;margin-inline-end:calc(var(--spacing, .25rem) * 2)}:host .ngs-chip-avatar{margin-right:calc(var(--spacing, .25rem) * 2);display:flex;align-items:center;justify-content:center}:host.ngs-chip-editing .avatar,:host.ngs-chip-editing .controls{display:none}:host.ngs-chip-selected{--ngs-chip-background: var(--ngs-chip-selected-background);--ngs-chip-color: var(--ngs-chip-selected-color)}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
125
125
|
}], propDecorators: { _editInput: [{ type: i0.ViewChild, args: ['editInput', { isSignal: true }] }], editable: [{ type: i0.Input, args: [{ isSignal: true, alias: "editable", required: false }] }], edited: [{ type: i0.Output, args: ["edited"] }] } });
|
|
126
126
|
|
|
127
127
|
let nextId = 0;
|
|
@@ -236,16 +236,16 @@ class ChipGrid {
|
|
|
236
236
|
provide: FormFieldControl,
|
|
237
237
|
useExisting: forwardRef(() => ChipGrid),
|
|
238
238
|
},
|
|
239
|
-
], queries: [{ propertyName: "_chips", predicate: ChipRow, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content />\n", styles: [":host{--ngs-chip-set-gap: var(--ngs-chip-set-spacing, calc(var(--spacing, .25rem) * 2));--ngs-chip-input-height: var(--ngs-form-field-input-height, var(--ngs-field-input-height, 1.25rem));display:flex;flex-wrap:wrap;align-items:center;gap:var(--ngs-chip-set-gap);width:100%}:host ::ng-deep .ngs-chip-input{outline:none;flex:1 0 100%;min-width:0;max-width:100%;width:100%!important;height:var(--ngs-chip-input-height);min-height:var(--ngs-chip-input-height);box-sizing:border-box}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
239
|
+
], queries: [{ propertyName: "_chips", predicate: ChipRow, descendants: true, isSignal: true }], exportAs: ["ngsChipGrid"], ngImport: i0, template: "<ng-content />\n", styles: [":host{--ngs-chip-set-gap: var(--ngs-chip-set-spacing, calc(var(--spacing, .25rem) * 2));--ngs-chip-input-height: var(--ngs-form-field-input-height, var(--ngs-field-input-height, 1.25rem));display:flex;flex-wrap:wrap;align-items:center;gap:var(--ngs-chip-set-gap);width:100%}:host ::ng-deep .ngs-chip-input{outline:none;flex:1 0 100%;min-width:0;max-width:100%;width:100%!important;height:var(--ngs-chip-input-height);min-height:var(--ngs-chip-input-height);box-sizing:border-box}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
240
240
|
}
|
|
241
241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ChipGrid, decorators: [{
|
|
242
242
|
type: Component,
|
|
243
|
-
args: [{ selector: 'ngs-chip-grid', host: {
|
|
243
|
+
args: [{ selector: 'ngs-chip-grid', exportAs: 'ngsChipGrid', host: {
|
|
244
244
|
'class': 'ngs-chip-grid ngs-chip-set',
|
|
245
245
|
'role': 'grid',
|
|
246
246
|
'[attr.aria-disabled]': 'disabled',
|
|
247
247
|
'[id]': 'id',
|
|
248
|
-
},
|
|
248
|
+
}, providers: [
|
|
249
249
|
{
|
|
250
250
|
provide: FormFieldControl,
|
|
251
251
|
useExisting: forwardRef(() => ChipGrid),
|
|
@@ -455,14 +455,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
455
455
|
|
|
456
456
|
class ChipSet {
|
|
457
457
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ChipSet, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
458
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: ChipSet, isStandalone: true, selector: "ngs-chip-set", host: { attributes: { "role": "presentation" }, classAttribute: "ngs-chip-set" }, ngImport: i0, template: "<ng-content />\n", styles: [":host{--ngs-chip-set-gap: var(--ngs-chip-set-spacing, calc(var(--spacing, .25rem) * 2));display:flex;flex-wrap:wrap;gap:var(--ngs-chip-set-gap)}:host ::ng-deep .ngs-chip-input{outline:none;width:100%}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
458
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.4", type: ChipSet, isStandalone: true, selector: "ngs-chip-set", host: { attributes: { "role": "presentation" }, classAttribute: "ngs-chip-set" }, exportAs: ["ngsChipSet"], ngImport: i0, template: "<ng-content />\n", styles: [":host{--ngs-chip-set-gap: var(--ngs-chip-set-spacing, calc(var(--spacing, .25rem) * 2));display:flex;flex-wrap:wrap;gap:var(--ngs-chip-set-gap)}:host ::ng-deep .ngs-chip-input{outline:none;width:100%}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
459
459
|
}
|
|
460
460
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: ChipSet, decorators: [{
|
|
461
461
|
type: Component,
|
|
462
|
-
args: [{ selector: 'ngs-chip-set', host: {
|
|
462
|
+
args: [{ selector: 'ngs-chip-set', exportAs: 'ngsChipSet', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
463
463
|
'class': 'ngs-chip-set',
|
|
464
464
|
'role': 'presentation',
|
|
465
|
-
},
|
|
465
|
+
}, template: "<ng-content />\n", styles: [":host{--ngs-chip-set-gap: var(--ngs-chip-set-spacing, calc(var(--spacing, .25rem) * 2));display:flex;flex-wrap:wrap;gap:var(--ngs-chip-set-gap)}:host ::ng-deep .ngs-chip-input{outline:none;width:100%}\n/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n"] }]
|
|
466
466
|
}] });
|
|
467
467
|
|
|
468
468
|
class ChipAvatar {
|
|
@@ -499,7 +499,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
499
499
|
'class': 'ngs-chip-edit',
|
|
500
500
|
'(click)': '_handleClick($event)',
|
|
501
501
|
},
|
|
502
|
-
standalone: true,
|
|
503
502
|
}]
|
|
504
503
|
}] });
|
|
505
504
|
|
|
@@ -522,7 +521,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
522
521
|
'class': 'ngs-chip-remove',
|
|
523
522
|
'(click)': '_handleClick($event)',
|
|
524
523
|
},
|
|
525
|
-
standalone: true,
|
|
526
524
|
}]
|
|
527
525
|
}] });
|
|
528
526
|
|
|
@@ -604,7 +602,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImpor
|
|
|
604
602
|
type: Directive,
|
|
605
603
|
args: [{
|
|
606
604
|
selector: 'input[ngsChipInputFor]',
|
|
607
|
-
standalone: true,
|
|
608
605
|
host: {
|
|
609
606
|
'class': 'ngs-chip-input',
|
|
610
607
|
'(input)': '_onInput()',
|