@ngbase/adk 0.1.17 → 0.1.19
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/fesm2022/ngbase-adk-a11y.mjs +42 -42
- package/fesm2022/ngbase-adk-a11y.mjs.map +1 -1
- package/fesm2022/ngbase-adk-accordion.mjs +20 -26
- package/fesm2022/ngbase-adk-accordion.mjs.map +1 -1
- package/fesm2022/ngbase-adk-autocomplete.mjs +11 -11
- package/fesm2022/ngbase-adk-autocomplete.mjs.map +1 -1
- package/fesm2022/ngbase-adk-avatar.mjs +13 -13
- package/fesm2022/ngbase-adk-avatar.mjs.map +1 -1
- package/fesm2022/ngbase-adk-bidi.mjs +3 -3
- package/fesm2022/ngbase-adk-bidi.mjs.map +1 -1
- package/fesm2022/ngbase-adk-breadcrumb.mjs +14 -14
- package/fesm2022/ngbase-adk-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngbase-adk-cache.mjs +3 -3
- package/fesm2022/ngbase-adk-cache.mjs.map +1 -1
- package/fesm2022/ngbase-adk-carousel.mjs +18 -18
- package/fesm2022/ngbase-adk-carousel.mjs.map +1 -1
- package/fesm2022/ngbase-adk-checkbox.mjs +15 -21
- package/fesm2022/ngbase-adk-checkbox.mjs.map +1 -1
- package/fesm2022/ngbase-adk-chip.mjs +12 -12
- package/fesm2022/ngbase-adk-chip.mjs.map +1 -1
- package/fesm2022/ngbase-adk-clipboard.mjs +7 -5
- package/fesm2022/ngbase-adk-clipboard.mjs.map +1 -1
- package/fesm2022/ngbase-adk-collections.mjs.map +1 -1
- package/fesm2022/ngbase-adk-color-picker.mjs +44 -53
- package/fesm2022/ngbase-adk-color-picker.mjs.map +1 -1
- package/fesm2022/ngbase-adk-cookies.mjs +3 -3
- package/fesm2022/ngbase-adk-cookies.mjs.map +1 -1
- package/fesm2022/ngbase-adk-datepicker.mjs +70 -89
- package/fesm2022/ngbase-adk-datepicker.mjs.map +1 -1
- package/fesm2022/ngbase-adk-dialog.mjs +17 -39
- package/fesm2022/ngbase-adk-dialog.mjs.map +1 -1
- package/fesm2022/ngbase-adk-drag.mjs +20 -20
- package/fesm2022/ngbase-adk-drag.mjs.map +1 -1
- package/fesm2022/ngbase-adk-form-field.mjs +65 -118
- package/fesm2022/ngbase-adk-form-field.mjs.map +1 -1
- package/fesm2022/ngbase-adk-hover-card.mjs +5 -5
- package/fesm2022/ngbase-adk-hover-card.mjs.map +1 -1
- package/fesm2022/ngbase-adk-icon.mjs +9 -11
- package/fesm2022/ngbase-adk-icon.mjs.map +1 -1
- package/fesm2022/ngbase-adk-inline-edit.mjs +27 -35
- package/fesm2022/ngbase-adk-inline-edit.mjs.map +1 -1
- package/fesm2022/ngbase-adk-jwt.mjs +6 -6
- package/fesm2022/ngbase-adk-jwt.mjs.map +1 -1
- package/fesm2022/ngbase-adk-keys.mjs +6 -6
- package/fesm2022/ngbase-adk-keys.mjs.map +1 -1
- package/fesm2022/ngbase-adk-layout.mjs.map +1 -1
- package/fesm2022/ngbase-adk-list.mjs +10 -10
- package/fesm2022/ngbase-adk-list.mjs.map +1 -1
- package/fesm2022/ngbase-adk-mask.mjs +8 -8
- package/fesm2022/ngbase-adk-mask.mjs.map +1 -1
- package/fesm2022/ngbase-adk-menu.mjs +69 -79
- package/fesm2022/ngbase-adk-menu.mjs.map +1 -1
- package/fesm2022/ngbase-adk-network.mjs +3 -3
- package/fesm2022/ngbase-adk-network.mjs.map +1 -1
- package/fesm2022/ngbase-adk-otp.mjs +24 -45
- package/fesm2022/ngbase-adk-otp.mjs.map +1 -1
- package/fesm2022/ngbase-adk-pagination.mjs +9 -9
- package/fesm2022/ngbase-adk-pagination.mjs.map +1 -1
- package/fesm2022/ngbase-adk-popover.mjs +120 -89
- package/fesm2022/ngbase-adk-popover.mjs.map +1 -1
- package/fesm2022/ngbase-adk-portal.mjs +139 -47
- package/fesm2022/ngbase-adk-portal.mjs.map +1 -1
- package/fesm2022/ngbase-adk-progress.mjs +7 -7
- package/fesm2022/ngbase-adk-progress.mjs.map +1 -1
- package/fesm2022/ngbase-adk-radio.mjs +20 -27
- package/fesm2022/ngbase-adk-radio.mjs.map +1 -1
- package/fesm2022/ngbase-adk-resizable.mjs +138 -48
- package/fesm2022/ngbase-adk-resizable.mjs.map +1 -1
- package/fesm2022/ngbase-adk-scroll-area.mjs +28 -20
- package/fesm2022/ngbase-adk-scroll-area.mjs.map +1 -1
- package/fesm2022/ngbase-adk-select.mjs +58 -80
- package/fesm2022/ngbase-adk-select.mjs.map +1 -1
- package/fesm2022/ngbase-adk-selectable.mjs +19 -30
- package/fesm2022/ngbase-adk-selectable.mjs.map +1 -1
- package/fesm2022/ngbase-adk-sheet.mjs +6 -20
- package/fesm2022/ngbase-adk-sheet.mjs.map +1 -1
- package/fesm2022/ngbase-adk-sidenav.mjs +65 -48
- package/fesm2022/ngbase-adk-sidenav.mjs.map +1 -1
- package/fesm2022/ngbase-adk-slider.mjs +40 -53
- package/fesm2022/ngbase-adk-slider.mjs.map +1 -1
- package/fesm2022/ngbase-adk-sonner.mjs +12 -19
- package/fesm2022/ngbase-adk-sonner.mjs.map +1 -1
- package/fesm2022/ngbase-adk-stepper.mjs +17 -25
- package/fesm2022/ngbase-adk-stepper.mjs.map +1 -1
- package/fesm2022/ngbase-adk-switch.mjs +25 -32
- package/fesm2022/ngbase-adk-switch.mjs.map +1 -1
- package/fesm2022/ngbase-adk-table.mjs +581 -83
- package/fesm2022/ngbase-adk-table.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tabs.mjs +37 -35
- package/fesm2022/ngbase-adk-tabs.mjs.map +1 -1
- package/fesm2022/ngbase-adk-test.mjs.map +1 -1
- package/fesm2022/ngbase-adk-toggle-group.mjs +20 -34
- package/fesm2022/ngbase-adk-toggle-group.mjs.map +1 -1
- package/fesm2022/ngbase-adk-toggle.mjs +14 -19
- package/fesm2022/ngbase-adk-toggle.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tooltip.mjs +12 -19
- package/fesm2022/ngbase-adk-tooltip.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tour.mjs +47 -52
- package/fesm2022/ngbase-adk-tour.mjs.map +1 -1
- package/fesm2022/ngbase-adk-translate.mjs +8 -10
- package/fesm2022/ngbase-adk-translate.mjs.map +1 -1
- package/fesm2022/ngbase-adk-tree.mjs +20 -20
- package/fesm2022/ngbase-adk-tree.mjs.map +1 -1
- package/fesm2022/ngbase-adk-utils.mjs +30 -43
- package/fesm2022/ngbase-adk-utils.mjs.map +1 -1
- package/fesm2022/ngbase-adk-virtualizer.mjs +9 -9
- package/fesm2022/ngbase-adk-virtualizer.mjs.map +1 -1
- package/package.json +101 -101
- package/schematics/components/files/accordion/accordion.ts.template +10 -5
- package/schematics/components/files/audio/AudioPlayer.ts.template +245 -0
- package/schematics/components/files/audio/AudioRecorder.ts.template +377 -0
- package/schematics/components/files/audio/AudioVisualizer.ts.template +175 -0
- package/schematics/components/files/audio/index.ts.template +3 -0
- package/schematics/components/files/badge/badge-llm.md.template +2 -2
- package/schematics/components/files/badge/badge.ts.template +29 -9
- package/schematics/components/files/card/card.ts.template +1 -1
- package/schematics/components/files/charts/area-chart.component.ts.template +278 -0
- package/schematics/components/files/charts/bar-chart.component.ts.template +262 -0
- package/schematics/components/files/charts/chart-tooltip.component.ts.template +168 -0
- package/schematics/components/files/charts/index.ts.template +4 -0
- package/schematics/components/files/charts/line-chart.component.ts.template +238 -0
- package/schematics/components/files/charts/pie-chart.component.ts.template +283 -0
- package/schematics/components/files/checkbox/checkbox.ts.template +4 -7
- package/schematics/components/files/color-picker/color-picker.ts.template +2 -2
- package/schematics/components/files/dialog/dialog.ts.template +11 -14
- package/schematics/components/files/drawer/drawer.ts.template +25 -28
- package/schematics/components/files/form-field/form-field.ts.template +59 -23
- package/schematics/components/files/inline-edit/inline-edit.ts.template +3 -1
- package/schematics/components/files/pagination/pagination.ts.template +6 -6
- package/schematics/components/files/picasa/picasa-base.component.ts.template +9 -30
- package/schematics/components/files/popover/popover.ts.template +9 -4
- package/schematics/components/files/select/list-selection.ts.template +0 -2
- package/schematics/components/files/select/option.ts.template +1 -1
- package/schematics/components/files/selectable/selectable.ts.template +2 -2
- package/schematics/components/files/sheet/sheet.ts.template +20 -14
- package/schematics/components/files/sidenav/sidenav.ts.template +69 -6
- package/schematics/components/files/sonner/sonner.ts.template +1 -2
- package/schematics/components/files/stepper/stepper-llm.md.template +7 -0
- package/schematics/components/files/stepper/stepper.ts.template +2 -4
- package/schematics/components/files/switch/switch.ts.template +2 -2
- package/schematics/components/files/table/table-llm.md.template +14 -2
- package/schematics/components/files/table/table.ts.template +42 -3
- package/schematics/components/files/theme/theme.service.ts.template +3 -3
- package/schematics/components/files/toggle/toggle.ts.template +1 -1
- package/schematics/components/files/toggle-group/toggle-group.ts.template +1 -1
- package/schematics/components/files/tooltip/tooltip.ts.template +2 -3
- package/{accordion/index.d.ts → types/ngbase-adk-accordion.d.ts} +1 -3
- package/{autocomplete/index.d.ts → types/ngbase-adk-autocomplete.d.ts} +2 -7
- package/{checkbox/index.d.ts → types/ngbase-adk-checkbox.d.ts} +8 -14
- package/types/ngbase-adk-clipboard.d.ts +12 -0
- package/{color-picker/index.d.ts → types/ngbase-adk-color-picker.d.ts} +14 -26
- package/{datepicker/index.d.ts → types/ngbase-adk-datepicker.d.ts} +9 -18
- package/{dialog/index.d.ts → types/ngbase-adk-dialog.d.ts} +3 -8
- package/types/ngbase-adk-form-field.d.ts +88 -0
- package/{inline-edit/index.d.ts → types/ngbase-adk-inline-edit.d.ts} +8 -16
- package/{menu/index.d.ts → types/ngbase-adk-menu.d.ts} +6 -5
- package/{otp/index.d.ts → types/ngbase-adk-otp.d.ts} +8 -16
- package/{popover/index.d.ts → types/ngbase-adk-popover.d.ts} +14 -2
- package/{portal/index.d.ts → types/ngbase-adk-portal.d.ts} +30 -8
- package/{radio/index.d.ts → types/ngbase-adk-radio.d.ts} +9 -12
- package/{resizable/index.d.ts → types/ngbase-adk-resizable.d.ts} +4 -4
- package/{scroll-area/index.d.ts → types/ngbase-adk-scroll-area.d.ts} +2 -1
- package/{select/index.d.ts → types/ngbase-adk-select.d.ts} +8 -22
- package/{selectable/index.d.ts → types/ngbase-adk-selectable.d.ts} +6 -10
- package/{sheet/index.d.ts → types/ngbase-adk-sheet.d.ts} +4 -3
- package/{sidenav/index.d.ts → types/ngbase-adk-sidenav.d.ts} +7 -8
- package/{slider/index.d.ts → types/ngbase-adk-slider.d.ts} +8 -17
- package/{sonner/index.d.ts → types/ngbase-adk-sonner.d.ts} +1 -3
- package/{stepper/index.d.ts → types/ngbase-adk-stepper.d.ts} +1 -4
- package/{switch/index.d.ts → types/ngbase-adk-switch.d.ts} +7 -14
- package/{table/index.d.ts → types/ngbase-adk-table.d.ts} +126 -3
- package/{test/index.d.ts → types/ngbase-adk-test.d.ts} +1 -1
- package/{toggle-group/index.d.ts → types/ngbase-adk-toggle-group.d.ts} +5 -10
- package/types/ngbase-adk-toggle.d.ts +14 -0
- package/{tooltip/index.d.ts → types/ngbase-adk-tooltip.d.ts} +9 -11
- package/{tour/index.d.ts → types/ngbase-adk-tour.d.ts} +3 -6
- package/{utils/index.d.ts → types/ngbase-adk-utils.d.ts} +15 -11
- package/clipboard/index.d.ts +0 -11
- package/form-field/index.d.ts +0 -97
- package/toggle/index.d.ts +0 -16
- /package/{a11y/index.d.ts → types/ngbase-adk-a11y.d.ts} +0 -0
- /package/{avatar/index.d.ts → types/ngbase-adk-avatar.d.ts} +0 -0
- /package/{bidi/index.d.ts → types/ngbase-adk-bidi.d.ts} +0 -0
- /package/{breadcrumb/index.d.ts → types/ngbase-adk-breadcrumb.d.ts} +0 -0
- /package/{cache/index.d.ts → types/ngbase-adk-cache.d.ts} +0 -0
- /package/{carousel/index.d.ts → types/ngbase-adk-carousel.d.ts} +0 -0
- /package/{chip/index.d.ts → types/ngbase-adk-chip.d.ts} +0 -0
- /package/{collections/index.d.ts → types/ngbase-adk-collections.d.ts} +0 -0
- /package/{cookies/index.d.ts → types/ngbase-adk-cookies.d.ts} +0 -0
- /package/{drag/index.d.ts → types/ngbase-adk-drag.d.ts} +0 -0
- /package/{hover-card/index.d.ts → types/ngbase-adk-hover-card.d.ts} +0 -0
- /package/{icon/index.d.ts → types/ngbase-adk-icon.d.ts} +0 -0
- /package/{jwt/index.d.ts → types/ngbase-adk-jwt.d.ts} +0 -0
- /package/{keys/index.d.ts → types/ngbase-adk-keys.d.ts} +0 -0
- /package/{layout/index.d.ts → types/ngbase-adk-layout.d.ts} +0 -0
- /package/{list/index.d.ts → types/ngbase-adk-list.d.ts} +0 -0
- /package/{mask/index.d.ts → types/ngbase-adk-mask.d.ts} +0 -0
- /package/{network/index.d.ts → types/ngbase-adk-network.d.ts} +0 -0
- /package/{pagination/index.d.ts → types/ngbase-adk-pagination.d.ts} +0 -0
- /package/{progress/index.d.ts → types/ngbase-adk-progress.d.ts} +0 -0
- /package/{tabs/index.d.ts → types/ngbase-adk-tabs.d.ts} +0 -0
- /package/{translate/index.d.ts → types/ngbase-adk-translate.d.ts} +0 -0
- /package/{tree/index.d.ts → types/ngbase-adk-tree.d.ts} +0 -0
- /package/{virtualizer/index.d.ts → types/ngbase-adk-virtualizer.d.ts} +0 -0
- /package/{index.d.ts → types/ngbase-adk.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-carousel.mjs","sources":["../../../projects/adk/carousel/carousel-item.ts","../../../projects/adk/carousel/carousel.ts","../../../projects/adk/carousel/carousel-next.ts","../../../projects/adk/carousel/ngbase-adk-carousel.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[ngbCarouselItem]',\n})\nexport class NgbCarouselItem {\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n get width() {\n const el = this.el.nativeElement;\n return el.getBoundingClientRect?.().width ?? el.offsetWidth; // SSR: fallback to offsetWidth\n }\n}\n","import {\n Directive,\n ElementRef,\n afterNextRender,\n computed,\n contentChildren,\n effect,\n inject,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { injectDirectionality } from '@ngbase/adk/bidi';\nimport { Drag } from '@ngbase/adk/drag';\nimport { NgbCarouselItem } from './carousel-item';\n\n@Directive({\n selector: '[ngbCarouselContainer]',\n hostDirectives: [Drag],\n})\nexport class NgbCarouselContainer {\n readonly el = inject(ElementRef<HTMLElement>);\n\n get width() {\n return this.el.nativeElement.clientWidth;\n }\n}\n\n@Directive({\n selector: '[ngbCarouselSubContainer]',\n})\nexport class NgbCarouselSubContainer {\n private el = inject(ElementRef<HTMLElement>);\n private dir = injectDirectionality();\n\n updateScrollPosition(x: number) {\n const el = this.el.nativeElement;\n if (this.dir.isRtl()) {\n el.style.transform = `translate3d(${x}px, 0, 0)`;\n } else {\n el.style.transform = `translate3d(${-x}px, 0, 0)`;\n }\n }\n}\n\n@Directive({\n selector: '[ngbCarousel]',\n exportAs: 'ngbCarousel',\n})\nexport class NgbCarousel {\n private dir = injectDirectionality();\n private drag = viewChild.required(Drag);\n private mainContainer = viewChild.required(NgbCarouselContainer);\n private subContainer = viewChild.required(NgbCarouselSubContainer);\n private items = contentChildren(NgbCarouselItem);\n readonly current = signal(0);\n private animationId = 0;\n // this can be overridden by the ui carousel component\n velocity = 1.1;\n\n readonly itemsPerStep = computed(() => {\n const _ = this.isReady();\n const items = this.items();\n // const totalWidth = this.totalWidth();\n const containerWidth = this.containerWidth;\n // const scrollableWidth = totalWidth - containerWidth || 1;\n const v = Math.ceil(containerWidth / (items[0].width || 1));\n return v;\n });\n\n private readonly totalWidth = computed(() => {\n const _ = this.isReady();\n const items = this.items();\n return items.reduce((acc, item) => acc + item.width, 0);\n });\n\n /**\n * This is the total number of steps that can be taken.\n * It is computed based on the container width and the width of the last item.\n * It is used to determine the number of steps that can be taken.\n * We have to consider gap between items like padding or margin or flex gap.\n */\n readonly totalSteps = computed(() => {\n // const containerWidth = this.containerWidth;\n const items = this.items();\n if (!items.length || !this.itemsPerStep()) return 0;\n\n // console.log('totalSteps', items.length, this.itemsPerStep());\n\n // const totalWidth = this.totalWidth();\n // const scrollableWidth = totalWidth;\n\n // if (scrollableWidth <= 0) return 1; // All items fit in container\n\n // // Calculate effective step size based on the smallest item width\n // // const minItemWidth = Math.min(...items.map(item => item.width));\n // const v = Math.max(1, Math.floor(scrollableWidth / containerWidth));\n // console.log('totalSteps', v, scrollableWidth, containerWidth, scrollableWidth / containerWidth);\n // return v;\n const itemsPerStep = this.itemsPerStep();\n // const totalWidth = this.totalWidth();\n // const scrollableWidth = totalWidth - this.containerWidth;\n // return Math.max(1, Math.floor(scrollableWidth / itemsPerStep));\n return Math.ceil(items.length / itemsPerStep);\n });\n\n private readonly isReady = signal(false, { equal: () => false });\n readonly isFirst = computed(() => this.current() === 0);\n readonly isLast = computed(() => this.current() === this.totalSteps() - 1);\n private currentScroll = 0;\n\n constructor() {\n afterNextRender(() => {\n this.isReady.set(true);\n this.drag().events.subscribe(event => {\n event.event?.preventDefault();\n requestAnimationFrame(() => {\n if (event.type === 'start') {\n cancelAnimationFrame(this.animationId);\n this.currentScroll = this.x();\n } else if (event.type === 'move') {\n this.currentScroll = this.x() + (this.dir.isRtl() ? event.x : -event.x);\n this.subContainer().updateScrollPosition(this.currentScroll);\n } else if (event.type === 'end') {\n const step = this.getStepBasedOnX(\n this.currentScroll,\n event.direction!,\n event.velocity!, // Convert to pixels/second\n );\n this.go(step, event.velocity!);\n }\n });\n });\n });\n\n effect(cleanup => {\n if (typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n requestAnimationFrame(() => this.isReady.set(true));\n });\n observer.observe(this.mainContainer().el.nativeElement);\n cleanup(() => observer.disconnect());\n }\n });\n\n // if the total steps changes, we need to update the current step\n // also make sure the most visible item is the current item\n effect(() => {\n const totalSteps = this.totalSteps();\n const _ = this.dir.isRtl();\n const __ = this.isReady();\n // console.log('effect', totalSteps, this.itemsPerStep());\n untracked(() => {\n const current = this.current();\n const step = current >= totalSteps ? totalSteps - 1 : current;\n this.go(step, this.velocity, true);\n });\n });\n }\n\n x() {\n const current = this.current() * this.itemsPerStep();\n const items = this.items();\n if (this.containerWidth > this.totalWidth()) return 0;\n\n const totalWidth = this.totalWidth() - this.containerWidth;\n\n const x = items.slice(0, current).reduce((a, item) => a + item.width, 0);\n return Math.min(x, totalWidth);\n }\n\n private get containerWidth() {\n return this.mainContainer().width;\n }\n\n next(step = 1) {\n const current = this.current();\n const nextStep = Math.min(current + step, this.totalSteps() - 1);\n this.go(nextStep);\n }\n\n prev(step = 1) {\n const current = this.current();\n const index = Math.max(current - step, 0);\n this.go(index);\n }\n\n go(step: number, velocity = this.velocity, withoutAnimation = false) {\n // const totalSteps = this.totalSteps();\n if (step < 0 || step >= this.totalSteps()) {\n console.log('out of bounds step', step, this.totalSteps());\n return;\n }\n this.current.set(step);\n this.animateToX(velocity, withoutAnimation); // Adjust the scaling factor as needed\n }\n\n /**\n * Determines the appropriate step based on scroll position, direction and velocity\n * @param scrollX Current scroll position\n * @param direction Drag direction\n * @param velocity Drag velocity\n * @returns The calculated step index\n */\n private getStepBasedOnX(scrollX: number, direction: 'left' | 'right', velocity: number): number {\n const currentStep = this.current();\n const totalSteps = this.totalSteps();\n const isRtl = this.dir.isRtl();\n\n // In RTL mode, invert the direction\n const effectiveDirection = isRtl ? (direction === 'left' ? 'right' : 'left') : direction;\n\n // Prevent movement on last step when trying to go forward\n if (currentStep === totalSteps - 1 && effectiveDirection === 'left') {\n return currentStep;\n }\n\n // Use velocity to determine step change\n const VELOCITY_THRESHOLD = 0.3;\n if (Math.abs(velocity) > VELOCITY_THRESHOLD) {\n if (effectiveDirection === 'left') {\n return Math.min(currentStep + 1, totalSteps - 1);\n } else {\n return Math.max(currentStep - 1, 0);\n }\n }\n\n // If velocity is low, stay at current step\n return currentStep;\n }\n\n // private updateScrollPosition(x = this.currentScroll) {\n // const el = this.subContainer().nativeElement;\n // if (this.dir.isRtl()) {\n // el.style.transform = `translate3d(${x}px, 0, 0)`;\n // } else {\n // el.style.transform = `translate3d(${-x}px, 0, 0)`;\n // }\n // }\n\n private animateToX(velocity: number, withoutAnimation = false) {\n velocity = Math.max(velocity, this.velocity);\n let lastTime = Date.now();\n const targetScroll = this.x();\n const startScroll = this.currentScroll;\n const isRtl = this.dir.isRtl();\n\n // In RTL, invert the distance calculation\n const distance = isRtl ? startScroll - targetScroll : targetScroll - startScroll;\n const duration = Math.abs(distance / velocity);\n let elapsedTime = 0;\n\n const easeOutQuad = (t: number) => t * (2 - t);\n const subContainer = this.subContainer();\n\n const animate = () => {\n const now = Date.now();\n const dt = now - lastTime;\n lastTime = now;\n elapsedTime += dt;\n\n const progress = Math.min(elapsedTime / duration, 1);\n const easedProgress = easeOutQuad(progress);\n\n // Calculate scroll position based on direction\n this.currentScroll = isRtl\n ? startScroll - distance * easedProgress\n : startScroll + distance * easedProgress;\n\n subContainer.updateScrollPosition(this.currentScroll);\n\n if (progress < 1) {\n this.animationId = requestAnimationFrame(animate);\n }\n };\n\n cancelAnimationFrame(this.animationId);\n if (!withoutAnimation) {\n this.animationId = requestAnimationFrame(animate);\n } else {\n this.currentScroll = targetScroll;\n subContainer.updateScrollPosition(this.currentScroll);\n }\n }\n\n private snapToNearest(velocity = this.velocity) {\n const items = this.items();\n let nearestIndex = 0;\n let minDistance = Infinity;\n\n for (let i = 0; i < items.length; i++) {\n const itemPosition = items.slice(0, i).reduce((acc, item) => acc + item.width, 0);\n const distance = Math.abs(this.currentScroll - itemPosition);\n if (distance < minDistance) {\n minDistance = distance;\n nearestIndex = i;\n }\n }\n\n const step = Math.floor(nearestIndex / this.itemsPerStep());\n\n this.go(step, velocity);\n // this.current.set(nearestIndex);\n // this.currentScroll = this.x();\n // this.updateScrollPosition();\n }\n}\n\nexport function aliasCarousel(carousel: typeof NgbCarousel) {\n return { provide: NgbCarousel, useExisting: carousel };\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { NgbCarousel } from './carousel';\n\n@Directive({\n selector: '[ngbCarouselButton]',\n host: {\n '(click)': 'clicked($event)',\n },\n})\nexport class NgbCarouselButton {\n private readonly carousel = inject(NgbCarousel);\n\n readonly ngbCarouselButton = input.required<number | 'next' | 'prev'>();\n\n clicked(event: Event) {\n event.preventDefault();\n const no = this.ngbCarouselButton();\n if (no === 'next') {\n this.carousel.next();\n } else if (no === 'prev') {\n this.carousel.prev();\n } else {\n this.carousel.go(no);\n }\n }\n}\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":"ngbase-adk-carousel.mjs","sources":["../../../projects/adk/carousel/carousel-item.ts","../../../projects/adk/carousel/carousel.ts","../../../projects/adk/carousel/carousel-next.ts","../../../projects/adk/carousel/ngbase-adk-carousel.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[ngbCarouselItem]',\n})\nexport class NgbCarouselItem {\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n get width() {\n const el = this.el.nativeElement;\n return el.getBoundingClientRect?.().width ?? el.offsetWidth; // SSR: fallback to offsetWidth\n }\n}\n","import {\n Directive,\n ElementRef,\n afterNextRender,\n computed,\n contentChildren,\n effect,\n inject,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { injectDirectionality } from '@ngbase/adk/bidi';\nimport { Drag } from '@ngbase/adk/drag';\nimport { NgbCarouselItem } from './carousel-item';\n\n@Directive({\n selector: '[ngbCarouselContainer]',\n hostDirectives: [Drag],\n})\nexport class NgbCarouselContainer {\n readonly el = inject(ElementRef<HTMLElement>);\n\n get width() {\n return this.el.nativeElement.clientWidth;\n }\n}\n\n@Directive({\n selector: '[ngbCarouselSubContainer]',\n})\nexport class NgbCarouselSubContainer {\n private el = inject(ElementRef<HTMLElement>);\n private dir = injectDirectionality();\n\n updateScrollPosition(x: number) {\n const el = this.el.nativeElement;\n if (this.dir.isRtl()) {\n el.style.transform = `translate3d(${x}px, 0, 0)`;\n } else {\n el.style.transform = `translate3d(${-x}px, 0, 0)`;\n }\n }\n}\n\n@Directive({\n selector: '[ngbCarousel]',\n exportAs: 'ngbCarousel',\n})\nexport class NgbCarousel {\n private dir = injectDirectionality();\n private drag = viewChild.required(Drag);\n private mainContainer = viewChild.required(NgbCarouselContainer);\n private subContainer = viewChild.required(NgbCarouselSubContainer);\n private items = contentChildren(NgbCarouselItem);\n readonly current = signal(0);\n private animationId = 0;\n // this can be overridden by the ui carousel component\n velocity = 1.1;\n\n readonly itemsPerStep = computed(() => {\n const _ = this.isReady();\n const items = this.items();\n // const totalWidth = this.totalWidth();\n const containerWidth = this.containerWidth;\n // const scrollableWidth = totalWidth - containerWidth || 1;\n const v = Math.ceil(containerWidth / (items[0].width || 1));\n return v;\n });\n\n private readonly totalWidth = computed(() => {\n const _ = this.isReady();\n const items = this.items();\n return items.reduce((acc, item) => acc + item.width, 0);\n });\n\n /**\n * This is the total number of steps that can be taken.\n * It is computed based on the container width and the width of the last item.\n * It is used to determine the number of steps that can be taken.\n * We have to consider gap between items like padding or margin or flex gap.\n */\n readonly totalSteps = computed(() => {\n // const containerWidth = this.containerWidth;\n const items = this.items();\n if (!items.length || !this.itemsPerStep()) return 0;\n\n // console.log('totalSteps', items.length, this.itemsPerStep());\n\n // const totalWidth = this.totalWidth();\n // const scrollableWidth = totalWidth;\n\n // if (scrollableWidth <= 0) return 1; // All items fit in container\n\n // // Calculate effective step size based on the smallest item width\n // // const minItemWidth = Math.min(...items.map(item => item.width));\n // const v = Math.max(1, Math.floor(scrollableWidth / containerWidth));\n // console.log('totalSteps', v, scrollableWidth, containerWidth, scrollableWidth / containerWidth);\n // return v;\n const itemsPerStep = this.itemsPerStep();\n // const totalWidth = this.totalWidth();\n // const scrollableWidth = totalWidth - this.containerWidth;\n // return Math.max(1, Math.floor(scrollableWidth / itemsPerStep));\n return Math.ceil(items.length / itemsPerStep);\n });\n\n private readonly isReady = signal(false, { equal: () => false });\n readonly isFirst = computed(() => this.current() === 0);\n readonly isLast = computed(() => this.current() === this.totalSteps() - 1);\n private currentScroll = 0;\n\n constructor() {\n afterNextRender(() => {\n this.isReady.set(true);\n this.drag().events.subscribe(event => {\n event.event?.preventDefault();\n requestAnimationFrame(() => {\n if (event.type === 'start') {\n cancelAnimationFrame(this.animationId);\n this.currentScroll = this.x();\n } else if (event.type === 'move') {\n this.currentScroll = this.x() + (this.dir.isRtl() ? event.x : -event.x);\n this.subContainer().updateScrollPosition(this.currentScroll);\n } else if (event.type === 'end') {\n const step = this.getStepBasedOnX(\n this.currentScroll,\n event.direction!,\n event.velocity!, // Convert to pixels/second\n );\n this.go(step, event.velocity!);\n }\n });\n });\n });\n\n effect(cleanup => {\n if (typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() => {\n requestAnimationFrame(() => this.isReady.set(true));\n });\n observer.observe(this.mainContainer().el.nativeElement);\n cleanup(() => observer.disconnect());\n }\n });\n\n // if the total steps changes, we need to update the current step\n // also make sure the most visible item is the current item\n effect(() => {\n const totalSteps = this.totalSteps();\n const _ = this.dir.isRtl();\n const __ = this.isReady();\n // console.log('effect', totalSteps, this.itemsPerStep());\n untracked(() => {\n const current = this.current();\n const step = current >= totalSteps ? totalSteps - 1 : current;\n this.go(step, this.velocity, true);\n });\n });\n }\n\n x() {\n const current = this.current() * this.itemsPerStep();\n const items = this.items();\n if (this.containerWidth > this.totalWidth()) return 0;\n\n const totalWidth = this.totalWidth() - this.containerWidth;\n\n const x = items.slice(0, current).reduce((a, item) => a + item.width, 0);\n return Math.min(x, totalWidth);\n }\n\n private get containerWidth() {\n return this.mainContainer().width;\n }\n\n next(step = 1) {\n const current = this.current();\n const nextStep = Math.min(current + step, this.totalSteps() - 1);\n this.go(nextStep);\n }\n\n prev(step = 1) {\n const current = this.current();\n const index = Math.max(current - step, 0);\n this.go(index);\n }\n\n go(step: number, velocity = this.velocity, withoutAnimation = false) {\n // const totalSteps = this.totalSteps();\n if (step < 0 || step >= this.totalSteps()) {\n console.log('out of bounds step', step, this.totalSteps());\n return;\n }\n this.current.set(step);\n this.animateToX(velocity, withoutAnimation); // Adjust the scaling factor as needed\n }\n\n /**\n * Determines the appropriate step based on scroll position, direction and velocity\n * @param scrollX Current scroll position\n * @param direction Drag direction\n * @param velocity Drag velocity\n * @returns The calculated step index\n */\n private getStepBasedOnX(scrollX: number, direction: 'left' | 'right', velocity: number): number {\n const currentStep = this.current();\n const totalSteps = this.totalSteps();\n const isRtl = this.dir.isRtl();\n\n // In RTL mode, invert the direction\n const effectiveDirection = isRtl ? (direction === 'left' ? 'right' : 'left') : direction;\n\n // Prevent movement on last step when trying to go forward\n if (currentStep === totalSteps - 1 && effectiveDirection === 'left') {\n return currentStep;\n }\n\n // Use velocity to determine step change\n const VELOCITY_THRESHOLD = 0.3;\n if (Math.abs(velocity) > VELOCITY_THRESHOLD) {\n if (effectiveDirection === 'left') {\n return Math.min(currentStep + 1, totalSteps - 1);\n } else {\n return Math.max(currentStep - 1, 0);\n }\n }\n\n // If velocity is low, stay at current step\n return currentStep;\n }\n\n // private updateScrollPosition(x = this.currentScroll) {\n // const el = this.subContainer().nativeElement;\n // if (this.dir.isRtl()) {\n // el.style.transform = `translate3d(${x}px, 0, 0)`;\n // } else {\n // el.style.transform = `translate3d(${-x}px, 0, 0)`;\n // }\n // }\n\n private animateToX(velocity: number, withoutAnimation = false) {\n velocity = Math.max(velocity, this.velocity);\n let lastTime = Date.now();\n const targetScroll = this.x();\n const startScroll = this.currentScroll;\n const isRtl = this.dir.isRtl();\n\n // In RTL, invert the distance calculation\n const distance = isRtl ? startScroll - targetScroll : targetScroll - startScroll;\n const duration = Math.abs(distance / velocity);\n let elapsedTime = 0;\n\n const easeOutQuad = (t: number) => t * (2 - t);\n const subContainer = this.subContainer();\n\n const animate = () => {\n const now = Date.now();\n const dt = now - lastTime;\n lastTime = now;\n elapsedTime += dt;\n\n const progress = Math.min(elapsedTime / duration, 1);\n const easedProgress = easeOutQuad(progress);\n\n // Calculate scroll position based on direction\n this.currentScroll = isRtl\n ? startScroll - distance * easedProgress\n : startScroll + distance * easedProgress;\n\n subContainer.updateScrollPosition(this.currentScroll);\n\n if (progress < 1) {\n this.animationId = requestAnimationFrame(animate);\n }\n };\n\n cancelAnimationFrame(this.animationId);\n if (!withoutAnimation) {\n this.animationId = requestAnimationFrame(animate);\n } else {\n this.currentScroll = targetScroll;\n subContainer.updateScrollPosition(this.currentScroll);\n }\n }\n\n private snapToNearest(velocity = this.velocity) {\n const items = this.items();\n let nearestIndex = 0;\n let minDistance = Infinity;\n\n for (let i = 0; i < items.length; i++) {\n const itemPosition = items.slice(0, i).reduce((acc, item) => acc + item.width, 0);\n const distance = Math.abs(this.currentScroll - itemPosition);\n if (distance < minDistance) {\n minDistance = distance;\n nearestIndex = i;\n }\n }\n\n const step = Math.floor(nearestIndex / this.itemsPerStep());\n\n this.go(step, velocity);\n // this.current.set(nearestIndex);\n // this.currentScroll = this.x();\n // this.updateScrollPosition();\n }\n}\n\nexport function aliasCarousel(carousel: typeof NgbCarousel) {\n return { provide: NgbCarousel, useExisting: carousel };\n}\n","import { Directive, inject, input } from '@angular/core';\nimport { NgbCarousel } from './carousel';\n\n@Directive({\n selector: '[ngbCarouselButton]',\n host: {\n '(click)': 'clicked($event)',\n },\n})\nexport class NgbCarouselButton {\n private readonly carousel = inject(NgbCarousel);\n\n readonly ngbCarouselButton = input.required<number | 'next' | 'prev'>();\n\n clicked(event: Event) {\n event.preventDefault();\n const no = this.ngbCarouselButton();\n if (no === 'next') {\n this.carousel.next();\n } else if (no === 'prev') {\n this.carousel.prev();\n } else {\n this.carousel.go(no);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Directive, model, input, output } from '@angular/core';
|
|
3
|
-
import { uniqueId
|
|
3
|
+
import { uniqueId } from '@ngbase/adk/utils';
|
|
4
4
|
|
|
5
5
|
class CheckboxButton {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.checkbox = inject(NgbCheckbox);
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CheckboxButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: CheckboxButton, isStandalone: true, selector: "button[ngbCheckboxButton]", host: { attributes: { "role": "checkbox", "type": "button" }, listeners: { "blur": "checkbox.onTouched()" }, properties: { "disabled": "checkbox.disabled()", "tabIndex": "checkbox.disabled() ? -1 : 0", "attr.aria-checked": "checkbox.checked()", "attr.aria-disabled": "checkbox.disabled()" } }, ngImport: i0 }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CheckboxButton, decorators: [{
|
|
13
13
|
type: Directive,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: 'button[ngbCheckboxButton]',
|
|
@@ -20,6 +20,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
20
20
|
'[tabIndex]': 'checkbox.disabled() ? -1 : 0',
|
|
21
21
|
'[attr.aria-checked]': 'checkbox.checked()',
|
|
22
22
|
'[attr.aria-disabled]': 'checkbox.disabled()',
|
|
23
|
+
'(blur)': 'checkbox.onTouched()',
|
|
23
24
|
},
|
|
24
25
|
}]
|
|
25
26
|
}] });
|
|
@@ -29,9 +30,9 @@ class NgbCheckbox {
|
|
|
29
30
|
this.checked = model(false, ...(ngDevMode ? [{ debugName: "checked" }] : []));
|
|
30
31
|
this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
31
32
|
this.indeterminate = input(false, ...(ngDevMode ? [{ debugName: "indeterminate" }] : []));
|
|
33
|
+
this.required = input(false, ...(ngDevMode ? [{ debugName: "required" }] : []));
|
|
34
|
+
this.touched = model(false, ...(ngDevMode ? [{ debugName: "touched" }] : []));
|
|
32
35
|
this.change = output();
|
|
33
|
-
this.onChange = (_) => { };
|
|
34
|
-
this.onTouched = () => { };
|
|
35
36
|
}
|
|
36
37
|
updateValue() {
|
|
37
38
|
if (this.disabled()) {
|
|
@@ -39,23 +40,16 @@ class NgbCheckbox {
|
|
|
39
40
|
}
|
|
40
41
|
const value = !this.checked();
|
|
41
42
|
this.checked.set(value);
|
|
42
|
-
this.
|
|
43
|
-
this.onTouched();
|
|
43
|
+
this.touched.set(true);
|
|
44
44
|
this.change.emit(value);
|
|
45
45
|
}
|
|
46
|
-
|
|
47
|
-
this.
|
|
48
|
-
}
|
|
49
|
-
registerOnChange(fn) {
|
|
50
|
-
this.onChange = fn;
|
|
46
|
+
onTouched() {
|
|
47
|
+
this.touched.set(true);
|
|
51
48
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0", ngImport: i0, type: NgbCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
56
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0", type: NgbCheckbox, isStandalone: true, selector: "[ngbCheckbox]", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", change: "change" }, host: { listeners: { "click": "updateValue()" } }, ngImport: i0 }); }
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
50
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbCheckbox, isStandalone: true, selector: "[ngbCheckbox]", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", touched: "touchedChange", change: "change" }, host: { listeners: { "click": "updateValue()" } }, ngImport: i0 }); }
|
|
57
51
|
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbCheckbox, decorators: [{
|
|
59
53
|
type: Directive,
|
|
60
54
|
args: [{
|
|
61
55
|
selector: '[ngbCheckbox]',
|
|
@@ -63,9 +57,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
63
57
|
'(click)': 'updateValue()',
|
|
64
58
|
},
|
|
65
59
|
}]
|
|
66
|
-
}] });
|
|
60
|
+
}], propDecorators: { checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], indeterminate: [{ type: i0.Input, args: [{ isSignal: true, alias: "indeterminate", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }, { type: i0.Output, args: ["touchedChange"] }], change: [{ type: i0.Output, args: ["change"] }] } });
|
|
67
61
|
function aliasCheckbox(checkbox) {
|
|
68
|
-
return [{ provide: NgbCheckbox, useExisting: checkbox }
|
|
62
|
+
return [{ provide: NgbCheckbox, useExisting: checkbox }];
|
|
69
63
|
}
|
|
70
64
|
|
|
71
65
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-checkbox.mjs","sources":["../../../projects/adk/checkbox/checkbox.ts","../../../projects/adk/checkbox/public-api.ts","../../../projects/adk/checkbox/ngbase-adk-checkbox.ts"],"sourcesContent":["import { Directive, inject, input, model, output } from '@angular/core';\nimport {
|
|
1
|
+
{"version":3,"file":"ngbase-adk-checkbox.mjs","sources":["../../../projects/adk/checkbox/checkbox.ts","../../../projects/adk/checkbox/public-api.ts","../../../projects/adk/checkbox/ngbase-adk-checkbox.ts"],"sourcesContent":["import { Directive, inject, input, model, output } from '@angular/core';\nimport { FormCheckboxControl } from '@angular/forms/signals';\nimport { uniqueId } from '@ngbase/adk/utils';\n\n@Directive({\n selector: 'button[ngbCheckboxButton]',\n host: {\n role: 'checkbox',\n type: 'button',\n '[disabled]': 'checkbox.disabled()',\n '[tabIndex]': 'checkbox.disabled() ? -1 : 0',\n '[attr.aria-checked]': 'checkbox.checked()',\n '[attr.aria-disabled]': 'checkbox.disabled()',\n '(blur)': 'checkbox.onTouched()',\n },\n})\nexport class CheckboxButton {\n readonly checkbox = inject(NgbCheckbox);\n}\n\n@Directive({\n selector: '[ngbCheckbox]',\n host: {\n '(click)': 'updateValue()',\n },\n})\nexport class NgbCheckbox implements FormCheckboxControl {\n readonly id = uniqueId();\n\n readonly checked = model(false);\n readonly disabled = input(false);\n readonly indeterminate = input(false);\n readonly required = input<boolean>(false);\n readonly touched = model(false);\n\n readonly change = output<boolean>();\n\n updateValue() {\n if (this.disabled()) {\n return;\n }\n const value = !this.checked();\n this.checked.set(value);\n this.touched.set(true);\n this.change.emit(value);\n }\n\n onTouched() {\n this.touched.set(true);\n }\n}\n\nexport function aliasCheckbox(checkbox: typeof NgbCheckbox) {\n return [{ provide: NgbCheckbox, useExisting: checkbox }];\n}\n","/*\n * Public API Surface of checkbox\n */\n\nexport { aliasCheckbox, CheckboxButton, NgbCheckbox } from './checkbox';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,10 @@ class NgbChipRemove {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
this.chip = inject((NgbChip));
|
|
8
8
|
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
10
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbChipRemove, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
10
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: NgbChipRemove, isStandalone: true, selector: "[ngbChipRemove]", host: { attributes: { "type": "button" }, listeners: { "click": "chip.close.emit()" }, properties: { "attr.data-dir": "chip.dir.isRtl() ? \"rtl\" : \"ltr\"" } }, ngImport: i0 }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbChipRemove, decorators: [{
|
|
13
13
|
type: Directive,
|
|
14
14
|
args: [{
|
|
15
15
|
selector: '[ngbChipRemove]',
|
|
@@ -23,19 +23,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
23
23
|
class NgbChip {
|
|
24
24
|
constructor() {
|
|
25
25
|
this.dir = inject(Directionality);
|
|
26
|
-
this.removable = input(true, ...(ngDevMode ?
|
|
26
|
+
this.removable = input(true, { ...(ngDevMode ? { debugName: "removable" } : {}), transform: booleanAttribute });
|
|
27
27
|
this.value = input(...(ngDevMode ? [undefined, { debugName: "value" }] : []));
|
|
28
28
|
this.close = output();
|
|
29
29
|
}
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
31
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbChip, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
31
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: NgbChip, isStandalone: true, selector: "[ngbChip]", inputs: { removable: { classPropertyName: "removable", publicName: "removable", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, ngImport: i0 }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbChip, decorators: [{
|
|
34
34
|
type: Directive,
|
|
35
35
|
args: [{
|
|
36
36
|
selector: '[ngbChip]',
|
|
37
37
|
}]
|
|
38
|
-
}] });
|
|
38
|
+
}], propDecorators: { removable: [{ type: i0.Input, args: [{ isSignal: true, alias: "removable", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], close: [{ type: i0.Output, args: ["close"] }] } });
|
|
39
39
|
function aliasChip(chip) {
|
|
40
40
|
return { provide: NgbChip, useExisting: chip };
|
|
41
41
|
}
|
|
@@ -44,15 +44,15 @@ class NgbChipGroup {
|
|
|
44
44
|
constructor() {
|
|
45
45
|
this.chips = contentChildren((NgbChip), ...(ngDevMode ? [{ debugName: "chips" }] : []));
|
|
46
46
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
48
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbChipGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
48
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.0", type: NgbChipGroup, isStandalone: true, selector: "[ngbChipGroup]", queries: [{ propertyName: "chips", predicate: (NgbChip), isSignal: true }], ngImport: i0 }); }
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NgbChipGroup, decorators: [{
|
|
51
51
|
type: Directive,
|
|
52
52
|
args: [{
|
|
53
53
|
selector: '[ngbChipGroup]',
|
|
54
54
|
}]
|
|
55
|
-
}] });
|
|
55
|
+
}], propDecorators: { chips: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => NgbChip), { isSignal: true }] }] } });
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
58
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-chip.mjs","sources":["../../../projects/adk/chip/chip.ts","../../../projects/adk/chip/chip-group.ts","../../../projects/adk/chip/ngbase-adk-chip.ts"],"sourcesContent":["import { booleanAttribute, Directive, inject, input, output } from '@angular/core';\nimport { Directionality } from '@ngbase/adk/bidi';\n\n@Directive({\n selector: '[ngbChipRemove]',\n host: {\n type: 'button',\n '(click)': 'chip.close.emit()',\n '[attr.data-dir]': 'chip.dir.isRtl() ? \"rtl\" : \"ltr\"',\n },\n})\nexport class NgbChipRemove {\n readonly chip = inject(NgbChip<any>);\n}\n\n@Directive({\n selector: '[ngbChip]',\n})\nexport class NgbChip<T = any> {\n readonly dir = inject(Directionality);\n\n readonly removable = input(true, { transform: booleanAttribute });\n readonly value = input<T>();\n readonly close = output();\n}\n\nexport function aliasChip(chip: typeof NgbChip) {\n return { provide: NgbChip, useExisting: chip };\n}\n","import { contentChildren, Directive, effect, untracked } from '@angular/core';\n// import { Autocomplete } from '@ngbase/adk/autocomplete';\nimport { NgbChip } from './chip';\n\n@Directive({\n selector: '[ngbChipGroup]',\n})\nexport class NgbChipGroup<T> {\n readonly chips = contentChildren(NgbChip<T>);\n // readonly autoComplete = inject(Autocomplete);\n\n // constructor() {\n // effect(() => {\n // const chips = this.chips();\n // untracked(() => {\n // chips.forEach(chip => {\n // chip.close.subscribe(() => {\n // this.autoComplete.removeValue(chip.value());\n // });\n // });\n // });\n // });\n // }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAWa,aAAa,CAAA;AAR1B,IAAA,WAAA,GAAA;AASW,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,EAAC,OAAY,EAAC;AACrC;8GAFY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBARzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,SAAS,EAAE,mBAAmB;AAC9B,wBAAA,iBAAiB,EAAE,kCAAkC;AACtD,qBAAA;AACF,iBAAA;;MAQY,OAAO,CAAA;AAHpB,IAAA,WAAA,GAAA;AAIW,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ngbase-adk-chip.mjs","sources":["../../../projects/adk/chip/chip.ts","../../../projects/adk/chip/chip-group.ts","../../../projects/adk/chip/ngbase-adk-chip.ts"],"sourcesContent":["import { booleanAttribute, Directive, inject, input, output } from '@angular/core';\nimport { Directionality } from '@ngbase/adk/bidi';\n\n@Directive({\n selector: '[ngbChipRemove]',\n host: {\n type: 'button',\n '(click)': 'chip.close.emit()',\n '[attr.data-dir]': 'chip.dir.isRtl() ? \"rtl\" : \"ltr\"',\n },\n})\nexport class NgbChipRemove {\n readonly chip = inject(NgbChip<any>);\n}\n\n@Directive({\n selector: '[ngbChip]',\n})\nexport class NgbChip<T = any> {\n readonly dir = inject(Directionality);\n\n readonly removable = input(true, { transform: booleanAttribute });\n readonly value = input<T>();\n readonly close = output();\n}\n\nexport function aliasChip(chip: typeof NgbChip) {\n return { provide: NgbChip, useExisting: chip };\n}\n","import { contentChildren, Directive, effect, untracked } from '@angular/core';\n// import { Autocomplete } from '@ngbase/adk/autocomplete';\nimport { NgbChip } from './chip';\n\n@Directive({\n selector: '[ngbChipGroup]',\n})\nexport class NgbChipGroup<T> {\n readonly chips = contentChildren(NgbChip<T>);\n // readonly autoComplete = inject(Autocomplete);\n\n // constructor() {\n // effect(() => {\n // const chips = this.chips();\n // untracked(() => {\n // chips.forEach(chip => {\n // chip.close.subscribe(() => {\n // this.autoComplete.removeValue(chip.value());\n // });\n // });\n // });\n // });\n // }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, Directive } from '@angular/core';
|
|
2
|
+
import { input, output, Directive } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
class CopyToClipboard {
|
|
5
5
|
constructor() {
|
|
6
6
|
this.ngbCopyToClipboard = input(...(ngDevMode ? [undefined, { debugName: "ngbCopyToClipboard" }] : []));
|
|
7
|
+
this.afterCopy = output();
|
|
7
8
|
}
|
|
8
9
|
onClick(event) {
|
|
9
10
|
event.preventDefault();
|
|
@@ -28,16 +29,17 @@ class CopyToClipboard {
|
|
|
28
29
|
textarea.select();
|
|
29
30
|
document.execCommand('copy'); // Fallback for older browsers
|
|
30
31
|
document.body.removeChild(textarea);
|
|
32
|
+
this.afterCopy.emit();
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
35
|
catch (error) {
|
|
34
36
|
console.warn('Failed to copy to clipboard:', error);
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
38
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CopyToClipboard, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
40
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: CopyToClipboard, isStandalone: true, selector: "[ngbCopyToClipboard]", inputs: { ngbCopyToClipboard: { classPropertyName: "ngbCopyToClipboard", publicName: "ngbCopyToClipboard", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { afterCopy: "afterCopy" }, host: { listeners: { "click": "onClick($event)" }, classAttribute: "cursor-pointer" }, ngImport: i0 }); }
|
|
39
41
|
}
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CopyToClipboard, decorators: [{
|
|
41
43
|
type: Directive,
|
|
42
44
|
args: [{
|
|
43
45
|
selector: '[ngbCopyToClipboard]',
|
|
@@ -46,7 +48,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0", ngImpor
|
|
|
46
48
|
'(click)': 'onClick($event)',
|
|
47
49
|
},
|
|
48
50
|
}]
|
|
49
|
-
}] });
|
|
51
|
+
}], propDecorators: { ngbCopyToClipboard: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngbCopyToClipboard", required: false }] }], afterCopy: [{ type: i0.Output, args: ["afterCopy"] }] } });
|
|
50
52
|
|
|
51
53
|
/**
|
|
52
54
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-clipboard.mjs","sources":["../../../projects/adk/clipboard/clipboard.ts","../../../projects/adk/clipboard/ngbase-adk-clipboard.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\n\n@Directive({\n selector: '[ngbCopyToClipboard]',\n host: {\n class: 'cursor-pointer',\n '(click)': 'onClick($event)',\n },\n})\nexport class CopyToClipboard {\n readonly ngbCopyToClipboard = input<string>();\n\n onClick(event: MouseEvent): void {\n event.preventDefault();\n const textToCopy = this.ngbCopyToClipboard();\n if (!textToCopy) return;\n\n this._copyToClipboard(textToCopy);\n }\n\n async _copyToClipboard(text: string): Promise<void> {\n try {\n if (navigator.clipboard && window.isSecureContext) {\n await navigator.clipboard.writeText(text);\n } else {\n // Fallback for older browsers\n const textarea = document.createElement('textarea');\n textarea.style.position = 'fixed';\n textarea.style.opacity = '0';\n textarea.style.left = '-9999px';\n textarea.value = text;\n\n document.body.appendChild(textarea);\n textarea.select();\n document.execCommand('copy'); // Fallback for older browsers\n document.body.removeChild(textarea);\n }\n } catch (error) {\n console.warn('Failed to copy to clipboard:', error);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MASa,eAAe,CAAA;AAP5B,IAAA,WAAA,GAAA;QAQW,
|
|
1
|
+
{"version":3,"file":"ngbase-adk-clipboard.mjs","sources":["../../../projects/adk/clipboard/clipboard.ts","../../../projects/adk/clipboard/ngbase-adk-clipboard.ts"],"sourcesContent":["import { Directive, input, output } from '@angular/core';\n\n@Directive({\n selector: '[ngbCopyToClipboard]',\n host: {\n class: 'cursor-pointer',\n '(click)': 'onClick($event)',\n },\n})\nexport class CopyToClipboard {\n readonly ngbCopyToClipboard = input<string>();\n readonly afterCopy = output();\n\n onClick(event: MouseEvent): void {\n event.preventDefault();\n const textToCopy = this.ngbCopyToClipboard();\n if (!textToCopy) return;\n\n this._copyToClipboard(textToCopy);\n }\n\n async _copyToClipboard(text: string): Promise<void> {\n try {\n if (navigator.clipboard && window.isSecureContext) {\n await navigator.clipboard.writeText(text);\n } else {\n // Fallback for older browsers\n const textarea = document.createElement('textarea');\n textarea.style.position = 'fixed';\n textarea.style.opacity = '0';\n textarea.style.left = '-9999px';\n textarea.value = text;\n\n document.body.appendChild(textarea);\n textarea.select();\n document.execCommand('copy'); // Fallback for older browsers\n document.body.removeChild(textarea);\n this.afterCopy.emit();\n }\n } catch (error) {\n console.warn('Failed to copy to clipboard:', error);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MASa,eAAe,CAAA;AAP5B,IAAA,WAAA,GAAA;QAQW,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;QACpC,IAAA,CAAA,SAAS,GAAG,MAAM,EAAE;AAgC9B,IAAA;AA9BC,IAAA,OAAO,CAAC,KAAiB,EAAA;QACvB,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAC5C,QAAA,IAAI,CAAC,UAAU;YAAE;AAEjB,QAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;IACnC;IAEA,MAAM,gBAAgB,CAAC,IAAY,EAAA;AACjC,QAAA,IAAI;YACF,IAAI,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,eAAe,EAAE;gBACjD,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;YAC3C;iBAAO;;gBAEL,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC;AACnD,gBAAA,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;AACjC,gBAAA,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC5B,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS;AAC/B,gBAAA,QAAQ,CAAC,KAAK,GAAG,IAAI;AAErB,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;gBACnC,QAAQ,CAAC,MAAM,EAAE;AACjB,gBAAA,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AACnC,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YACvB;QACF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC;QACrD;IACF;8GAjCW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,gBAAgB;AACvB,wBAAA,SAAS,EAAE,iBAAiB;AAC7B,qBAAA;AACF,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngbase-adk-collections.mjs","sources":["../../../projects/adk/collections/SelectionModel.ts","../../../projects/adk/collections/ngbase-adk-collections.ts"],"sourcesContent":["import { computed, signal, Signal } from '@angular/core';\n\nexport class SelectionModel<T> {\n readonly selected = signal<T[]>([]);\n readonly hasValue = computed(() => this.selected().length > 0);\n readonly isEmpty = computed(() => this.selected().length === 0);\n readonly isAllSelected = computed(\n () => this.selected().length > 0 && this.selected().length === this.items().length,\n );\n readonly isIndeterminate = computed(() => this.selected().length > 0 && !this.isAllSelected());\n\n constructor(\n public multiple = false,\n selected: T[] = [],\n public items: Signal<T[]> = signal([]),\n ) {\n this.selected.set(selected);\n }\n\n clear() {\n this.selected.set([]);\n }\n\n select(item: T) {\n this.selected.update(selected => (this.multiple ? [...selected, item] : [item]));\n }\n\n deselect(item: T) {\n this.selected.update(selected => (this.multiple ? selected.filter(i => i !== item) : []));\n }\n\n selectAll(items: T[]) {\n this.selected.update(selected => (this.multiple ? [...selected, ...items] : items));\n }\n\n isSelected(item: T) {\n return this.selected().includes(item);\n }\n\n toggle(item: T) {\n this.selected.update(selected =>\n selected.includes(item) ? selected.filter(i => i !== item) : [...selected, item],\n );\n }\n\n toggleAll() {\n const isAll = this.isIndeterminate() || !this.isAllSelected();\n this.selected.update(x =>\n isAll ? (this.multiple ? [...x, ...this.items()] : this.items()) : [],\n );\n }\n\n sort(fn: (a: T, b: T) => number) {\n this.selected.update(selected => selected.sort(fn));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,cAAc,CAAA;IASzB,
|
|
1
|
+
{"version":3,"file":"ngbase-adk-collections.mjs","sources":["../../../projects/adk/collections/SelectionModel.ts","../../../projects/adk/collections/ngbase-adk-collections.ts"],"sourcesContent":["import { computed, signal, Signal } from '@angular/core';\n\nexport class SelectionModel<T> {\n readonly selected = signal<T[]>([]);\n readonly hasValue = computed(() => this.selected().length > 0);\n readonly isEmpty = computed(() => this.selected().length === 0);\n readonly isAllSelected = computed(\n () => this.selected().length > 0 && this.selected().length === this.items().length,\n );\n readonly isIndeterminate = computed(() => this.selected().length > 0 && !this.isAllSelected());\n\n constructor(\n public multiple = false,\n selected: T[] = [],\n public items: Signal<T[]> = signal([]),\n ) {\n this.selected.set(selected);\n }\n\n clear() {\n this.selected.set([]);\n }\n\n select(item: T) {\n this.selected.update(selected => (this.multiple ? [...selected, item] : [item]));\n }\n\n deselect(item: T) {\n this.selected.update(selected => (this.multiple ? selected.filter(i => i !== item) : []));\n }\n\n selectAll(items: T[]) {\n this.selected.update(selected => (this.multiple ? [...selected, ...items] : items));\n }\n\n isSelected(item: T) {\n return this.selected().includes(item);\n }\n\n toggle(item: T) {\n this.selected.update(selected =>\n selected.includes(item) ? selected.filter(i => i !== item) : [...selected, item],\n );\n }\n\n toggleAll() {\n const isAll = this.isIndeterminate() || !this.isAllSelected();\n this.selected.update(x =>\n isAll ? (this.multiple ? [...x, ...this.items()] : this.items()) : [],\n );\n }\n\n sort(fn: (a: T, b: T) => number) {\n this.selected.update(selected => selected.sort(fn));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|