@mintplayer/ng-bootstrap 21.29.0 → 21.31.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-a11y.mjs +455 -0
- package/fesm2022/mintplayer-ng-bootstrap-a11y.mjs.map +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs +8 -5
- package/fesm2022/mintplayer-ng-bootstrap-accordion.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs +10 -4
- package/fesm2022/mintplayer-ng-bootstrap-breadcrumb.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs +7 -4
- package/fesm2022/mintplayer-ng-bootstrap-button-group.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs +131 -3
- package/fesm2022/mintplayer-ng-bootstrap-calendar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs +80 -48
- package/fesm2022/mintplayer-ng-bootstrap-carousel.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs +4 -1
- package/fesm2022/mintplayer-ng-bootstrap-code-snippet.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs +218 -14
- package/fesm2022/mintplayer-ng-bootstrap-color-picker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs +4 -3
- package/fesm2022/mintplayer-ng-bootstrap-datatable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs +2 -2
- package/fesm2022/mintplayer-ng-bootstrap-datepicker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs +294 -3
- package/fesm2022/mintplayer-ng-bootstrap-dock.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs +163 -18
- package/fesm2022/mintplayer-ng-bootstrap-dropdown-menu.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs +179 -7
- package/fesm2022/mintplayer-ng-bootstrap-dropdown.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs +14 -4
- package/fesm2022/mintplayer-ng-bootstrap-file-upload.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs +14 -0
- package/fesm2022/mintplayer-ng-bootstrap-has-overlay.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs +2 -1
- package/fesm2022/mintplayer-ng-bootstrap-list-group.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs +7 -4
- package/fesm2022/mintplayer-ng-bootstrap-marquee.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs +70 -6
- package/fesm2022/mintplayer-ng-bootstrap-modal.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-multi-range.mjs +693 -0
- package/fesm2022/mintplayer-ng-bootstrap-multi-range.mjs.map +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs +5 -4
- package/fesm2022/mintplayer-ng-bootstrap-multiselect.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-navbar-toggler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs +45 -13
- package/fesm2022/mintplayer-ng-bootstrap-navbar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs +51 -5
- package/fesm2022/mintplayer-ng-bootstrap-offcanvas.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs +5 -3
- package/fesm2022/mintplayer-ng-bootstrap-pagination.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs +18 -4
- package/fesm2022/mintplayer-ng-bootstrap-placeholder.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs +6 -6
- package/fesm2022/mintplayer-ng-bootstrap-playlist-toggler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs +61 -6
- package/fesm2022/mintplayer-ng-bootstrap-popover.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs +19 -4
- package/fesm2022/mintplayer-ng-bootstrap-priority-nav.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs +8 -5
- package/fesm2022/mintplayer-ng-bootstrap-progress-bar.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs +4 -3
- package/fesm2022/mintplayer-ng-bootstrap-range.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs +34 -4
- package/fesm2022/mintplayer-ng-bootstrap-rating.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-reduced-motion.mjs +59 -0
- package/fesm2022/mintplayer-ng-bootstrap-reduced-motion.mjs.map +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs +91 -2
- package/fesm2022/mintplayer-ng-bootstrap-resizable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs +16 -5
- package/fesm2022/mintplayer-ng-bootstrap-scheduler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs +2 -2
- package/fesm2022/mintplayer-ng-bootstrap-scrollspy.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs +28 -5
- package/fesm2022/mintplayer-ng-bootstrap-searchbox.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs +4 -3
- package/fesm2022/mintplayer-ng-bootstrap-select.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs +18 -4
- package/fesm2022/mintplayer-ng-bootstrap-select2.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs +4 -3
- package/fesm2022/mintplayer-ng-bootstrap-signature-pad.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs +2 -2
- package/fesm2022/mintplayer-ng-bootstrap-tab-control.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs +10 -3
- package/fesm2022/mintplayer-ng-bootstrap-table.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tile-manager.mjs +143 -29
- package/fesm2022/mintplayer-ng-bootstrap-tile-manager.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs +2 -2
- package/fesm2022/mintplayer-ng-bootstrap-timepicker.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs +7 -4
- package/fesm2022/mintplayer-ng-bootstrap-toast.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs +42 -21
- package/fesm2022/mintplayer-ng-bootstrap-toggle-button.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs +33 -4
- package/fesm2022/mintplayer-ng-bootstrap-tooltip.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs +17 -7
- package/fesm2022/mintplayer-ng-bootstrap-treeview.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs +50 -8
- package/fesm2022/mintplayer-ng-bootstrap-typeahead.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs +34 -12
- package/fesm2022/mintplayer-ng-bootstrap-virtual-datatable.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-web-components-a11y.mjs +74 -0
- package/fesm2022/mintplayer-ng-bootstrap-web-components-a11y.mjs.map +1 -0
- package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs +1476 -71
- package/fesm2022/mintplayer-ng-bootstrap-web-components-scheduler.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs +194 -2
- package/fesm2022/mintplayer-ng-bootstrap-web-components-splitter.mjs.map +1 -1
- package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs +4 -0
- package/fesm2022/mintplayer-ng-bootstrap-web-components-tab-control.mjs.map +1 -1
- package/package.json +18 -2
- package/types/mintplayer-ng-bootstrap-a11y.d.ts +196 -0
- package/types/mintplayer-ng-bootstrap-accordion.d.ts +4 -2
- package/types/mintplayer-ng-bootstrap-breadcrumb.d.ts +2 -1
- package/types/mintplayer-ng-bootstrap-button-group.d.ts +2 -1
- package/types/mintplayer-ng-bootstrap-calendar.d.ts +32 -0
- package/types/mintplayer-ng-bootstrap-carousel.d.ts +56 -3
- package/types/mintplayer-ng-bootstrap-code-snippet.d.ts +1 -0
- package/types/mintplayer-ng-bootstrap-color-picker.d.ts +75 -4
- package/types/mintplayer-ng-bootstrap-datatable.d.ts +1 -1
- package/types/mintplayer-ng-bootstrap-dock.d.ts +51 -0
- package/types/mintplayer-ng-bootstrap-dropdown-menu.d.ts +54 -9
- package/types/mintplayer-ng-bootstrap-dropdown.d.ts +57 -2
- package/types/mintplayer-ng-bootstrap-file-upload.d.ts +4 -1
- package/types/mintplayer-ng-bootstrap-has-overlay.d.ts +14 -0
- package/types/mintplayer-ng-bootstrap-marquee.d.ts +2 -1
- package/types/mintplayer-ng-bootstrap-modal.d.ts +25 -1
- package/types/mintplayer-ng-bootstrap-multi-range.d.ts +170 -0
- package/types/mintplayer-ng-bootstrap-multiselect.d.ts +2 -1
- package/types/mintplayer-ng-bootstrap-navbar-toggler.d.ts +4 -2
- package/types/mintplayer-ng-bootstrap-navbar.d.ts +25 -1
- package/types/mintplayer-ng-bootstrap-offcanvas.d.ts +23 -1
- package/types/mintplayer-ng-bootstrap-pagination.d.ts +3 -1
- package/types/mintplayer-ng-bootstrap-placeholder.d.ts +5 -1
- package/types/mintplayer-ng-bootstrap-playlist-toggler.d.ts +4 -2
- package/types/mintplayer-ng-bootstrap-popover.d.ts +21 -1
- package/types/mintplayer-ng-bootstrap-priority-nav.d.ts +4 -1
- package/types/mintplayer-ng-bootstrap-progress-bar.d.ts +4 -2
- package/types/mintplayer-ng-bootstrap-range.d.ts +2 -1
- package/types/mintplayer-ng-bootstrap-rating.d.ts +3 -0
- package/types/mintplayer-ng-bootstrap-reduced-motion.d.ts +36 -0
- package/types/mintplayer-ng-bootstrap-resizable.d.ts +4 -0
- package/types/mintplayer-ng-bootstrap-scheduler.d.ts +42 -9
- package/types/mintplayer-ng-bootstrap-scrollspy.d.ts +1 -1
- package/types/mintplayer-ng-bootstrap-searchbox.d.ts +8 -1
- package/types/mintplayer-ng-bootstrap-select.d.ts +2 -1
- package/types/mintplayer-ng-bootstrap-select2.d.ts +3 -0
- package/types/mintplayer-ng-bootstrap-signature-pad.d.ts +2 -1
- package/types/mintplayer-ng-bootstrap-table.d.ts +8 -1
- package/types/mintplayer-ng-bootstrap-tile-manager.d.ts +21 -2
- package/types/mintplayer-ng-bootstrap-toast.d.ts +6 -1
- package/types/mintplayer-ng-bootstrap-toggle-button.d.ts +11 -0
- package/types/mintplayer-ng-bootstrap-tooltip.d.ts +5 -0
- package/types/mintplayer-ng-bootstrap-treeview.d.ts +12 -1
- package/types/mintplayer-ng-bootstrap-typeahead.d.ts +11 -3
- package/types/mintplayer-ng-bootstrap-virtual-datatable.d.ts +14 -1
- package/types/mintplayer-ng-bootstrap-web-components-a11y.d.ts +34 -0
- package/types/mintplayer-ng-bootstrap-web-components-scheduler-core.d.ts +35 -11
- package/types/mintplayer-ng-bootstrap-web-components-scheduler.d.ts +246 -0
- package/types/mintplayer-ng-bootstrap-web-components-splitter.d.ts +95 -37
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-offcanvas.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/providers/offcanvas-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas/offcanvas.component.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas/offcanvas.component.html","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-header/offcanvas-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-header/offcanvas-header.component.html","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-body/offcanvas-body.component.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-body/offcanvas-body.component.html","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/providers/portal-factory.provider.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-host/offcanvas-host.component.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-host/offcanvas-host.component.html","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/directives/offcanvas-close/offcanvas-close.directive.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/directives/offcanvas-content/offcanvas-content.directive.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/directives/offcanvas-push/offcanvas-push.directive.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/mintplayer-ng-bootstrap-offcanvas.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const OFFCANVAS_CONTENT = new InjectionToken<TemplateRef<any>>('OffcanvasContent');","import { isPlatformServer, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, effect, inject, output, PLATFORM_ID, signal, TemplateRef, untracked, ChangeDetectionStrategy} from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport { OFFCANVAS_CONTENT } from '../../providers/offcanvas-content.provider';\n\n@Component({\n selector: 'bs-offcanvas-holder',\n templateUrl: './offcanvas.component.html',\n styleUrls: ['./offcanvas.component.scss'],\n imports: [NgTemplateOutlet],\n animations: [FadeInOutAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsOffcanvasComponent {\n\n contentTemplate = inject<TemplateRef<any>>(OFFCANVAS_CONTENT);\n private platformId = inject(PLATFORM_ID);\n\n constructor() {\n // Effect to handle position changes - disable transition temporarily\n effect(() => {\n const position = this.position();\n // Use untracked to avoid creating dependency on disableTransition\n untracked(() => {\n this.disableTransition.set(true);\n this.offcanvasClass.set(`offcanvas-${position}`);\n // Re-enable transitions after browser has processed position change\n if (!isPlatformServer(this.platformId)) {\n requestAnimationFrame(() => {\n this.disableTransition.set(false);\n });\n }\n });\n });\n\n // Effect to handle visibility changes\n effect(() => {\n const isVisible = this.isVisible();\n untracked(() => {\n if (isVisible) {\n // When showing: set visibility immediately, then add .show class after position is applied\n this.visibility.set('visible');\n // Delay adding .show class to allow position to be applied first\n if (!isPlatformServer(this.platformId)) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.show.set(true);\n });\n });\n }\n } else {\n // When hiding: remove .show class immediately, delay visibility for animation\n this.show.set(false);\n setTimeout(() => {\n if (!this.isVisible()) {\n this.visibility.set('hidden');\n }\n }, 300);\n }\n });\n });\n }\n\n // Core state signals\n position = signal<Position>('bottom');\n size = signal<number | null>(null);\n isVisible = signal<boolean>(false);\n hasBackdrop = signal<boolean>(false);\n\n // Internal state signals\n disableTransition = signal<boolean>(false);\n offcanvasClass = signal<string | null>(null);\n visibility = signal<string>('hidden');\n show = signal<boolean>(false);\n\n // Computed signals\n width = computed(() => {\n const position = this.position();\n const size = this.size();\n return ['start', 'end'].includes(position) ? size : null;\n });\n\n height = computed(() => {\n const position = this.position();\n const size = this.size();\n return ['top', 'bottom'].includes(position) ? size : null;\n });\n\n overflowClass = computed(() => {\n const position = this.position();\n return ['top', 'bottom'].includes(position) ? 'overflow-y-hidden' : 'overflow-x-hidden';\n });\n\n showBackdrop = computed(() => {\n return this.hasBackdrop() && this.isVisible();\n });\n\n // Outputs\n isVisibleChange = output<boolean>();\n backdropClick = output<MouseEvent>();\n\n onBackdropClick(ev: MouseEvent) {\n this.backdropClick.emit(ev);\n }\n\n}\n","@if (showBackdrop()) {\n <div [@fadeInOut]=\"{value: ':leave', params: {duration: '300ms'} }\">\n <div class=\"modal-backdrop show\" (click)=\"onBackdropClick($event)\" aria-hidden=\"true\"></div>\n </div>\n}\n<div class=\"offcanvas\"\n [class.show]=\"show()\"\n [class.disable-transition]=\"disableTransition()\"\n [class]=\"[offcanvasClass(), overflowClass()]\"\n [style.height.px]=\"height()\"\n [style.width.px]=\"width()\"\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\">\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n</div>","import { Component, ChangeDetectionStrategy} from '@angular/core';\n\n@Component({\n selector: 'bs-offcanvas-header',\n templateUrl: './offcanvas-header.component.html',\n styleUrls: ['./offcanvas-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OffcanvasHeaderComponent {}\n","<div class=\"offcanvas-header\">\n <ng-content></ng-content>\n</div>","import { Component, input, ChangeDetectionStrategy} from '@angular/core';\n\n@Component({\n selector: 'bs-offcanvas-body',\n templateUrl: './offcanvas-body.component.html',\n styleUrls: ['./offcanvas-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OffcanvasBodyComponent {\n readonly noPadding = input(false);\n}\n","<div class=\"offcanvas-body\" [class.p-0]=\"noPadding()\">\n <ng-content></ng-content>\n</div>","import { ComponentPortal } from \"@angular/cdk/portal\";\nimport { InjectionToken, Injector } from \"@angular/core\";\n\nexport const PORTAL_FACTORY = new InjectionToken<(injector: Injector) => ComponentPortal<any>>('OffcanvasPortalFactory');","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, ComponentRef, effect, inject, Injector, model, OnDestroy, output, OutputRefSubscription, signal, TemplateRef, ChangeDetectionStrategy} from '@angular/core';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { OFFCANVAS_CONTENT } from '../../providers/offcanvas-content.provider';\nimport { PORTAL_FACTORY } from '../../providers/portal-factory.provider';\nimport { BsOffcanvasComponent } from '../offcanvas/offcanvas.component';\n\n@Component({\n selector: 'bs-offcanvas',\n templateUrl: './offcanvas-host.component.html',\n styleUrls: ['./offcanvas-host.component.scss'],\n imports: [BsHasOverlayComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: PORTAL_FACTORY,\n useValue: (injector: Injector) => {\n return new ComponentPortal(BsOffcanvasComponent, null, injector);\n }\n }],\n})\nexport class BsOffcanvasHostComponent implements AfterViewInit, OnDestroy {\n private overlayService = inject(Overlay);\n private rootInjector = inject(Injector);\n private portalFactory = inject<(injector: Injector) => ComponentPortal<any>>(PORTAL_FACTORY);\n\n constructor() {\n // Effect to sync isVisible with the inner component\n effect(() => {\n const isVisible = this.isVisible();\n if (this.component) {\n this.component.instance.isVisible.set(isVisible);\n }\n });\n\n // Effect to sync position with the inner component\n effect(() => {\n const position = this.position();\n if (this.component && this.viewInited()) {\n this.component.instance.position.set(position);\n }\n });\n\n // Effect to sync size with the inner component\n effect(() => {\n const size = this.size();\n if (this.component && this.viewInited()) {\n this.component.instance.size.set(size);\n }\n });\n\n // Effect to sync hasBackdrop with the inner component\n effect(() => {\n const hasBackdrop = this.hasBackdrop();\n if (this.component && this.viewInited()) {\n this.component.instance.hasBackdrop.set(hasBackdrop);\n }\n });\n }\n\n content!: TemplateRef<any>;\n overlayRef!: OverlayRef;\n component!: ComponentRef<BsOffcanvasComponent>;\n private backdropClickSubscription?: OutputRefSubscription;\n\n // Signals\n viewInited = signal<boolean>(false);\n isVisible = model<boolean>(false);\n size = model<number | null>(null);\n position = model<Position>('bottom');\n hasBackdrop = model<boolean>(false);\n\n backdropClick = output<MouseEvent>();\n\n ngAfterViewInit() {\n const injector = Injector.create({\n providers: [\n { provide: OFFCANVAS_CONTENT, useValue: this.content },\n ],\n parent: this.rootInjector,\n });\n // const portal = new ComponentPortal(BsOffcanvasComponent, null, injector);\n const portal = this.portalFactory(injector);\n this.overlayRef = this.overlayService.create({\n scrollStrategy: this.overlayService.scrollStrategies.reposition(),\n positionStrategy: this.overlayService.position().global()\n .top('0').left('0').bottom('0').right('0'),\n hasBackdrop: false\n });\n\n this.component = this.overlayRef.attach<BsOffcanvasComponent>(portal);\n\n this.backdropClickSubscription = this.component.instance.backdropClick.subscribe((ev) => this.backdropClick.emit(ev));\n\n // Initialize the inner component with current values\n this.component.instance.isVisible.set(this.isVisible());\n this.component.instance.position.set(this.position());\n this.component.instance.size.set(this.size());\n this.component.instance.hasBackdrop.set(this.hasBackdrop());\n\n this.viewInited.set(true);\n }\n\n ngOnDestroy() {\n this.backdropClickSubscription?.unsubscribe();\n this.isVisible.set(false);\n setTimeout(() => this.overlayRef && this.overlayRef.dispose(), 3000);\n }\n\n}\n","<bs-has-overlay></bs-has-overlay>\n","import { Directive, inject } from '@angular/core';\nimport { BsOffcanvasHostComponent } from '../../components/offcanvas-host/offcanvas-host.component';\n\n@Directive({\n selector: '[bsOffcanvasClose]',\n host: {\n '[attr.aria-label]': '\"Close\"',\n '(click)': 'onClick()',\n },\n})\nexport class BsOffcanvasCloseDirective {\n private offcanvas = inject(BsOffcanvasHostComponent);\n\n onClick() {\n this.offcanvas.isVisible.set(false);\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsOffcanvasHostComponent } from '../../components/offcanvas-host/offcanvas-host.component';\n\n@Directive({\n selector: '[bsOffcanvasContent]',\n})\nexport class BsOffcanvasContentDirective {\n constructor() {\n const offcanvasHost = inject(BsOffcanvasHostComponent);\n const template = inject(TemplateRef);\n offcanvasHost.content = template;\n }\n}\n","import { animate, AnimationBuilder, AnimationMetadata, style } from '@angular/animations';\nimport { Directive, effect, ElementRef, inject, input } from '@angular/core';\nimport { BsOffcanvasHostComponent } from '../../components';\n\n@Directive({\n selector: '[bsOffcanvasPush]',\n})\nexport class BsOffcanvasPushDirective {\n private element = inject<ElementRef<HTMLElement>>(ElementRef);\n private builder = inject(AnimationBuilder);\n\n constructor() {\n let previousIsVisible: boolean | null = null;\n\n effect(() => {\n const offcanvas = this.offcanvas();\n if (!offcanvas) return;\n\n const isVisible = offcanvas.isVisible();\n\n // Skip the first run (initial state)\n if (previousIsVisible === null) {\n previousIsVisible = isVisible;\n return;\n }\n\n // Skip if no change\n if (previousIsVisible === isVisible) return;\n\n previousIsVisible = isVisible;\n\n let data: AnimationMetadata[];\n if (isVisible) {\n data = [\n style({ 'margin-left': '0', 'margin-right': '0' }),\n animate('250ms', style({ 'margin-left': '400px', 'margin-right': '-400px' })),\n ];\n let el = this.element.nativeElement;\n while (el.parentElement && !['scroll', 'visible'].includes(el.parentElement.style.overflowX)) {\n el = el.parentElement;\n }\n if (this.element.nativeElement.parentElement) {\n this.initialOverflowX = {\n value: this.element.nativeElement.parentElement.style.overflowX,\n element: el,\n };\n el.style.overflowX = 'hidden';\n }\n } else {\n data = [\n style({ 'margin-left': '400px', 'margin-right': '-400px' }),\n animate('250ms', style({ 'margin-left': '0', 'margin-right': '0' })),\n ];\n }\n const b = this.builder.build(data);\n const player = b.create(this.element.nativeElement, { });\n\n if (!isVisible) {\n player.onDone(() => {\n if (this.element.nativeElement.parentElement && this.initialOverflowX) {\n this.initialOverflowX.element.style.overflowX = this.initialOverflowX.value;\n }\n });\n }\n\n player.play();\n });\n }\n\n private initialOverflowX?: {element: HTMLElement, value: string};\n\n offcanvas = input<BsOffcanvasHostComponent | null>(null, { alias: 'bsOffcanvasPush' });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-offcanvas.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/providers/offcanvas-content.provider.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/services/offcanvas-context.service.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas/offcanvas.component.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas/offcanvas.component.html","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-header/offcanvas-header.component.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-header/offcanvas-header.component.html","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-body/offcanvas-body.component.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-body/offcanvas-body.component.html","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/providers/portal-factory.provider.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-host/offcanvas-host.component.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/components/offcanvas-host/offcanvas-host.component.html","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/directives/offcanvas-close/offcanvas-close.directive.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/directives/offcanvas-content/offcanvas-content.directive.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/src/directives/offcanvas-push/offcanvas-push.directive.ts","../../../../libs/mintplayer-ng-bootstrap/offcanvas/mintplayer-ng-bootstrap-offcanvas.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from \"@angular/core\";\n\nexport const OFFCANVAS_CONTENT = new InjectionToken<TemplateRef<any>>('OffcanvasContent');","import { Injectable, signal } from '@angular/core';\n\n/**\n * Component-scoped state shared between BsOffcanvasComponent (the dialog renderer)\n * and the bs-offcanvas-header / bs-offcanvas-body components inside the user's\n * template. Provides the ids for aria-labelledby and aria-describedby.\n */\n@Injectable()\nexport class BsOffcanvasContextService {\n readonly headerId = signal<string | null>(null);\n readonly bodyId = signal<string | null>(null);\n}\n","import { isPlatformServer, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, effect, inject, Injector, output, PLATFORM_ID, signal, TemplateRef, untracked, ChangeDetectionStrategy } from '@angular/core';\nimport { FadeInOutAnimation } from '@mintplayer/ng-animations';\nimport { BsOverlayFocusDirective } from '@mintplayer/ng-bootstrap/a11y';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport { OFFCANVAS_CONTENT } from '../../providers/offcanvas-content.provider';\nimport { BsOffcanvasContextService } from '../../services/offcanvas-context.service';\n\n@Component({\n selector: 'bs-offcanvas-holder',\n templateUrl: './offcanvas.component.html',\n styleUrls: ['./offcanvas.component.scss'],\n imports: [NgTemplateOutlet, BsOverlayFocusDirective],\n animations: [FadeInOutAnimation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [BsOffcanvasContextService],\n})\nexport class BsOffcanvasComponent {\n\n contentTemplate = inject<TemplateRef<any>>(OFFCANVAS_CONTENT);\n private platformId = inject(PLATFORM_ID);\n context = inject(BsOffcanvasContextService);\n injector = inject(Injector);\n\n constructor() {\n // Effect to handle position changes - disable transition temporarily\n effect(() => {\n const position = this.position();\n // Use untracked to avoid creating dependency on disableTransition\n untracked(() => {\n this.disableTransition.set(true);\n this.offcanvasClass.set(`offcanvas-${position}`);\n // Re-enable transitions after browser has processed position change\n if (!isPlatformServer(this.platformId)) {\n requestAnimationFrame(() => {\n this.disableTransition.set(false);\n });\n }\n });\n });\n\n // Effect to handle visibility changes\n effect(() => {\n const isVisible = this.isVisible();\n untracked(() => {\n if (isVisible) {\n // When showing: set visibility immediately, then add .show class after position is applied\n this.visibility.set('visible');\n // Delay adding .show class to allow position to be applied first\n if (!isPlatformServer(this.platformId)) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.show.set(true);\n });\n });\n }\n } else {\n // When hiding: remove .show class immediately, delay visibility for animation\n this.show.set(false);\n setTimeout(() => {\n if (!this.isVisible()) {\n this.visibility.set('hidden');\n }\n }, 300);\n }\n });\n });\n }\n\n // Core state signals\n position = signal<Position>('bottom');\n size = signal<number | null>(null);\n isVisible = signal<boolean>(false);\n hasBackdrop = signal<boolean>(false);\n\n // Internal state signals\n disableTransition = signal<boolean>(false);\n offcanvasClass = signal<string | null>(null);\n visibility = signal<string>('hidden');\n show = signal<boolean>(false);\n\n // Computed signals\n width = computed(() => {\n const position = this.position();\n const size = this.size();\n return ['start', 'end'].includes(position) ? size : null;\n });\n\n height = computed(() => {\n const position = this.position();\n const size = this.size();\n return ['top', 'bottom'].includes(position) ? size : null;\n });\n\n overflowClass = computed(() => {\n const position = this.position();\n return ['top', 'bottom'].includes(position) ? 'overflow-y-hidden' : 'overflow-x-hidden';\n });\n\n showBackdrop = computed(() => {\n return this.hasBackdrop() && this.isVisible();\n });\n\n // Outputs\n isVisibleChange = output<boolean>();\n backdropClick = output<MouseEvent>();\n\n onBackdropClick(ev: MouseEvent) {\n this.backdropClick.emit(ev);\n }\n\n}\n","@if (showBackdrop()) {\n <div [@fadeInOut]=\"{value: ':leave', params: {duration: '300ms'} }\">\n <div class=\"modal-backdrop show\" (click)=\"onBackdropClick($event)\" aria-hidden=\"true\"></div>\n </div>\n}\n<div class=\"offcanvas\"\n [class.show]=\"show()\"\n [class.disable-transition]=\"disableTransition()\"\n [class]=\"[offcanvasClass(), overflowClass()]\"\n [style.height.px]=\"height()\"\n [style.width.px]=\"width()\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-labelledby]=\"context.headerId()\"\n [attr.aria-describedby]=\"context.bodyId()\"\n [bsOverlayFocus]=\"isVisible()\"\n tabindex=\"-1\">\n <ng-container *ngTemplateOutlet=\"contentTemplate; injector: injector\"></ng-container>\n</div>\n","import { afterNextRender, Component, ElementRef, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { BsIdService } from '@mintplayer/ng-bootstrap/a11y';\nimport { BsOffcanvasContextService } from '../../services/offcanvas-context.service';\n\n@Component({\n selector: 'bs-offcanvas-header',\n templateUrl: './offcanvas-header.component.html',\n styleUrls: ['./offcanvas-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OffcanvasHeaderComponent {\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n private ids = inject(BsIdService);\n private context = inject(BsOffcanvasContextService, { optional: true });\n\n constructor() {\n afterNextRender(() => {\n const headerDiv = this.el.nativeElement.querySelector<HTMLElement>('.offcanvas-header')!;\n let id = headerDiv.id;\n if (!id) {\n id = this.ids.next('bs-offcanvas-header');\n headerDiv.id = id;\n }\n this.context?.headerId.set(id);\n });\n }\n}\n","<div class=\"offcanvas-header\">\n <ng-content></ng-content>\n</div>","import { afterNextRender, Component, ElementRef, inject, input, ChangeDetectionStrategy } from '@angular/core';\nimport { BsIdService } from '@mintplayer/ng-bootstrap/a11y';\nimport { BsOffcanvasContextService } from '../../services/offcanvas-context.service';\n\n@Component({\n selector: 'bs-offcanvas-body',\n templateUrl: './offcanvas-body.component.html',\n styleUrls: ['./offcanvas-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OffcanvasBodyComponent {\n private el = inject<ElementRef<HTMLElement>>(ElementRef);\n private ids = inject(BsIdService);\n private context = inject(BsOffcanvasContextService, { optional: true });\n\n readonly noPadding = input(false);\n\n constructor() {\n afterNextRender(() => {\n const bodyDiv = this.el.nativeElement.querySelector<HTMLElement>('.offcanvas-body')!;\n let id = bodyDiv.id;\n if (!id) {\n id = this.ids.next('bs-offcanvas-body');\n bodyDiv.id = id;\n }\n this.context?.bodyId.set(id);\n });\n }\n}\n","<div class=\"offcanvas-body\" [class.p-0]=\"noPadding()\">\n <ng-content></ng-content>\n</div>","import { ComponentPortal } from \"@angular/cdk/portal\";\nimport { InjectionToken, Injector } from \"@angular/core\";\n\nexport const PORTAL_FACTORY = new InjectionToken<(injector: Injector) => ComponentPortal<any>>('OffcanvasPortalFactory');","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { AfterViewInit, Component, ComponentRef, effect, inject, Injector, model, OnDestroy, output, OutputRefSubscription, signal, TemplateRef, ChangeDetectionStrategy} from '@angular/core';\nimport { Position } from '@mintplayer/ng-bootstrap';\nimport { BsHasOverlayComponent } from '@mintplayer/ng-bootstrap/has-overlay';\nimport { OFFCANVAS_CONTENT } from '../../providers/offcanvas-content.provider';\nimport { PORTAL_FACTORY } from '../../providers/portal-factory.provider';\nimport { BsOffcanvasComponent } from '../offcanvas/offcanvas.component';\n\n@Component({\n selector: 'bs-offcanvas',\n templateUrl: './offcanvas-host.component.html',\n styleUrls: ['./offcanvas-host.component.scss'],\n imports: [BsHasOverlayComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: PORTAL_FACTORY,\n useValue: (injector: Injector) => {\n return new ComponentPortal(BsOffcanvasComponent, null, injector);\n }\n }],\n})\nexport class BsOffcanvasHostComponent implements AfterViewInit, OnDestroy {\n private overlayService = inject(Overlay);\n private rootInjector = inject(Injector);\n private portalFactory = inject<(injector: Injector) => ComponentPortal<any>>(PORTAL_FACTORY);\n\n constructor() {\n // Effect to sync isVisible with the inner component\n effect(() => {\n const isVisible = this.isVisible();\n if (this.component) {\n this.component.instance.isVisible.set(isVisible);\n }\n });\n\n // Effect to sync position with the inner component\n effect(() => {\n const position = this.position();\n if (this.component && this.viewInited()) {\n this.component.instance.position.set(position);\n }\n });\n\n // Effect to sync size with the inner component\n effect(() => {\n const size = this.size();\n if (this.component && this.viewInited()) {\n this.component.instance.size.set(size);\n }\n });\n\n // Effect to sync hasBackdrop with the inner component\n effect(() => {\n const hasBackdrop = this.hasBackdrop();\n if (this.component && this.viewInited()) {\n this.component.instance.hasBackdrop.set(hasBackdrop);\n }\n });\n }\n\n content!: TemplateRef<any>;\n overlayRef!: OverlayRef;\n component!: ComponentRef<BsOffcanvasComponent>;\n private backdropClickSubscription?: OutputRefSubscription;\n\n // Signals\n viewInited = signal<boolean>(false);\n isVisible = model<boolean>(false);\n size = model<number | null>(null);\n position = model<Position>('bottom');\n hasBackdrop = model<boolean>(false);\n\n backdropClick = output<MouseEvent>();\n\n ngAfterViewInit() {\n const injector = Injector.create({\n providers: [\n { provide: OFFCANVAS_CONTENT, useValue: this.content },\n ],\n parent: this.rootInjector,\n });\n // const portal = new ComponentPortal(BsOffcanvasComponent, null, injector);\n const portal = this.portalFactory(injector);\n this.overlayRef = this.overlayService.create({\n scrollStrategy: this.overlayService.scrollStrategies.reposition(),\n positionStrategy: this.overlayService.position().global()\n .top('0').left('0').bottom('0').right('0'),\n hasBackdrop: false\n });\n\n this.component = this.overlayRef.attach<BsOffcanvasComponent>(portal);\n\n this.backdropClickSubscription = this.component.instance.backdropClick.subscribe((ev) => this.backdropClick.emit(ev));\n\n // Initialize the inner component with current values\n this.component.instance.isVisible.set(this.isVisible());\n this.component.instance.position.set(this.position());\n this.component.instance.size.set(this.size());\n this.component.instance.hasBackdrop.set(this.hasBackdrop());\n\n this.viewInited.set(true);\n }\n\n ngOnDestroy() {\n this.backdropClickSubscription?.unsubscribe();\n this.isVisible.set(false);\n setTimeout(() => this.overlayRef && this.overlayRef.dispose(), 3000);\n }\n\n}\n","<bs-has-overlay></bs-has-overlay>\n","import { Directive, inject } from '@angular/core';\nimport { BsOffcanvasHostComponent } from '../../components/offcanvas-host/offcanvas-host.component';\n\n@Directive({\n selector: '[bsOffcanvasClose]',\n host: {\n '[attr.aria-label]': '\"Close\"',\n '(click)': 'onClick()',\n },\n})\nexport class BsOffcanvasCloseDirective {\n private offcanvas = inject(BsOffcanvasHostComponent);\n\n onClick() {\n this.offcanvas.isVisible.set(false);\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { BsOffcanvasHostComponent } from '../../components/offcanvas-host/offcanvas-host.component';\n\n@Directive({\n selector: '[bsOffcanvasContent]',\n})\nexport class BsOffcanvasContentDirective {\n constructor() {\n const offcanvasHost = inject(BsOffcanvasHostComponent);\n const template = inject(TemplateRef);\n offcanvasHost.content = template;\n }\n}\n","import { animate, AnimationBuilder, AnimationMetadata, style } from '@angular/animations';\nimport { Directive, effect, ElementRef, inject, input } from '@angular/core';\nimport { BsOffcanvasHostComponent } from '../../components';\n\n@Directive({\n selector: '[bsOffcanvasPush]',\n})\nexport class BsOffcanvasPushDirective {\n private element = inject<ElementRef<HTMLElement>>(ElementRef);\n private builder = inject(AnimationBuilder);\n\n constructor() {\n let previousIsVisible: boolean | null = null;\n\n effect(() => {\n const offcanvas = this.offcanvas();\n if (!offcanvas) return;\n\n const isVisible = offcanvas.isVisible();\n\n // Skip the first run (initial state)\n if (previousIsVisible === null) {\n previousIsVisible = isVisible;\n return;\n }\n\n // Skip if no change\n if (previousIsVisible === isVisible) return;\n\n previousIsVisible = isVisible;\n\n let data: AnimationMetadata[];\n if (isVisible) {\n data = [\n style({ 'margin-left': '0', 'margin-right': '0' }),\n animate('250ms', style({ 'margin-left': '400px', 'margin-right': '-400px' })),\n ];\n let el = this.element.nativeElement;\n while (el.parentElement && !['scroll', 'visible'].includes(el.parentElement.style.overflowX)) {\n el = el.parentElement;\n }\n if (this.element.nativeElement.parentElement) {\n this.initialOverflowX = {\n value: this.element.nativeElement.parentElement.style.overflowX,\n element: el,\n };\n el.style.overflowX = 'hidden';\n }\n } else {\n data = [\n style({ 'margin-left': '400px', 'margin-right': '-400px' }),\n animate('250ms', style({ 'margin-left': '0', 'margin-right': '0' })),\n ];\n }\n const b = this.builder.build(data);\n const player = b.create(this.element.nativeElement, { });\n\n if (!isVisible) {\n player.onDone(() => {\n if (this.element.nativeElement.parentElement && this.initialOverflowX) {\n this.initialOverflowX.element.style.overflowX = this.initialOverflowX.value;\n }\n });\n }\n\n player.play();\n });\n }\n\n private initialOverflowX?: {element: HTMLElement, value: string};\n\n offcanvas = input<BsOffcanvasHostComponent | null>(null, { alias: 'bsOffcanvasPush' });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ class BsPaginationComponent {
|
|
|
13
13
|
this.showArrows = input(true, ...(ngDevMode ? [{ debugName: "showArrows" }] : /* istanbul ignore next */ []));
|
|
14
14
|
/** Page number size. */
|
|
15
15
|
this.size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
16
|
+
/** Accessible name on the surrounding `<nav>` landmark. */
|
|
17
|
+
this.ariaLabel = input('Pagination', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
16
18
|
/** The number of boxes (excluding arrows) that's being shown on the pagination component. */
|
|
17
19
|
this.visibleNumberOfNumberBoxes = computed(() => {
|
|
18
20
|
const numberOfBoxes = this.numberOfBoxes();
|
|
@@ -171,12 +173,12 @@ class BsPaginationComponent {
|
|
|
171
173
|
return false;
|
|
172
174
|
}
|
|
173
175
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
174
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: BsPaginationComponent, isStandalone: true, selector: "bs-pagination", inputs: { pageNumbers: { classPropertyName: "pageNumbers", publicName: "pageNumbers", isSignal: true, isRequired: false, transformFunction: null }, selectedPageNumber: { classPropertyName: "selectedPageNumber", publicName: "selectedPageNumber", isSignal: true, isRequired: false, transformFunction: null }, numberOfBoxes: { classPropertyName: "numberOfBoxes", publicName: "numberOfBoxes", isSignal: true, isRequired: false, transformFunction: null }, showArrows: { classPropertyName: "showArrows", publicName: "showArrows", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedPageNumber: "selectedPageNumberChange" }, ngImport: i0, template: "<ul class=\"pagination\">\n
|
|
176
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: BsPaginationComponent, isStandalone: true, selector: "bs-pagination", inputs: { pageNumbers: { classPropertyName: "pageNumbers", publicName: "pageNumbers", isSignal: true, isRequired: false, transformFunction: null }, selectedPageNumber: { classPropertyName: "selectedPageNumber", publicName: "selectedPageNumber", isSignal: true, isRequired: false, transformFunction: null }, numberOfBoxes: { classPropertyName: "numberOfBoxes", publicName: "numberOfBoxes", isSignal: true, isRequired: false, transformFunction: null }, showArrows: { classPropertyName: "showArrows", publicName: "showArrows", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedPageNumber: "selectedPageNumberChange" }, ngImport: i0, template: "<nav [attr.aria-label]=\"ariaLabel()\">\n <ul class=\"pagination\">\n @if (showArrows()) {\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" [class.disabled]=\"isFirstPage()\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">«</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n }\n @for (pageNumber of shownPageNumbers(); track $index) {\n <li class=\"page-item\" [class.active]=\"pageNumber.selected\">\n @if (pageNumber.page === '...') {\n <span class=\"page-link disabled\" aria-disabled=\"true\">\n <span aria-hidden=\"true\">…</span>\n <span class=\"visually-hidden\">More pages</span>\n </span>\n } @else {\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\" [class.active]=\"pageNumber.selected\" [attr.aria-current]=\"pageNumber.selected ? 'page' : null\">\n {{ pageNumber.page }}\n </a>\n }\n </li>\n }\n @if (showArrows()) {\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" [class.disabled]=\"isLastPage()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">»</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n }\n </ul>\n</nav>\n", styles: [":host ::ng-deep .pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}:host ::ng-deep .page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){:host ::ng-deep .page-link{transition:none}}:host ::ng-deep .page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}:host ::ng-deep .page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}:host ::ng-deep .page-link.active,.active>:host ::ng-deep .page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}:host ::ng-deep .page-link.disabled,.disabled>:host ::ng-deep .page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}:host ::ng-deep .page-item:not(:first-child) .page-link{margin-left:calc(-1 * var(--bs-border-width))}:host ::ng-deep .page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}:host ::ng-deep .pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}:host{display:inline-block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
175
177
|
}
|
|
176
178
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsPaginationComponent, decorators: [{
|
|
177
179
|
type: Component,
|
|
178
|
-
args: [{ selector: 'bs-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul class=\"pagination\">\n
|
|
179
|
-
}], propDecorators: { pageNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageNumbers", required: false }] }], selectedPageNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedPageNumber", required: false }] }, { type: i0.Output, args: ["selectedPageNumberChange"] }], numberOfBoxes: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfBoxes", required: false }] }], showArrows: [{ type: i0.Input, args: [{ isSignal: true, alias: "showArrows", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] } });
|
|
180
|
+
args: [{ selector: 'bs-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav [attr.aria-label]=\"ariaLabel()\">\n <ul class=\"pagination\">\n @if (showArrows()) {\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" [class.disabled]=\"isFirstPage()\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">«</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n }\n @for (pageNumber of shownPageNumbers(); track $index) {\n <li class=\"page-item\" [class.active]=\"pageNumber.selected\">\n @if (pageNumber.page === '...') {\n <span class=\"page-link disabled\" aria-disabled=\"true\">\n <span aria-hidden=\"true\">…</span>\n <span class=\"visually-hidden\">More pages</span>\n </span>\n } @else {\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\" [class.active]=\"pageNumber.selected\" [attr.aria-current]=\"pageNumber.selected ? 'page' : null\">\n {{ pageNumber.page }}\n </a>\n }\n </li>\n }\n @if (showArrows()) {\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" [class.disabled]=\"isLastPage()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">»</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n }\n </ul>\n</nav>\n", styles: [":host ::ng-deep .pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}:host ::ng-deep .page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){:host ::ng-deep .page-link{transition:none}}:host ::ng-deep .page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}:host ::ng-deep .page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}:host ::ng-deep .page-link.active,.active>:host ::ng-deep .page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}:host ::ng-deep .page-link.disabled,.disabled>:host ::ng-deep .page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}:host ::ng-deep .page-item:not(:first-child) .page-link{margin-left:calc(-1 * var(--bs-border-width))}:host ::ng-deep .page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}:host ::ng-deep .pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}:host ::ng-deep .pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}:host{display:inline-block}\n"] }]
|
|
181
|
+
}], propDecorators: { pageNumbers: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageNumbers", required: false }] }], selectedPageNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedPageNumber", required: false }] }, { type: i0.Output, args: ["selectedPageNumberChange"] }], numberOfBoxes: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfBoxes", required: false }] }], showArrows: [{ type: i0.Input, args: [{ isSignal: true, alias: "showArrows", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
|
|
180
182
|
|
|
181
183
|
/**
|
|
182
184
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-pagination.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/pagination/src/component/pagination/pagination.component.ts","../../../../libs/mintplayer-ng-bootstrap/pagination/src/component/pagination/pagination.component.html","../../../../libs/mintplayer-ng-bootstrap/pagination/mintplayer-ng-bootstrap-pagination.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { Size } from '@mintplayer/ng-bootstrap';\nimport { PageWithSelection } from '../../interfaces/page-with-selection';\nimport { PageNumberType } from '../../types/page-number.type';\n\n@Component({\n selector: 'bs-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsPaginationComponent {\n /** All page numbers. */\n pageNumbers = input<number[]>([]);\n /** Selected number. */\n selectedPageNumber = model<number>(1);\n /** Number of boxes. */\n numberOfBoxes = input<number>(0);\n /** Display previous/next arrows. */\n showArrows = input<boolean>(true);\n /** Page number size. */\n size = input<Size>('medium');\n\n /** The number of boxes (excluding arrows) that's being shown on the pagination component. */\n visibleNumberOfNumberBoxes = computed(() => {\n const numberOfBoxes = this.numberOfBoxes();\n const pageNumbers = this.pageNumbers();\n const showArrows = this.showArrows();\n if (numberOfBoxes <= 0) {\n return pageNumbers.length;\n } else if (!showArrows) {\n return Math.min(numberOfBoxes, pageNumbers.length);\n } else if (numberOfBoxes <= 2) {\n return Math.min(1, pageNumbers.length);\n } else {\n return Math.min(numberOfBoxes - 2, pageNumbers.length);\n }\n });\n\n /** Page numbers to be displayed to the user, with ellipsis entries where pages are omitted. */\n shownPageNumbers = computed<PageWithSelection[]>(() => {\n const pageNumbers = this.pageNumbers();\n const selectedPageNumber = this.selectedPageNumber();\n const budget = this.visibleNumberOfNumberBoxes();\n\n // No truncation needed\n if (budget <= 0 || budget >= pageNumbers.length) {\n return pageNumbers.map((p) => <PageWithSelection>{\n page: p,\n selected: p === selectedPageNumber,\n });\n }\n\n const selectedIndex = Math.max(0, Math.min(\n pageNumbers.indexOf(selectedPageNumber),\n pageNumbers.length - 1\n ));\n const lastIndex = pageNumbers.length - 1;\n\n // Centers a window of the given size on selectedIndex, clamped to valid range\n const calcWindow = (size: number): [number, number] => {\n const half = Math.floor((size - 1) / 2);\n let ws = selectedIndex - half;\n let we = ws + size - 1;\n if (ws < 0) { we = Math.min(lastIndex, we - ws); ws = 0; }\n if (we > lastIndex) { ws = Math.max(0, ws - (we - lastIndex)); we = lastIndex; }\n return [ws, we];\n };\n\n // For small budgets (< 5), just show a centered window — not enough room for anchors + ellipsis\n if (budget < 5) {\n const [ws, we] = calcWindow(budget);\n return Array.from({ length: we - ws + 1 }, (_, i) => <PageWithSelection>{\n page: pageNumbers[ws + i],\n selected: pageNumbers[ws + i] === selectedPageNumber,\n });\n }\n\n // For budget >= 5: reserve slots for first/last anchors and ellipsis, then fill the inner window.\n // Overhead per side: 0 (window reaches edge), 1 (window is 1 away from edge), or 2 (anchor + ellipsis/bridge).\n // Iterate until stable — converges in 2–4 iterations.\n let leftOverhead = 2;\n let rightOverhead = 2;\n let windowStart = 0;\n let windowEnd = 0;\n\n for (let iteration = 0; iteration < 4; iteration++) {\n const innerBudget = Math.max(1, budget - leftOverhead - rightOverhead);\n [windowStart, windowEnd] = calcWindow(innerBudget);\n\n const newLeftOverhead = windowStart === 0 ? 0 : windowStart === 1 ? 1 : 2;\n const newRightOverhead = windowEnd === lastIndex ? 0 : windowEnd === lastIndex - 1 ? 1 : 2;\n\n if (newLeftOverhead === leftOverhead && newRightOverhead === rightOverhead) break;\n leftOverhead = newLeftOverhead;\n rightOverhead = newRightOverhead;\n }\n\n // Build result\n const result: PageWithSelection[] = [];\n const pushPage = (index: number) => {\n result.push(<PageWithSelection>{\n page: pageNumbers[index],\n selected: pageNumbers[index] === selectedPageNumber,\n });\n };\n\n // Left anchor or bridge\n if (windowStart >= 3) {\n pushPage(0);\n result.push({ page: '...', selected: false });\n } else if (windowStart === 2) {\n pushPage(0);\n pushPage(1);\n } else if (windowStart === 1) {\n pushPage(0);\n }\n\n // Inner window\n for (let i = windowStart; i <= windowEnd; i++) {\n pushPage(i);\n }\n\n // Right bridge or anchor\n if (windowEnd <= lastIndex - 3) {\n result.push({ page: '...', selected: false });\n pushPage(lastIndex);\n } else if (windowEnd === lastIndex - 2) {\n pushPage(lastIndex - 1);\n pushPage(lastIndex);\n } else if (windowEnd === lastIndex - 1) {\n pushPage(lastIndex);\n }\n\n return result;\n });\n\n /** Indicates if first value is selected. */\n isFirstPage = computed(() => {\n const pageNumbers = this.pageNumbers();\n const selectedPageNumber = this.selectedPageNumber();\n return pageNumbers.indexOf(selectedPageNumber) === 0;\n });\n\n /** Indicates if last value is selected. */\n isLastPage = computed(() => {\n const pageNumbers = this.pageNumbers();\n const selectedPageNumber = this.selectedPageNumber();\n return pageNumbers.indexOf(selectedPageNumber) === pageNumbers.length - 1;\n });\n\n onSelectPage(event: MouseEvent, page: PageNumberType) {\n if (typeof page === 'number') {\n this.selectedPageNumber.set(page);\n }\n return false;\n }\n\n onPrevious() {\n const pageNumbers = this.pageNumbers();\n const selectedPageNumber = this.selectedPageNumber();\n const index = pageNumbers.indexOf(selectedPageNumber);\n if (index > 0) {\n const newValue = pageNumbers[index - 1];\n this.selectedPageNumber.set(newValue);\n } else {\n this.selectedPageNumber.set(pageNumbers[0]);\n }\n return false;\n }\n\n onNext() {\n const pageNumbers = this.pageNumbers();\n const selectedPageNumber = this.selectedPageNumber();\n const index = pageNumbers.indexOf(selectedPageNumber);\n if (index < 0) {\n this.selectedPageNumber.set(pageNumbers[pageNumbers.length - 1]);\n } else if (index < pageNumbers.length - 1) {\n this.selectedPageNumber.set(pageNumbers[index + 1]);\n } else {\n this.selectedPageNumber.set(pageNumbers[pageNumbers.length - 1]);\n }\n return false;\n }\n}\n","<ul class=\"pagination\">\n @if (showArrows()) {\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" [class.disabled]=\"isFirstPage()\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">«</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n }\n @for (pageNumber of shownPageNumbers(); track $index) {\n <li class=\"page-item\">\n @if (pageNumber.page === '...') {\n <a class=\"page-link disabled\" aria-disabled=\"true\">\n <span aria-hidden=\"true\">…</span>\n <span class=\"visually-hidden\">More pages</span>\n </a>\n } @else {\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\" [class.active]=\"pageNumber.selected\">\n {{ pageNumber.page }}\n @if (pageNumber.selected) {\n <span class=\"visually-hidden\">(current)</span>\n }\n </a>\n }\n </li>\n }\n @if (showArrows()) {\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" [class.disabled]=\"isLastPage()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">»</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n }\n</ul>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-pagination.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/pagination/src/component/pagination/pagination.component.ts","../../../../libs/mintplayer-ng-bootstrap/pagination/src/component/pagination/pagination.component.html","../../../../libs/mintplayer-ng-bootstrap/pagination/mintplayer-ng-bootstrap-pagination.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { Size } from '@mintplayer/ng-bootstrap';\nimport { PageWithSelection } from '../../interfaces/page-with-selection';\nimport { PageNumberType } from '../../types/page-number.type';\n\n@Component({\n selector: 'bs-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsPaginationComponent {\n /** All page numbers. */\n pageNumbers = input<number[]>([]);\n /** Selected number. */\n selectedPageNumber = model<number>(1);\n /** Number of boxes. */\n numberOfBoxes = input<number>(0);\n /** Display previous/next arrows. */\n showArrows = input<boolean>(true);\n /** Page number size. */\n size = input<Size>('medium');\n /** Accessible name on the surrounding `<nav>` landmark. */\n ariaLabel = input<string>('Pagination');\n\n /** The number of boxes (excluding arrows) that's being shown on the pagination component. */\n visibleNumberOfNumberBoxes = computed(() => {\n const numberOfBoxes = this.numberOfBoxes();\n const pageNumbers = this.pageNumbers();\n const showArrows = this.showArrows();\n if (numberOfBoxes <= 0) {\n return pageNumbers.length;\n } else if (!showArrows) {\n return Math.min(numberOfBoxes, pageNumbers.length);\n } else if (numberOfBoxes <= 2) {\n return Math.min(1, pageNumbers.length);\n } else {\n return Math.min(numberOfBoxes - 2, pageNumbers.length);\n }\n });\n\n /** Page numbers to be displayed to the user, with ellipsis entries where pages are omitted. */\n shownPageNumbers = computed<PageWithSelection[]>(() => {\n const pageNumbers = this.pageNumbers();\n const selectedPageNumber = this.selectedPageNumber();\n const budget = this.visibleNumberOfNumberBoxes();\n\n // No truncation needed\n if (budget <= 0 || budget >= pageNumbers.length) {\n return pageNumbers.map((p) => <PageWithSelection>{\n page: p,\n selected: p === selectedPageNumber,\n });\n }\n\n const selectedIndex = Math.max(0, Math.min(\n pageNumbers.indexOf(selectedPageNumber),\n pageNumbers.length - 1\n ));\n const lastIndex = pageNumbers.length - 1;\n\n // Centers a window of the given size on selectedIndex, clamped to valid range\n const calcWindow = (size: number): [number, number] => {\n const half = Math.floor((size - 1) / 2);\n let ws = selectedIndex - half;\n let we = ws + size - 1;\n if (ws < 0) { we = Math.min(lastIndex, we - ws); ws = 0; }\n if (we > lastIndex) { ws = Math.max(0, ws - (we - lastIndex)); we = lastIndex; }\n return [ws, we];\n };\n\n // For small budgets (< 5), just show a centered window — not enough room for anchors + ellipsis\n if (budget < 5) {\n const [ws, we] = calcWindow(budget);\n return Array.from({ length: we - ws + 1 }, (_, i) => <PageWithSelection>{\n page: pageNumbers[ws + i],\n selected: pageNumbers[ws + i] === selectedPageNumber,\n });\n }\n\n // For budget >= 5: reserve slots for first/last anchors and ellipsis, then fill the inner window.\n // Overhead per side: 0 (window reaches edge), 1 (window is 1 away from edge), or 2 (anchor + ellipsis/bridge).\n // Iterate until stable — converges in 2–4 iterations.\n let leftOverhead = 2;\n let rightOverhead = 2;\n let windowStart = 0;\n let windowEnd = 0;\n\n for (let iteration = 0; iteration < 4; iteration++) {\n const innerBudget = Math.max(1, budget - leftOverhead - rightOverhead);\n [windowStart, windowEnd] = calcWindow(innerBudget);\n\n const newLeftOverhead = windowStart === 0 ? 0 : windowStart === 1 ? 1 : 2;\n const newRightOverhead = windowEnd === lastIndex ? 0 : windowEnd === lastIndex - 1 ? 1 : 2;\n\n if (newLeftOverhead === leftOverhead && newRightOverhead === rightOverhead) break;\n leftOverhead = newLeftOverhead;\n rightOverhead = newRightOverhead;\n }\n\n // Build result\n const result: PageWithSelection[] = [];\n const pushPage = (index: number) => {\n result.push(<PageWithSelection>{\n page: pageNumbers[index],\n selected: pageNumbers[index] === selectedPageNumber,\n });\n };\n\n // Left anchor or bridge\n if (windowStart >= 3) {\n pushPage(0);\n result.push({ page: '...', selected: false });\n } else if (windowStart === 2) {\n pushPage(0);\n pushPage(1);\n } else if (windowStart === 1) {\n pushPage(0);\n }\n\n // Inner window\n for (let i = windowStart; i <= windowEnd; i++) {\n pushPage(i);\n }\n\n // Right bridge or anchor\n if (windowEnd <= lastIndex - 3) {\n result.push({ page: '...', selected: false });\n pushPage(lastIndex);\n } else if (windowEnd === lastIndex - 2) {\n pushPage(lastIndex - 1);\n pushPage(lastIndex);\n } else if (windowEnd === lastIndex - 1) {\n pushPage(lastIndex);\n }\n\n return result;\n });\n\n /** Indicates if first value is selected. */\n isFirstPage = computed(() => {\n const pageNumbers = this.pageNumbers();\n const selectedPageNumber = this.selectedPageNumber();\n return pageNumbers.indexOf(selectedPageNumber) === 0;\n });\n\n /** Indicates if last value is selected. */\n isLastPage = computed(() => {\n const pageNumbers = this.pageNumbers();\n const selectedPageNumber = this.selectedPageNumber();\n return pageNumbers.indexOf(selectedPageNumber) === pageNumbers.length - 1;\n });\n\n onSelectPage(event: MouseEvent, page: PageNumberType) {\n if (typeof page === 'number') {\n this.selectedPageNumber.set(page);\n }\n return false;\n }\n\n onPrevious() {\n const pageNumbers = this.pageNumbers();\n const selectedPageNumber = this.selectedPageNumber();\n const index = pageNumbers.indexOf(selectedPageNumber);\n if (index > 0) {\n const newValue = pageNumbers[index - 1];\n this.selectedPageNumber.set(newValue);\n } else {\n this.selectedPageNumber.set(pageNumbers[0]);\n }\n return false;\n }\n\n onNext() {\n const pageNumbers = this.pageNumbers();\n const selectedPageNumber = this.selectedPageNumber();\n const index = pageNumbers.indexOf(selectedPageNumber);\n if (index < 0) {\n this.selectedPageNumber.set(pageNumbers[pageNumbers.length - 1]);\n } else if (index < pageNumbers.length - 1) {\n this.selectedPageNumber.set(pageNumbers[index + 1]);\n } else {\n this.selectedPageNumber.set(pageNumbers[pageNumbers.length - 1]);\n }\n return false;\n }\n}\n","<nav [attr.aria-label]=\"ariaLabel()\">\n <ul class=\"pagination\">\n @if (showArrows()) {\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onPrevious()\" [class.disabled]=\"isFirstPage()\" aria-label=\"Previous\">\n <span aria-hidden=\"true\">«</span>\n <span class=\"visually-hidden\">Previous</span>\n </a>\n </li>\n }\n @for (pageNumber of shownPageNumbers(); track $index) {\n <li class=\"page-item\" [class.active]=\"pageNumber.selected\">\n @if (pageNumber.page === '...') {\n <span class=\"page-link disabled\" aria-disabled=\"true\">\n <span aria-hidden=\"true\">…</span>\n <span class=\"visually-hidden\">More pages</span>\n </span>\n } @else {\n <a class=\"page-link\" href=\"\" (click)=\"onSelectPage($event, pageNumber.page)\" [class.active]=\"pageNumber.selected\" [attr.aria-current]=\"pageNumber.selected ? 'page' : null\">\n {{ pageNumber.page }}\n </a>\n }\n </li>\n }\n @if (showArrows()) {\n <li class=\"page-item\">\n <a class=\"page-link\" href=\"\" (click)=\"onNext()\" [class.disabled]=\"isLastPage()\" aria-label=\"Next\">\n <span aria-hidden=\"true\">»</span>\n <span class=\"visually-hidden\">Next</span>\n </a>\n </li>\n }\n </ul>\n</nav>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAWa,qBAAqB,CAAA;AANlC,IAAA,WAAA,GAAA;;AAQE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAW,EAAE,kFAAC;;AAEjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAS,CAAC,yFAAC;;AAErC,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAS,CAAC,oFAAC;;AAEhC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,IAAI,iFAAC;;AAEjC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAO,QAAQ,2EAAC;;AAE5B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,YAAY,gFAAC;;AAGvC,QAAA,IAAA,CAAA,0BAA0B,GAAG,QAAQ,CAAC,MAAK;AACzC,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE;AACpC,YAAA,IAAI,aAAa,IAAI,CAAC,EAAE;gBACtB,OAAO,WAAW,CAAC,MAAM;YAC3B;iBAAO,IAAI,CAAC,UAAU,EAAE;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC;YACpD;AAAO,iBAAA,IAAI,aAAa,IAAI,CAAC,EAAE;gBAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;YACxC;iBAAO;AACL,gBAAA,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC;YACxD;AACF,QAAA,CAAC,iGAAC;;AAGF,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAsB,MAAK;AACpD,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpD,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,EAAE;;YAGhD,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE;gBAC/C,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAwB;AAC/C,oBAAA,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,CAAC,KAAK,kBAAkB;AACnC,iBAAA,CAAA,CAAC;YACJ;YAEA,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CACxC,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,EACvC,WAAW,CAAC,MAAM,GAAG,CAAC,CACvB,CAAC;AACF,YAAA,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;;AAGxC,YAAA,MAAM,UAAU,GAAG,CAAC,IAAY,KAAsB;AACpD,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,gBAAA,IAAI,EAAE,GAAG,aAAa,GAAG,IAAI;AAC7B,gBAAA,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC;AACtB,gBAAA,IAAI,EAAE,GAAG,CAAC,EAAE;oBAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC;oBAAE,EAAE,GAAG,CAAC;gBAAE;AACzD,gBAAA,IAAI,EAAE,GAAG,SAAS,EAAE;AAAE,oBAAA,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC;oBAAE,EAAE,GAAG,SAAS;gBAAE;AAC/E,gBAAA,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACjB,YAAA,CAAC;;AAGD,YAAA,IAAI,MAAM,GAAG,CAAC,EAAE;gBACd,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;gBACnC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAwB;AACtE,oBAAA,IAAI,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,QAAQ,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,kBAAkB;AACrD,iBAAA,CAAA,CAAC;YACJ;;;;YAKA,IAAI,YAAY,GAAG,CAAC;YACpB,IAAI,aAAa,GAAG,CAAC;YACrB,IAAI,WAAW,GAAG,CAAC;YACnB,IAAI,SAAS,GAAG,CAAC;AAEjB,YAAA,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,EAAE;AAClD,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC;gBACtE,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC;gBAElD,MAAM,eAAe,GAAG,WAAW,KAAK,CAAC,GAAG,CAAC,GAAG,WAAW,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;gBACzE,MAAM,gBAAgB,GAAG,SAAS,KAAK,SAAS,GAAG,CAAC,GAAG,SAAS,KAAK,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAE1F,gBAAA,IAAI,eAAe,KAAK,YAAY,IAAI,gBAAgB,KAAK,aAAa;oBAAE;gBAC5E,YAAY,GAAG,eAAe;gBAC9B,aAAa,GAAG,gBAAgB;YAClC;;YAGA,MAAM,MAAM,GAAwB,EAAE;AACtC,YAAA,MAAM,QAAQ,GAAG,CAAC,KAAa,KAAI;gBACjC,MAAM,CAAC,IAAI,CAAoB;AAC7B,oBAAA,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;AACxB,oBAAA,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,kBAAkB;AACpD,iBAAA,CAAC;AACJ,YAAA,CAAC;;AAGD,YAAA,IAAI,WAAW,IAAI,CAAC,EAAE;gBACpB,QAAQ,CAAC,CAAC,CAAC;AACX,gBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YAC/C;AAAO,iBAAA,IAAI,WAAW,KAAK,CAAC,EAAE;gBAC5B,QAAQ,CAAC,CAAC,CAAC;gBACX,QAAQ,CAAC,CAAC,CAAC;YACb;AAAO,iBAAA,IAAI,WAAW,KAAK,CAAC,EAAE;gBAC5B,QAAQ,CAAC,CAAC,CAAC;YACb;;AAGA,YAAA,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE;gBAC7C,QAAQ,CAAC,CAAC,CAAC;YACb;;AAGA,YAAA,IAAI,SAAS,IAAI,SAAS,GAAG,CAAC,EAAE;AAC9B,gBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;gBAC7C,QAAQ,CAAC,SAAS,CAAC;YACrB;AAAO,iBAAA,IAAI,SAAS,KAAK,SAAS,GAAG,CAAC,EAAE;AACtC,gBAAA,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;gBACvB,QAAQ,CAAC,SAAS,CAAC;YACrB;AAAO,iBAAA,IAAI,SAAS,KAAK,SAAS,GAAG,CAAC,EAAE;gBACtC,QAAQ,CAAC,SAAS,CAAC;YACrB;AAEA,YAAA,OAAO,MAAM;AACf,QAAA,CAAC,uFAAC;;AAGF,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC1B,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE;YACpD,OAAO,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;AACtD,QAAA,CAAC,kFAAC;;AAGF,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AACzB,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpD,YAAA,OAAO,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC;AAC3E,QAAA,CAAC,iFAAC;AAmCH,IAAA;IAjCC,YAAY,CAAC,KAAiB,EAAE,IAAoB,EAAA;AAClD,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;QACnC;AACA,QAAA,OAAO,KAAK;IACd;IAEA,UAAU,GAAA;AACR,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE;QACpD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;AACrD,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvC;aAAO;YACL,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7C;AACA,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,EAAE;QACpD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;AACrD,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClE;aAAO,IAAI,KAAK,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACrD;aAAO;AACL,YAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClE;AACA,QAAA,OAAO,KAAK;IACd;+GA9KW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,28BCXlC,onDAkCA,EAAA,MAAA,EAAA,CAAA,mtGAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDvBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;+BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,onDAAA,EAAA,MAAA,EAAA,CAAA,mtGAAA,CAAA,EAAA;;;AETjD;;AAEG;;;;"}
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { model,
|
|
2
|
+
import { inject, model, input, effect, ChangeDetectionStrategy, Component, Directive } from '@angular/core';
|
|
3
|
+
import { BsLiveAnnouncerService } from '@mintplayer/ng-bootstrap/a11y';
|
|
3
4
|
|
|
4
5
|
class BsPlaceholderComponent {
|
|
5
6
|
constructor() {
|
|
7
|
+
this.announcer = inject(BsLiveAnnouncerService);
|
|
6
8
|
this.isLoading = model(false, ...(ngDevMode ? [{ debugName: "isLoading" }] : /* istanbul ignore next */ []));
|
|
9
|
+
this.loadingCompleteText = input('Loading complete', ...(ngDevMode ? [{ debugName: "loadingCompleteText" }] : /* istanbul ignore next */ []));
|
|
10
|
+
this.wasLoading = false;
|
|
11
|
+
effect(() => {
|
|
12
|
+
const isLoading = this.isLoading();
|
|
13
|
+
if (this.wasLoading && !isLoading) {
|
|
14
|
+
this.announcer.announce(this.loadingCompleteText());
|
|
15
|
+
}
|
|
16
|
+
this.wasLoading = isLoading;
|
|
17
|
+
});
|
|
7
18
|
}
|
|
8
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsPlaceholderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: BsPlaceholderComponent, isStandalone: true, selector: "bs-placeholder", inputs: { isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isLoading: "isLoadingChange" }, ngImport: i0, template: "<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}:host ::ng-deep .placeholder.btn:before{display:inline-block;content:\"\"}:host ::ng-deep .placeholder-xs{min-height:.6em}:host ::ng-deep .placeholder-sm{min-height:.8em}:host ::ng-deep .placeholder-lg{min-height:1.2em}:host ::ng-deep .placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}:host ::ng-deep .placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}:host ::ng-deep .placeholder{min-height:calc(1em - 1px)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: BsPlaceholderComponent, isStandalone: true, selector: "bs-placeholder", inputs: { isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, loadingCompleteText: { classPropertyName: "loadingCompleteText", publicName: "loadingCompleteText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isLoading: "isLoadingChange" }, host: { properties: { "attr.aria-busy": "isLoading() ? \"true\" : null", "attr.aria-live": "isLoading() ? \"polite\" : null" } }, ngImport: i0, template: "<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}:host ::ng-deep .placeholder.btn:before{display:inline-block;content:\"\"}:host ::ng-deep .placeholder-xs{min-height:.6em}:host ::ng-deep .placeholder-sm{min-height:.8em}:host ::ng-deep .placeholder-lg{min-height:1.2em}:host ::ng-deep .placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}:host ::ng-deep .placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}:host ::ng-deep .placeholder{min-height:calc(1em - 1px)!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
21
|
}
|
|
11
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsPlaceholderComponent, decorators: [{
|
|
12
23
|
type: Component,
|
|
13
|
-
args: [{ selector: 'bs-placeholder', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14
|
-
|
|
24
|
+
args: [{ selector: 'bs-placeholder', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
25
|
+
'[attr.aria-busy]': 'isLoading() ? "true" : null',
|
|
26
|
+
'[attr.aria-live]': 'isLoading() ? "polite" : null',
|
|
27
|
+
}, template: "<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>", styles: [":host ::ng-deep .placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}:host ::ng-deep .placeholder.btn:before{display:inline-block;content:\"\"}:host ::ng-deep .placeholder-xs{min-height:.6em}:host ::ng-deep .placeholder-sm{min-height:.8em}:host ::ng-deep .placeholder-lg{min-height:1.2em}:host ::ng-deep .placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}:host ::ng-deep .placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}:host ::ng-deep .placeholder{min-height:calc(1em - 1px)!important}\n"] }]
|
|
28
|
+
}], ctorParameters: () => [], propDecorators: { isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }, { type: i0.Output, args: ["isLoadingChange"] }], loadingCompleteText: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingCompleteText", required: false }] }] } });
|
|
15
29
|
|
|
16
30
|
class BsPlaceholderFieldDirective {
|
|
17
31
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-placeholder.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder/placeholder.component.ts","../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder/placeholder.component.html","../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder-field/placeholder-field.directive.ts","../../../../libs/mintplayer-ng-bootstrap/placeholder/mintplayer-ng-bootstrap-placeholder.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bs-placeholder',\n templateUrl: './placeholder.component.html',\n styleUrls: ['./placeholder.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsPlaceholderComponent {\n isLoading = model<boolean>(false);\n}\n","<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>","import { Directive, effect, inject } from '@angular/core';\nimport { BsPlaceholderComponent } from '../placeholder/placeholder.component';\n\n@Directive({\n selector: '[bsPlaceholderField]',\n host: {\n '[attr.innerHtml]': 'html',\n '[style.min-width.px]': '80',\n '[style.margin-bottom.px]': 'marginBottom',\n '[class.placeholder]': 'placeholderClass',\n },\n})\nexport class BsPlaceholderFieldDirective {\n private placeholder = inject(BsPlaceholderComponent);\n\n constructor() {\n effect(() => {\n const isLoading = this.placeholder.isLoading();\n this.placeholderClass = isLoading;\n this.marginBottom = isLoading ? -1 : 0;\n this.html = isLoading ? ' ' : undefined;\n });\n }\n\n html?: string = undefined;\n marginBottom = 0;\n placeholderClass = true;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-placeholder.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder/placeholder.component.ts","../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder/placeholder.component.html","../../../../libs/mintplayer-ng-bootstrap/placeholder/src/placeholder-field/placeholder-field.directive.ts","../../../../libs/mintplayer-ng-bootstrap/placeholder/mintplayer-ng-bootstrap-placeholder.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, effect, inject, input, model } from '@angular/core';\nimport { BsLiveAnnouncerService } from '@mintplayer/ng-bootstrap/a11y';\n\n@Component({\n selector: 'bs-placeholder',\n templateUrl: './placeholder.component.html',\n styleUrls: ['./placeholder.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-busy]': 'isLoading() ? \"true\" : null',\n '[attr.aria-live]': 'isLoading() ? \"polite\" : null',\n },\n})\nexport class BsPlaceholderComponent {\n private announcer = inject(BsLiveAnnouncerService);\n\n isLoading = model<boolean>(false);\n loadingCompleteText = input<string>('Loading complete');\n\n private wasLoading = false;\n\n constructor() {\n effect(() => {\n const isLoading = this.isLoading();\n if (this.wasLoading && !isLoading) {\n this.announcer.announce(this.loadingCompleteText());\n }\n this.wasLoading = isLoading;\n });\n }\n}\n","<div class=\"placeholder-glow\">\n <ng-content></ng-content>\n</div>","import { Directive, effect, inject } from '@angular/core';\nimport { BsPlaceholderComponent } from '../placeholder/placeholder.component';\n\n@Directive({\n selector: '[bsPlaceholderField]',\n host: {\n '[attr.innerHtml]': 'html',\n '[style.min-width.px]': '80',\n '[style.margin-bottom.px]': 'marginBottom',\n '[class.placeholder]': 'placeholderClass',\n },\n})\nexport class BsPlaceholderFieldDirective {\n private placeholder = inject(BsPlaceholderComponent);\n\n constructor() {\n effect(() => {\n const isLoading = this.placeholder.isLoading();\n this.placeholderClass = isLoading;\n this.marginBottom = isLoading ? -1 : 0;\n this.html = isLoading ? ' ' : undefined;\n });\n }\n\n html?: string = undefined;\n marginBottom = 0;\n placeholderClass = true;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,21 +5,21 @@ class BsPlaylistTogglerComponent {
|
|
|
5
5
|
constructor() {
|
|
6
6
|
this.state = model(false, ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
|
|
7
7
|
this.toggleOnClick = input(true, ...(ngDevMode ? [{ debugName: "toggleOnClick" }] : /* istanbul ignore next */ []));
|
|
8
|
+
this.ariaLabel = input('Toggle playlist', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
9
|
+
this.controls = input(null, ...(ngDevMode ? [{ debugName: "controls" }] : /* istanbul ignore next */ []));
|
|
8
10
|
}
|
|
9
|
-
toggleState(
|
|
11
|
+
toggleState() {
|
|
10
12
|
if (this.toggleOnClick()) {
|
|
11
13
|
this.state.update(v => !v);
|
|
12
14
|
}
|
|
13
15
|
}
|
|
14
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsPlaylistTogglerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: BsPlaylistTogglerComponent, isStandalone: true, selector: "bs-playlist-toggler", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.11", type: BsPlaylistTogglerComponent, isStandalone: true, selector: "bs-playlist-toggler", inputs: { state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { state: "stateChange" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"playlist-toggler float-start\"\n [class.open]=\"state()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-expanded]=\"state()\"\n [attr.aria-controls]=\"controls()\"\n (click)=\"toggleState()\">\n <div></div>\n <div></div>\n <div></div>\n</button>\n", styles: [".playlist-toggler{width:3.5rem;padding:.75rem;border:none;background:transparent;cursor:pointer}.playlist-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.playlist-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.playlist-toggler.open>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:0}.playlist-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}.playlist-toggler:not(.open)>div:nth-of-type(1){-webkit-transform:rotate(-30deg) translate(-10px,11px);transform:rotate(-30deg) translate(-10px,11px)}.playlist-toggler:not(.open)>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:1}.playlist-toggler:not(.open)>div:nth-of-type(3){-webkit-transform:rotate(30deg) translate(-10px,-11px);transform:rotate(30deg) translate(-10px,-11px)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16
18
|
}
|
|
17
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: BsPlaylistTogglerComponent, decorators: [{
|
|
18
20
|
type: Component,
|
|
19
|
-
args: [{ selector: 'bs-playlist-toggler', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
20
|
-
|
|
21
|
-
}, template: "<div class=\"playlist-toggler float-left\" [class.open]=\"state()\">\n <div></div>\n <div></div>\n <div></div>\n</div>", styles: [".playlist-toggler{width:3.5rem;padding:.75rem}.playlist-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.playlist-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.playlist-toggler.open>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:0}.playlist-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}.playlist-toggler:not(.open)>div:nth-of-type(1){-webkit-transform:rotate(-30deg) translate(-10px,11px);transform:rotate(-30deg) translate(-10px,11px)}.playlist-toggler:not(.open)>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:1}.playlist-toggler:not(.open)>div:nth-of-type(3){-webkit-transform:rotate(30deg) translate(-10px,-11px);transform:rotate(30deg) translate(-10px,-11px)}\n"] }]
|
|
22
|
-
}], propDecorators: { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }, { type: i0.Output, args: ["stateChange"] }], toggleOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleOnClick", required: false }] }] } });
|
|
21
|
+
args: [{ selector: 'bs-playlist-toggler', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"playlist-toggler float-start\"\n [class.open]=\"state()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-expanded]=\"state()\"\n [attr.aria-controls]=\"controls()\"\n (click)=\"toggleState()\">\n <div></div>\n <div></div>\n <div></div>\n</button>\n", styles: [".playlist-toggler{width:3.5rem;padding:.75rem;border:none;background:transparent;cursor:pointer}.playlist-toggler>div{width:25px;height:2px;background:#bbb;margin:6px 0;transition:.4s}.playlist-toggler.open>div:nth-of-type(1){-webkit-transform:rotate(-45deg) translate(-7px,5px);transform:rotate(-45deg) translate(-7px,5px)}.playlist-toggler.open>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:0}.playlist-toggler.open>div:nth-of-type(3){-webkit-transform:rotate(45deg) translate(-6px,-4px);transform:rotate(45deg) translate(-6px,-4px)}.playlist-toggler:not(.open)>div:nth-of-type(1){-webkit-transform:rotate(-30deg) translate(-10px,11px);transform:rotate(-30deg) translate(-10px,11px)}.playlist-toggler:not(.open)>div:nth-of-type(2){-webkit-transform:rotate(90deg) translate(0px,14px);transform:rotate(90deg) translateY(14px);opacity:1}.playlist-toggler:not(.open)>div:nth-of-type(3){-webkit-transform:rotate(30deg) translate(-10px,-11px);transform:rotate(30deg) translate(-10px,-11px)}\n"] }]
|
|
22
|
+
}], propDecorators: { state: [{ type: i0.Input, args: [{ isSignal: true, alias: "state", required: false }] }, { type: i0.Output, args: ["stateChange"] }], toggleOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleOnClick", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], controls: [{ type: i0.Input, args: [{ isSignal: true, alias: "controls", required: false }] }] } });
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mintplayer-ng-bootstrap-playlist-toggler.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/src/playlist-toggler/playlist-toggler.component.ts","../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/src/playlist-toggler/playlist-toggler.component.html","../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/mintplayer-ng-bootstrap-playlist-toggler.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bs-playlist-toggler',\n templateUrl: './playlist-toggler.component.html',\n styleUrls: ['./playlist-toggler.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n
|
|
1
|
+
{"version":3,"file":"mintplayer-ng-bootstrap-playlist-toggler.mjs","sources":["../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/src/playlist-toggler/playlist-toggler.component.ts","../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/src/playlist-toggler/playlist-toggler.component.html","../../../../libs/mintplayer-ng-bootstrap/playlist-toggler/mintplayer-ng-bootstrap-playlist-toggler.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\n\n@Component({\n selector: 'bs-playlist-toggler',\n templateUrl: './playlist-toggler.component.html',\n styleUrls: ['./playlist-toggler.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BsPlaylistTogglerComponent {\n state = model<boolean>(false);\n toggleOnClick = input(true);\n ariaLabel = input<string>('Toggle playlist');\n controls = input<string | null>(null);\n\n toggleState() {\n if (this.toggleOnClick()) {\n this.state.update(v => !v);\n }\n }\n}\n","<button\n type=\"button\"\n class=\"playlist-toggler float-start\"\n [class.open]=\"state()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-expanded]=\"state()\"\n [attr.aria-controls]=\"controls()\"\n (click)=\"toggleState()\">\n <div></div>\n <div></div>\n <div></div>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAQa,0BAA0B,CAAA;AANvC,IAAA,WAAA,GAAA;AAOE,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAU,KAAK,4EAAC;AAC7B,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,IAAI,oFAAC;AAC3B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,iBAAiB,gFAAC;AAC5C,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAgB,IAAI,+EAAC;AAOtC,IAAA;IALC,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B;IACF;+GAVW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,2oBCRvC,8TAYA,EAAA,MAAA,EAAA,CAAA,wiCAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FDJa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;+BACE,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8TAAA,EAAA,MAAA,EAAA,CAAA,wiCAAA,CAAA,EAAA;;;AENjD;;AAEG;;;;"}
|