@mintplayer/ng-bootstrap 21.0.0 → 21.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +33 -46
- package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-alert.mjs +12 -30
- package/fesm2022/mintplayer-ng-bootstrap-alert.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-badge.mjs +6 -18
- package/fesm2022/mintplayer-ng-bootstrap-badge.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +31 -65
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +200 -132
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-close.mjs +5 -7
- package/fesm2022/mintplayer-ng-bootstrap-close.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +14 -17
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +231 -347
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +43 -39
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +7 -35
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +46 -86
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs +7 -7
- package/fesm2022/mintplayer-ng-bootstrap-enhanced-paste.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +7 -6
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-grid.mjs +32 -74
- package/fesm2022/mintplayer-ng-bootstrap-grid.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-let.mjs +6 -7
- package/fesm2022/mintplayer-ng-bootstrap-let.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs +18 -18
- package/fesm2022/mintplayer-ng-bootstrap-markdown.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +20 -22
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +16 -10
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +8 -28
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +204 -265
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs +8 -21
- package/fesm2022/mintplayer-ng-bootstrap-navigation-lock.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +43 -38
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-ordinal-number.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +59 -120
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +11 -25
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +8 -28
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +67 -103
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +34 -63
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +19 -47
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +35 -41
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +205 -779
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +34 -39
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +74 -100
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs +37 -79
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +78 -45
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-shell.mjs +16 -26
- package/fesm2022/mintplayer-ng-bootstrap-shell.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +14 -40
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs +8 -32
- package/fesm2022/mintplayer-ng-bootstrap-spinner.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs +70 -76
- package/fesm2022/mintplayer-ng-bootstrap-splitter.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs +11 -11
- package/fesm2022/mintplayer-ng-bootstrap-sticky-footer.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +53 -99
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs +7 -38
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +23 -49
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +33 -38
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +45 -98
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +12 -24
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +21 -43
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-trust-html.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +29 -49
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
- package/package.json +5 -5
- package/types/mintplayer-ng-bootstrap-accordion.d.ts +11 -15
- package/types/mintplayer-ng-bootstrap-alert.d.ts +4 -9
- package/types/mintplayer-ng-bootstrap-badge.d.ts +5 -9
- package/types/mintplayer-ng-bootstrap-calendar.d.ts +14 -22
- package/types/mintplayer-ng-bootstrap-carousel.d.ts +41 -35
- package/types/mintplayer-ng-bootstrap-close.d.ts +1 -2
- package/types/mintplayer-ng-bootstrap-code-snippet.d.ts +4 -5
- package/types/mintplayer-ng-bootstrap-color-picker.d.ts +70 -97
- package/types/mintplayer-ng-bootstrap-datatable.d.ts +11 -11
- package/types/mintplayer-ng-bootstrap-datepicker.d.ts +6 -13
- package/types/mintplayer-ng-bootstrap-dropdown.d.ts +14 -20
- package/types/mintplayer-ng-bootstrap-enhanced-paste.d.ts +1 -3
- package/types/mintplayer-ng-bootstrap-file-upload.d.ts +1 -1
- package/types/mintplayer-ng-bootstrap-grid.d.ts +14 -26
- package/types/mintplayer-ng-bootstrap-let.d.ts +0 -2
- package/types/mintplayer-ng-bootstrap-markdown.d.ts +1 -5
- package/types/mintplayer-ng-bootstrap-modal.d.ts +3 -6
- package/types/mintplayer-ng-bootstrap-multiselect.d.ts +6 -6
- package/types/mintplayer-ng-bootstrap-navbar-toggler.d.ts +5 -11
- package/types/mintplayer-ng-bootstrap-navbar.d.ts +74 -80
- package/types/mintplayer-ng-bootstrap-navigation-lock.d.ts +2 -4
- package/types/mintplayer-ng-bootstrap-offcanvas.d.ts +12 -14
- package/types/mintplayer-ng-bootstrap-ordinal-number.d.ts +1 -2
- package/types/mintplayer-ng-bootstrap-pagination.d.ts +17 -31
- package/types/mintplayer-ng-bootstrap-placeholder.d.ts +3 -8
- package/types/mintplayer-ng-bootstrap-playlist-toggler.d.ts +5 -11
- package/types/mintplayer-ng-bootstrap-popover.d.ts +15 -23
- package/types/mintplayer-ng-bootstrap-progress-bar.d.ts +19 -22
- package/types/mintplayer-ng-bootstrap-range.d.ts +1 -2
- package/types/mintplayer-ng-bootstrap-rating.d.ts +8 -14
- package/types/mintplayer-ng-bootstrap-resizable.d.ts +7 -11
- package/types/mintplayer-ng-bootstrap-scheduler.d.ts +132 -220
- package/types/mintplayer-ng-bootstrap-scrollspy.d.ts +14 -15
- package/types/mintplayer-ng-bootstrap-searchbox.d.ts +20 -27
- package/types/mintplayer-ng-bootstrap-select.d.ts +13 -23
- package/types/mintplayer-ng-bootstrap-select2.d.ts +16 -14
- package/types/mintplayer-ng-bootstrap-shell.d.ts +6 -12
- package/types/mintplayer-ng-bootstrap-signature-pad.d.ts +7 -12
- package/types/mintplayer-ng-bootstrap-spinner.d.ts +8 -16
- package/types/mintplayer-ng-bootstrap-splitter.d.ts +21 -27
- package/types/mintplayer-ng-bootstrap-sticky-footer.d.ts +3 -3
- package/types/mintplayer-ng-bootstrap-tab-control.d.ts +29 -37
- package/types/mintplayer-ng-bootstrap-table.d.ts +6 -13
- package/types/mintplayer-ng-bootstrap-timepicker.d.ts +7 -14
- package/types/mintplayer-ng-bootstrap-toast.d.ts +5 -10
- package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +22 -36
- package/types/mintplayer-ng-bootstrap-tooltip.d.ts +4 -7
- package/types/mintplayer-ng-bootstrap-treeview.d.ts +10 -15
- package/types/mintplayer-ng-bootstrap-trust-html.d.ts +0 -2
- package/types/mintplayer-ng-bootstrap-typeahead.d.ts +14 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-color-picker.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-wheel/color-wheel.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-wheel/color-wheel.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/slider/slider.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/slider/slider.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/luminosity-strip/luminosity-strip.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/luminosity-strip/luminosity-strip.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/alpha-strip/alpha-strip.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/alpha-strip/alpha-strip.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-picker/color-picker.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-picker/color-picker.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/directives/color-picker-value-accessor/color-picker-value-accessor.directive.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/color-picker.module.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/mintplayer-ng-bootstrap-color-picker.ts"],"sourcesContent":["import { AfterViewInit, Component, DestroyRef, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';\nimport { BehaviorSubject, combineLatest, debounceTime, map, take, Observable, switchMap } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HS } from '../../interfaces/hs';\nimport { HslColor } from '../../interfaces/hsl-color';\nimport { RgbColor } from '../../interfaces/rgb-color';\n\n@Component({\n selector: 'bs-color-wheel',\n templateUrl: './color-wheel.component.html',\n styleUrls: ['./color-wheel.component.scss'],\n standalone: false,\n})\nexport class BsColorWheelComponent implements AfterViewInit {\n\n constructor(private element: ElementRef<HTMLElement>, private destroy: DestroyRef) {\n // this.resizeObserver = new ResizeObserver((entries) => {\n // for (const entry of entries) {\n // if (entry.target === this.element.nativeElement) {\n // console.log(entry.contentRect);\n // this.width$.next(entry.contentRect.width);\n // this.height$.next(entry.contentRect.height);\n // break;\n // }\n // }\n // });\n\n this.squareSize$ = combineLatest([this.width$, this.height$])\n .pipe(map(([width, height]) => {\n if ((width === null) || (height === null)) {\n return null;\n }\n\n const squareSize = Math.min(width, height);\n return squareSize;\n }));\n\n this.shiftX$ = combineLatest([this.width$, this.height$])\n .pipe(map(([width, height]) => {\n if ((width === null) || (height === null)) {\n return null;\n } else if (width < height) {\n return 0;\n } else {\n return (width - height) / 2;\n }\n }));\n\n this.shiftY$ = combineLatest([this.width$, this.height$])\n .pipe(map(([width, height]) => {\n if ((width === null) || (height === null)) {\n return null;\n } else if (width < height) {\n return (height - width) / 2;\n } else {\n return 0;\n }\n }));\n\n this.innerRadius$ = combineLatest([this.squareSize$, this.diameterRatio$])\n .pipe(map(([squareSize, diameterRatio]) => {\n if (squareSize) {\n return squareSize / 2 * diameterRatio;\n } else {\n return 0;\n }\n }));\n\n this.outerRadius$ = combineLatest([this.squareSize$, this.diameterRatio$])\n .pipe(map(([squareSize, diameterRatio]) => {\n if (squareSize) {\n return squareSize / 2;\n } else {\n return 150;\n }\n }));\n \n combineLatest([this.innerRadius$, this.outerRadius$, this.shiftX$, this.shiftY$])\n .pipe(debounceTime(20), takeUntilDestroyed())\n .subscribe(([innerRadius, outerRadius, shiftX, shiftY]) => {\n if (this.canvasContext && (innerRadius !== null) && (outerRadius !== null) && (shiftX !== null) && (shiftY !== null)) {\n this.canvasContext.clearRect(0, 0, this.canvas.nativeElement.width, this.canvas.nativeElement.height);\n this.canvasContext.save();\n this.canvasContext.translate(shiftX + outerRadius, shiftY + outerRadius);\n\n for (let x = 0; x < 360; x++) {\n this.canvasContext.rotate(1 * Math.PI / 180);\n const gradient = this.canvasContext.createLinearGradient(innerRadius, 0, outerRadius, 0);\n\n gradient.addColorStop(0, `hsl(${x}, 0%, 50%)`);\n gradient.addColorStop(1, `hsl(${x}, 100%, 50%)`);\n\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(innerRadius, 0, outerRadius - innerRadius, outerRadius / 50);\n }\n\n this.canvasContext.restore();\n }\n });\n\n this.markerPosition$ = combineLatest([this.hs$, this.shiftX$, this.shiftY$])\n .pipe(switchMap(([hs, shiftX, shiftY]) => {\n return this.color2position(hs)\n .pipe(map((position) => ({position, shiftX: (shiftX ?? 0), shiftY: (shiftY ?? 0)})));\n }))\n .pipe(map(({position, shiftX, shiftY}) => {\n return {\n x: position.x + shiftX,\n y: position.y + shiftY,\n };\n }));\n\n this.hs$.pipe(takeUntilDestroyed())\n .subscribe((hs) => this.hsChange.emit(hs));\n }\n\n @HostBinding('class.position-relative') positionRelative = true;\n \n @Input() set diameterRatio(value: number) {\n this.diameterRatio$.next(value);\n }\n @Input() set width(value: number) {\n this.width$.next(value);\n }\n @Input() set height(value: number) {\n this.height$.next(value);\n }\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\n \n //#region Hue/Luminosity\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n @Output() hsChange = new EventEmitter<HS>();\n public get hs() {\n return this.hs$.value;\n }\n @Input() public set hs(value: HS) {\n this.hs$.next(value);\n }\n //#endregion\n //#region Luminosity\n luminosity$ = new BehaviorSubject<number>(0);\n public get luminosity() {\n return this.luminosity$.value;\n }\n @Input() public set luminosity(value: number) {\n this.luminosity$.next(value);\n }\n //#endregion\n\n // private resizeObserver: ResizeObserver;\n private canvasContext: CanvasRenderingContext2D | null = null;\n private isPointerDown = false;\n width$ = new BehaviorSubject<number>(150);\n height$ = new BehaviorSubject<number>(150);\n diameterRatio$ = new BehaviorSubject<number>(0);\n\n squareSize$: Observable<number | null>;\n shiftX$: Observable<number | null>;\n shiftY$: Observable<number | null>;\n\n innerRadius$: Observable<number | null>;\n outerRadius$: Observable<number | null>;\n markerPosition$: Observable<{x: number, y: number}>;\n disabled$ = new BehaviorSubject<boolean>(false);\n \n viewInited$ = new BehaviorSubject<boolean>(false);\n\n ngAfterViewInit() {\n // this.resizeObserver.observe(this.element.nativeElement);\n this.viewInited$.next(true);\n if (typeof window !== 'undefined') {\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n }\n\n onPointerDown(ev: MouseEvent | TouchEvent) {\n if (!this.disabled$.value) {\n ev.preventDefault();\n this.isPointerDown = true;\n this.updateColor(ev, !('touches' in ev));\n }\n }\n\n onPointerMove(ev: MouseEvent | TouchEvent) {\n if (this.isPointerDown) {\n ev.preventDefault();\n ev.stopPropagation();\n this.updateColor(ev, !('touches' in ev));\n }\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMouseMove(ev: MouseEvent) {\n this.onPointerMove(ev);\n }\n\n @HostListener('document:mouseup', ['$event'])\n onPointerUp(ev: MouseEvent | TouchEvent) {\n this.isPointerDown = false;\n }\n\n private updateColor(ev: MouseEvent | TouchEvent, subtract: boolean) {\n let co: { x: number, y: number };\n const rect = this.canvas.nativeElement.getBoundingClientRect();\n if ('touches' in ev) {\n co = {\n x: ev.touches[0].clientX - rect.left,\n y: ev.touches[0].clientY - rect.top,\n };\n } else {\n co = {\n x: ev.clientX - (subtract ? rect.left : 0),\n y: ev.clientY - (subtract ? rect.top : 0),\n };\n }\n\n this.position2color(co.x, co.y).pipe(take(1), takeUntilDestroyed(this.destroy)).subscribe((color) => {\n if (color) {\n this.hs$.next({ hue: color.hue, saturation: color.saturation });\n } else {\n console.warn('Color is null');\n }\n });\n }\n\n private isInsideCircle(x: number, y: number) {\n return combineLatest([this.squareSize$, this.shiftX$, this.shiftY$])\n .pipe(map(([squareSize, shiftX, shiftY]) => {\n // Position to the square\n const sx: number = x - (shiftX ?? 0);\n const sy = y - (shiftY ?? 0);\n // Square radius\n const sr = (squareSize ?? 0) / 2;\n\n const radius = Math.sqrt(Math.pow(sx - sr, 2) + Math.pow(sy - sr, 2));\n const angle = (Math.atan2(sr - sy, sr - sx) + Math.PI) % 360;\n return {\n inside: radius <= sr,\n angle\n };\n }));\n }\n\n private position2color(x: number, y: number) {\n return this.isInsideCircle(x, y).pipe(map((result) => {\n if (!this.canvasContext) {\n return null;\n }\n\n if (result.inside) {\n const imageData = this.canvasContext.getImageData(x, y, 1, 1).data;\n const hsl = this.rgb2Hsl({ r: imageData[0], g: imageData[1], b: imageData[2] });\n return hsl;\n }\n\n return <HslColor>{ hue: result.angle * 180 / Math.PI, saturation: 1, luminosity: 0.5 };\n }));\n }\n\n private color2position(hs: HS) {\n return combineLatest([this.innerRadius$, this.outerRadius$])\n .pipe(map(([innerRadius, outerRadius]) => {\n if (innerRadius === null) {\n innerRadius = 0;\n }\n if (!outerRadius) {\n outerRadius = 100;\n }\n\n const theta = hs.hue * Math.PI / 180;\n const c = {\n x: -outerRadius * Math.cos(theta),\n y: -outerRadius * Math.sin(theta)\n };\n \n const d = hs.saturation * (outerRadius - innerRadius) + innerRadius;\n const o = { x: outerRadius, y: outerRadius };\n \n return {\n x: o.x - d * (c.x / outerRadius),\n y: o.y - d * (c.y / outerRadius),\n }\n }));\n }\n \n private rgb2Hsl(color: RgbColor) {\n const r01 = this.bound01(color.r, 255);\n const g01 = this.bound01(color.g, 255);\n const b01 = this.bound01(color.b, 255);\n\n const max = Math.max(r01, g01, b01);\n const min = Math.min(r01, g01, b01);\n\n let h: number, s: number; const l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = (l > 0.5) ? (d / (2 - max - min)) : (d / (max + min));\n switch (max) {\n case r01: {\n h = (g01 - b01) / d + ((g01 < b01) ? 6 : 0);\n } break;\n case g01: {\n h = (b01 - r01) / d + 2;\n } break;\n case b01: {\n h = (r01 - g01) / d + 4;\n } break;\n default: {\n throw 'Invalid operation';\n }\n }\n \n h /= 6;\n }\n \n h *= 360;\n\n return <HslColor>{ hue: h, saturation: s, luminosity: l };\n }\n\n /**\n * Divide 1 to n, handling floating point errors.\n * Ensures that the value is in between 0 and 1.\n **/\n private bound01(n: number, max: number) {\n n = Math.min(max, Math.max(0, n));\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n } else {\n return (n % max) / max;\n }\n }\n\n}\n","<canvas\n class=\"d-block\"\n [width]=\"width$ | async\"\n [height]=\"height$ | async\"\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\"\n #canvas></canvas>\n\n@if (markerPosition$ | async; as markerPosition) {\n <div class=\"thumb position-absolute pe-none\" [style.left.px]=\"markerPosition.x\" [style.top.px]=\"markerPosition.y\"></div>\n}","import { Component, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, NgZone } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\n\n@Component({\n selector: 'bs-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n standalone: false,\n})\nexport class BsSliderComponent {\n constructor(private element: ElementRef<HTMLElement>, private zone: NgZone) {\n this.value$.pipe(takeUntilDestroyed())\n .subscribe((value) => this.valueChange.emit(value));\n\n this.thumbMarginLeft$ = this.value$.pipe(map((value) => {\n const res = value * element.nativeElement.clientWidth - 12;\n return res;\n }));\n\n this.cursorClass$ = this.isPointerDown$.pipe(map((isPointerDown) => {\n return isPointerDown ? 'cursor-grabbing' : 'cursor-grab';\n }));\n }\n\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.position-relative') positionRelative = true;\n thumbMarginLeft$: Observable<number>;\n @ViewChild('track') track!: ElementRef<HTMLDivElement>;\n @ViewChild('thumb') thumb!: ElementRef<HTMLDivElement>;\n\n //#region Value\n value$ = new BehaviorSubject<number>(0.5);\n @Output() valueChange = new EventEmitter<number>();\n public get value() {\n return this.value$.value;\n }\n @Input() public set value(value: number) {\n this.value$.next(value);\n }\n //#endregion\n\n private isPointerDown$ = new BehaviorSubject<boolean>(false);\n cursorClass$: Observable<string>;\n\n onPointerDown(ev: MouseEvent | TouchEvent) {\n ev.preventDefault();\n this.zone.run(() => this.isPointerDown$.next(true));\n this.updateColor(ev);\n }\n\n @HostListener('document:mousemove', ['$event'])\n onPointerMove(ev: MouseEvent | TouchEvent) {\n if (this.isPointerDown$.value) {\n ev.preventDefault();\n ev.stopPropagation();\n this.updateColor(ev);\n }\n }\n\n @HostListener('document:mouseup', ['$event'])\n onPointerUp(ev: MouseEvent | TouchEvent) {\n this.isPointerDown$.next(false);\n }\n\n private updateColor(ev: MouseEvent | TouchEvent) {\n let co: { x: number };\n const rect = this.track.nativeElement.getBoundingClientRect();\n if ('touches' in ev) {\n co = {\n x: ev.touches[0].clientX - rect.left,\n };\n } else {\n co = {\n x: ev.clientX - rect.left,\n };\n }\n \n const percent = co.x / this.track.nativeElement.clientWidth;\n const limited = Math.max(0, Math.min(1, percent));\n this.value$.next(limited);\n }\n}\n\n@Directive({\n selector: '[bsThumb]',\n standalone: false,\n})\nexport class BsThumbDirective {\n @HostBinding('class.thumb')\n @HostBinding('class.position-absolute')\n thumbClass = true;\n}\n\n@Directive({\n selector: '[bsTrack]',\n standalone: false,\n})\nexport class BsTrackDirective {\n @HostBinding('class.track') trackClass = true;\n}","<div class=\"wrapper d-block position-relative\">\n <div #track class=\"track2\"\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\">\n <ng-content select=\"[bsTrack]\"></ng-content>\n </div>\n <div #thumb\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\"\n [class]=\"cursorClass$ | async\"\n [style.margin-left.px]=\"thumbMarginLeft$ | async\">\n <ng-content select=\"[bsThumb]\"></ng-content>\n </div>\n</div>","import { Component, EventEmitter, Input, Output, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HS } from '../../interfaces/hs';\n\n@Component({\n selector: 'bs-luminosity-strip',\n templateUrl: './luminosity-strip.component.html',\n styleUrls: ['./luminosity-strip.component.scss'],\n standalone: false,\n})\nexport class BsLuminosityStripComponent implements AfterViewInit {\n constructor() {\n this.hs$.pipe(takeUntilDestroyed()).subscribe((hs) => {\n if (this.canvasContext) {\n const width = this.canvas.nativeElement.width, height = this.canvas.nativeElement.height;\n this.canvasContext.clearRect(0, 0, width, height);\n this.canvasContext.save();\n\n // HSL\n // - H: 0 - 359\n // - S: \"0%\" - \"100%\"\n // - L: \"0%\" - \"50%\" - \"100%\"\n\n const gradient = this.canvasContext.createLinearGradient(0, 0, width, 0);\n gradient.addColorStop(0, `hsl(${hs.hue}, ${hs.saturation * 100}%, 0%)`);\n gradient.addColorStop(0.5, `hsl(${hs.hue}, ${hs.saturation * 100}%, 50%)`);\n gradient.addColorStop(1, `hsl(${hs.hue}, ${hs.saturation * 100}%, 100%)`);\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(0, 0, width, height);\n }\n });\n \n this.resultBackground$ = combineLatest([this.hs$, this.luminosity$])\n .pipe(map(([hs, luminosity]) => {\n return `hsl(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%)`;\n }));\n \n this.luminosity$.pipe(takeUntilDestroyed())\n .subscribe(luminosity => this.luminosityChange.emit(luminosity));\n }\n\n //#region HS\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n public get hs() {\n return this.hs$.value;\n }\n @Input() public set hs(value: HS) {\n this.hs$.next(value);\n }\n //#endregion\n //#region Luminosity\n luminosity$ = new BehaviorSubject<number>(0.5);\n @Output() luminosityChange = new EventEmitter<number>();\n public get luminosity() {\n return this.luminosity$.value;\n }\n @Input() public set luminosity(value: number) {\n this.luminosity$.next(value);\n }\n //#endregion\n\n private canvasContext: CanvasRenderingContext2D | null = null;\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n }\n\n resultBackground$: Observable<string>;\n}\n","<bs-slider [value]=\"(luminosity$ | async)!\" (valueChange)=\"luminosityChange.emit($event)\">\n <canvas bsTrack class=\"position-absolute w-100\" #canvas></canvas>\n <div bsThumb [style.background]=\"resultBackground$ | async\"></div>\n</bs-slider>","import { Component, EventEmitter, Input, Output, AfterViewInit, ViewChild, ElementRef } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable } from 'rxjs';\nimport { HS } from '../../interfaces/hs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'bs-alpha-strip',\n templateUrl: './alpha-strip.component.html',\n styleUrls: ['./alpha-strip.component.scss'],\n standalone: false,\n})\nexport class BsAlphaStripComponent implements AfterViewInit {\n\n constructor() {\n combineLatest([this.hs$, this.luminosity$]).pipe(takeUntilDestroyed()).subscribe(([hs, luminosity]) => {\n setTimeout(() => {\n if (this.canvasContext) {\n const width = this.canvas.nativeElement.width, height = this.canvas.nativeElement.height;\n this.canvasContext.clearRect(0, 0, width, height);\n this.canvasContext.save();\n \n const gradient = this.canvasContext.createLinearGradient(0, 0, width, 0);\n gradient.addColorStop(0, `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, 0)`);\n gradient.addColorStop(1, `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, 1)`);\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(0, 0, width, height);\n }\n });\n });\n\n this.resultBackground$ = combineLatest([this.hs$, this.luminosity$, this.alpha$])\n .pipe(map(([hs, luminosity, alpha]) => {\n return `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, ${alpha})`;\n }));\n\n this.alpha$.pipe(takeUntilDestroyed())\n .subscribe((alpha) => this.alphaChange.emit(alpha));\n }\n\n //#region HS\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n public get hs() {\n return this.hs$.value;\n }\n @Input() public set hs(value: HS) {\n this.hs$.next(value);\n }\n //#endregion\n //#region Luminosity\n luminosity$ = new BehaviorSubject<number>(0.5);\n public get luminosity() {\n return this.luminosity$.value;\n }\n @Input() public set luminosity(value: number) {\n this.luminosity$.next(value);\n }\n //#endregion\n //#region Alpha\n alpha$ = new BehaviorSubject<number>(1);\n @Output() alphaChange = new EventEmitter<number>();\n public get alpha() {\n return this.alpha$.value;\n }\n @Input() public set alpha(value: number) {\n this.alpha$.next(value);\n }\n //#endregion\n \n private canvasContext: CanvasRenderingContext2D | null = null;\n @ViewChild('track') canvas!: ElementRef<HTMLCanvasElement>;\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n }\n\n resultBackground$: Observable<string>;\n}\n","<bs-slider [value]=\"(alpha$ | async)!\" (valueChange)=\"alphaChange.emit($event)\">\n <canvas bsTrack class=\" track position-absolute w-100\" #track></canvas>\n\n <!-- [style.background]=\"resultBackground$ | async\" -->\n <div bsThumb [style.background]=\"resultBackground$ | async\"></div>\n</bs-slider>","import { Component, Input, ViewChild, EventEmitter, Output } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { HS } from \"../../interfaces/hs\";\nimport { BsColorWheelComponent } from \"../color-wheel/color-wheel.component\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\n\n@Component({\n selector: 'bs-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n standalone: false,\n})\nexport class BsColorPickerComponent {\n\n constructor() {\n this.alpha$.pipe(takeUntilDestroyed())\n .subscribe((alpha) => this.alphaChange.emit(alpha));\n }\n\n @ViewChild('wheel') colorWheel!: BsColorWheelComponent;\n @Input() set size(value: number) {\n this.size$.next(value);\n }\n @Input() set allowAlpha(value: boolean) {\n this.allowAlpha$.next(value);\n }\n \n size$ = new BehaviorSubject<number>(150);\n disabled$ = new BehaviorSubject<boolean>(false);\n allowAlpha$ = new BehaviorSubject<boolean>(true);\n\n hs$ = new BehaviorSubject<HS>({ hue: 0, saturation: 0 });\n luminosity$ = new BehaviorSubject<number>(0);\n\n //#region Alpha\n alpha$ = new BehaviorSubject<number>(1);\n @Output() alphaChange = new EventEmitter<number>();\n get alpha() {\n return this.alpha$.value;\n }\n @Input() set alpha(value: number) {\n this.alpha$.next(value);\n }\n //#endregion\n}\n","@let letDisabled = (disabled$ | async)!;\n@let letHS = (hs$ | async)!;\n@let letLuminosity = (luminosity$ | async)!;\n@let letAlpha = (alpha$ | async)!;\n\n<bs-color-wheel [hs]=\"letHS\" (hsChange)=\"hs$.next($event)\" [luminosity]=\"letLuminosity\" [width]=\"(size$ | async) ?? 150\" [height]=\"(size$ | async) ?? 150\" #wheel></bs-color-wheel>\n<bs-luminosity-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" (luminosityChange)=\"luminosity$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #strip></bs-luminosity-strip>\n@if (allowAlpha$ | async) {\n <bs-alpha-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" [alpha]=\"letAlpha\" (alphaChange)=\"alpha$.next($event)\" class=\"d-block mt-2\" [style.width.px]=\"size$ | async\" #alpha></bs-alpha-strip>\n}","import { Directive, Inject, forwardRef, AfterViewInit, DestroyRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { combineLatest } from 'rxjs';\nimport { BsColorPickerComponent } from '../../components/color-picker/color-picker.component';\nimport { RgbColor } from '../../interfaces/rgb-color';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Directive({\n selector: 'bs-color-picker',\n standalone: false,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n // useExisting: BsColorPickerValueAccessor,\n useExisting: forwardRef(() => BsColorPickerValueAccessor),\n multi: true\n }],\n exportAs: 'bsColorPicker'\n})\nexport class BsColorPickerValueAccessor implements AfterViewInit, ControlValueAccessor {\n\n constructor(@Inject(forwardRef(() => BsColorPickerComponent)) private host: BsColorPickerComponent, private destroy: DestroyRef) {\n }\n\n ngAfterViewInit() {\n combineLatest([this.host.hs$, this.host.luminosity$])\n .pipe(takeUntilDestroyed(this.destroy))\n .subscribe(([hs, luminosity]) => {\n const rgb = this.hsl2rgb(hs.hue, hs.saturation, luminosity);\n const hex = this.rgb2hex(rgb);\n setTimeout(() => this.onValueChange && this.onValueChange(hex), 10);\n })\n }\n\n public hsl2rgb(h: number, s: number, l: number) {\n const k = (n: number) => (n + h / 30) % 12;\n const a = s * Math.min(l, 1 - l);\n const f = (n: number) => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n const retValue = <RgbColor>{ r: 255 * f(0), g: 255 * f(8), b: 255 * f(4) };\n return retValue;\n }\n\n onValueChange?: (value: string) => void;\n onTouched?: () => void;\n\n //#region ControlValueAccessor implementation\n registerOnChange(fn: (_: any) => void) {\n this.onValueChange = fn;\n }\n \n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n writeValue(value: string | null) {\n if (this.host && this.host.colorWheel) {\n if (value) {\n const rgb = this.hex2rgb(value);\n const hsl = this.rgb2Hsl(rgb);\n this.host.hs$.next({ hue: hsl.h, saturation: hsl.s });\n this.host.luminosity$.next(hsl.l);\n }\n }\n }\n\n setDisabledState(isDisabled: boolean) {\n if (this.host && this.host.colorWheel) {\n this.host.colorWheel.disabled$.next(isDisabled);\n }\n }\n //#endregion\n\n //#region Color Conversion\n private rgb2hex(rgb: RgbColor) {\n return '#' + (Math.round((rgb.r << 16) + (rgb.g << 8) + rgb.b)).toString(16).padStart(6, '0');\n }\n\n private hex2rgb(hex: string): RgbColor {\n const r = parseInt(hex.slice(1, 3), 16),\n g = parseInt(hex.slice(3, 5), 16),\n b = parseInt(hex.slice(5, 7), 16);\n\n return { r, g, b };\n }\n /**\n * Divide 1 to n, handling floating point errors.\n * Ensures that the value is in between 0 and 1.\n **/\n private bound01(n: number, max: number) {\n n = Math.min(max, Math.max(0, n));\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n } else {\n return (n % max) / max;\n }\n }\n private rgb2Hsl(color: RgbColor) {\n const r01 = this.bound01(color.r, 255);\n const g01 = this.bound01(color.g, 255);\n const b01 = this.bound01(color.b, 255);\n\n const max = Math.max(r01, g01, b01);\n const min = Math.min(r01, g01, b01);\n\n let h: number, s: number;\n const l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r01:\n h = (g01 - b01) / d + (g01 < b01 ? 6 : 0);\n break;\n case g01:\n h = (b01 - r01) / d + 2;\n break;\n case b01:\n h = (r01 - g01) / d + 4;\n break;\n default: {\n throw 'Invalid operation';\n }\n }\n\n h /= 6;\n }\n\n h *= 360;\n\n return { h, s, l };\n }\n //#endregion\n}\n","import { NgModule } from '@angular/core';\nimport { AsyncPipe } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { BsColorPickerValueAccessor } from './directives/color-picker-value-accessor/color-picker-value-accessor.directive';\nimport { BsColorPickerComponent } from './components/color-picker/color-picker.component';\nimport { BsColorWheelComponent } from './components/color-wheel/color-wheel.component';\nimport { BsLuminosityStripComponent } from './components/luminosity-strip/luminosity-strip.component';\nimport { BsSliderComponent, BsThumbDirective, BsTrackDirective } from './components/slider/slider.component';\nimport { BsAlphaStripComponent } from './components/alpha-strip/alpha-strip.component';\n\n@NgModule({\n declarations: [\n BsColorPickerComponent,\n BsColorPickerValueAccessor,\n BsColorWheelComponent,\n BsLuminosityStripComponent,\n BsSliderComponent,\n BsThumbDirective,\n BsTrackDirective,\n BsAlphaStripComponent\n ],\n imports: [\n AsyncPipe,\n FormsModule,\n ],\n exports: [\n BsColorPickerComponent,\n BsColorPickerValueAccessor,\n BsColorWheelComponent,\n BsLuminosityStripComponent,\n BsSliderComponent,\n BsThumbDirective,\n BsTrackDirective,\n BsAlphaStripComponent\n ]\n})\nexport class BsColorPickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsSliderComponent","i1.BsThumbDirective","i1.BsTrackDirective","i2","i1.BsColorWheelComponent","i2.BsLuminosityStripComponent","i3.BsAlphaStripComponent","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-color-picker.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-wheel/color-wheel.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-wheel/color-wheel.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/slider/slider.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/slider/slider.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/luminosity-strip/luminosity-strip.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/luminosity-strip/luminosity-strip.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/alpha-strip/alpha-strip.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/alpha-strip/alpha-strip.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-picker/color-picker.component.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/components/color-picker/color-picker.component.html","../../../../libs/mintplayer-ng-bootstrap/color-picker/directives/color-picker-value-accessor/color-picker-value-accessor.directive.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/color-picker.module.ts","../../../../libs/mintplayer-ng-bootstrap/color-picker/mintplayer-ng-bootstrap-color-picker.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, HostBinding, HostListener, inject, model, output, signal, ViewChild } from '@angular/core';\nimport { HS } from '../../interfaces/hs';\nimport { HslColor } from '../../interfaces/hsl-color';\nimport { RgbColor } from '../../interfaces/rgb-color';\n\n@Component({\n selector: 'bs-color-wheel',\n templateUrl: './color-wheel.component.html',\n styleUrls: ['./color-wheel.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsColorWheelComponent {\n private element = inject(ElementRef<HTMLElement>);\n\n @HostBinding('class.position-relative') positionRelative = true;\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\n\n // Inputs\n width = model<number>(150);\n height = model<number>(150);\n diameterRatio = model<number>(0);\n luminosity = model<number>(0);\n\n // HS model with output\n hs = model<HS>({ hue: 0, saturation: 0 });\n hsChange = output<HS>();\n\n // Internal state\n disabled = signal<boolean>(false);\n viewInited = signal<boolean>(false);\n private isPointerDown = false;\n private canvasContext: CanvasRenderingContext2D | null = null;\n\n // Computed values\n squareSize = computed(() => {\n const width = this.width();\n const height = this.height();\n if (width === null || height === null) {\n return null;\n }\n return Math.min(width, height);\n });\n\n shiftX = computed(() => {\n const width = this.width();\n const height = this.height();\n if (width === null || height === null) {\n return null;\n } else if (width < height) {\n return 0;\n } else {\n return (width - height) / 2;\n }\n });\n\n shiftY = computed(() => {\n const width = this.width();\n const height = this.height();\n if (width === null || height === null) {\n return null;\n } else if (width < height) {\n return (height - width) / 2;\n } else {\n return 0;\n }\n });\n\n innerRadius = computed(() => {\n const squareSize = this.squareSize();\n const diameterRatio = this.diameterRatio();\n if (squareSize) {\n return squareSize / 2 * diameterRatio;\n } else {\n return 0;\n }\n });\n\n outerRadius = computed(() => {\n const squareSize = this.squareSize();\n if (squareSize) {\n return squareSize / 2;\n } else {\n return 150;\n }\n });\n\n markerPosition = computed(() => {\n const hs = this.hs();\n const shiftX = this.shiftX() ?? 0;\n const shiftY = this.shiftY() ?? 0;\n const position = this.color2position(hs);\n return {\n x: position.x + shiftX,\n y: position.y + shiftY,\n };\n });\n\n constructor() {\n // Draw color wheel when dimensions change\n effect(() => {\n const innerRadius = this.innerRadius();\n const outerRadius = this.outerRadius();\n const shiftX = this.shiftX();\n const shiftY = this.shiftY();\n\n // Use setTimeout to debounce slightly\n setTimeout(() => {\n if (this.canvasContext && innerRadius !== null && outerRadius !== null && shiftX !== null && shiftY !== null) {\n this.canvasContext.clearRect(0, 0, this.canvas.nativeElement.width, this.canvas.nativeElement.height);\n this.canvasContext.save();\n this.canvasContext.translate(shiftX + outerRadius, shiftY + outerRadius);\n\n for (let x = 0; x < 360; x++) {\n this.canvasContext.rotate(1 * Math.PI / 180);\n const gradient = this.canvasContext.createLinearGradient(innerRadius, 0, outerRadius, 0);\n\n gradient.addColorStop(0, `hsl(${x}, 0%, 50%)`);\n gradient.addColorStop(1, `hsl(${x}, 100%, 50%)`);\n\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(innerRadius, 0, outerRadius - innerRadius, outerRadius / 50);\n }\n\n this.canvasContext.restore();\n }\n }, 20);\n });\n\n // Emit HS changes\n effect(() => {\n const hs = this.hs();\n this.hsChange.emit(hs);\n });\n }\n\n ngAfterViewInit() {\n this.viewInited.set(true);\n if (typeof window !== 'undefined') {\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n }\n\n onPointerDown(ev: MouseEvent | TouchEvent) {\n if (!this.disabled()) {\n ev.preventDefault();\n ev.stopPropagation();\n this.isPointerDown = true;\n this.updateColor(ev, !('touches' in ev));\n }\n }\n\n onPointerMove(ev: MouseEvent | TouchEvent) {\n if (this.isPointerDown) {\n ev.preventDefault();\n ev.stopPropagation();\n this.updateColor(ev, !('touches' in ev));\n }\n }\n\n @HostListener('document:mousemove', ['$event'])\n onMouseMove(ev: MouseEvent) {\n this.onPointerMove(ev);\n }\n\n @HostListener('document:mouseup', ['$event'])\n onPointerUp(ev: MouseEvent | TouchEvent) {\n this.isPointerDown = false;\n }\n\n private updateColor(ev: MouseEvent | TouchEvent, subtract: boolean) {\n let co: { x: number, y: number };\n const rect = this.canvas.nativeElement.getBoundingClientRect();\n if ('touches' in ev) {\n co = {\n x: ev.touches[0].clientX - rect.left,\n y: ev.touches[0].clientY - rect.top,\n };\n } else {\n co = {\n x: ev.clientX - (subtract ? rect.left : 0),\n y: ev.clientY - (subtract ? rect.top : 0),\n };\n }\n\n const color = this.position2color(co.x, co.y);\n if (color) {\n this.hs.set({ hue: color.hue, saturation: color.saturation });\n } else {\n console.warn('Color is null');\n }\n }\n\n private isInsideCircle(x: number, y: number) {\n const squareSize = this.squareSize();\n const shiftX = this.shiftX();\n const shiftY = this.shiftY();\n\n // Position to the square\n const sx: number = x - (shiftX ?? 0);\n const sy = y - (shiftY ?? 0);\n // Square radius\n const sr = (squareSize ?? 0) / 2;\n\n const radius = Math.sqrt(Math.pow(sx - sr, 2) + Math.pow(sy - sr, 2));\n const angle = (Math.atan2(sr - sy, sr - sx) + Math.PI) % 360;\n return {\n inside: radius <= sr,\n angle\n };\n }\n\n private position2color(x: number, y: number): HslColor | null {\n if (!this.canvasContext) {\n return null;\n }\n\n const result = this.isInsideCircle(x, y);\n if (result.inside) {\n const imageData = this.canvasContext.getImageData(x, y, 1, 1).data;\n const hsl = this.rgb2Hsl({ r: imageData[0], g: imageData[1], b: imageData[2] });\n return hsl;\n }\n\n return { hue: result.angle * 180 / Math.PI, saturation: 1, luminosity: 0.5 };\n }\n\n private color2position(hs: HS) {\n let innerRadius = this.innerRadius();\n let outerRadius = this.outerRadius();\n\n if (innerRadius === null) {\n innerRadius = 0;\n }\n if (!outerRadius) {\n outerRadius = 100;\n }\n\n const theta = hs.hue * Math.PI / 180;\n const c = {\n x: -outerRadius * Math.cos(theta),\n y: -outerRadius * Math.sin(theta)\n };\n\n const d = hs.saturation * (outerRadius - innerRadius) + innerRadius;\n const o = { x: outerRadius, y: outerRadius };\n\n return {\n x: o.x - d * (c.x / outerRadius),\n y: o.y - d * (c.y / outerRadius),\n };\n }\n\n private rgb2Hsl(color: RgbColor) {\n const r01 = this.bound01(color.r, 255);\n const g01 = this.bound01(color.g, 255);\n const b01 = this.bound01(color.b, 255);\n\n const max = Math.max(r01, g01, b01);\n const min = Math.min(r01, g01, b01);\n\n let h: number, s: number; const l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = (l > 0.5) ? (d / (2 - max - min)) : (d / (max + min));\n switch (max) {\n case r01: {\n h = (g01 - b01) / d + ((g01 < b01) ? 6 : 0);\n } break;\n case g01: {\n h = (b01 - r01) / d + 2;\n } break;\n case b01: {\n h = (r01 - g01) / d + 4;\n } break;\n default: {\n throw 'Invalid operation';\n }\n }\n\n h /= 6;\n }\n\n h *= 360;\n\n return <HslColor>{ hue: h, saturation: s, luminosity: l };\n }\n\n /**\n * Divide 1 to n, handling floating point errors.\n * Ensures that the value is in between 0 and 1.\n **/\n private bound01(n: number, max: number) {\n n = Math.min(max, Math.max(0, n));\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n } else {\n return (n % max) / max;\n }\n }\n}\n","<canvas\n class=\"d-block\"\n [width]=\"width()\"\n [height]=\"height()\"\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\"\n #canvas></canvas>\n\n@if (markerPosition(); as markerPosition) {\n <div class=\"thumb position-absolute pe-none\" [style.left.px]=\"markerPosition.x\" [style.top.px]=\"markerPosition.y\"></div>\n}\n","import { ChangeDetectionStrategy, Component, computed, Directive, effect, ElementRef, HostBinding, HostListener, inject, model, NgZone, output, signal, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'bs-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsSliderComponent {\n private element = inject(ElementRef<HTMLElement>);\n private zone = inject(NgZone);\n\n @HostBinding('class.d-block') dBlock = true;\n @HostBinding('class.position-relative') positionRelative = true;\n @ViewChild('track') track!: ElementRef<HTMLDivElement>;\n @ViewChild('thumb') thumb!: ElementRef<HTMLDivElement>;\n\n value = model<number>(0.5);\n valueChange = output<number>();\n private isPointerDown = signal<boolean>(false);\n\n thumbMarginLeft = computed(() => {\n const value = this.value();\n const res = value * this.element.nativeElement.clientWidth - 12;\n return res;\n });\n\n cursorClass = computed(() => {\n return this.isPointerDown() ? 'cursor-grabbing' : 'cursor-grab';\n });\n\n constructor() {\n effect(() => {\n const value = this.value();\n this.valueChange.emit(value);\n });\n }\n\n onPointerDown(ev: MouseEvent | TouchEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n this.zone.run(() => this.isPointerDown.set(true));\n this.updateColor(ev);\n }\n\n @HostListener('document:mousemove', ['$event'])\n onPointerMove(ev: MouseEvent | TouchEvent) {\n if (this.isPointerDown()) {\n ev.preventDefault();\n ev.stopPropagation();\n this.updateColor(ev);\n }\n }\n\n @HostListener('document:mouseup', ['$event'])\n onPointerUp(ev: MouseEvent | TouchEvent) {\n this.isPointerDown.set(false);\n }\n\n private updateColor(ev: MouseEvent | TouchEvent) {\n let co: { x: number };\n const rect = this.track.nativeElement.getBoundingClientRect();\n if ('touches' in ev) {\n co = {\n x: ev.touches[0].clientX - rect.left,\n };\n } else {\n co = {\n x: ev.clientX - rect.left,\n };\n }\n\n const percent = co.x / this.track.nativeElement.clientWidth;\n const limited = Math.max(0, Math.min(1, percent));\n this.value.set(limited);\n }\n}\n\n@Directive({\n selector: '[bsThumb]',\n standalone: false,\n})\nexport class BsThumbDirective {\n @HostBinding('class.thumb')\n @HostBinding('class.position-absolute')\n thumbClass = true;\n}\n\n@Directive({\n selector: '[bsTrack]',\n standalone: false,\n})\nexport class BsTrackDirective {\n @HostBinding('class.track') trackClass = true;\n}","<div class=\"wrapper d-block position-relative\">\n <div #track class=\"track2\"\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\">\n <ng-content select=\"[bsTrack]\"></ng-content>\n </div>\n <div #thumb\n (mousedown)=\"onPointerDown($event)\"\n (touchstart)=\"onPointerDown($event)\"\n (touchmove)=\"onPointerMove($event)\"\n (touchend)=\"onPointerUp($event)\"\n [class]=\"cursorClass()\"\n [style.margin-left.px]=\"thumbMarginLeft()\">\n <ng-content select=\"[bsThumb]\"></ng-content>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, model, output, ViewChild } from '@angular/core';\nimport { HS } from '../../interfaces/hs';\n\n@Component({\n selector: 'bs-luminosity-strip',\n templateUrl: './luminosity-strip.component.html',\n styleUrls: ['./luminosity-strip.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsLuminosityStripComponent {\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\n\n hs = model<HS>({ hue: 0, saturation: 0 });\n luminosity = model<number>(0.5);\n luminosityChange = output<number>();\n\n private canvasContext: CanvasRenderingContext2D | null = null;\n\n resultBackground = computed(() => {\n const hs = this.hs();\n const luminosity = this.luminosity();\n return `hsl(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%)`;\n });\n\n constructor() {\n // Draw gradient when HS changes\n effect(() => {\n const hs = this.hs();\n if (this.canvasContext) {\n const width = this.canvas.nativeElement.width;\n const height = this.canvas.nativeElement.height;\n this.canvasContext.clearRect(0, 0, width, height);\n this.canvasContext.save();\n\n const gradient = this.canvasContext.createLinearGradient(0, 0, width, 0);\n gradient.addColorStop(0, `hsl(${hs.hue}, ${hs.saturation * 100}%, 0%)`);\n gradient.addColorStop(0.5, `hsl(${hs.hue}, ${hs.saturation * 100}%, 50%)`);\n gradient.addColorStop(1, `hsl(${hs.hue}, ${hs.saturation * 100}%, 100%)`);\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(0, 0, width, height);\n }\n });\n\n // Emit luminosity changes\n effect(() => {\n const luminosity = this.luminosity();\n this.luminosityChange.emit(luminosity);\n });\n }\n\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n }\n}\n","<bs-slider [value]=\"luminosity()\" (valueChange)=\"luminosityChange.emit($event)\">\n <canvas bsTrack class=\"position-absolute w-100\" #canvas></canvas>\n <div bsThumb [style.background]=\"resultBackground()\"></div>\n</bs-slider>\n","import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, model, output, ViewChild } from '@angular/core';\nimport { HS } from '../../interfaces/hs';\n\n@Component({\n selector: 'bs-alpha-strip',\n templateUrl: './alpha-strip.component.html',\n styleUrls: ['./alpha-strip.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsAlphaStripComponent {\n @ViewChild('track') canvas!: ElementRef<HTMLCanvasElement>;\n\n hs = model<HS>({ hue: 0, saturation: 0 });\n luminosity = model<number>(0.5);\n alpha = model<number>(1);\n alphaChange = output<number>();\n\n private canvasContext: CanvasRenderingContext2D | null = null;\n\n resultBackground = computed(() => {\n const hs = this.hs();\n const luminosity = this.luminosity();\n const alpha = this.alpha();\n return `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, ${alpha})`;\n });\n\n constructor() {\n // Draw gradient when HS or luminosity changes\n effect(() => {\n const hs = this.hs();\n const luminosity = this.luminosity();\n setTimeout(() => {\n if (this.canvasContext) {\n const width = this.canvas.nativeElement.width;\n const height = this.canvas.nativeElement.height;\n this.canvasContext.clearRect(0, 0, width, height);\n this.canvasContext.save();\n\n const gradient = this.canvasContext.createLinearGradient(0, 0, width, 0);\n gradient.addColorStop(0, `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, 0)`);\n gradient.addColorStop(1, `hsla(${hs.hue}, ${hs.saturation * 100}%, ${luminosity * 100}%, 1)`);\n this.canvasContext.fillStyle = gradient;\n this.canvasContext.fillRect(0, 0, width, height);\n }\n });\n });\n\n // Emit alpha changes\n effect(() => {\n const alpha = this.alpha();\n this.alphaChange.emit(alpha);\n });\n }\n\n ngAfterViewInit() {\n if (typeof window !== 'undefined') {\n this.canvasContext = this.canvas.nativeElement.getContext('2d', { willReadFrequently: true });\n }\n }\n}\n","<bs-slider [value]=\"alpha()\" (valueChange)=\"alphaChange.emit($event)\">\n <canvas bsTrack class=\" track position-absolute w-100\" #track></canvas>\n\n <!-- [style.background]=\"resultBackground()\" -->\n <div bsThumb [style.background]=\"resultBackground()\"></div>\n</bs-slider>\n","import { ChangeDetectionStrategy, Component, effect, input, model, output, signal, ViewChild } from \"@angular/core\";\nimport { HS } from \"../../interfaces/hs\";\nimport { BsColorWheelComponent } from \"../color-wheel/color-wheel.component\";\n\n@Component({\n selector: 'bs-color-picker',\n templateUrl: './color-picker.component.html',\n styleUrls: ['./color-picker.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsColorPickerComponent {\n\n @ViewChild('wheel') colorWheel!: BsColorWheelComponent;\n\n size = input<number>(150);\n disabled = signal<boolean>(false);\n allowAlpha = input<boolean>(true);\n\n hs = signal<HS>({ hue: 0, saturation: 0 });\n luminosity = signal<number>(0);\n\n alpha = model<number>(1);\n alphaChange = output<number>();\n\n constructor() {\n effect(() => {\n const alpha = this.alpha();\n this.alphaChange.emit(alpha);\n });\n }\n}\n","@let letDisabled = disabled();\n@let letHS = hs();\n@let letLuminosity = luminosity();\n@let letAlpha = alpha();\n\n<bs-color-wheel [hs]=\"letHS\" (hsChange)=\"hs.set($event)\" [luminosity]=\"letLuminosity\" [width]=\"size()\" [height]=\"size()\" #wheel></bs-color-wheel>\n<bs-luminosity-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" (luminosityChange)=\"luminosity.set($event)\" class=\"d-block mt-2\" [style.width.px]=\"size()\" #strip></bs-luminosity-strip>\n@if (allowAlpha()) {\n <bs-alpha-strip [hs]=\"letHS\" [luminosity]=\"letLuminosity\" [alpha]=\"letAlpha\" (alphaChange)=\"alpha.set($event)\" class=\"d-block mt-2\" [style.width.px]=\"size()\" #alphaStrip></bs-alpha-strip>\n}\n","import { Directive, effect, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BsColorPickerComponent } from '../../components/color-picker/color-picker.component';\nimport { RgbColor } from '../../interfaces/rgb-color';\n\n@Directive({\n selector: 'bs-color-picker',\n standalone: false,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BsColorPickerValueAccessor),\n multi: true\n }],\n exportAs: 'bsColorPicker'\n})\nexport class BsColorPickerValueAccessor implements ControlValueAccessor {\n private host = inject(BsColorPickerComponent);\n\n onValueChange?: (value: string) => void;\n onTouched?: () => void;\n\n constructor() {\n // Effect to emit value changes\n effect(() => {\n const hs = this.host.hs();\n const luminosity = this.host.luminosity();\n const rgb = this.hsl2rgb(hs.hue, hs.saturation, luminosity);\n const hex = this.rgb2hex(rgb);\n setTimeout(() => this.onValueChange && this.onValueChange(hex), 10);\n });\n }\n\n public hsl2rgb(h: number, s: number, l: number) {\n const k = (n: number) => (n + h / 30) % 12;\n const a = s * Math.min(l, 1 - l);\n const f = (n: number) => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n const retValue = <RgbColor>{ r: 255 * f(0), g: 255 * f(8), b: 255 * f(4) };\n return retValue;\n }\n\n //#region ControlValueAccessor implementation\n registerOnChange(fn: (_: any) => void) {\n this.onValueChange = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouched = fn;\n }\n\n writeValue(value: string | null) {\n if (this.host && this.host.colorWheel) {\n if (value) {\n const rgb = this.hex2rgb(value);\n const hsl = this.rgb2Hsl(rgb);\n this.host.hs.set({ hue: hsl.h, saturation: hsl.s });\n this.host.luminosity.set(hsl.l);\n }\n }\n }\n\n setDisabledState(isDisabled: boolean) {\n if (this.host && this.host.colorWheel) {\n this.host.colorWheel.disabled.set(isDisabled);\n }\n }\n //#endregion\n\n //#region Color Conversion\n private rgb2hex(rgb: RgbColor) {\n return '#' + (Math.round((rgb.r << 16) + (rgb.g << 8) + rgb.b)).toString(16).padStart(6, '0');\n }\n\n private hex2rgb(hex: string): RgbColor {\n const r = parseInt(hex.slice(1, 3), 16),\n g = parseInt(hex.slice(3, 5), 16),\n b = parseInt(hex.slice(5, 7), 16);\n\n return { r, g, b };\n }\n /**\n * Divide 1 to n, handling floating point errors.\n * Ensures that the value is in between 0 and 1.\n **/\n private bound01(n: number, max: number) {\n n = Math.min(max, Math.max(0, n));\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n } else {\n return (n % max) / max;\n }\n }\n private rgb2Hsl(color: RgbColor) {\n const r01 = this.bound01(color.r, 255);\n const g01 = this.bound01(color.g, 255);\n const b01 = this.bound01(color.b, 255);\n\n const max = Math.max(r01, g01, b01);\n const min = Math.min(r01, g01, b01);\n\n let h: number, s: number;\n const l = (max + min) / 2;\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r01:\n h = (g01 - b01) / d + (g01 < b01 ? 6 : 0);\n break;\n case g01:\n h = (b01 - r01) / d + 2;\n break;\n case b01:\n h = (r01 - g01) / d + 4;\n break;\n default: {\n throw 'Invalid operation';\n }\n }\n\n h /= 6;\n }\n\n h *= 360;\n\n return { h, s, l };\n }\n //#endregion\n}\n","import { NgModule } from '@angular/core';\nimport { AsyncPipe } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { BsColorPickerValueAccessor } from './directives/color-picker-value-accessor/color-picker-value-accessor.directive';\nimport { BsColorPickerComponent } from './components/color-picker/color-picker.component';\nimport { BsColorWheelComponent } from './components/color-wheel/color-wheel.component';\nimport { BsLuminosityStripComponent } from './components/luminosity-strip/luminosity-strip.component';\nimport { BsSliderComponent, BsThumbDirective, BsTrackDirective } from './components/slider/slider.component';\nimport { BsAlphaStripComponent } from './components/alpha-strip/alpha-strip.component';\n\n@NgModule({\n declarations: [\n BsColorPickerComponent,\n BsColorPickerValueAccessor,\n BsColorWheelComponent,\n BsLuminosityStripComponent,\n BsSliderComponent,\n BsThumbDirective,\n BsTrackDirective,\n BsAlphaStripComponent\n ],\n imports: [\n AsyncPipe,\n FormsModule,\n ],\n exports: [\n BsColorPickerComponent,\n BsColorPickerValueAccessor,\n BsColorWheelComponent,\n BsLuminosityStripComponent,\n BsSliderComponent,\n BsThumbDirective,\n BsTrackDirective,\n BsAlphaStripComponent\n ]\n})\nexport class BsColorPickerModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsSliderComponent","i1.BsThumbDirective","i1.BsTrackDirective","i1.BsColorWheelComponent","i2.BsLuminosityStripComponent","i3.BsAlphaStripComponent"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Input, Directive,
|
|
2
|
+
import { inject, TemplateRef, Input, Directive, signal, computed, model, ContentChildren, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
5
5
|
import * as i2 from '@mintplayer/ng-bootstrap/grid';
|
|
@@ -8,7 +8,6 @@ import * as i3 from '@mintplayer/ng-bootstrap/table';
|
|
|
8
8
|
import { BsTableComponent } from '@mintplayer/ng-bootstrap/table';
|
|
9
9
|
import * as i4 from '@mintplayer/ng-bootstrap/pagination';
|
|
10
10
|
import { BsPaginationComponent } from '@mintplayer/ng-bootstrap/pagination';
|
|
11
|
-
import { BehaviorSubject, map } from 'rxjs';
|
|
12
11
|
|
|
13
12
|
class DatatableSettings {
|
|
14
13
|
constructor(data) {
|
|
@@ -48,12 +47,12 @@ class DatatableSettings {
|
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
class BsDatatableColumnDirective {
|
|
51
|
-
constructor(
|
|
50
|
+
constructor() {
|
|
51
|
+
this.templateRef = inject(TemplateRef);
|
|
52
52
|
this.name = '';
|
|
53
53
|
this.sortable = true;
|
|
54
|
-
this.templateRef = templateRef;
|
|
55
54
|
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsDatatableColumnDirective, deps: [
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsDatatableColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
57
56
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: BsDatatableColumnDirective, isStandalone: false, selector: "[bsDatatableColumn]", inputs: { name: ["bsDatatableColumn", "name"], sortable: ["bsDatatableColumnSortable", "sortable"] }, ngImport: i0 }); }
|
|
58
57
|
}
|
|
59
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsDatatableColumnDirective, decorators: [{
|
|
@@ -62,7 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
62
61
|
selector: '[bsDatatableColumn]',
|
|
63
62
|
standalone: false,
|
|
64
63
|
}]
|
|
65
|
-
}],
|
|
64
|
+
}], propDecorators: { name: [{
|
|
66
65
|
type: Input,
|
|
67
66
|
args: ['bsDatatableColumn']
|
|
68
67
|
}], sortable: [{
|
|
@@ -72,63 +71,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
72
71
|
|
|
73
72
|
class BsDatatableComponent {
|
|
74
73
|
constructor() {
|
|
75
|
-
|
|
76
|
-
this.
|
|
77
|
-
this.
|
|
78
|
-
this.
|
|
79
|
-
this.settings.sortProperty = '';
|
|
80
|
-
this.settings.sortDirection = 'ascending';
|
|
81
|
-
this.settings.perPage = { values: [10, 20, 50], selected: 20 };
|
|
82
|
-
this.settings.page = { values: [1], selected: 1 };
|
|
83
|
-
this.numberOfColumns$ = this.columns$.pipe(map(columns => columns.length));
|
|
74
|
+
this._columns = signal([], ...(ngDevMode ? [{ debugName: "_columns" }] : []));
|
|
75
|
+
this.numberOfColumns = computed(() => this._columns().length, ...(ngDevMode ? [{ debugName: "numberOfColumns" }] : []));
|
|
76
|
+
this.settings = model(new DatatableSettings(), ...(ngDevMode ? [{ debugName: "settings" }] : []));
|
|
77
|
+
this.data = model(undefined, ...(ngDevMode ? [{ debugName: "data" }] : []));
|
|
84
78
|
}
|
|
85
79
|
set columns(value) {
|
|
86
|
-
this.
|
|
80
|
+
this._columns.set([...value]);
|
|
81
|
+
}
|
|
82
|
+
get columnsArray() {
|
|
83
|
+
return this._columns();
|
|
87
84
|
}
|
|
88
85
|
columnHeaderClicked(column) {
|
|
89
86
|
if (column.sortable) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
87
|
+
const currentSettings = this.settings();
|
|
88
|
+
if (currentSettings.sortProperty !== column.name) {
|
|
89
|
+
currentSettings.sortProperty = column.name;
|
|
90
|
+
currentSettings.sortDirection = 'ascending';
|
|
93
91
|
}
|
|
94
|
-
else if (
|
|
95
|
-
|
|
92
|
+
else if (currentSettings.sortDirection === 'descending') {
|
|
93
|
+
currentSettings.sortDirection = 'ascending';
|
|
96
94
|
}
|
|
97
95
|
else {
|
|
98
|
-
|
|
96
|
+
currentSettings.sortDirection = 'descending';
|
|
99
97
|
}
|
|
100
|
-
this.
|
|
98
|
+
this.settings.set(new DatatableSettings(currentSettings));
|
|
101
99
|
}
|
|
102
100
|
}
|
|
101
|
+
onPerPageChange(perPage) {
|
|
102
|
+
const currentSettings = this.settings();
|
|
103
|
+
currentSettings.perPage.selected = perPage;
|
|
104
|
+
currentSettings.page.selected = 1;
|
|
105
|
+
this.settings.set(new DatatableSettings(currentSettings));
|
|
106
|
+
}
|
|
107
|
+
onPageChange(page) {
|
|
108
|
+
const currentSettings = this.settings();
|
|
109
|
+
currentSettings.page.selected = page;
|
|
110
|
+
this.settings.set(new DatatableSettings(currentSettings));
|
|
111
|
+
}
|
|
103
112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsDatatableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BsDatatableComponent, isStandalone: false, selector: "bs-datatable", inputs: { settings: "settings", data: "data" }, outputs: {
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: BsDatatableComponent, isStandalone: false, selector: "bs-datatable", inputs: { settings: { classPropertyName: "settings", publicName: "settings", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { settings: "settingsChange", data: "dataChange" }, queries: [{ propertyName: "columns", predicate: BsDatatableColumnDirective }], ngImport: i0, template: "<bs-table [isResponsive]=\"true\" [striped]=\"true\" [hover]=\"true\" class=\"mb-3\">\n <thead>\n <tr>\n @for (column of columnsArray; track column) {\n <th class=\"text-nowrap\"\n [class.sort]=\"column.sortable\"\n [class.sort-asc]=\"column.sortable && (settings().sortProperty === column.name) && (settings().sortDirection === 'ascending')\"\n [class.sort-desc]=\"column.sortable && (settings().sortProperty === column.name) && (settings().sortDirection === 'descending')\"\n (click)=\"columnHeaderClicked(column)\">\n <ng-container *ngTemplateOutlet=\"column.templateRef\"></ng-container>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!!data() && !!rowTemplate) {\n @for (item of data()!.data; track $index) {\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: item }\"></ng-container>\n }\n }\n </tbody>\n <tfoot>\n <tr>\n <td [colSpan]=\"numberOfColumns()\">\n <bs-grid [stopFullWidthAt]=\"'never'\">\n <div bsRow>\n <div [md]=\"12\">\n <bs-pagination class=\"float-start\" [pageNumbers]=\"settings().perPage.values\"\n [selectedPageNumber]=\"settings().perPage.selected\" (selectedPageNumberChange)=\"onPerPageChange($event)\"\n [showArrows]=\"false\"></bs-pagination>\n <bs-pagination class=\"float-end\" [pageNumbers]=\"settings().page.values\"\n [selectedPageNumber]=\"settings().page.selected\" (selectedPageNumberChange)=\"onPageChange($event)\"\n [showArrows]=\"true\"></bs-pagination>\n </div>\n </div>\n </bs-grid>\n </td>\n </tr>\n </tfoot>\n</bs-table>\n", styles: ["@charset \"UTF-8\";tfoot>tr>td{border-bottom:none}bs-table thead th.sort{position:relative;cursor:pointer;padding-right:2rem}bs-table thead th.sort:before,bs-table thead th.sort:after{position:absolute;display:block;opacity:.3;bottom:.5em}bs-table thead th.sort:before{content:\"\\2191\";right:1em}bs-table thead th.sort:after{content:\"\\2193\";right:.5em}bs-table thead th.sort.sort-asc:after{opacity:1}bs-table thead th.sort.sort-desc:before{opacity:1}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.BsGridComponent, selector: "bs-grid", inputs: ["stopFullWidthAt"] }, { kind: "directive", type: i2.BsGridRowDirective, selector: "[bsRow]" }, { kind: "directive", type: i2.BsGridColumnDirective, selector: "[xxs],[xs],[sm],[md],[lg],[xl],[xxl]", inputs: ["xxs", "xs", "sm", "md", "lg", "xl", "xxl"] }, { kind: "component", type: i3.BsTableComponent, selector: "bs-table", inputs: ["isResponsive", "striped", "hover"] }, { kind: "component", type: i4.BsPaginationComponent, selector: "bs-pagination", inputs: ["pageNumbers", "selectedPageNumber", "numberOfBoxes", "showArrows", "size"], outputs: ["selectedPageNumberChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
105
114
|
}
|
|
106
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsDatatableComponent, decorators: [{
|
|
107
116
|
type: Component,
|
|
108
|
-
args: [{ selector: 'bs-datatable', standalone: false, template: "<bs-table [isResponsive]=\"true\" [striped]=\"true\" [hover]=\"true\" class=\"mb-3\">\n <thead>\n <tr>\n @for (column of
|
|
109
|
-
}],
|
|
117
|
+
args: [{ selector: 'bs-datatable', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<bs-table [isResponsive]=\"true\" [striped]=\"true\" [hover]=\"true\" class=\"mb-3\">\n <thead>\n <tr>\n @for (column of columnsArray; track column) {\n <th class=\"text-nowrap\"\n [class.sort]=\"column.sortable\"\n [class.sort-asc]=\"column.sortable && (settings().sortProperty === column.name) && (settings().sortDirection === 'ascending')\"\n [class.sort-desc]=\"column.sortable && (settings().sortProperty === column.name) && (settings().sortDirection === 'descending')\"\n (click)=\"columnHeaderClicked(column)\">\n <ng-container *ngTemplateOutlet=\"column.templateRef\"></ng-container>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!!data() && !!rowTemplate) {\n @for (item of data()!.data; track $index) {\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: item }\"></ng-container>\n }\n }\n </tbody>\n <tfoot>\n <tr>\n <td [colSpan]=\"numberOfColumns()\">\n <bs-grid [stopFullWidthAt]=\"'never'\">\n <div bsRow>\n <div [md]=\"12\">\n <bs-pagination class=\"float-start\" [pageNumbers]=\"settings().perPage.values\"\n [selectedPageNumber]=\"settings().perPage.selected\" (selectedPageNumberChange)=\"onPerPageChange($event)\"\n [showArrows]=\"false\"></bs-pagination>\n <bs-pagination class=\"float-end\" [pageNumbers]=\"settings().page.values\"\n [selectedPageNumber]=\"settings().page.selected\" (selectedPageNumberChange)=\"onPageChange($event)\"\n [showArrows]=\"true\"></bs-pagination>\n </div>\n </div>\n </bs-grid>\n </td>\n </tr>\n </tfoot>\n</bs-table>\n", styles: ["@charset \"UTF-8\";tfoot>tr>td{border-bottom:none}bs-table thead th.sort{position:relative;cursor:pointer;padding-right:2rem}bs-table thead th.sort:before,bs-table thead th.sort:after{position:absolute;display:block;opacity:.3;bottom:.5em}bs-table thead th.sort:before{content:\"\\2191\";right:1em}bs-table thead th.sort:after{content:\"\\2193\";right:.5em}bs-table thead th.sort.sort-asc:after{opacity:1}bs-table thead th.sort.sort-desc:before{opacity:1}\n"] }]
|
|
118
|
+
}], propDecorators: { columns: [{
|
|
110
119
|
type: ContentChildren,
|
|
111
120
|
args: [BsDatatableColumnDirective]
|
|
112
|
-
}], settings: [{
|
|
113
|
-
type: Input
|
|
114
|
-
}], data: [{
|
|
115
|
-
type: Input
|
|
116
|
-
}], settingsChange: [{
|
|
117
|
-
type: Output
|
|
118
|
-
}] } });
|
|
121
|
+
}], settings: [{ type: i0.Input, args: [{ isSignal: true, alias: "settings", required: false }] }, { type: i0.Output, args: ["settingsChange"] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }, { type: i0.Output, args: ["dataChange"] }] } });
|
|
119
122
|
|
|
120
123
|
class BsRowTemplateDirective {
|
|
121
|
-
constructor(
|
|
122
|
-
this.datatableComponent =
|
|
123
|
-
this.
|
|
124
|
+
constructor() {
|
|
125
|
+
this.datatableComponent = inject(BsDatatableComponent);
|
|
126
|
+
this.templateRef = inject(TemplateRef);
|
|
127
|
+
this.datatableComponent.rowTemplate = this.templateRef;
|
|
124
128
|
}
|
|
125
129
|
set bsRowTemplateOf(value) {
|
|
126
|
-
this.datatableComponent.data
|
|
130
|
+
this.datatableComponent.data.set(value);
|
|
127
131
|
}
|
|
128
132
|
static ngTemplateContextGuard(dir, ctx) {
|
|
129
133
|
return true;
|
|
130
134
|
}
|
|
131
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsRowTemplateDirective, deps: [
|
|
135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsRowTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
132
136
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: BsRowTemplateDirective, isStandalone: false, selector: "[bsRowTemplate]", inputs: { bsRowTemplateOf: "bsRowTemplateOf" }, ngImport: i0 }); }
|
|
133
137
|
}
|
|
134
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: BsRowTemplateDirective, decorators: [{
|
|
@@ -137,7 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
137
141
|
selector: '[bsRowTemplate]',
|
|
138
142
|
standalone: false,
|
|
139
143
|
}]
|
|
140
|
-
}], ctorParameters: () => [
|
|
144
|
+
}], ctorParameters: () => [], propDecorators: { bsRowTemplateOf: [{
|
|
141
145
|
type: Input
|
|
142
146
|
}] } });
|
|
143
147
|
class BsRowTemplateContext {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-datatable.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/datatable/src/datatable-settings.ts","../../../../libs/mintplayer-ng-bootstrap/datatable/src/datatable-column/datatable-column.directive.ts","../../../../libs/mintplayer-ng-bootstrap/datatable/src/datatable/datatable.component.ts","../../../../libs/mintplayer-ng-bootstrap/datatable/src/datatable/datatable.component.html","../../../../libs/mintplayer-ng-bootstrap/datatable/src/row-template/row-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/datatable/src/datatable.module.ts","../../../../libs/mintplayer-ng-bootstrap/datatable/mintplayer-ng-bootstrap-datatable.ts"],"sourcesContent":["import { PaginationRequest } from \"@mintplayer/pagination\";\n\nexport class DatatableSettings {\n constructor(data?: Partial<DatatableSettings>) {\n Object.assign(this, data);\n\n if (data && data.perPage) {\n this.perPage = data.perPage;\n } else {\n // Set default value\n this.perPage = {\n values: [10, 20, 50],\n selected: 20\n };\n }\n \n if (data && data.page) {\n this.page = data.page;\n } else {\n // Set default value\n this.page = {\n values: [1],\n selected: 1\n };\n }\n }\n\n public sortProperty = '';\n public sortDirection: 'ascending' | 'descending' = 'ascending';\n public perPage: { values: number[], selected: number };\n public page: { values: number[], selected: number };\n\n public toPagination() {\n const res = <PaginationRequest>{\n sortProperty: this.sortProperty,\n sortDirection: this.sortDirection,\n perPage: this.perPage.selected,\n page: this.page.selected\n };\n return res;\n }\n}","import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[bsDatatableColumn]',\n standalone: false,\n})\nexport class BsDatatableColumnDirective {\n\n constructor(templateRef: TemplateRef<any>) {\n this.templateRef = templateRef;\n }\n\n templateRef: TemplateRef<any>;\n @Input('bsDatatableColumn') public name = '';\n @Input('bsDatatableColumnSortable') public sortable = true;\n\n}","import { Component, Input, ContentChildren, TemplateRef, EventEmitter, Output } from '@angular/core';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { PaginationResponse } from '@mintplayer/pagination';\nimport { DatatableSettings } from '../datatable-settings';\nimport { BsDatatableColumnDirective } from '../datatable-column/datatable-column.directive';\nimport { BsRowTemplateContext } from '../row-template/row-template.directive';\n\n\n@Component({\n selector: 'bs-datatable',\n templateUrl: './datatable.component.html',\n styleUrls: ['./datatable.component.scss'],\n standalone: false,\n})\nexport class BsDatatableComponent<TData> {\n\n constructor() {\n this.settings = new DatatableSettings();\n this.settings.sortProperty = '';\n this.settings.sortDirection = 'ascending';\n this.settings.perPage = { values: [10, 20, 50], selected: 20 };\n this.settings.page = { values: [1], selected: 1 };\n\n this.numberOfColumns$ = this.columns$.pipe(map(columns => columns.length));\n }\n \n //#region Columns\n columns$ = new BehaviorSubject<BsDatatableColumnDirective[]>([]);\n numberOfColumns$: Observable<number>;\n @ContentChildren(BsDatatableColumnDirective) set columns(value: BsDatatableColumnDirective[]) {\n this.columns$.next(value);\n }\n //#endregion\n\n @Input() settings: DatatableSettings;\n @Input() data?: PaginationResponse<TData>;\n rowTemplate?: TemplateRef<BsRowTemplateContext<TData>>;\n @Output() settingsChange = new EventEmitter<DatatableSettings>();\n\n columnHeaderClicked(column: BsDatatableColumnDirective) {\n if (column.sortable) {\n if (this.settings.sortProperty !== column.name) {\n this.settings.sortProperty = column.name;\n this.settings.sortDirection = 'ascending';\n } else if (this.settings.sortDirection === 'descending') {\n this.settings.sortDirection = 'ascending';\n } else {\n this.settings.sortDirection = 'descending';\n }\n this.settingsChange.emit(this.settings);\n }\n }\n\n}\n","<bs-table [isResponsive]=\"true\" [striped]=\"true\" [hover]=\"true\" class=\"mb-3\">\n <thead>\n <tr>\n @for (column of (columns$ | async); track column) {\n <th class=\"text-nowrap\"\n [class.sort]=\"column.sortable\"\n [class.sort-asc]=\"column.sortable && (settings.sortProperty === column.name) && (settings.sortDirection === 'ascending')\"\n [class.sort-desc]=\"column.sortable && (settings.sortProperty === column.name) && (settings.sortDirection === 'descending')\"\n (click)=\"columnHeaderClicked(column)\">\n <ng-container *ngTemplateOutlet=\"column.templateRef\"></ng-container>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!!data && !!rowTemplate) {\n @for (item of data.data; track item) {\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: item }\"></ng-container>\n }\n }\n </tbody>\n <tfoot>\n <tr>\n <td [colSpan]=\"numberOfColumns$ | async\">\n <bs-grid [stopFullWidthAt]=\"'never'\">\n <div bsRow>\n <div [md]=\"12\">\n <bs-pagination class=\"float-start\" [pageNumbers]=\"settings.perPage.values\"\n [(selectedPageNumber)]=\"settings.perPage.selected\" (selectedPageNumberChange)=\"settingsChange.emit(settings)\"\n [showArrows]=\"false\"></bs-pagination>\n <bs-pagination class=\"float-end\" [pageNumbers]=\"settings.page.values\"\n [(selectedPageNumber)]=\"settings.page.selected\" (selectedPageNumberChange)=\"settingsChange.emit(settings)\"\n [showArrows]=\"true\"></bs-pagination>\n </div>\n </div>\n </bs-grid>\n </td>\n </tr>\n </tfoot>\n</bs-table>","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { PaginationResponse } from '@mintplayer/pagination';\nimport { BsDatatableComponent } from '../datatable/datatable.component';\n\n@Directive({\n selector: '[bsRowTemplate]',\n standalone: false,\n})\nexport class BsRowTemplateDirective<TData> {\n\n constructor(private datatableComponent: BsDatatableComponent<TData>, templateRef: TemplateRef<BsRowTemplateContext<TData>>) {\n this.datatableComponent.rowTemplate = templateRef;\n }\n\n @Input() set bsRowTemplateOf(value: PaginationResponse<TData> | undefined) {\n this.datatableComponent.data = value;\n }\n \n public static ngTemplateContextGuard<TData>(\n dir: BsRowTemplateDirective<TData>,\n ctx: any\n ): ctx is BsRowTemplateContext<Exclude<TData, false | 0 | '' | null | undefined>> {\n return true;\n }\n}\n\nexport class BsRowTemplateContext<TData = unknown> {\n public $implicit: TData = null!;\n}","import { NgModule } from '@angular/core';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { BsGridModule } from '@mintplayer/ng-bootstrap/grid';\nimport { BsTableComponent } from '@mintplayer/ng-bootstrap/table';\nimport { BsPaginationComponent } from '@mintplayer/ng-bootstrap/pagination';\nimport { BsDatatableComponent } from './datatable/datatable.component';\nimport { BsDatatableColumnDirective } from './datatable-column/datatable-column.directive';\nimport { BsRowTemplateDirective } from './row-template/row-template.directive';\n\n@NgModule({\n declarations: [\n BsDatatableComponent,\n BsDatatableColumnDirective,\n BsRowTemplateDirective\n ],\n imports: [\n AsyncPipe,\n NgTemplateOutlet,\n BsGridModule,\n BsTableComponent,\n BsPaginationComponent\n ],\n exports: [\n BsDatatableComponent,\n BsDatatableColumnDirective,\n BsRowTemplateDirective\n ]\n})\nexport class BsDatatableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BsDatatableComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-datatable.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/datatable/src/datatable-settings.ts","../../../../libs/mintplayer-ng-bootstrap/datatable/src/datatable-column/datatable-column.directive.ts","../../../../libs/mintplayer-ng-bootstrap/datatable/src/datatable/datatable.component.ts","../../../../libs/mintplayer-ng-bootstrap/datatable/src/datatable/datatable.component.html","../../../../libs/mintplayer-ng-bootstrap/datatable/src/row-template/row-template.directive.ts","../../../../libs/mintplayer-ng-bootstrap/datatable/src/datatable.module.ts","../../../../libs/mintplayer-ng-bootstrap/datatable/mintplayer-ng-bootstrap-datatable.ts"],"sourcesContent":["import { PaginationRequest } from \"@mintplayer/pagination\";\n\nexport class DatatableSettings {\n constructor(data?: Partial<DatatableSettings>) {\n Object.assign(this, data);\n\n if (data && data.perPage) {\n this.perPage = data.perPage;\n } else {\n // Set default value\n this.perPage = {\n values: [10, 20, 50],\n selected: 20\n };\n }\n \n if (data && data.page) {\n this.page = data.page;\n } else {\n // Set default value\n this.page = {\n values: [1],\n selected: 1\n };\n }\n }\n\n public sortProperty = '';\n public sortDirection: 'ascending' | 'descending' = 'ascending';\n public perPage: { values: number[], selected: number };\n public page: { values: number[], selected: number };\n\n public toPagination() {\n const res = <PaginationRequest>{\n sortProperty: this.sortProperty,\n sortDirection: this.sortDirection,\n perPage: this.perPage.selected,\n page: this.page.selected\n };\n return res;\n }\n}","import { Directive, inject, Input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[bsDatatableColumn]',\n standalone: false,\n})\nexport class BsDatatableColumnDirective {\n templateRef = inject(TemplateRef);\n @Input('bsDatatableColumn') public name = '';\n @Input('bsDatatableColumnSortable') public sortable = true;\n\n}","import { ChangeDetectionStrategy, Component, computed, ContentChildren, input, model, signal, TemplateRef } from '@angular/core';\nimport { PaginationResponse } from '@mintplayer/pagination';\nimport { DatatableSettings } from '../datatable-settings';\nimport { BsDatatableColumnDirective } from '../datatable-column/datatable-column.directive';\nimport { BsRowTemplateContext } from '../row-template/row-template.directive';\n\n\n@Component({\n selector: 'bs-datatable',\n templateUrl: './datatable.component.html',\n styleUrls: ['./datatable.component.scss'],\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsDatatableComponent<TData> {\n\n private _columns = signal<BsDatatableColumnDirective[]>([]);\n numberOfColumns = computed(() => this._columns().length);\n\n @ContentChildren(BsDatatableColumnDirective) set columns(value: BsDatatableColumnDirective[]) {\n this._columns.set([...value]);\n }\n get columnsArray() {\n return this._columns();\n }\n\n settings = model<DatatableSettings>(new DatatableSettings());\n data = model<PaginationResponse<TData> | undefined>(undefined);\n\n rowTemplate?: TemplateRef<BsRowTemplateContext<TData>>;\n\n columnHeaderClicked(column: BsDatatableColumnDirective) {\n if (column.sortable) {\n const currentSettings = this.settings();\n if (currentSettings.sortProperty !== column.name) {\n currentSettings.sortProperty = column.name;\n currentSettings.sortDirection = 'ascending';\n } else if (currentSettings.sortDirection === 'descending') {\n currentSettings.sortDirection = 'ascending';\n } else {\n currentSettings.sortDirection = 'descending';\n }\n this.settings.set(new DatatableSettings(currentSettings));\n }\n }\n\n onPerPageChange(perPage: number) {\n const currentSettings = this.settings();\n currentSettings.perPage.selected = perPage;\n currentSettings.page.selected = 1;\n this.settings.set(new DatatableSettings(currentSettings));\n }\n\n onPageChange(page: number) {\n const currentSettings = this.settings();\n currentSettings.page.selected = page;\n this.settings.set(new DatatableSettings(currentSettings));\n }\n\n}\n","<bs-table [isResponsive]=\"true\" [striped]=\"true\" [hover]=\"true\" class=\"mb-3\">\n <thead>\n <tr>\n @for (column of columnsArray; track column) {\n <th class=\"text-nowrap\"\n [class.sort]=\"column.sortable\"\n [class.sort-asc]=\"column.sortable && (settings().sortProperty === column.name) && (settings().sortDirection === 'ascending')\"\n [class.sort-desc]=\"column.sortable && (settings().sortProperty === column.name) && (settings().sortDirection === 'descending')\"\n (click)=\"columnHeaderClicked(column)\">\n <ng-container *ngTemplateOutlet=\"column.templateRef\"></ng-container>\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @if (!!data() && !!rowTemplate) {\n @for (item of data()!.data; track $index) {\n <ng-container *ngTemplateOutlet=\"rowTemplate; context: { $implicit: item }\"></ng-container>\n }\n }\n </tbody>\n <tfoot>\n <tr>\n <td [colSpan]=\"numberOfColumns()\">\n <bs-grid [stopFullWidthAt]=\"'never'\">\n <div bsRow>\n <div [md]=\"12\">\n <bs-pagination class=\"float-start\" [pageNumbers]=\"settings().perPage.values\"\n [selectedPageNumber]=\"settings().perPage.selected\" (selectedPageNumberChange)=\"onPerPageChange($event)\"\n [showArrows]=\"false\"></bs-pagination>\n <bs-pagination class=\"float-end\" [pageNumbers]=\"settings().page.values\"\n [selectedPageNumber]=\"settings().page.selected\" (selectedPageNumberChange)=\"onPageChange($event)\"\n [showArrows]=\"true\"></bs-pagination>\n </div>\n </div>\n </bs-grid>\n </td>\n </tr>\n </tfoot>\n</bs-table>\n","import { Directive, inject, Input, TemplateRef } from '@angular/core';\nimport { PaginationResponse } from '@mintplayer/pagination';\nimport { BsDatatableComponent } from '../datatable/datatable.component';\n\n@Directive({\n selector: '[bsRowTemplate]',\n standalone: false,\n})\nexport class BsRowTemplateDirective<TData> {\n\n private datatableComponent = inject<BsDatatableComponent<TData>>(BsDatatableComponent);\n private templateRef = inject<TemplateRef<BsRowTemplateContext<TData>>>(TemplateRef);\n\n constructor() {\n this.datatableComponent.rowTemplate = this.templateRef;\n }\n\n @Input() set bsRowTemplateOf(value: PaginationResponse<TData> | undefined) {\n this.datatableComponent.data.set(value);\n }\n \n public static ngTemplateContextGuard<TData>(\n dir: BsRowTemplateDirective<TData>,\n ctx: any\n ): ctx is BsRowTemplateContext<Exclude<TData, false | 0 | '' | null | undefined>> {\n return true;\n }\n}\n\nexport class BsRowTemplateContext<TData = unknown> {\n public $implicit: TData = null!;\n}","import { NgModule } from '@angular/core';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { BsGridModule } from '@mintplayer/ng-bootstrap/grid';\nimport { BsTableComponent } from '@mintplayer/ng-bootstrap/table';\nimport { BsPaginationComponent } from '@mintplayer/ng-bootstrap/pagination';\nimport { BsDatatableComponent } from './datatable/datatable.component';\nimport { BsDatatableColumnDirective } from './datatable-column/datatable-column.directive';\nimport { BsRowTemplateDirective } from './row-template/row-template.directive';\n\n@NgModule({\n declarations: [\n BsDatatableComponent,\n BsDatatableColumnDirective,\n BsRowTemplateDirective\n ],\n imports: [\n AsyncPipe,\n NgTemplateOutlet,\n BsGridModule,\n BsTableComponent,\n BsPaginationComponent\n ],\n exports: [\n BsDatatableComponent,\n BsDatatableColumnDirective,\n BsRowTemplateDirective\n ]\n})\nexport class BsDatatableModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|