@sebgroup/green-angular 7.2.0-rc.20260112150926524 → 7.2.0-rc.20260113120917716
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/sebgroup-green-angular-src-lib-accordion.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-button.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +22 -22
- package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +34 -34
- package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +8 -8
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +3 -3
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +34 -34
- package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +26 -26
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +14 -14
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +16 -16
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +22 -22
- package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +10 -10
- package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +7 -7
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +281 -281
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular.mjs +166 -166
- package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sebgroup-green-angular-src-v-angular-modal.mjs","sources":["../../../../libs/angular/src/v-angular/modal/modal.globals.ts","../../../../libs/angular/src/v-angular/modal/dialog/dialog.component.ts","../../../../libs/angular/src/v-angular/modal/dialog/dialog.component.html","../../../../libs/angular/src/v-angular/modal/fold-out/keyboard-key.enum.ts","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.component.ts","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.component.html","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.directive.ts","../../../../libs/angular/src/v-angular/modal/slide-out/slide-out.component.ts","../../../../libs/angular/src/v-angular/modal/slide-out/slide-out.component.html","../../../../libs/angular/src/v-angular/modal/modal.module.ts","../../../../libs/angular/src/v-angular/modal/sebgroup-green-angular-src-v-angular-modal.ts"],"sourcesContent":["// We must force tsc to interpret this file as a module, resolves\n// \"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"\nexport {}\n\ndeclare global {\n interface Window {\n /** Counter for unique identifiers */\n nggv: {\n ids: { [namespace: string]: number; default: number }\n nextId: (namespace?: string) => string\n }\n }\n}\n\n;(() => {\n // Make sure there is an incremental ID each component can use\n if (typeof window !== 'undefined' && !window.nggv) {\n window.nggv = {\n ids: { default: -1 },\n nextId(namespace = 'default'): string {\n let id = this.ids[namespace] || 0\n if (typeof this.ids[namespace] === 'number') id++\n this.ids[namespace] = id\n return namespace === 'default'\n ? `nggv-${id}`\n : `nggv-${namespace}-${id}`\n },\n }\n }\n})()\n","import {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n} from '@angular/cdk/a11y'\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core'\n\nimport { DialogButtons } from '../modal.types'\n\nexport interface DialogEvent<T = any> {\n original: Event | undefined\n payload: T | undefined\n}\n\n@Component({\n selector: 'nggv-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n exportAs: 'dialog',\n standalone: false\n})\nexport class NggvDialogComponent implements OnInit, OnDestroy {\n private configurableFocusTrap: ConfigurableFocusTrap\n\n @ViewChild('dialog') dialogRef: ElementRef | undefined\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'dialog'\n /** @internal */\n @HostBinding('class.gds-modal-dialog') baseClass = true\n /** @internal Defines the default visibility state of the dialog. */\n private _shown = false\n @Input() set shown(value: boolean) {\n this._shown = value\n this.enableFocusTrap()\n if (value) {\n this.hideOverflow()\n } else {\n this.resetOverflow()\n }\n }\n get shown() {\n return this._shown\n }\n\n /** @internal */\n @HostBinding('attr.aria-hidden') get ariaHidden() {\n return !this.shown\n }\n /** Defines the default visibility state of the dialog. */\n @Input() initiallyShown = false\n /** Sets modal heading. Will be translated (using transloco) if the string matches a cms key. */\n @Input() heading!: string\n /**\n * Sets modal title. Will be translated (using transloco) if the string matches a cms key.\n * @deprecated - use heading instead.\n */\n @Input() title = 'Attention'\n /** Sets content body and can contain html code. The content body can also be set by nesting children to the dialog tag. */\n @Input() content?: string\n /** Defines if dialog should close on action. */\n @Input() autoClose = true\n /** An array of event payloads that will be added to every click context menu item click. */\n @Input() payload: any = {}\n\n @Input() dialogTitleId!: string\n /** Pass the null if you don't want dialog body to be announced by the screen reader */\n @Input() dialogBodyId!: string | null\n /** It gives an ability for parent component to control if modal should be closed on esc button click. */\n @Input() closeModalOnEscape = true\n /** Aria label for the Close button with \"X\" icon, in the header */\n @Input() closeButtonAriaLabel?: string\n\n _buttons: DialogButtons | undefined\n /** Buttons are defined as a key-value pair where key is one of \"positive|neutral|negative\" and value is the button label. */\n @Input() set buttons(buttons: DialogButtons) {\n this._buttons = buttons\n }\n // /** @internal */\n // closeIcon = faTimes\n\n @Output() nggvCloseEvent = new EventEmitter<DialogEvent>()\n @Output() nggvPositiveEvent = new EventEmitter<DialogEvent>()\n @Output() nggvNeutralEvent = new EventEmitter<DialogEvent>()\n @Output() nggvNegativeEvent = new EventEmitter<DialogEvent>()\n @Output() nggvDangerEvent = new EventEmitter<DialogEvent>()\n\n protected _previous: HTMLElement | undefined\n protected _firstFocusable: HTMLElement | undefined\n protected _lastFocusable: HTMLElement | undefined\n\n constructor(\n private renderer: Renderer2,\n private ref: ElementRef<HTMLElement>,\n private configurableFocusTrapFactory: ConfigurableFocusTrapFactory,\n ) {\n this.configurableFocusTrap = this.configurableFocusTrapFactory.create(\n this.ref.nativeElement,\n )\n }\n\n ngOnInit() {\n this.dialogTitleId =\n this.dialogTitleId ?? 'gds-dialog-title-' + window.nggv?.nextId()\n if (this.dialogBodyId !== null) {\n this.dialogBodyId =\n this.dialogBodyId ?? 'gds-dialog-body-' + window.nggv?.nextId()\n }\n\n this._shown = this.initiallyShown\n if (this.shown) this._limitFocusable()\n }\n\n public onAction(event: Event, action: string) {\n event.preventDefault()\n const emitEvent = {\n original: event,\n payload: this.payload,\n }\n switch (action) {\n case 'positive':\n this.nggvPositiveEvent.emit(emitEvent)\n break\n case 'neutral':\n this.nggvNeutralEvent.emit(emitEvent)\n break\n case 'negative':\n this.nggvNegativeEvent.emit(emitEvent)\n break\n case 'danger':\n this.nggvDangerEvent.emit(emitEvent)\n break\n // case 'close' is handled by if-statement below with call to this.close()\n }\n if (this.autoClose) this.close(event, 'action')\n }\n\n open(opener?: HTMLElement) {\n this._shown = true\n this._previous = opener || (document.activeElement as HTMLElement)\n\n this.enableFocusTrap()\n this.hideOverflow()\n this._limitFocusable()\n return true\n }\n\n protected _limitFocusable() {\n window.setTimeout(() => {\n if (!this.dialogRef) return\n const focusable = this.dialogRef.nativeElement.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n this._firstFocusable = focusable[0]\n this._lastFocusable = focusable[focusable.length - 1]\n if (this._firstFocusable) this._firstFocusable.focus()\n })\n }\n\n @HostListener('click', ['$event', '\"host\"'])\n @HostListener('document:keydown.escape', ['$event'])\n close(event?: Event, initiator?: string) {\n if (initiator === 'host' && event instanceof MouseEvent) return\n // prevent modal from closing on esc button click when closeModalOnEscape is set to false\n if (!this.closeModalOnEscape) return\n if (this.shown) {\n const emitEvent = {\n original: event,\n payload: this.payload,\n }\n this.nggvCloseEvent.emit(emitEvent)\n }\n\n this.resetOverflow()\n this.disableFocusTrap()\n\n this._shown = false\n window.setTimeout(() => {\n if (this._previous) this._previous.focus()\n this._previous = undefined\n })\n }\n\n @HostListener('keydown', ['$event'])\n focusTrap(event: KeyboardEvent) {\n if (event.key !== 'Tab') return\n if (event.shiftKey) {\n // shift + tab\n if (\n this._lastFocusable &&\n document.activeElement === this._firstFocusable\n ) {\n this._lastFocusable.focus()\n event.preventDefault()\n }\n } else {\n // tab\n if (\n this._firstFocusable &&\n document.activeElement === this._lastFocusable\n ) {\n this._firstFocusable.focus()\n event.preventDefault()\n }\n }\n }\n\n // to prevent background scrolling when modal is open\n private hideOverflow(): void {\n this.renderer.setStyle(document.body, 'overflow', 'hidden')\n }\n\n private resetOverflow(): void {\n this.renderer.removeStyle(document.body, 'overflow')\n }\n\n private enableFocusTrap() {\n if (this.configurableFocusTrap) {\n this.configurableFocusTrap.enabled = true\n this.configurableFocusTrap.focusInitialElementWhenReady()\n }\n }\n\n private disableFocusTrap() {\n if (this.configurableFocusTrap) {\n this.configurableFocusTrap.enabled = false\n }\n }\n\n ngOnDestroy(): void {\n this.configurableFocusTrap?.destroy()\n }\n}\n","<ng-container *ngIf=\"shown\">\n <div class=\"modal-dialog__wrapper\" [class.-active]=\"shown\">\n <div\n class=\"modal-dialog__container\"\n *transloco=\"let t\"\n #dialog\n role=\"dialog\"\n aria-dialog=\"true\"\n [attr.aria-labelledby]=\"dialogTitleId\"\n [attr.aria-describedby]=\"dialogBodyId\"\n >\n <header class=\"modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n [attr.aria-label]=\"closeButtonAriaLabel\"\n class=\"nggv-modal-slideout__close\"\n >\n <i></i>\n </button>\n </header>\n <section class=\"modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"modal-dialog__actions\">\n <button\n class=\"danger-confirm\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n <button\n class=\"danger\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.danger || 'danger')\"\n (click)=\"onAction($event, 'danger')\"\n (keydown.enter)=\"onAction($event, 'danger')\"\n *ngIf=\"_buttons && _buttons.danger\"\n >\n {{ t(_buttons.danger) }}\n </button>\n <button\n class=\"submit\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n <div class=\"nggv-backdrop\"></div>\n </div>\n</ng-container>\n","export enum KeyboardKey {\n Escape = 'Escape',\n Space = 'Space',\n Enter = 'Enter',\n ArrowUp = 'ArrowUp',\n ArrowDown = 'ArrowDown',\n Tab = 'Tab',\n}\n","import '@sebgroup/green-core/components/icon/icons/dot-grid-one-horizontal.js'\n\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core'\nimport { fromEvent, Subscription } from 'rxjs'\nimport { filter, takeWhile } from 'rxjs/operators'\n\nimport { KeyboardKey } from './keyboard-key.enum'\n\n@Component({\n selector: 'nggv-fold-out',\n templateUrl: './fold-out.component.html',\n styleUrls: ['./fold-out.component.scss'],\n standalone: false\n})\nexport class NggvFoldOutComponent implements OnDestroy, AfterViewInit {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'fold-out'\n\n @ViewChild('foldout', { read: ElementRef }) inputRef?: ElementRef\n @ViewChild('childrenContainer') container?: ElementRef\n\n /** Aligns the dropdown list with the buttons right or left side */\n @Input() alignOptions!: 'left' | 'right'\n /** Option to show text with action button */\n @Input() text?: string\n /** Aria label for the fold-out button */\n @Input() ariaLabel?: string\n /** Sets the width property of the list. Default = fit-content */\n @Input() listWidth: 'fit-content' | 'max-content' | 'min-content' | 'auto' =\n 'fit-content'\n /** Emits when the children container collapses, for components with change detection strategy \"OnPush\" */\n @Output() actionEmitter = new EventEmitter<void>()\n\n /** @internal */\n protected shown = false\n\n private activeIndex = -1\n private firstArrowClick = true\n private ariaFocusAttributeName = 'aria-focus'\n private blurAllElements = (): void => this.children.forEach(this.blurElement)\n private blurElement = (element: HTMLElement): void =>\n element.setAttribute(this.ariaFocusAttributeName, 'false')\n private focusElement = (element: HTMLElement): void =>\n element.setAttribute(this.ariaFocusAttributeName, 'true')\n private getChildIndex = (element: HTMLElement | undefined): number =>\n element ? this.children.indexOf(element) : -1\n\n private onClickSubscription: Subscription | undefined\n private onKeyUpSubscription: Subscription | undefined\n\n private get children() {\n return Array.from(\n (this.container?.nativeElement as HTMLElement).children ?? [],\n ) as HTMLElement[]\n }\n\n private get lastChild(): HTMLElement | undefined {\n return this.children[this.children.length - 1] || undefined\n }\n\n private get focusedElement(): HTMLElement | undefined {\n return this.children[this.activeIndex] || undefined\n }\n\n ngAfterViewInit(): void {\n this.blurAllElements()\n }\n\n ngOnDestroy(): void {\n this.onClickSubscription?.unsubscribe()\n this.onKeyUpSubscription?.unsubscribe()\n }\n\n /** Toggle display of the option list */\n toggleVisibility(): void {\n this.setVisibility(!this.shown)\n }\n\n setVisibility(setVisibility = true): void {\n if (this.shown === setVisibility) {\n return\n }\n\n this.resetChildren()\n this.shown = setVisibility\n\n if (this.shown) {\n this.subscribeToOutsideClickEvent()\n this.subscribeToKeyDownEvent()\n } else {\n this.onClickSubscription?.unsubscribe()\n this.onKeyUpSubscription?.unsubscribe()\n this.actionEmitter.emit()\n }\n }\n\n /**\n * Closes the fold-out on click outside.\n */\n private subscribeToOutsideClickEvent(): void {\n this.onClickSubscription = fromEvent(document, 'click')\n .pipe(takeWhile(() => this.shown))\n .subscribe({\n next: (event: Event) => {\n if (\n this.shown &&\n !this.inputRef?.nativeElement.contains(event.target)\n ) {\n this.setVisibility(false)\n }\n },\n })\n }\n\n private subscribeToKeyDownEvent(): void {\n if (!this.children.length) {\n return\n }\n\n this.onKeyUpSubscription = fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(\n takeWhile(() => this.shown),\n filter((event) =>\n Object.values(KeyboardKey).includes(event.code as KeyboardKey),\n ),\n )\n .subscribe((event) => {\n event.preventDefault()\n event.stopPropagation()\n this.onKeyDown(event)\n })\n }\n\n private onKeyDown(event: KeyboardEvent): void {\n switch (event.code) {\n case KeyboardKey.Escape:\n case KeyboardKey.Tab:\n this.setVisibility(false)\n break\n case KeyboardKey.Enter:\n case KeyboardKey.Space:\n this.takeAction()\n break\n case KeyboardKey.ArrowUp:\n this.handleArrowUpClick()\n break\n case KeyboardKey.ArrowDown:\n this.handleArrowDownClick()\n break\n }\n }\n\n private handleArrowUpClick(): void {\n this.activeIndex = this.firstArrowClick\n ? this.getChildIndex(this.lastChild)\n : this.activeIndex === 0\n ? this.getChildIndex(this.lastChild)\n : this.activeIndex - 1\n\n this.firstArrowClick = false\n this.handleFocus()\n }\n\n private handleArrowDownClick(): void {\n this.activeIndex = this.firstArrowClick\n ? 0\n : (this.activeIndex + 1) % this.children.length\n this.firstArrowClick = false\n this.handleFocus()\n }\n\n private handleFocus(): void {\n this.blurAllElements()\n this.focusElement(this.children[this.activeIndex])\n }\n\n private takeAction(): void {\n if (this.focusedElement) {\n this.focusedElement.click()\n }\n\n this.setVisibility(false)\n }\n\n private resetChildren(): void {\n this.blurAllElements()\n this.activeIndex = -1\n this.firstArrowClick = true\n }\n}\n","<div #foldout>\n <button\n data-thook=\"fold-out-toggle\"\n class=\"fold-out-button\"\n [ngClass]=\"{ 'no-text': !text }\"\n (click)=\"toggleVisibility()\"\n [attr.aria-expanded]=\"shown\"\n [attr.aria-label]=\"ariaLabel\"\n >\n <ng-container *ngTemplateOutlet=\"text ? withText : default\"> </ng-container>\n </button>\n <div\n #childrenContainer\n class=\"nggv-fold-out__popover\"\n [ngClass]=\"{\n 'flex-right': alignOptions === 'right',\n 'list-width-fit-content': listWidth === 'fit-content',\n 'list-width-max-content': listWidth === 'max-content',\n 'list-width-min-content': listWidth === 'min-content',\n 'list-width-auto': listWidth === 'auto',\n }\"\n [class.nggv-fold-out__popover-expanded]=\"shown\"\n (click)=\"toggleVisibility()\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n\n<ng-template #withText>\n {{ text }}\n <gds-icon-dot-grid-one-horizontal\n width=\"24\"\n height=\"24\"\n *nggCoreElement\n ></gds-icon-dot-grid-one-horizontal>\n</ng-template>\n\n<ng-template #default>\n <gds-icon-dot-grid-one-horizontal\n width=\"24\"\n height=\"24\"\n *nggCoreElement\n ></gds-icon-dot-grid-one-horizontal>\n <ng-template></ng-template\n></ng-template>\n","import { Directive, HostBinding } from '@angular/core'\n\n@Directive({\n selector: '[nggvOption]',\n standalone: false\n})\nexport class NggvFoldOutOptionDirective {\n @HostBinding('class.nggv-field-dropdown__options__label') baseClass = true\n}\n","import {\n animate,\n group,\n query,\n style,\n transition,\n trigger,\n} from '@angular/animations'\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core'\n\nimport { DialogButtons } from '../modal.types'\n\n/** Modal slide-out component based on vanilla pattern library design.\n * The modal title can be set using the @Input heading, and will automatically be translated if\n * the string matches a cms key.\n * Content can be injected into the body of the slide-out by either setting the @Input content to any type of\n * markdown, or using content projection (adding content between the `nggv-slideout-modal`-start and end tag).\n * If the content needs to stretch outside the normal padded area, add the attribute `slot=\"outside-content\"` to the\n * projected content main element.\n * Test hooks:\n * The modal hook defaults to 'slideout' but is customizeable.\n * The closing button can be selected using 'slideout-close'.\n * The backdrop is selectable using 'slideout-backdrop'.\n */\n@Component({\n selector: 'nggv-slideout-modal',\n templateUrl: './slide-out.component.html',\n styleUrls: ['./slide-out.component.scss'],\n animations: [\n trigger('modalAnimation', [\n transition(':enter', [\n query('.gds-slide-out', style({ transform: 'translateX(100%)' }), {\n optional: true,\n }),\n query('.gds-backdrop, [role=dialog]', style({ opacity: '0' }), {\n optional: true,\n }),\n group([\n query('.gds-slide-out', animate('350ms cubic-bezier(0.33, 1, 0.68, 1)', style({ transform: 'translateX(0)' })), { optional: true }),\n query('.gds-backdrop, [role=dialog]', animate('350ms cubic-bezier(0.33, 1, 0.68, 1)', style({ opacity: '1' })), { optional: true }),\n ]),\n ]),\n transition(':leave', [\n query('.gds-slide-out', style({ transform: 'translateX(0)' }), {\n optional: true,\n }),\n group([\n query('.gds-slide-out', animate('350ms cubic-bezier(0.33, 1, 0.68, 1)', style({ transform: 'translateX(100%)' })), { optional: true }),\n query('.gds-backdrop, [role=dialog]', animate('350ms cubic-bezier(0.33, 1, 0.68, 1)', style({ opacity: '0' })), { optional: true }),\n ]),\n ]),\n ]),\n ],\n standalone: false\n})\nexport class NggvSlideOutComponent implements OnInit {\n /** @internal */\n @ViewChild('slideOut') slideOutRef: ElementRef | undefined\n\n /** Sets from which side the modal should open. */\n @Input() side: 'left' | 'right' = 'right'\n /** Defines the default visibility state of the slide-out. */\n private _shown = false\n @Input() set shown(value: boolean) {\n this._shown = value\n if (value) {\n this.hideOverflow()\n } else {\n this.resetOverflow()\n }\n }\n get shown() {\n return this._shown\n }\n /** Defines the default visibility state of the modal. */\n @Input() initiallyShown = false\n /** Sets modal heading. Will be translated (using transloco) if the string matches a cms key. */\n @Input() heading!: string\n /**\n * Sets modal title. Will be translated (using transloco) if the string matches a cms key.\n * @deprecated - use @Input() heading instead.\n */\n @Input() title!: string\n /** Sets content body of the modal and can contain html code. The content body can also be set by nesting children to the modal tag. */\n @Input() content?: string\n /** Sets whether it is possible to close the modal from the top right corner. */\n @Input() closable = true\n /** Sets whether it is possible to close the modal by clicking outside the modal area (on the backdrop). */\n @Input() closableOutside = true\n /** Allows the modal content to decide the width of the modal. */\n @Input() autoWidth = false\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'slideout'\n\n /** Aria label for the Close button with \"X\" icon, in the header */\n @Input() closeButtonAriaLabel?: string\n\n /** @internal */\n get fromLeft(): boolean {\n return this.side === 'left'\n }\n\n // /** @internal */\n // closeIcon = faTimes;\n\n _buttons: DialogButtons | undefined\n /** Buttons are defined as a key-value pair where key is one of \"positive|neutral|negative\" and value is the button label. */\n @Input() set buttons(buttons: DialogButtons) {\n this._buttons = buttons\n }\n\n /** Will emit true on closing event. */\n @Output() nggvCloseEvent = new EventEmitter<boolean>()\n @Output() nggvPositiveEvent = new EventEmitter<void>()\n @Output() nggvNeutralEvent = new EventEmitter<void>()\n @Output() nggvNegativeEvent = new EventEmitter<void>()\n\n private previous: HTMLElement | undefined\n private firstFocusable: HTMLElement | undefined\n private lastFocusable: HTMLElement | undefined\n\n constructor(\n private host: ElementRef,\n private renderer: Renderer2,\n ) {\n // appends methods for opening and closing modal to native element\n this.host.nativeElement.open = this.open.bind(this)\n this.host.nativeElement.close = this.close.bind(this)\n }\n\n ngOnInit() {\n this._shown = this.initiallyShown\n if (this.shown) this.limitFocusable()\n }\n\n public onAction(event: Event, action: string) {\n event.preventDefault()\n switch (action) {\n case 'positive':\n this.nggvPositiveEvent.emit()\n break\n case 'neutral':\n this.nggvNeutralEvent.emit()\n break\n case 'negative':\n this.nggvNegativeEvent.emit()\n break\n }\n this.close(event, 'action')\n }\n\n /**\n * Called on a modal element. Opens the modal and sets focus to the last focusable element in the modal.\n *\n * @param opener - reference to last focused element before opening modal\n * @returns - true\n */\n open(opener?: HTMLElement): boolean {\n this._shown = true\n this.previous = opener || (document.activeElement as HTMLElement)\n this.hideOverflow()\n this.limitFocusable()\n return true\n }\n\n /**\n * Called on a modal element. Closes the modal and emits a `nggvCloseEvent`. Sets focus to the lats focused element if an element was sent in to open function.\n *\n * @param event\n * @param initiator\n */\n @HostListener('click', ['$event', '\"host\"'])\n @HostListener('document:keydown.escape', ['$event'])\n close(event?: Event, initiator?: string): void {\n let closableOutside = true\n\n if (\n initiator === 'host' &&\n event instanceof MouseEvent &&\n event.target !== event.currentTarget\n )\n return\n\n if (\n this.slideOutRef &&\n !this.slideOutRef.nativeElement.contains(event?.target) &&\n !this.closableOutside\n ) {\n closableOutside = false\n }\n\n this.resetOverflow()\n\n if (this.shown && this.closable && closableOutside) {\n this.nggvCloseEvent.emit(this.shown)\n this.shown = false\n window.setTimeout(() => {\n if (this.previous) this.previous.focus()\n this.previous = undefined\n })\n }\n }\n\n /** @internal */\n @HostListener('keydown', ['$event'])\n focusTrap(event: KeyboardEvent) {\n if (event.key !== 'Tab') return\n if (event.shiftKey) {\n // shift + tab\n if (\n this.lastFocusable &&\n document.activeElement === this.firstFocusable\n ) {\n this.lastFocusable.focus()\n event.preventDefault()\n }\n } else {\n // tab\n if (\n this.firstFocusable &&\n document.activeElement === this.lastFocusable\n ) {\n this.firstFocusable.focus()\n event.preventDefault()\n }\n }\n }\n\n private limitFocusable() {\n window.setTimeout(() => {\n if (!this.slideOutRef) return\n const focusable = this.slideOutRef.nativeElement.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n this.firstFocusable = focusable[0]\n this.lastFocusable = focusable[focusable.length - 1]\n if (this.firstFocusable) this.firstFocusable.focus()\n })\n }\n\n private hideOverflow(): void {\n this.renderer.setStyle(document.body, 'overflow', 'hidden')\n }\n\n private resetOverflow(): void {\n this.renderer.removeStyle(document.body, 'overflow')\n }\n}\n","<ng-container *ngIf=\"shown\">\n <div\n [ngClass]=\"{\n 'gds-slide-out--left': fromLeft,\n 'gds-slide-out--right': !fromLeft,\n }\"\n *transloco=\"let t\"\n [class.-active]=\"shown\"\n [attr.data-thook]=\"thook\"\n [attr.aria-hidden]=\"!shown\"\n [@modalAnimation]\n >\n <div\n #slideOut\n class=\"gds-slide-out\"\n [class.auto-width]=\"autoWidth\"\n [class.entered]=\"shown\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"gds-modal-title\"\n aria-describedby=\"gds-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 id=\"gds-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"nggv-modal-slideout__close\"\n (click)=\"close($event, 'action')\"\n [attr.aria-label]=\"closeButtonAriaLabel\"\n >\n <i></i>\n </button>\n </header>\n\n <section id=\"modal-body\">\n <div class=\"gds-slide-out__content hide-if-empty\">\n <div *ngIf=\"content\" [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[slot='outside-content']\"></ng-content>\n </section>\n\n <footer class=\"modal-dialog__actions\">\n <button\n class=\"danger\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n\n <button\n class=\"primary\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n\n <div\n class=\"nggv-backdrop\"\n data-thook=\"slideout-backdrop\"\n (click)=\"close()\"\n ></div>\n </div>\n</ng-container>\n","import './modal.globals'\n\nimport { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { NggvButtonModule } from '@sebgroup/green-angular/src/v-angular/button'\nimport { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggvDialogComponent } from './dialog/dialog.component'\nimport { NggvFoldOutComponent } from './fold-out/fold-out.component'\nimport { NggvFoldOutOptionDirective } from './fold-out/fold-out.directive'\nimport { NggvSlideOutComponent } from './slide-out/slide-out.component'\n\n@NgModule({\n imports: [\n CommonModule,\n NggvButtonModule,\n NggvI18nModule,\n NggCoreWrapperModule,\n ],\n declarations: [\n NggvDialogComponent,\n NggvSlideOutComponent,\n NggvFoldOutComponent,\n NggvFoldOutOptionDirective,\n ],\n exports: [\n NggvDialogComponent,\n NggvSlideOutComponent,\n NggvFoldOutComponent,\n NggvFoldOutOptionDirective,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggvModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-v-angular-modal.mjs","sources":["../../../../libs/angular/src/v-angular/modal/modal.globals.ts","../../../../libs/angular/src/v-angular/modal/dialog/dialog.component.ts","../../../../libs/angular/src/v-angular/modal/dialog/dialog.component.html","../../../../libs/angular/src/v-angular/modal/fold-out/keyboard-key.enum.ts","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.component.ts","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.component.html","../../../../libs/angular/src/v-angular/modal/fold-out/fold-out.directive.ts","../../../../libs/angular/src/v-angular/modal/slide-out/slide-out.component.ts","../../../../libs/angular/src/v-angular/modal/slide-out/slide-out.component.html","../../../../libs/angular/src/v-angular/modal/modal.module.ts","../../../../libs/angular/src/v-angular/modal/sebgroup-green-angular-src-v-angular-modal.ts"],"sourcesContent":["// We must force tsc to interpret this file as a module, resolves\n// \"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"\nexport {}\n\ndeclare global {\n interface Window {\n /** Counter for unique identifiers */\n nggv: {\n ids: { [namespace: string]: number; default: number }\n nextId: (namespace?: string) => string\n }\n }\n}\n\n;(() => {\n // Make sure there is an incremental ID each component can use\n if (typeof window !== 'undefined' && !window.nggv) {\n window.nggv = {\n ids: { default: -1 },\n nextId(namespace = 'default'): string {\n let id = this.ids[namespace] || 0\n if (typeof this.ids[namespace] === 'number') id++\n this.ids[namespace] = id\n return namespace === 'default'\n ? `nggv-${id}`\n : `nggv-${namespace}-${id}`\n },\n }\n }\n})()\n","import {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n} from '@angular/cdk/a11y'\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core'\n\nimport { DialogButtons } from '../modal.types'\n\nexport interface DialogEvent<T = any> {\n original: Event | undefined\n payload: T | undefined\n}\n\n@Component({\n selector: 'nggv-dialog',\n templateUrl: './dialog.component.html',\n styleUrls: ['./dialog.component.scss'],\n exportAs: 'dialog',\n standalone: false\n})\nexport class NggvDialogComponent implements OnInit, OnDestroy {\n private configurableFocusTrap: ConfigurableFocusTrap\n\n @ViewChild('dialog') dialogRef: ElementRef | undefined\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'dialog'\n /** @internal */\n @HostBinding('class.gds-modal-dialog') baseClass = true\n /** @internal Defines the default visibility state of the dialog. */\n private _shown = false\n @Input() set shown(value: boolean) {\n this._shown = value\n this.enableFocusTrap()\n if (value) {\n this.hideOverflow()\n } else {\n this.resetOverflow()\n }\n }\n get shown() {\n return this._shown\n }\n\n /** @internal */\n @HostBinding('attr.aria-hidden') get ariaHidden() {\n return !this.shown\n }\n /** Defines the default visibility state of the dialog. */\n @Input() initiallyShown = false\n /** Sets modal heading. Will be translated (using transloco) if the string matches a cms key. */\n @Input() heading!: string\n /**\n * Sets modal title. Will be translated (using transloco) if the string matches a cms key.\n * @deprecated - use heading instead.\n */\n @Input() title = 'Attention'\n /** Sets content body and can contain html code. The content body can also be set by nesting children to the dialog tag. */\n @Input() content?: string\n /** Defines if dialog should close on action. */\n @Input() autoClose = true\n /** An array of event payloads that will be added to every click context menu item click. */\n @Input() payload: any = {}\n\n @Input() dialogTitleId!: string\n /** Pass the null if you don't want dialog body to be announced by the screen reader */\n @Input() dialogBodyId!: string | null\n /** It gives an ability for parent component to control if modal should be closed on esc button click. */\n @Input() closeModalOnEscape = true\n /** Aria label for the Close button with \"X\" icon, in the header */\n @Input() closeButtonAriaLabel?: string\n\n _buttons: DialogButtons | undefined\n /** Buttons are defined as a key-value pair where key is one of \"positive|neutral|negative\" and value is the button label. */\n @Input() set buttons(buttons: DialogButtons) {\n this._buttons = buttons\n }\n // /** @internal */\n // closeIcon = faTimes\n\n @Output() nggvCloseEvent = new EventEmitter<DialogEvent>()\n @Output() nggvPositiveEvent = new EventEmitter<DialogEvent>()\n @Output() nggvNeutralEvent = new EventEmitter<DialogEvent>()\n @Output() nggvNegativeEvent = new EventEmitter<DialogEvent>()\n @Output() nggvDangerEvent = new EventEmitter<DialogEvent>()\n\n protected _previous: HTMLElement | undefined\n protected _firstFocusable: HTMLElement | undefined\n protected _lastFocusable: HTMLElement | undefined\n\n constructor(\n private renderer: Renderer2,\n private ref: ElementRef<HTMLElement>,\n private configurableFocusTrapFactory: ConfigurableFocusTrapFactory,\n ) {\n this.configurableFocusTrap = this.configurableFocusTrapFactory.create(\n this.ref.nativeElement,\n )\n }\n\n ngOnInit() {\n this.dialogTitleId =\n this.dialogTitleId ?? 'gds-dialog-title-' + window.nggv?.nextId()\n if (this.dialogBodyId !== null) {\n this.dialogBodyId =\n this.dialogBodyId ?? 'gds-dialog-body-' + window.nggv?.nextId()\n }\n\n this._shown = this.initiallyShown\n if (this.shown) this._limitFocusable()\n }\n\n public onAction(event: Event, action: string) {\n event.preventDefault()\n const emitEvent = {\n original: event,\n payload: this.payload,\n }\n switch (action) {\n case 'positive':\n this.nggvPositiveEvent.emit(emitEvent)\n break\n case 'neutral':\n this.nggvNeutralEvent.emit(emitEvent)\n break\n case 'negative':\n this.nggvNegativeEvent.emit(emitEvent)\n break\n case 'danger':\n this.nggvDangerEvent.emit(emitEvent)\n break\n // case 'close' is handled by if-statement below with call to this.close()\n }\n if (this.autoClose) this.close(event, 'action')\n }\n\n open(opener?: HTMLElement) {\n this._shown = true\n this._previous = opener || (document.activeElement as HTMLElement)\n\n this.enableFocusTrap()\n this.hideOverflow()\n this._limitFocusable()\n return true\n }\n\n protected _limitFocusable() {\n window.setTimeout(() => {\n if (!this.dialogRef) return\n const focusable = this.dialogRef.nativeElement.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n this._firstFocusable = focusable[0]\n this._lastFocusable = focusable[focusable.length - 1]\n if (this._firstFocusable) this._firstFocusable.focus()\n })\n }\n\n @HostListener('click', ['$event', '\"host\"'])\n @HostListener('document:keydown.escape', ['$event'])\n close(event?: Event, initiator?: string) {\n if (initiator === 'host' && event instanceof MouseEvent) return\n // prevent modal from closing on esc button click when closeModalOnEscape is set to false\n if (!this.closeModalOnEscape) return\n if (this.shown) {\n const emitEvent = {\n original: event,\n payload: this.payload,\n }\n this.nggvCloseEvent.emit(emitEvent)\n }\n\n this.resetOverflow()\n this.disableFocusTrap()\n\n this._shown = false\n window.setTimeout(() => {\n if (this._previous) this._previous.focus()\n this._previous = undefined\n })\n }\n\n @HostListener('keydown', ['$event'])\n focusTrap(event: KeyboardEvent) {\n if (event.key !== 'Tab') return\n if (event.shiftKey) {\n // shift + tab\n if (\n this._lastFocusable &&\n document.activeElement === this._firstFocusable\n ) {\n this._lastFocusable.focus()\n event.preventDefault()\n }\n } else {\n // tab\n if (\n this._firstFocusable &&\n document.activeElement === this._lastFocusable\n ) {\n this._firstFocusable.focus()\n event.preventDefault()\n }\n }\n }\n\n // to prevent background scrolling when modal is open\n private hideOverflow(): void {\n this.renderer.setStyle(document.body, 'overflow', 'hidden')\n }\n\n private resetOverflow(): void {\n this.renderer.removeStyle(document.body, 'overflow')\n }\n\n private enableFocusTrap() {\n if (this.configurableFocusTrap) {\n this.configurableFocusTrap.enabled = true\n this.configurableFocusTrap.focusInitialElementWhenReady()\n }\n }\n\n private disableFocusTrap() {\n if (this.configurableFocusTrap) {\n this.configurableFocusTrap.enabled = false\n }\n }\n\n ngOnDestroy(): void {\n this.configurableFocusTrap?.destroy()\n }\n}\n","<ng-container *ngIf=\"shown\">\n <div class=\"modal-dialog__wrapper\" [class.-active]=\"shown\">\n <div\n class=\"modal-dialog__container\"\n *transloco=\"let t\"\n #dialog\n role=\"dialog\"\n aria-dialog=\"true\"\n [attr.aria-labelledby]=\"dialogTitleId\"\n [attr.aria-describedby]=\"dialogBodyId\"\n >\n <header class=\"modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n [attr.aria-label]=\"closeButtonAriaLabel\"\n class=\"nggv-modal-slideout__close\"\n >\n <i></i>\n </button>\n </header>\n <section class=\"modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"modal-dialog__actions\">\n <button\n class=\"danger-confirm\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n <button\n class=\"danger\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.danger || 'danger')\"\n (click)=\"onAction($event, 'danger')\"\n (keydown.enter)=\"onAction($event, 'danger')\"\n *ngIf=\"_buttons && _buttons.danger\"\n >\n {{ t(_buttons.danger) }}\n </button>\n <button\n class=\"submit\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n <div class=\"nggv-backdrop\"></div>\n </div>\n</ng-container>\n","export enum KeyboardKey {\n Escape = 'Escape',\n Space = 'Space',\n Enter = 'Enter',\n ArrowUp = 'ArrowUp',\n ArrowDown = 'ArrowDown',\n Tab = 'Tab',\n}\n","import '@sebgroup/green-core/components/icon/icons/dot-grid-one-horizontal.js'\n\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n ViewChild,\n} from '@angular/core'\nimport { fromEvent, Subscription } from 'rxjs'\nimport { filter, takeWhile } from 'rxjs/operators'\n\nimport { KeyboardKey } from './keyboard-key.enum'\n\n@Component({\n selector: 'nggv-fold-out',\n templateUrl: './fold-out.component.html',\n styleUrls: ['./fold-out.component.scss'],\n standalone: false\n})\nexport class NggvFoldOutComponent implements OnDestroy, AfterViewInit {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'fold-out'\n\n @ViewChild('foldout', { read: ElementRef }) inputRef?: ElementRef\n @ViewChild('childrenContainer') container?: ElementRef\n\n /** Aligns the dropdown list with the buttons right or left side */\n @Input() alignOptions!: 'left' | 'right'\n /** Option to show text with action button */\n @Input() text?: string\n /** Aria label for the fold-out button */\n @Input() ariaLabel?: string\n /** Sets the width property of the list. Default = fit-content */\n @Input() listWidth: 'fit-content' | 'max-content' | 'min-content' | 'auto' =\n 'fit-content'\n /** Emits when the children container collapses, for components with change detection strategy \"OnPush\" */\n @Output() actionEmitter = new EventEmitter<void>()\n\n /** @internal */\n protected shown = false\n\n private activeIndex = -1\n private firstArrowClick = true\n private ariaFocusAttributeName = 'aria-focus'\n private blurAllElements = (): void => this.children.forEach(this.blurElement)\n private blurElement = (element: HTMLElement): void =>\n element.setAttribute(this.ariaFocusAttributeName, 'false')\n private focusElement = (element: HTMLElement): void =>\n element.setAttribute(this.ariaFocusAttributeName, 'true')\n private getChildIndex = (element: HTMLElement | undefined): number =>\n element ? this.children.indexOf(element) : -1\n\n private onClickSubscription: Subscription | undefined\n private onKeyUpSubscription: Subscription | undefined\n\n private get children() {\n return Array.from(\n (this.container?.nativeElement as HTMLElement).children ?? [],\n ) as HTMLElement[]\n }\n\n private get lastChild(): HTMLElement | undefined {\n return this.children[this.children.length - 1] || undefined\n }\n\n private get focusedElement(): HTMLElement | undefined {\n return this.children[this.activeIndex] || undefined\n }\n\n ngAfterViewInit(): void {\n this.blurAllElements()\n }\n\n ngOnDestroy(): void {\n this.onClickSubscription?.unsubscribe()\n this.onKeyUpSubscription?.unsubscribe()\n }\n\n /** Toggle display of the option list */\n toggleVisibility(): void {\n this.setVisibility(!this.shown)\n }\n\n setVisibility(setVisibility = true): void {\n if (this.shown === setVisibility) {\n return\n }\n\n this.resetChildren()\n this.shown = setVisibility\n\n if (this.shown) {\n this.subscribeToOutsideClickEvent()\n this.subscribeToKeyDownEvent()\n } else {\n this.onClickSubscription?.unsubscribe()\n this.onKeyUpSubscription?.unsubscribe()\n this.actionEmitter.emit()\n }\n }\n\n /**\n * Closes the fold-out on click outside.\n */\n private subscribeToOutsideClickEvent(): void {\n this.onClickSubscription = fromEvent(document, 'click')\n .pipe(takeWhile(() => this.shown))\n .subscribe({\n next: (event: Event) => {\n if (\n this.shown &&\n !this.inputRef?.nativeElement.contains(event.target)\n ) {\n this.setVisibility(false)\n }\n },\n })\n }\n\n private subscribeToKeyDownEvent(): void {\n if (!this.children.length) {\n return\n }\n\n this.onKeyUpSubscription = fromEvent<KeyboardEvent>(document, 'keydown')\n .pipe(\n takeWhile(() => this.shown),\n filter((event) =>\n Object.values(KeyboardKey).includes(event.code as KeyboardKey),\n ),\n )\n .subscribe((event) => {\n event.preventDefault()\n event.stopPropagation()\n this.onKeyDown(event)\n })\n }\n\n private onKeyDown(event: KeyboardEvent): void {\n switch (event.code) {\n case KeyboardKey.Escape:\n case KeyboardKey.Tab:\n this.setVisibility(false)\n break\n case KeyboardKey.Enter:\n case KeyboardKey.Space:\n this.takeAction()\n break\n case KeyboardKey.ArrowUp:\n this.handleArrowUpClick()\n break\n case KeyboardKey.ArrowDown:\n this.handleArrowDownClick()\n break\n }\n }\n\n private handleArrowUpClick(): void {\n this.activeIndex = this.firstArrowClick\n ? this.getChildIndex(this.lastChild)\n : this.activeIndex === 0\n ? this.getChildIndex(this.lastChild)\n : this.activeIndex - 1\n\n this.firstArrowClick = false\n this.handleFocus()\n }\n\n private handleArrowDownClick(): void {\n this.activeIndex = this.firstArrowClick\n ? 0\n : (this.activeIndex + 1) % this.children.length\n this.firstArrowClick = false\n this.handleFocus()\n }\n\n private handleFocus(): void {\n this.blurAllElements()\n this.focusElement(this.children[this.activeIndex])\n }\n\n private takeAction(): void {\n if (this.focusedElement) {\n this.focusedElement.click()\n }\n\n this.setVisibility(false)\n }\n\n private resetChildren(): void {\n this.blurAllElements()\n this.activeIndex = -1\n this.firstArrowClick = true\n }\n}\n","<div #foldout>\n <button\n data-thook=\"fold-out-toggle\"\n class=\"fold-out-button\"\n [ngClass]=\"{ 'no-text': !text }\"\n (click)=\"toggleVisibility()\"\n [attr.aria-expanded]=\"shown\"\n [attr.aria-label]=\"ariaLabel\"\n >\n <ng-container *ngTemplateOutlet=\"text ? withText : default\"> </ng-container>\n </button>\n <div\n #childrenContainer\n class=\"nggv-fold-out__popover\"\n [ngClass]=\"{\n 'flex-right': alignOptions === 'right',\n 'list-width-fit-content': listWidth === 'fit-content',\n 'list-width-max-content': listWidth === 'max-content',\n 'list-width-min-content': listWidth === 'min-content',\n 'list-width-auto': listWidth === 'auto',\n }\"\n [class.nggv-fold-out__popover-expanded]=\"shown\"\n (click)=\"toggleVisibility()\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n\n<ng-template #withText>\n {{ text }}\n <gds-icon-dot-grid-one-horizontal\n width=\"24\"\n height=\"24\"\n *nggCoreElement\n ></gds-icon-dot-grid-one-horizontal>\n</ng-template>\n\n<ng-template #default>\n <gds-icon-dot-grid-one-horizontal\n width=\"24\"\n height=\"24\"\n *nggCoreElement\n ></gds-icon-dot-grid-one-horizontal>\n <ng-template></ng-template\n></ng-template>\n","import { Directive, HostBinding } from '@angular/core'\n\n@Directive({\n selector: '[nggvOption]',\n standalone: false\n})\nexport class NggvFoldOutOptionDirective {\n @HostBinding('class.nggv-field-dropdown__options__label') baseClass = true\n}\n","import {\n animate,\n group,\n query,\n style,\n transition,\n trigger,\n} from '@angular/animations'\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core'\n\nimport { DialogButtons } from '../modal.types'\n\n/** Modal slide-out component based on vanilla pattern library design.\n * The modal title can be set using the @Input heading, and will automatically be translated if\n * the string matches a cms key.\n * Content can be injected into the body of the slide-out by either setting the @Input content to any type of\n * markdown, or using content projection (adding content between the `nggv-slideout-modal`-start and end tag).\n * If the content needs to stretch outside the normal padded area, add the attribute `slot=\"outside-content\"` to the\n * projected content main element.\n * Test hooks:\n * The modal hook defaults to 'slideout' but is customizeable.\n * The closing button can be selected using 'slideout-close'.\n * The backdrop is selectable using 'slideout-backdrop'.\n */\n@Component({\n selector: 'nggv-slideout-modal',\n templateUrl: './slide-out.component.html',\n styleUrls: ['./slide-out.component.scss'],\n animations: [\n trigger('modalAnimation', [\n transition(':enter', [\n query('.gds-slide-out', style({ transform: 'translateX(100%)' }), {\n optional: true,\n }),\n query('.gds-backdrop, [role=dialog]', style({ opacity: '0' }), {\n optional: true,\n }),\n group([\n query('.gds-slide-out', animate('350ms cubic-bezier(0.33, 1, 0.68, 1)', style({ transform: 'translateX(0)' })), { optional: true }),\n query('.gds-backdrop, [role=dialog]', animate('350ms cubic-bezier(0.33, 1, 0.68, 1)', style({ opacity: '1' })), { optional: true }),\n ]),\n ]),\n transition(':leave', [\n query('.gds-slide-out', style({ transform: 'translateX(0)' }), {\n optional: true,\n }),\n group([\n query('.gds-slide-out', animate('350ms cubic-bezier(0.33, 1, 0.68, 1)', style({ transform: 'translateX(100%)' })), { optional: true }),\n query('.gds-backdrop, [role=dialog]', animate('350ms cubic-bezier(0.33, 1, 0.68, 1)', style({ opacity: '0' })), { optional: true }),\n ]),\n ]),\n ]),\n ],\n standalone: false\n})\nexport class NggvSlideOutComponent implements OnInit {\n /** @internal */\n @ViewChild('slideOut') slideOutRef: ElementRef | undefined\n\n /** Sets from which side the modal should open. */\n @Input() side: 'left' | 'right' = 'right'\n /** Defines the default visibility state of the slide-out. */\n private _shown = false\n @Input() set shown(value: boolean) {\n this._shown = value\n if (value) {\n this.hideOverflow()\n } else {\n this.resetOverflow()\n }\n }\n get shown() {\n return this._shown\n }\n /** Defines the default visibility state of the modal. */\n @Input() initiallyShown = false\n /** Sets modal heading. Will be translated (using transloco) if the string matches a cms key. */\n @Input() heading!: string\n /**\n * Sets modal title. Will be translated (using transloco) if the string matches a cms key.\n * @deprecated - use @Input() heading instead.\n */\n @Input() title!: string\n /** Sets content body of the modal and can contain html code. The content body can also be set by nesting children to the modal tag. */\n @Input() content?: string\n /** Sets whether it is possible to close the modal from the top right corner. */\n @Input() closable = true\n /** Sets whether it is possible to close the modal by clicking outside the modal area (on the backdrop). */\n @Input() closableOutside = true\n /** Allows the modal content to decide the width of the modal. */\n @Input() autoWidth = false\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @Input() thook = 'slideout'\n\n /** Aria label for the Close button with \"X\" icon, in the header */\n @Input() closeButtonAriaLabel?: string\n\n /** @internal */\n get fromLeft(): boolean {\n return this.side === 'left'\n }\n\n // /** @internal */\n // closeIcon = faTimes;\n\n _buttons: DialogButtons | undefined\n /** Buttons are defined as a key-value pair where key is one of \"positive|neutral|negative\" and value is the button label. */\n @Input() set buttons(buttons: DialogButtons) {\n this._buttons = buttons\n }\n\n /** Will emit true on closing event. */\n @Output() nggvCloseEvent = new EventEmitter<boolean>()\n @Output() nggvPositiveEvent = new EventEmitter<void>()\n @Output() nggvNeutralEvent = new EventEmitter<void>()\n @Output() nggvNegativeEvent = new EventEmitter<void>()\n\n private previous: HTMLElement | undefined\n private firstFocusable: HTMLElement | undefined\n private lastFocusable: HTMLElement | undefined\n\n constructor(\n private host: ElementRef,\n private renderer: Renderer2,\n ) {\n // appends methods for opening and closing modal to native element\n this.host.nativeElement.open = this.open.bind(this)\n this.host.nativeElement.close = this.close.bind(this)\n }\n\n ngOnInit() {\n this._shown = this.initiallyShown\n if (this.shown) this.limitFocusable()\n }\n\n public onAction(event: Event, action: string) {\n event.preventDefault()\n switch (action) {\n case 'positive':\n this.nggvPositiveEvent.emit()\n break\n case 'neutral':\n this.nggvNeutralEvent.emit()\n break\n case 'negative':\n this.nggvNegativeEvent.emit()\n break\n }\n this.close(event, 'action')\n }\n\n /**\n * Called on a modal element. Opens the modal and sets focus to the last focusable element in the modal.\n *\n * @param opener - reference to last focused element before opening modal\n * @returns - true\n */\n open(opener?: HTMLElement): boolean {\n this._shown = true\n this.previous = opener || (document.activeElement as HTMLElement)\n this.hideOverflow()\n this.limitFocusable()\n return true\n }\n\n /**\n * Called on a modal element. Closes the modal and emits a `nggvCloseEvent`. Sets focus to the lats focused element if an element was sent in to open function.\n *\n * @param event\n * @param initiator\n */\n @HostListener('click', ['$event', '\"host\"'])\n @HostListener('document:keydown.escape', ['$event'])\n close(event?: Event, initiator?: string): void {\n let closableOutside = true\n\n if (\n initiator === 'host' &&\n event instanceof MouseEvent &&\n event.target !== event.currentTarget\n )\n return\n\n if (\n this.slideOutRef &&\n !this.slideOutRef.nativeElement.contains(event?.target) &&\n !this.closableOutside\n ) {\n closableOutside = false\n }\n\n this.resetOverflow()\n\n if (this.shown && this.closable && closableOutside) {\n this.nggvCloseEvent.emit(this.shown)\n this.shown = false\n window.setTimeout(() => {\n if (this.previous) this.previous.focus()\n this.previous = undefined\n })\n }\n }\n\n /** @internal */\n @HostListener('keydown', ['$event'])\n focusTrap(event: KeyboardEvent) {\n if (event.key !== 'Tab') return\n if (event.shiftKey) {\n // shift + tab\n if (\n this.lastFocusable &&\n document.activeElement === this.firstFocusable\n ) {\n this.lastFocusable.focus()\n event.preventDefault()\n }\n } else {\n // tab\n if (\n this.firstFocusable &&\n document.activeElement === this.lastFocusable\n ) {\n this.firstFocusable.focus()\n event.preventDefault()\n }\n }\n }\n\n private limitFocusable() {\n window.setTimeout(() => {\n if (!this.slideOutRef) return\n const focusable = this.slideOutRef.nativeElement.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n )\n this.firstFocusable = focusable[0]\n this.lastFocusable = focusable[focusable.length - 1]\n if (this.firstFocusable) this.firstFocusable.focus()\n })\n }\n\n private hideOverflow(): void {\n this.renderer.setStyle(document.body, 'overflow', 'hidden')\n }\n\n private resetOverflow(): void {\n this.renderer.removeStyle(document.body, 'overflow')\n }\n}\n","<ng-container *ngIf=\"shown\">\n <div\n [ngClass]=\"{\n 'gds-slide-out--left': fromLeft,\n 'gds-slide-out--right': !fromLeft,\n }\"\n *transloco=\"let t\"\n [class.-active]=\"shown\"\n [attr.data-thook]=\"thook\"\n [attr.aria-hidden]=\"!shown\"\n [@modalAnimation]\n >\n <div\n #slideOut\n class=\"gds-slide-out\"\n [class.auto-width]=\"autoWidth\"\n [class.entered]=\"shown\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"gds-modal-title\"\n aria-describedby=\"gds-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 id=\"gds-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"nggv-modal-slideout__close\"\n (click)=\"close($event, 'action')\"\n [attr.aria-label]=\"closeButtonAriaLabel\"\n >\n <i></i>\n </button>\n </header>\n\n <section id=\"modal-body\">\n <div class=\"gds-slide-out__content hide-if-empty\">\n <div *ngIf=\"content\" [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"[slot='outside-content']\"></ng-content>\n </section>\n\n <footer class=\"modal-dialog__actions\">\n <button\n class=\"danger\"\n type=\"reset\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.negative || 'negative')\"\n (click)=\"onAction($event, 'negative')\"\n (keydown.enter)=\"onAction($event, 'negative')\"\n *ngIf=\"_buttons && _buttons.negative\"\n >\n {{ t(_buttons.negative) }}\n </button>\n\n <button\n class=\"secondary\"\n type=\"button\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.neutral || 'neutral')\"\n (click)=\"onAction($event, 'neutral')\"\n (keydown.enter)=\"onAction($event, 'neutral')\"\n *ngIf=\"_buttons && _buttons.neutral\"\n >\n {{ t(_buttons.neutral) }}\n </button>\n\n <button\n class=\"primary\"\n type=\"submit\"\n [attr.data-thook]=\"'dialog-' + (_buttons?.positive || 'positive')\"\n (click)=\"onAction($event, 'positive')\"\n (keydown.enter)=\"onAction($event, 'positive')\"\n *ngIf=\"_buttons && _buttons.positive\"\n >\n {{ t(_buttons.positive) }}\n </button>\n </footer>\n </div>\n\n <div\n class=\"nggv-backdrop\"\n data-thook=\"slideout-backdrop\"\n (click)=\"close()\"\n ></div>\n </div>\n</ng-container>\n","import './modal.globals'\n\nimport { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { NggvButtonModule } from '@sebgroup/green-angular/src/v-angular/button'\nimport { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggvDialogComponent } from './dialog/dialog.component'\nimport { NggvFoldOutComponent } from './fold-out/fold-out.component'\nimport { NggvFoldOutOptionDirective } from './fold-out/fold-out.directive'\nimport { NggvSlideOutComponent } from './slide-out/slide-out.component'\n\n@NgModule({\n imports: [\n CommonModule,\n NggvButtonModule,\n NggvI18nModule,\n NggCoreWrapperModule,\n ],\n declarations: [\n NggvDialogComponent,\n NggvSlideOutComponent,\n NggvFoldOutComponent,\n NggvFoldOutOptionDirective,\n ],\n exports: [\n NggvDialogComponent,\n NggvSlideOutComponent,\n NggvFoldOutComponent,\n NggvFoldOutOptionDirective,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggvModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1"],"mappings":"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"}
|
|
@@ -110,10 +110,10 @@ class PaginationComponent {
|
|
|
110
110
|
this.showEllipsisEnd = pagingEnd < this.pagingSize - 1;
|
|
111
111
|
this.list = genList.slice(start, end);
|
|
112
112
|
}
|
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: PaginationComponent, isStandalone: false, selector: "nggv-pagination", inputs: { size: "size", value: "value", firstText: "firstText", lastText: "lastText", nextText: "nextText", offset: "offset", pagingLength: "pagingLength", previousText: "previousText", useFirstAndLast: "useFirstAndLast", useTextNav: "useTextNav", useDotNav: "useDotNav", showGoToPage: "showGoToPage", className: "className", id: "id" }, outputs: { pageNumberChange: "pageNumberChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-wrapper\" [ngClass]=\"className\" [attr.id]=\"id\">\n <nav class=\"custom-pagination\">\n <ng-container *ngIf=\"useDotNav; else numNav\">\n <ul class=\"pagination dotnav\">\n <ng-container *ngFor=\"let num of dotnavList\">\n <li class=\"page-item\" (click)=\"handleOnChange(num)\" [value]=\"num\">\n <span\n class=\"page-dot-link\"\n [ngClass]=\"{ active: value === num }\"\n ></span>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n\n <ng-template #numNav>\n <ul class=\"pagination\">\n <ng-container>\n <li class=\"page-item\" (click)=\"handleOnChange(value - 1)\">\n <button\n class=\"page-link\"\n [attr.title]=\"previousText\"\n [attr.disabled]=\"value === 1 ? 'disabled' : null\"\n >\n <span class=\"nav-action\">\n <ng-container *ngIf=\"useTextNav; else angleLeftIcon\">\n {{ previousText ? previousText : 'Previous' }}\n </ng-container>\n <ng-template #angleLeftIcon>\n <gds-icon-chevron-left\n *nggCoreElement\n ></gds-icon-chevron-left>\n </ng-template>\n </span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"useFirstAndLast\">\n <li class=\"page-item\" (click)=\"handleOnChange(1)\">\n <button\n class=\"page-link\"\n [ngClass]=\"{ active: value === 1 }\"\n [attr.title]=\"firstText\"\n >\n <span class=\"nav-num\">{{ 1 }}</span>\n </button>\n </li>\n\n <li class=\"page-item\" *ngIf=\"showEllipsisStart\">\n <span class=\"page-link\" [attr.title]=\"'...'\">\n <span class=\"nav-num\">...</span>\n </span>\n </li>\n </ng-container>\n\n <ng-container *ngFor=\"let num of list\">\n <li\n class=\"page-item\"\n [ngClass]=\"{ active: value === num }\"\n (click)=\"handleOnChange(num)\"\n value=\"num\"\n >\n <button class=\"page-link\" [ngClass]=\"{ active: value === num }\">\n <span class=\"nav-num\">{{ num }}</span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"useFirstAndLast\">\n <li class=\"page-item\" *ngIf=\"showEllipsisEnd\">\n <span class=\"page-link\" [attr.title]=\"'...'\">\n <span class=\"nav-num\">...</span>\n </span>\n </li>\n\n <li\n class=\"page-item\"\n (click)=\"handleOnChange(pagingSize)\"\n *ngIf=\"pagingSize > 1\"\n >\n <button\n class=\"page-link\"\n [ngClass]=\"{ active: value === pagingSize }\"\n [attr.title]=\"lastText\"\n >\n <span class=\"nav-num\">{{ pagingSize }}</span>\n </button>\n </li>\n </ng-container>\n\n <ng-container>\n <li class=\"page-item\" (click)=\"handleOnChange(value + 1)\">\n <button class=\"page-link\" [attr.title]=\"nextText\">\n <span class=\"nav-action\">\n <ng-container *ngIf=\"useTextNav; else angleRightIcon\">\n {{ nextText ? nextText : 'Next' }}\n </ng-container>\n <ng-template #angleRightIcon>\n <gds-icon-chevron-right\n *nggCoreElement\n ></gds-icon-chevron-right>\n </ng-template>\n </span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"showGoToPage\">\n <li>\n <div class=\"paging-input-wrapper\">\n <div class=\"label-wrapper\">\n <label for=\"pageInput\" *transloco=\"let t\">\n {{ t('label.gotopage') }}\n </label>\n </div>\n <div class=\"input-wrapper\">\n <input\n #pageInput\n data-thook=\"pagination-go-to-input\"\n min=\"1\"\n [max]=\"pagingSize\"\n id=\"pageInput\"\n class=\"gds-field\"\n type=\"number\"\n (keydown.enter)=\"handlePageInput(pageInput.value)\"\n [ngModel]=\"value\"\n />\n <button\n type=\"button\"\n data-thook=\"pagination-go-to-button\"\n (click)=\"handlePageInput(pageInput.value)\"\n >\n <gds-icon-chevron-right\n *nggCoreElement\n ></gds-icon-chevron-right>\n </button>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </nav>\n</div>\n", styles: [":host .pagination-wrapper .paging-input-wrapper{display:flex}:host .pagination-wrapper .paging-input-wrapper .label-wrapper{margin:auto;padding:0 1em}:host .pagination-wrapper .paging-input-wrapper .input-wrapper{display:flex;border:.0625em solid #868686;border-radius:4px;height:100%}:host .pagination-wrapper .paging-input-wrapper .input-wrapper input{border:0;padding:.5em;min-height:2.5rem;width:60px;box-sizing:border-box;border-radius:3px;font-size:1rem;font-family:inherit}:host .pagination-wrapper .paging-input-wrapper .input-wrapper input:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .pagination-wrapper .paging-input-wrapper .input-wrapper>button{border:0;color:#1a1a1a;background-color:transparent;font-size:1rem;font-family:inherit}:host .pagination-wrapper .paging-input-wrapper .input-wrapper>button:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .pagination-wrapper>.custom-pagination>.pagination{display:flex;list-style:none;margin-top:10px;margin-bottom:10px}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link{position:relative;text-align:center;padding-top:0;padding-bottom:0;min-width:38px;height:40px;display:inline-flex;align-items:center;background-color:transparent;color:#1a1a1a;border:none;border-radius:4px;font-size:1rem;font-family:inherit}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link.active{background-color:#1a1a1a;color:#eee}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link>.nav-num{margin:0 auto}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link>.nav-action{margin:0 auto;display:inline-flex}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link:hover{box-shadow:0 2px 6px #eee}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item{width:20px;height:25px}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item .page-dot-link{position:relative;display:inline-block;width:10px;height:10px;border-radius:50%;cursor:pointer;background-color:#a2ddfe;transition:all .2s;margin:0 auto;will-change:transform}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item .page-dot-link.active{background-color:#007ac7;cursor:default;transform:scale(1.3)}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item .page-dot-link:hover:not(.active){background-color:#41b0ee}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.18", type: PaginationComponent, isStandalone: false, selector: "nggv-pagination", inputs: { size: "size", value: "value", firstText: "firstText", lastText: "lastText", nextText: "nextText", offset: "offset", pagingLength: "pagingLength", previousText: "previousText", useFirstAndLast: "useFirstAndLast", useTextNav: "useTextNav", useDotNav: "useDotNav", showGoToPage: "showGoToPage", className: "className", id: "id" }, outputs: { pageNumberChange: "pageNumberChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-wrapper\" [ngClass]=\"className\" [attr.id]=\"id\">\n <nav class=\"custom-pagination\">\n <ng-container *ngIf=\"useDotNav; else numNav\">\n <ul class=\"pagination dotnav\">\n <ng-container *ngFor=\"let num of dotnavList\">\n <li class=\"page-item\" (click)=\"handleOnChange(num)\" [value]=\"num\">\n <span\n class=\"page-dot-link\"\n [ngClass]=\"{ active: value === num }\"\n ></span>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n\n <ng-template #numNav>\n <ul class=\"pagination\">\n <ng-container>\n <li class=\"page-item\" (click)=\"handleOnChange(value - 1)\">\n <button\n class=\"page-link\"\n [attr.title]=\"previousText\"\n [attr.disabled]=\"value === 1 ? 'disabled' : null\"\n >\n <span class=\"nav-action\">\n <ng-container *ngIf=\"useTextNav; else angleLeftIcon\">\n {{ previousText ? previousText : 'Previous' }}\n </ng-container>\n <ng-template #angleLeftIcon>\n <gds-icon-chevron-left\n *nggCoreElement\n ></gds-icon-chevron-left>\n </ng-template>\n </span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"useFirstAndLast\">\n <li class=\"page-item\" (click)=\"handleOnChange(1)\">\n <button\n class=\"page-link\"\n [ngClass]=\"{ active: value === 1 }\"\n [attr.title]=\"firstText\"\n >\n <span class=\"nav-num\">{{ 1 }}</span>\n </button>\n </li>\n\n <li class=\"page-item\" *ngIf=\"showEllipsisStart\">\n <span class=\"page-link\" [attr.title]=\"'...'\">\n <span class=\"nav-num\">...</span>\n </span>\n </li>\n </ng-container>\n\n <ng-container *ngFor=\"let num of list\">\n <li\n class=\"page-item\"\n [ngClass]=\"{ active: value === num }\"\n (click)=\"handleOnChange(num)\"\n value=\"num\"\n >\n <button class=\"page-link\" [ngClass]=\"{ active: value === num }\">\n <span class=\"nav-num\">{{ num }}</span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"useFirstAndLast\">\n <li class=\"page-item\" *ngIf=\"showEllipsisEnd\">\n <span class=\"page-link\" [attr.title]=\"'...'\">\n <span class=\"nav-num\">...</span>\n </span>\n </li>\n\n <li\n class=\"page-item\"\n (click)=\"handleOnChange(pagingSize)\"\n *ngIf=\"pagingSize > 1\"\n >\n <button\n class=\"page-link\"\n [ngClass]=\"{ active: value === pagingSize }\"\n [attr.title]=\"lastText\"\n >\n <span class=\"nav-num\">{{ pagingSize }}</span>\n </button>\n </li>\n </ng-container>\n\n <ng-container>\n <li class=\"page-item\" (click)=\"handleOnChange(value + 1)\">\n <button class=\"page-link\" [attr.title]=\"nextText\">\n <span class=\"nav-action\">\n <ng-container *ngIf=\"useTextNav; else angleRightIcon\">\n {{ nextText ? nextText : 'Next' }}\n </ng-container>\n <ng-template #angleRightIcon>\n <gds-icon-chevron-right\n *nggCoreElement\n ></gds-icon-chevron-right>\n </ng-template>\n </span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"showGoToPage\">\n <li>\n <div class=\"paging-input-wrapper\">\n <div class=\"label-wrapper\">\n <label for=\"pageInput\" *transloco=\"let t\">\n {{ t('label.gotopage') }}\n </label>\n </div>\n <div class=\"input-wrapper\">\n <input\n #pageInput\n data-thook=\"pagination-go-to-input\"\n min=\"1\"\n [max]=\"pagingSize\"\n id=\"pageInput\"\n class=\"gds-field\"\n type=\"number\"\n (keydown.enter)=\"handlePageInput(pageInput.value)\"\n [ngModel]=\"value\"\n />\n <button\n type=\"button\"\n data-thook=\"pagination-go-to-button\"\n (click)=\"handlePageInput(pageInput.value)\"\n >\n <gds-icon-chevron-right\n *nggCoreElement\n ></gds-icon-chevron-right>\n </button>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </nav>\n</div>\n", styles: [":host .pagination-wrapper .paging-input-wrapper{display:flex}:host .pagination-wrapper .paging-input-wrapper .label-wrapper{margin:auto;padding:0 1em}:host .pagination-wrapper .paging-input-wrapper .input-wrapper{display:flex;border:.0625em solid #868686;border-radius:4px;height:100%}:host .pagination-wrapper .paging-input-wrapper .input-wrapper input{border:0;padding:.5em;min-height:2.5rem;width:60px;box-sizing:border-box;border-radius:3px;font-size:1rem;font-family:inherit}:host .pagination-wrapper .paging-input-wrapper .input-wrapper input:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .pagination-wrapper .paging-input-wrapper .input-wrapper>button{border:0;color:#1a1a1a;background-color:transparent;font-size:1rem;font-family:inherit}:host .pagination-wrapper .paging-input-wrapper .input-wrapper>button:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .pagination-wrapper>.custom-pagination>.pagination{display:flex;list-style:none;margin-top:10px;margin-bottom:10px}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link{position:relative;text-align:center;padding-top:0;padding-bottom:0;min-width:38px;height:40px;display:inline-flex;align-items:center;background-color:transparent;color:#1a1a1a;border:none;border-radius:4px;font-size:1rem;font-family:inherit}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link.active{background-color:#1a1a1a;color:#eee}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link>.nav-num{margin:0 auto}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link>.nav-action{margin:0 auto;display:inline-flex}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link:hover{box-shadow:0 2px 6px #eee}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item{width:20px;height:25px}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item .page-dot-link{position:relative;display:inline-block;width:10px;height:10px;border-radius:50%;cursor:pointer;background-color:#a2ddfe;transition:all .2s;margin:0 auto;will-change:transform}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item .page-dot-link.active{background-color:#007ac7;cursor:default;transform:scale(1.3)}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item .page-dot-link:hover:not(.active){background-color:#41b0ee}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.NggCoreElementDirective, selector: "[nggCoreElement]" }] }); }
|
|
115
115
|
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
117
117
|
type: Component,
|
|
118
118
|
args: [{ selector: 'nggv-pagination', standalone: false, template: "<div class=\"pagination-wrapper\" [ngClass]=\"className\" [attr.id]=\"id\">\n <nav class=\"custom-pagination\">\n <ng-container *ngIf=\"useDotNav; else numNav\">\n <ul class=\"pagination dotnav\">\n <ng-container *ngFor=\"let num of dotnavList\">\n <li class=\"page-item\" (click)=\"handleOnChange(num)\" [value]=\"num\">\n <span\n class=\"page-dot-link\"\n [ngClass]=\"{ active: value === num }\"\n ></span>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n\n <ng-template #numNav>\n <ul class=\"pagination\">\n <ng-container>\n <li class=\"page-item\" (click)=\"handleOnChange(value - 1)\">\n <button\n class=\"page-link\"\n [attr.title]=\"previousText\"\n [attr.disabled]=\"value === 1 ? 'disabled' : null\"\n >\n <span class=\"nav-action\">\n <ng-container *ngIf=\"useTextNav; else angleLeftIcon\">\n {{ previousText ? previousText : 'Previous' }}\n </ng-container>\n <ng-template #angleLeftIcon>\n <gds-icon-chevron-left\n *nggCoreElement\n ></gds-icon-chevron-left>\n </ng-template>\n </span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"useFirstAndLast\">\n <li class=\"page-item\" (click)=\"handleOnChange(1)\">\n <button\n class=\"page-link\"\n [ngClass]=\"{ active: value === 1 }\"\n [attr.title]=\"firstText\"\n >\n <span class=\"nav-num\">{{ 1 }}</span>\n </button>\n </li>\n\n <li class=\"page-item\" *ngIf=\"showEllipsisStart\">\n <span class=\"page-link\" [attr.title]=\"'...'\">\n <span class=\"nav-num\">...</span>\n </span>\n </li>\n </ng-container>\n\n <ng-container *ngFor=\"let num of list\">\n <li\n class=\"page-item\"\n [ngClass]=\"{ active: value === num }\"\n (click)=\"handleOnChange(num)\"\n value=\"num\"\n >\n <button class=\"page-link\" [ngClass]=\"{ active: value === num }\">\n <span class=\"nav-num\">{{ num }}</span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"useFirstAndLast\">\n <li class=\"page-item\" *ngIf=\"showEllipsisEnd\">\n <span class=\"page-link\" [attr.title]=\"'...'\">\n <span class=\"nav-num\">...</span>\n </span>\n </li>\n\n <li\n class=\"page-item\"\n (click)=\"handleOnChange(pagingSize)\"\n *ngIf=\"pagingSize > 1\"\n >\n <button\n class=\"page-link\"\n [ngClass]=\"{ active: value === pagingSize }\"\n [attr.title]=\"lastText\"\n >\n <span class=\"nav-num\">{{ pagingSize }}</span>\n </button>\n </li>\n </ng-container>\n\n <ng-container>\n <li class=\"page-item\" (click)=\"handleOnChange(value + 1)\">\n <button class=\"page-link\" [attr.title]=\"nextText\">\n <span class=\"nav-action\">\n <ng-container *ngIf=\"useTextNav; else angleRightIcon\">\n {{ nextText ? nextText : 'Next' }}\n </ng-container>\n <ng-template #angleRightIcon>\n <gds-icon-chevron-right\n *nggCoreElement\n ></gds-icon-chevron-right>\n </ng-template>\n </span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"showGoToPage\">\n <li>\n <div class=\"paging-input-wrapper\">\n <div class=\"label-wrapper\">\n <label for=\"pageInput\" *transloco=\"let t\">\n {{ t('label.gotopage') }}\n </label>\n </div>\n <div class=\"input-wrapper\">\n <input\n #pageInput\n data-thook=\"pagination-go-to-input\"\n min=\"1\"\n [max]=\"pagingSize\"\n id=\"pageInput\"\n class=\"gds-field\"\n type=\"number\"\n (keydown.enter)=\"handlePageInput(pageInput.value)\"\n [ngModel]=\"value\"\n />\n <button\n type=\"button\"\n data-thook=\"pagination-go-to-button\"\n (click)=\"handlePageInput(pageInput.value)\"\n >\n <gds-icon-chevron-right\n *nggCoreElement\n ></gds-icon-chevron-right>\n </button>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </nav>\n</div>\n", styles: [":host .pagination-wrapper .paging-input-wrapper{display:flex}:host .pagination-wrapper .paging-input-wrapper .label-wrapper{margin:auto;padding:0 1em}:host .pagination-wrapper .paging-input-wrapper .input-wrapper{display:flex;border:.0625em solid #868686;border-radius:4px;height:100%}:host .pagination-wrapper .paging-input-wrapper .input-wrapper input{border:0;padding:.5em;min-height:2.5rem;width:60px;box-sizing:border-box;border-radius:3px;font-size:1rem;font-family:inherit}:host .pagination-wrapper .paging-input-wrapper .input-wrapper input:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .pagination-wrapper .paging-input-wrapper .input-wrapper>button{border:0;color:#1a1a1a;background-color:transparent;font-size:1rem;font-family:inherit}:host .pagination-wrapper .paging-input-wrapper .input-wrapper>button:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .pagination-wrapper>.custom-pagination>.pagination{display:flex;list-style:none;margin-top:10px;margin-bottom:10px}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link{position:relative;text-align:center;padding-top:0;padding-bottom:0;min-width:38px;height:40px;display:inline-flex;align-items:center;background-color:transparent;color:#1a1a1a;border:none;border-radius:4px;font-size:1rem;font-family:inherit}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link.active{background-color:#1a1a1a;color:#eee}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link>.nav-num{margin:0 auto}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link>.nav-action{margin:0 auto;display:inline-flex}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link:focus{outline-color:#1a1a1a;outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host .pagination-wrapper>.custom-pagination>.pagination>.page-item>.page-link:hover{box-shadow:0 2px 6px #eee}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item{width:20px;height:25px}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item .page-dot-link{position:relative;display:inline-block;width:10px;height:10px;border-radius:50%;cursor:pointer;background-color:#a2ddfe;transition:all .2s;margin:0 auto;will-change:transform}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item .page-dot-link.active{background-color:#007ac7;cursor:default;transform:scale(1.3)}:host .pagination-wrapper>.custom-pagination>.pagination.dotnav .page-item .page-dot-link:hover:not(.active){background-color:#41b0ee}\n"] }]
|
|
119
119
|
}], propDecorators: { size: [{
|
|
@@ -149,19 +149,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
149
149
|
}] } });
|
|
150
150
|
|
|
151
151
|
class NggvPaginationModule {
|
|
152
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
153
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
152
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
153
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.18", ngImport: i0, type: NggvPaginationModule, declarations: [PaginationComponent], imports: [CommonModule,
|
|
154
154
|
FormsModule,
|
|
155
155
|
NggvI18nModule,
|
|
156
156
|
TranslocoModule,
|
|
157
157
|
NggCoreWrapperModule], exports: [PaginationComponent] }); }
|
|
158
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
158
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvPaginationModule, imports: [CommonModule,
|
|
159
159
|
FormsModule,
|
|
160
160
|
NggvI18nModule,
|
|
161
161
|
TranslocoModule,
|
|
162
162
|
NggCoreWrapperModule] }); }
|
|
163
163
|
}
|
|
164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NggvPaginationModule, decorators: [{
|
|
165
165
|
type: NgModule,
|
|
166
166
|
args: [{
|
|
167
167
|
declarations: [PaginationComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sebgroup-green-angular-src-v-angular-pagination.mjs","sources":["../../../../libs/angular/src/v-angular/pagination/pagination.component.ts","../../../../libs/angular/src/v-angular/pagination/pagination.component.html","../../../../libs/angular/src/v-angular/pagination/pagination.module.ts","../../../../libs/angular/src/v-angular/pagination/sebgroup-green-angular-src-v-angular-pagination.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core'\n\nimport '@sebgroup/green-core/components/icon/icons/chevron-left.js'\nimport '@sebgroup/green-core/components/icon/icons/chevron-right.js'\nimport '@sebgroup/green-core/components/icon/icons/arrow-left.js'\n\n/** The Pagination component is used to separate long sets of data so that it is easier for a user to consume information. To change the current page simply click on the page number. */\n@Component({\n selector: 'nggv-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n standalone: false\n})\nexport class PaginationComponent implements OnChanges {\n /** Total size of pagination */\n @Input() size = 0\n /** Selected page */\n @Input() value = 1\n /** First page text */\n @Input() firstText?: string\n /** Last page text */\n @Input() lastText?: string\n /** Next page text */\n @Input() nextText?: string\n /** Offset per page */\n @Input() offset?: number\n /** Number of pages to display*/\n @Input() pagingLength?: number\n /** Previous page text */\n @Input() previousText?: string\n /** Use first and last navigation buttons*/\n @Input() useFirstAndLast?: boolean = true\n /** Use text-based navigation buttons*/\n @Input() useTextNav?: boolean\n /** Use dot-navigation */\n @Input() useDotNav?: boolean\n /** Use 'Go to page' input field */\n @Input() showGoToPage = true\n /** Element class name */\n @Input() className = ''\n /** Element ID */\n @Input() id?: string\n /** Callback on page change */\n @Output() pageNumberChange: EventEmitter<number> = new EventEmitter<number>()\n\n /** @internal */\n pageNumber = 0\n /** @internal */\n list: Array<number> = []\n /** @internal */\n dotnavList: Array<number> = []\n /** @internal */\n pagingSize = 0\n /** @internal */\n showEllipsisStart = false\n /** @internal */\n showEllipsisEnd = false\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes?.offset || changes?.size) {\n this.setPagingSize()\n }\n\n if (changes?.pagingLength || changes?.value) {\n this.generateList()\n }\n }\n\n /** @internal */\n setPagingSize() {\n const initialOffset: number = this.offset ? this.offset : 10\n this.pagingSize = Math.ceil(Number(this.size) / initialOffset)\n this.generateList()\n }\n\n /** @internal */\n handleOnChange(value: number): void {\n if (value <= 0) {\n this.pageNumberChange.emit(1)\n } else if (value > this.pagingSize) {\n this.pageNumberChange.emit(this.pagingSize)\n } else {\n this.pageNumberChange.emit(value)\n }\n }\n\n /** @internal */\n handlePageInput(pageInput: string) {\n this.handleOnChange(Number(pageInput))\n }\n\n /**\n * Generates an array of the pages that needs to be displayed\n * It depends on the size, offset, and the current value\n */\n private generateList(): void {\n const genList: Array<number> = []\n const length: number = this.pagingLength ? this.pagingLength : 5\n\n for (let i = 1; i <= this.pagingSize; i++) {\n genList.push(i)\n }\n\n const medianValue: number = Math.ceil(length / 2)\n let start = 0\n let end = this.pagingSize\n\n if (length < this.pagingSize) {\n if (this.pagingSize - this.value < medianValue) {\n start = this.pagingSize - length\n } else if (this.value - medianValue > -1) {\n start = this.value - medianValue\n }\n end = start + length\n }\n if (this.useFirstAndLast) {\n if (start == 0) {\n start = 1\n end = start + length\n }\n\n if (end > this.pagingSize - 1) {\n end = this.pagingSize - 1\n start = Math.max(1, end - length)\n }\n }\n\n this.dotnavList = genList\n const pagingStart = genList[start]\n const pagingEnd = genList[end - 1]\n this.showEllipsisStart = pagingStart > 2\n this.showEllipsisEnd = pagingEnd < this.pagingSize - 1\n this.list = genList.slice(start, end)\n }\n}\n","<div class=\"pagination-wrapper\" [ngClass]=\"className\" [attr.id]=\"id\">\n <nav class=\"custom-pagination\">\n <ng-container *ngIf=\"useDotNav; else numNav\">\n <ul class=\"pagination dotnav\">\n <ng-container *ngFor=\"let num of dotnavList\">\n <li class=\"page-item\" (click)=\"handleOnChange(num)\" [value]=\"num\">\n <span\n class=\"page-dot-link\"\n [ngClass]=\"{ active: value === num }\"\n ></span>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n\n <ng-template #numNav>\n <ul class=\"pagination\">\n <ng-container>\n <li class=\"page-item\" (click)=\"handleOnChange(value - 1)\">\n <button\n class=\"page-link\"\n [attr.title]=\"previousText\"\n [attr.disabled]=\"value === 1 ? 'disabled' : null\"\n >\n <span class=\"nav-action\">\n <ng-container *ngIf=\"useTextNav; else angleLeftIcon\">\n {{ previousText ? previousText : 'Previous' }}\n </ng-container>\n <ng-template #angleLeftIcon>\n <gds-icon-chevron-left\n *nggCoreElement\n ></gds-icon-chevron-left>\n </ng-template>\n </span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"useFirstAndLast\">\n <li class=\"page-item\" (click)=\"handleOnChange(1)\">\n <button\n class=\"page-link\"\n [ngClass]=\"{ active: value === 1 }\"\n [attr.title]=\"firstText\"\n >\n <span class=\"nav-num\">{{ 1 }}</span>\n </button>\n </li>\n\n <li class=\"page-item\" *ngIf=\"showEllipsisStart\">\n <span class=\"page-link\" [attr.title]=\"'...'\">\n <span class=\"nav-num\">...</span>\n </span>\n </li>\n </ng-container>\n\n <ng-container *ngFor=\"let num of list\">\n <li\n class=\"page-item\"\n [ngClass]=\"{ active: value === num }\"\n (click)=\"handleOnChange(num)\"\n value=\"num\"\n >\n <button class=\"page-link\" [ngClass]=\"{ active: value === num }\">\n <span class=\"nav-num\">{{ num }}</span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"useFirstAndLast\">\n <li class=\"page-item\" *ngIf=\"showEllipsisEnd\">\n <span class=\"page-link\" [attr.title]=\"'...'\">\n <span class=\"nav-num\">...</span>\n </span>\n </li>\n\n <li\n class=\"page-item\"\n (click)=\"handleOnChange(pagingSize)\"\n *ngIf=\"pagingSize > 1\"\n >\n <button\n class=\"page-link\"\n [ngClass]=\"{ active: value === pagingSize }\"\n [attr.title]=\"lastText\"\n >\n <span class=\"nav-num\">{{ pagingSize }}</span>\n </button>\n </li>\n </ng-container>\n\n <ng-container>\n <li class=\"page-item\" (click)=\"handleOnChange(value + 1)\">\n <button class=\"page-link\" [attr.title]=\"nextText\">\n <span class=\"nav-action\">\n <ng-container *ngIf=\"useTextNav; else angleRightIcon\">\n {{ nextText ? nextText : 'Next' }}\n </ng-container>\n <ng-template #angleRightIcon>\n <gds-icon-chevron-right\n *nggCoreElement\n ></gds-icon-chevron-right>\n </ng-template>\n </span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"showGoToPage\">\n <li>\n <div class=\"paging-input-wrapper\">\n <div class=\"label-wrapper\">\n <label for=\"pageInput\" *transloco=\"let t\">\n {{ t('label.gotopage') }}\n </label>\n </div>\n <div class=\"input-wrapper\">\n <input\n #pageInput\n data-thook=\"pagination-go-to-input\"\n min=\"1\"\n [max]=\"pagingSize\"\n id=\"pageInput\"\n class=\"gds-field\"\n type=\"number\"\n (keydown.enter)=\"handlePageInput(pageInput.value)\"\n [ngModel]=\"value\"\n />\n <button\n type=\"button\"\n data-thook=\"pagination-go-to-button\"\n (click)=\"handlePageInput(pageInput.value)\"\n >\n <gds-icon-chevron-right\n *nggCoreElement\n ></gds-icon-chevron-right>\n </button>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </nav>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { FormsModule } from '@angular/forms'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { PaginationComponent } from './pagination.component'\n\n@NgModule({\n declarations: [PaginationComponent],\n imports: [\n CommonModule,\n FormsModule,\n NggvI18nModule,\n TranslocoModule,\n NggCoreWrapperModule,\n ],\n exports: [PaginationComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggvPaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sebgroup-green-angular-src-v-angular-pagination.mjs","sources":["../../../../libs/angular/src/v-angular/pagination/pagination.component.ts","../../../../libs/angular/src/v-angular/pagination/pagination.component.html","../../../../libs/angular/src/v-angular/pagination/pagination.module.ts","../../../../libs/angular/src/v-angular/pagination/sebgroup-green-angular-src-v-angular-pagination.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core'\n\nimport '@sebgroup/green-core/components/icon/icons/chevron-left.js'\nimport '@sebgroup/green-core/components/icon/icons/chevron-right.js'\nimport '@sebgroup/green-core/components/icon/icons/arrow-left.js'\n\n/** The Pagination component is used to separate long sets of data so that it is easier for a user to consume information. To change the current page simply click on the page number. */\n@Component({\n selector: 'nggv-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss'],\n standalone: false\n})\nexport class PaginationComponent implements OnChanges {\n /** Total size of pagination */\n @Input() size = 0\n /** Selected page */\n @Input() value = 1\n /** First page text */\n @Input() firstText?: string\n /** Last page text */\n @Input() lastText?: string\n /** Next page text */\n @Input() nextText?: string\n /** Offset per page */\n @Input() offset?: number\n /** Number of pages to display*/\n @Input() pagingLength?: number\n /** Previous page text */\n @Input() previousText?: string\n /** Use first and last navigation buttons*/\n @Input() useFirstAndLast?: boolean = true\n /** Use text-based navigation buttons*/\n @Input() useTextNav?: boolean\n /** Use dot-navigation */\n @Input() useDotNav?: boolean\n /** Use 'Go to page' input field */\n @Input() showGoToPage = true\n /** Element class name */\n @Input() className = ''\n /** Element ID */\n @Input() id?: string\n /** Callback on page change */\n @Output() pageNumberChange: EventEmitter<number> = new EventEmitter<number>()\n\n /** @internal */\n pageNumber = 0\n /** @internal */\n list: Array<number> = []\n /** @internal */\n dotnavList: Array<number> = []\n /** @internal */\n pagingSize = 0\n /** @internal */\n showEllipsisStart = false\n /** @internal */\n showEllipsisEnd = false\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes?.offset || changes?.size) {\n this.setPagingSize()\n }\n\n if (changes?.pagingLength || changes?.value) {\n this.generateList()\n }\n }\n\n /** @internal */\n setPagingSize() {\n const initialOffset: number = this.offset ? this.offset : 10\n this.pagingSize = Math.ceil(Number(this.size) / initialOffset)\n this.generateList()\n }\n\n /** @internal */\n handleOnChange(value: number): void {\n if (value <= 0) {\n this.pageNumberChange.emit(1)\n } else if (value > this.pagingSize) {\n this.pageNumberChange.emit(this.pagingSize)\n } else {\n this.pageNumberChange.emit(value)\n }\n }\n\n /** @internal */\n handlePageInput(pageInput: string) {\n this.handleOnChange(Number(pageInput))\n }\n\n /**\n * Generates an array of the pages that needs to be displayed\n * It depends on the size, offset, and the current value\n */\n private generateList(): void {\n const genList: Array<number> = []\n const length: number = this.pagingLength ? this.pagingLength : 5\n\n for (let i = 1; i <= this.pagingSize; i++) {\n genList.push(i)\n }\n\n const medianValue: number = Math.ceil(length / 2)\n let start = 0\n let end = this.pagingSize\n\n if (length < this.pagingSize) {\n if (this.pagingSize - this.value < medianValue) {\n start = this.pagingSize - length\n } else if (this.value - medianValue > -1) {\n start = this.value - medianValue\n }\n end = start + length\n }\n if (this.useFirstAndLast) {\n if (start == 0) {\n start = 1\n end = start + length\n }\n\n if (end > this.pagingSize - 1) {\n end = this.pagingSize - 1\n start = Math.max(1, end - length)\n }\n }\n\n this.dotnavList = genList\n const pagingStart = genList[start]\n const pagingEnd = genList[end - 1]\n this.showEllipsisStart = pagingStart > 2\n this.showEllipsisEnd = pagingEnd < this.pagingSize - 1\n this.list = genList.slice(start, end)\n }\n}\n","<div class=\"pagination-wrapper\" [ngClass]=\"className\" [attr.id]=\"id\">\n <nav class=\"custom-pagination\">\n <ng-container *ngIf=\"useDotNav; else numNav\">\n <ul class=\"pagination dotnav\">\n <ng-container *ngFor=\"let num of dotnavList\">\n <li class=\"page-item\" (click)=\"handleOnChange(num)\" [value]=\"num\">\n <span\n class=\"page-dot-link\"\n [ngClass]=\"{ active: value === num }\"\n ></span>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n\n <ng-template #numNav>\n <ul class=\"pagination\">\n <ng-container>\n <li class=\"page-item\" (click)=\"handleOnChange(value - 1)\">\n <button\n class=\"page-link\"\n [attr.title]=\"previousText\"\n [attr.disabled]=\"value === 1 ? 'disabled' : null\"\n >\n <span class=\"nav-action\">\n <ng-container *ngIf=\"useTextNav; else angleLeftIcon\">\n {{ previousText ? previousText : 'Previous' }}\n </ng-container>\n <ng-template #angleLeftIcon>\n <gds-icon-chevron-left\n *nggCoreElement\n ></gds-icon-chevron-left>\n </ng-template>\n </span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"useFirstAndLast\">\n <li class=\"page-item\" (click)=\"handleOnChange(1)\">\n <button\n class=\"page-link\"\n [ngClass]=\"{ active: value === 1 }\"\n [attr.title]=\"firstText\"\n >\n <span class=\"nav-num\">{{ 1 }}</span>\n </button>\n </li>\n\n <li class=\"page-item\" *ngIf=\"showEllipsisStart\">\n <span class=\"page-link\" [attr.title]=\"'...'\">\n <span class=\"nav-num\">...</span>\n </span>\n </li>\n </ng-container>\n\n <ng-container *ngFor=\"let num of list\">\n <li\n class=\"page-item\"\n [ngClass]=\"{ active: value === num }\"\n (click)=\"handleOnChange(num)\"\n value=\"num\"\n >\n <button class=\"page-link\" [ngClass]=\"{ active: value === num }\">\n <span class=\"nav-num\">{{ num }}</span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"useFirstAndLast\">\n <li class=\"page-item\" *ngIf=\"showEllipsisEnd\">\n <span class=\"page-link\" [attr.title]=\"'...'\">\n <span class=\"nav-num\">...</span>\n </span>\n </li>\n\n <li\n class=\"page-item\"\n (click)=\"handleOnChange(pagingSize)\"\n *ngIf=\"pagingSize > 1\"\n >\n <button\n class=\"page-link\"\n [ngClass]=\"{ active: value === pagingSize }\"\n [attr.title]=\"lastText\"\n >\n <span class=\"nav-num\">{{ pagingSize }}</span>\n </button>\n </li>\n </ng-container>\n\n <ng-container>\n <li class=\"page-item\" (click)=\"handleOnChange(value + 1)\">\n <button class=\"page-link\" [attr.title]=\"nextText\">\n <span class=\"nav-action\">\n <ng-container *ngIf=\"useTextNav; else angleRightIcon\">\n {{ nextText ? nextText : 'Next' }}\n </ng-container>\n <ng-template #angleRightIcon>\n <gds-icon-chevron-right\n *nggCoreElement\n ></gds-icon-chevron-right>\n </ng-template>\n </span>\n </button>\n </li>\n </ng-container>\n\n <ng-container *ngIf=\"showGoToPage\">\n <li>\n <div class=\"paging-input-wrapper\">\n <div class=\"label-wrapper\">\n <label for=\"pageInput\" *transloco=\"let t\">\n {{ t('label.gotopage') }}\n </label>\n </div>\n <div class=\"input-wrapper\">\n <input\n #pageInput\n data-thook=\"pagination-go-to-input\"\n min=\"1\"\n [max]=\"pagingSize\"\n id=\"pageInput\"\n class=\"gds-field\"\n type=\"number\"\n (keydown.enter)=\"handlePageInput(pageInput.value)\"\n [ngModel]=\"value\"\n />\n <button\n type=\"button\"\n data-thook=\"pagination-go-to-button\"\n (click)=\"handlePageInput(pageInput.value)\"\n >\n <gds-icon-chevron-right\n *nggCoreElement\n ></gds-icon-chevron-right>\n </button>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </nav>\n</div>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { FormsModule } from '@angular/forms'\nimport { TranslocoModule } from '@jsverse/transloco'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { NggvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { PaginationComponent } from './pagination.component'\n\n@NgModule({\n declarations: [PaginationComponent],\n imports: [\n CommonModule,\n FormsModule,\n NggvI18nModule,\n TranslocoModule,\n NggCoreWrapperModule,\n ],\n exports: [PaginationComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggvPaginationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|