@sebgroup/green-angular 4.6.6 → 4.6.7
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/esm2022/lib/accordion/accordion-list-item.component.mjs +3 -3
- package/esm2022/src/lib/accordion/accordion-list-item.component.mjs +3 -3
- package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +2 -2
- package/esm2022/src/v-angular/button/button.component.mjs +2 -2
- package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +4 -4
- package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +2 -2
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +2 -2
- package/esm2022/src/v-angular/i18n/i18n.module.mjs +9 -3
- package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +2 -2
- package/esm2022/src/v-angular/input/input.component.mjs +4 -4
- package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +2 -2
- package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +3 -3
- package/esm2022/src/v-angular/radio/radio.component.mjs +4 -4
- package/esm2022/src/v-angular/textarea/textarea.component.mjs +4 -4
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +2 -2
- package/esm2022/v-angular/button/button.component.mjs +2 -2
- package/esm2022/v-angular/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +4 -4
- package/esm2022/v-angular/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +2 -2
- package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +2 -2
- package/esm2022/v-angular/i18n/i18n.module.mjs +9 -3
- package/esm2022/v-angular/i18n/i18n.test.module.mjs +2 -2
- package/esm2022/v-angular/input/input.component.mjs +4 -4
- package/esm2022/v-angular/modal/dialog/dialog.component.mjs +2 -2
- package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +3 -3
- package/esm2022/v-angular/radio/radio.component.mjs +4 -4
- package/esm2022/v-angular/textarea/textarea.component.mjs +4 -4
- package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +2 -2
- package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +3 -3
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +4 -4
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +8 -2
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +3 -3
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +4 -4
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +3 -3
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +3 -3
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +19 -13
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular.mjs +2 -2
- package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
- package/package.json +3 -3
- package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +1 -1
- package/src/v-angular/button/button.component.d.ts +1 -1
- package/src/v-angular/checkbox/checkbox.component.d.ts +1 -1
- package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +1 -1
- package/src/v-angular/dropdown/dropdown.component.d.ts +1 -1
- package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +1 -1
- package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +1 -1
- package/src/v-angular/i18n/i18n.module.d.ts +2 -2
- package/src/v-angular/i18n/i18n.test.module.d.ts +1 -1
- package/src/v-angular/input/input.component.d.ts +1 -1
- package/src/v-angular/radio/radio.component.d.ts +1 -1
- package/src/v-angular/textarea/textarea.component.d.ts +1 -1
- package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +1 -1
- package/v-angular/button/button.component.d.ts +1 -1
- package/v-angular/checkbox/checkbox.component.d.ts +1 -1
- package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +1 -1
- package/v-angular/dropdown/dropdown.component.d.ts +1 -1
- package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +1 -1
- package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +1 -1
- package/v-angular/i18n/i18n.module.d.ts +2 -2
- package/v-angular/i18n/i18n.test.module.d.ts +1 -1
- package/v-angular/input/input.component.d.ts +1 -1
- package/v-angular/radio/radio.component.d.ts +1 -1
- package/v-angular/textarea/textarea.component.d.ts +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/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 Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\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})\nexport class NgvDialogComponent implements OnInit {\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 = 'dialog'\n /** @internal */\n @HostBinding('class.sdv-modal-dialog') baseClass = true\n /** @internal Defines the default visibility state of the dialog. */\n @HostBinding('class.-active') @Input() shown = false\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 @Input() dialogBodyId!: string\n /** It gives an ability for parent component to control if modal should be closed on esc button click. */\n @Input() closeModalOnEscape = true\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\n protected _previous: HTMLElement | undefined\n protected _firstFocusable: HTMLElement | undefined\n protected _lastFocusable: HTMLElement | undefined\n\n ngOnInit() {\n this.dialogTitleId =\n this.dialogTitleId ?? 'sdv-dialog-title-' + window.nggv?.nextId()\n this.dialogBodyId =\n this.dialogBodyId ?? 'sdv-dialog-body-' + window.nggv?.nextId()\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 '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 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._lastFocusable) this._lastFocusable.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 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","<div\n class=\"sdv-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=\"sdv-modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n type=\"button\"\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n class=\"close\"\n >\n <gds-icon-cross-small\n *nggCoreElement\n width=\"24\"\n height=\"24\"\n ></gds-icon-cross-small>\n </button>\n </header>\n <section class=\"sdv-modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"sdv-button sdv-button-delete\"\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=\"sdv-button sdv-button-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=\"sdv-button\"\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 class=\"sdv-modal-backdrop\"></div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core'\n\nimport '@sebgroup/green-core/components/icon/icons/dot-grid-one-horizontal.js'\n\nimport { fromEvent, Subscription } from 'rxjs'\nimport { filter, map } from 'rxjs/operators'\n\n@Component({\n selector: 'nggv-fold-out',\n templateUrl: './fold-out.component.html',\n styleUrls: ['./fold-out.component.scss'],\n})\nexport class NgvFoldOutComponent implements OnDestroy {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'fold-out'\n\n @ViewChild('foldout', { read: ElementRef }) inputRef?: ElementRef\n\n /** Aligns the dropdown list with the buttons right or left side */\n @Input() alignOptions!: 'left' | 'right'\n\n onClickSubscription: Subscription | undefined\n // /** @internal */\n // faEllipsisH: IconDefinition = faEllipsisH\n /** @internal */\n shown = false\n\n constructor() {\n // Empty constructor\n }\n\n ngOnDestroy(): void {\n this.onClickSubscription?.unsubscribe()\n }\n\n /** Toggle display of the option list */\n toggleVisibility(event?: Event, setVisibility?: boolean): void {\n this.shown = setVisibility !== undefined ? setVisibility : !this.shown\n if (this.shown) this.subscribeToOutsideClickEvent()\n }\n\n /**\n * Closes the fold-out on click outside.\n */\n subscribeToOutsideClickEvent(): void {\n this.onClickSubscription = fromEvent(document, 'click').subscribe({\n next: (event: Event) => {\n if (\n this.shown &&\n !this.inputRef?.nativeElement.contains(event.target)\n ) {\n this.toggleVisibility()\n this.onClickSubscription?.unsubscribe()\n }\n },\n })\n }\n}\n","<div #foldout class=\"sdv-field-dropdown\">\n <button\n data-thook=\"fold-out-toggle\"\n class=\"sdv-button fold-out-button\"\n (click)=\"toggleVisibility($event)\"\n >\n <gds-icon-dot-grid-one-horizontal\n width=\"24\"\n height=\"24\"\n *nggCoreElement\n ></gds-icon-dot-grid-one-horizontal>\n </button>\n\n <div\n class=\"gds-fold-out__popover\"\n [ngClass]=\"{ 'flex-right': alignOptions === 'right' }\"\n [class.gds-fold-out__popover-expanded]=\"shown\"\n (click)=\"toggleVisibility($event, false)\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, HostBinding } from '@angular/core'\n\n@Directive({\n selector: '[nggvOption]',\n})\nexport class NgvFoldOutOptionDirective {\n @HostBinding('class.sdv-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 ViewChild,\n} from '@angular/core'\n\n// import { faTimes } from '@fortawesome/pro-regular-svg-icons';\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(\n '.gds-slide-out',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(0)' }),\n ),\n { optional: true },\n ),\n query(\n '.gds-backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '1' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n transition(':leave', [\n query('.gds-slide-out', style({ transform: 'translateX(0)' }), {\n optional: true,\n }),\n group([\n query(\n '.gds-slide-out',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(100%)' }),\n ),\n { optional: true },\n ),\n query(\n '.gds-backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '0' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n ]),\n ],\n})\nexport class NgvSlideOutComponent 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 @Input() shown = false\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 /** 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 /** @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(private host: ElementRef) {\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.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 if (\n initiator === 'host' &&\n event instanceof MouseEvent &&\n event.target !== event.currentTarget\n )\n return\n if (this.shown && this.closable) {\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.lastFocusable) this.lastFocusable.focus()\n })\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=\"sdv-modal-title\"\n aria-describedby=\"sdv-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 class=\"gds-slide-out__heading\" id=\"sdv-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.close()\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n </header>\n\n <section id=\"sdv-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=\"sdv-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 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=\"gds-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 { NgvButtonModule } from '@sebgroup/green-angular/src/v-angular/button'\nimport { NgvDialogComponent } from './dialog/dialog.component'\nimport { NgvFoldOutComponent } from './fold-out/fold-out.component'\nimport { NgvFoldOutOptionDirective } from './fold-out/fold-out.directive'\nimport { NgvSlideOutComponent } from './slide-out/slide-out.component'\n\n@NgModule({\n imports: [CommonModule, NgvButtonModule],\n declarations: [\n NgvDialogComponent,\n NgvSlideOutComponent,\n NgvFoldOutComponent,\n NgvFoldOutOptionDirective,\n ],\n exports: [\n NgvDialogComponent,\n NgvSlideOutComponent,\n NgvFoldOutComponent,\n NgvFoldOutOptionDirective,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgvModalModule {}\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-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/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 Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\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})\nexport class NgvDialogComponent implements OnInit {\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 = 'dialog'\n /** @internal */\n @HostBinding('class.sdv-modal-dialog') baseClass = true\n /** @internal Defines the default visibility state of the dialog. */\n @HostBinding('class.-active') @Input() shown = false\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 @Input() dialogBodyId!: string\n /** It gives an ability for parent component to control if modal should be closed on esc button click. */\n @Input() closeModalOnEscape = true\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\n protected _previous: HTMLElement | undefined\n protected _firstFocusable: HTMLElement | undefined\n protected _lastFocusable: HTMLElement | undefined\n\n ngOnInit() {\n this.dialogTitleId =\n this.dialogTitleId ?? 'sdv-dialog-title-' + window.nggv?.nextId()\n this.dialogBodyId =\n this.dialogBodyId ?? 'sdv-dialog-body-' + window.nggv?.nextId()\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 '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 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._lastFocusable) this._lastFocusable.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 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","<div\n class=\"sdv-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=\"sdv-modal-dialog__heading\">\n <h3 [attr.id]=\"dialogTitleId\">{{ t(heading || title || '') }}</h3>\n <button\n type=\"button\"\n data-thook=\"dialog-close\"\n (click)=\"onAction($event, 'close')\"\n (keydown.enter)=\"onAction($event, 'close')\"\n class=\"close\"\n >\n <gds-icon-cross-small\n *nggCoreElement\n width=\"24\"\n height=\"24\"\n ></gds-icon-cross-small>\n </button>\n </header>\n <section class=\"sdv-modal-dialog__body\" [attr.id]=\"dialogBodyId\">\n <div [innerHtml]=\"content\"></div>\n <ng-content></ng-content>\n </section>\n <footer class=\"sdv-modal-dialog__actions\">\n <button\n class=\"sdv-button sdv-button-delete\"\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=\"sdv-button sdv-button-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=\"sdv-button\"\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 class=\"sdv-modal-backdrop\"></div>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core'\n\nimport '@sebgroup/green-core/components/icon/icons/dot-grid-one-horizontal.js'\n\nimport { fromEvent, Subscription } from 'rxjs'\nimport { filter, map } from 'rxjs/operators'\n\n@Component({\n selector: 'nggv-fold-out',\n templateUrl: './fold-out.component.html',\n styleUrls: ['./fold-out.component.scss'],\n})\nexport class NgvFoldOutComponent implements OnDestroy {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'fold-out'\n\n @ViewChild('foldout', { read: ElementRef }) inputRef?: ElementRef\n\n /** Aligns the dropdown list with the buttons right or left side */\n @Input() alignOptions!: 'left' | 'right'\n\n onClickSubscription: Subscription | undefined\n // /** @internal */\n // faEllipsisH: IconDefinition = faEllipsisH\n /** @internal */\n shown = false\n\n constructor() {\n // Empty constructor\n }\n\n ngOnDestroy(): void {\n this.onClickSubscription?.unsubscribe()\n }\n\n /** Toggle display of the option list */\n toggleVisibility(event?: Event, setVisibility?: boolean): void {\n this.shown = setVisibility !== undefined ? setVisibility : !this.shown\n if (this.shown) this.subscribeToOutsideClickEvent()\n }\n\n /**\n * Closes the fold-out on click outside.\n */\n subscribeToOutsideClickEvent(): void {\n this.onClickSubscription = fromEvent(document, 'click').subscribe({\n next: (event: Event) => {\n if (\n this.shown &&\n !this.inputRef?.nativeElement.contains(event.target)\n ) {\n this.toggleVisibility()\n this.onClickSubscription?.unsubscribe()\n }\n },\n })\n }\n}\n","<div #foldout class=\"sdv-field-dropdown\">\n <button\n data-thook=\"fold-out-toggle\"\n class=\"sdv-button fold-out-button\"\n (click)=\"toggleVisibility($event)\"\n >\n <gds-icon-dot-grid-one-horizontal\n width=\"24\"\n height=\"24\"\n *nggCoreElement\n ></gds-icon-dot-grid-one-horizontal>\n </button>\n\n <div\n class=\"gds-fold-out__popover\"\n [ngClass]=\"{ 'flex-right': alignOptions === 'right' }\"\n [class.gds-fold-out__popover-expanded]=\"shown\"\n (click)=\"toggleVisibility($event, false)\"\n >\n <ng-content></ng-content>\n </div>\n</div>\n","import { Directive, HostBinding } from '@angular/core'\n\n@Directive({\n selector: '[nggvOption]',\n})\nexport class NgvFoldOutOptionDirective {\n @HostBinding('class.sdv-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 ViewChild,\n} from '@angular/core'\n\n// import { faTimes } from '@fortawesome/pro-regular-svg-icons';\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(\n '.gds-slide-out',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(0)' }),\n ),\n { optional: true },\n ),\n query(\n '.gds-backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '1' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n transition(':leave', [\n query('.gds-slide-out', style({ transform: 'translateX(0)' }), {\n optional: true,\n }),\n group([\n query(\n '.gds-slide-out',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ transform: 'translateX(100%)' }),\n ),\n { optional: true },\n ),\n query(\n '.gds-backdrop, [role=dialog]',\n animate(\n '350ms cubic-bezier(0.33, 1, 0.68, 1)',\n style({ opacity: '0' }),\n ),\n { optional: true },\n ),\n ]),\n ]),\n ]),\n ],\n})\nexport class NgvSlideOutComponent 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 @Input() shown = false\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 /** 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 /** @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(private host: ElementRef) {\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.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 if (\n initiator === 'host' &&\n event instanceof MouseEvent &&\n event.target !== event.currentTarget\n )\n return\n if (this.shown && this.closable) {\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.lastFocusable) this.lastFocusable.focus()\n })\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=\"sdv-modal-title\"\n aria-describedby=\"sdv-modal-body\"\n >\n <header class=\"gds-slide-out__header\">\n <h3 class=\"gds-slide-out__heading\" id=\"sdv-modal-title\">\n {{ heading || title || '' }}\n </h3>\n <button\n data-testid=\"modal-close-button\"\n class=\"close\"\n (click)=\"this.close()\"\n >\n <span className=\"sr-only\">Close</span>\n <i></i>\n </button>\n </header>\n\n <section id=\"sdv-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=\"sdv-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 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=\"gds-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 { NgvButtonModule } from '@sebgroup/green-angular/src/v-angular/button'\nimport { NgvDialogComponent } from './dialog/dialog.component'\nimport { NgvFoldOutComponent } from './fold-out/fold-out.component'\nimport { NgvFoldOutOptionDirective } from './fold-out/fold-out.directive'\nimport { NgvSlideOutComponent } from './slide-out/slide-out.component'\n\n@NgModule({\n imports: [CommonModule, NgvButtonModule],\n declarations: [\n NgvDialogComponent,\n NgvSlideOutComponent,\n NgvFoldOutComponent,\n NgvFoldOutOptionDirective,\n ],\n exports: [\n NgvDialogComponent,\n NgvSlideOutComponent,\n NgvFoldOutComponent,\n NgvFoldOutOptionDirective,\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgvModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, Component, Self, Optional, Inject, HostBinding, Input, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
|
-
import * as i3 from '@
|
|
5
|
-
import { TRANSLOCO_SCOPE } from '@
|
|
4
|
+
import * as i3 from '@jsverse/transloco';
|
|
5
|
+
import { TRANSLOCO_SCOPE } from '@jsverse/transloco';
|
|
6
6
|
import { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
|
|
7
7
|
import * as i2 from '@angular/common';
|
|
8
8
|
import { CommonModule } from '@angular/common';
|
|
@@ -107,7 +107,7 @@ class NgvRadioComponent extends NgvBaseControlValueAccessorComponent {
|
|
|
107
107
|
this.name = this.formControlName;
|
|
108
108
|
}
|
|
109
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvRadioComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: NgvRadioControlRegistry }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvRadioComponent, selector: "nggv-radio", inputs: { thook: "thook", formControlName: "formControlName" }, host: { properties: { "attr.data-thook": "this.thook" } }, providers: [NgvRadioControlRegistry], usesInheritance: true, ngImport: i0, template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\" class=\"sdv-field-radio-wrap\">\n <div\n [id]=\"id + '-radio'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"sdv-field-radio-wrap\">\n <!-- RADIO BUTTON FIELD -->\n <label [attr.for]=\"id + '-radio'\" class=\"form-control\">\n <input\n #input\n type=\"radio\"\n [attr.id]=\"id + '-radio'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n <!-- LABEL -->\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"\n labelContentTpl ?? null;\n context: { $implicit: value }\n \"\n ></ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-radio'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host .nggv-field--locked{display:inline-block;border-radius:.25em;position:relative;min-height:2em;padding:.5em .75em .5em 0}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none}:host .form-control:has(input:disabled){cursor:not-allowed}:host label.form-control input[type=radio]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control:has(input[type=radio]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=radio]:focus-visible):focus,:host label.form-control:has(input[type=radio]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=radio]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;position:relative;border-radius:var(--gds-comp-radio-border-radius);display:flex;height:var(--gds-comp-radio-container-height);width:var(--gds-comp-radio-container-width);box-shadow:inset 0 0 0 .05rem var(--gds-comp-radio-border)}:host label.form-control input[type=radio]~i:after{content:\"\";width:100%;height:100%;border-radius:var(--gds-comp-radio-border-radius);background-color:var(--gds-comp-radio-dot);transform:scale(.5)}:host label.form-control:hover input[type=radio]:not(.disabled,:disabled)~i{box-shadow:inset 0 0 0 .05rem var(--gds-comp-radio-border-hover)}:host label.form-control:hover input[type=radio]:not(.disabled,:disabled)~i:after{background-color:var(--gds-comp-radio-dot-hover)}:host label.form-control input[type=radio]:checked:not(.disabled,:disabled)~i{box-shadow:inset 0 0 0 .05rem var(--gds-comp-radio-border-checked)}:host label.form-control input[type=radio]:checked:not(.disabled,:disabled)~i:after{background-color:var(--gds-comp-radio-dot-checked)}:host label.form-control:hover input[type=radio]:checked:not(.disabled,:disabled)~i{box-shadow:inset 0 0 0 .05rem var(--gds-comp-radio-border-checked-hover)}:host label.form-control:hover input[type=radio]:checked:not(.disabled,:disabled)~i:after{background-color:var(--gds-comp-radio-dot-checked-hover)}:host .was-validated label.form-control input[type=radio]:not(.is-invalid):valid~i,:host label.form-control input[type=radio].is-valid~i{--border-color: var(--intent-success-background);--sg-border-color: var(--intent-success-background)}:host .was-validated label.form-control input[type=radio]:not(.is-valid):invalid~i,:host label.form-control input[type=radio].is-invalid~i{--border-color: var(--intent-danger-background);--sg-border-color: var(--intent-danger-background)}:host label.form-control input[type=radio]:disabled~i,:host label.form-control input[type=radio].disabled~i{background-color:var(--gds-comp-radio-container-background-disabled);box-shadow:inset 0 0 0 .05rem var(--gds-comp-radio-border-disabled)}:host label.form-control input[type=radio]:disabled~span,:host label.form-control input[type=radio].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=radio]:disabled~span::placeholder,:host label.form-control input[type=radio].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=radio]:disabled:checked~i:after,:host label.form-control input[type=radio]:checked.disabled~i:after{background-color:var(--gds-comp-radio-dot-disabled)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvRadioComponent, selector: "nggv-radio", inputs: { thook: "thook", formControlName: "formControlName" }, host: { properties: { "attr.data-thook": "this.thook" } }, providers: [NgvRadioControlRegistry], usesInheritance: true, ngImport: i0, template: "<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\" class=\"sdv-field-radio-wrap\">\n <div\n [id]=\"id + '-radio'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"sdv-field-radio-wrap\">\n <!-- RADIO BUTTON FIELD -->\n <label [attr.for]=\"id + '-radio'\" class=\"form-control\">\n <input\n #input\n type=\"radio\"\n [attr.id]=\"id + '-radio'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n <!-- LABEL -->\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"\n labelContentTpl ?? null;\n context: { $implicit: value }\n \"\n ></ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-radio'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host .nggv-field--locked{display:inline-block;border-radius:.25em;position:relative;min-height:2em;padding:.5em .75em .5em 0}:host .form-control{padding:.75rem 1rem;border:1px solid transparent;border-radius:var(--gds-sys-shape-corner-medium);align-items:center;cursor:pointer;display:flex;flex-direction:row-reverse;font:inherit;justify-content:flex-end;position:relative;user-select:none;-webkit-user-select:none}:host .form-control:has(input:disabled){cursor:not-allowed}:host label.form-control input[type=radio]{cursor:pointer;height:0;opacity:0;position:absolute;width:0;z-index:-1}:host label.form-control:has(input[type=radio]:focus-visible):focus:not(:focus-visible){box-shadow:none;outline:0}:host label.form-control:has(input[type=radio]:focus-visible):focus,:host label.form-control:has(input[type=radio]:focus-visible):focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}:host label.form-control input[type=radio]~i{margin-right:.75rem;margin-top:.0625rem;flex-shrink:0;position:relative;border-radius:var(--gds-comp-radio-border-radius);display:flex;height:var(--gds-comp-radio-container-height);width:var(--gds-comp-radio-container-width);box-shadow:inset 0 0 0 .05rem var(--gds-comp-radio-border)}:host label.form-control input[type=radio]~i:after{content:\"\";width:100%;height:100%;border-radius:var(--gds-comp-radio-border-radius);background-color:var(--gds-comp-radio-dot);transform:scale(.5)}:host label.form-control:hover input[type=radio]:not(.disabled,:disabled)~i{box-shadow:inset 0 0 0 .05rem var(--gds-comp-radio-border-hover)}:host label.form-control:hover input[type=radio]:not(.disabled,:disabled)~i:after{background-color:var(--gds-comp-radio-dot-hover)}:host label.form-control input[type=radio]:checked:not(.disabled,:disabled)~i{box-shadow:inset 0 0 0 .05rem var(--gds-comp-radio-border-checked)}:host label.form-control input[type=radio]:checked:not(.disabled,:disabled)~i:after{background-color:var(--gds-comp-radio-dot-checked)}:host label.form-control:hover input[type=radio]:checked:not(.disabled,:disabled)~i{box-shadow:inset 0 0 0 .05rem var(--gds-comp-radio-border-checked-hover)}:host label.form-control:hover input[type=radio]:checked:not(.disabled,:disabled)~i:after{background-color:var(--gds-comp-radio-dot-checked-hover)}:host .was-validated label.form-control input[type=radio]:not(.is-invalid):valid~i,:host label.form-control input[type=radio].is-valid~i{--border-color: var(--intent-success-background);--sg-border-color: var(--intent-success-background)}:host .was-validated label.form-control input[type=radio]:not(.is-valid):invalid~i,:host label.form-control input[type=radio].is-invalid~i{--border-color: var(--intent-danger-background);--sg-border-color: var(--intent-danger-background)}:host label.form-control input[type=radio]:disabled~i,:host label.form-control input[type=radio].disabled~i{background-color:var(--gds-comp-radio-container-background-disabled);box-shadow:inset 0 0 0 .05rem var(--gds-comp-radio-border-disabled)}:host label.form-control input[type=radio]:disabled~span,:host label.form-control input[type=radio].disabled~span{color:var(--text-disabled-color)!important;cursor:not-allowed}:host label.form-control input[type=radio]:disabled~span::placeholder,:host label.form-control input[type=radio].disabled~span::placeholder{color:var(--text-disabled-color)}:host label.form-control input[type=radio]:disabled:checked~i:after,:host label.form-control input[type=radio]:checked.disabled~i:after{background-color:var(--gds-comp-radio-dot-disabled)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
111
111
|
}
|
|
112
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvRadioComponent, decorators: [{
|
|
113
113
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sebgroup-green-angular-src-v-angular-radio.mjs","sources":["../../../../libs/angular/src/v-angular/radio/radio.component.ts","../../../../libs/angular/src/v-angular/radio/radio.component.html","../../../../libs/angular/src/v-angular/radio/radio.module.ts","../../../../libs/angular/src/v-angular/radio/sebgroup-green-angular-src-v-angular-radio.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Injectable,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@ngneat/transloco'\n\nimport { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/** @internal Internal class used to uncheck radio buttons with the matching name. */\n@Injectable()\nexport class NgvRadioControlRegistry {\n private _radios: any[] = []\n\n add(control: NgControl, radio: NgvRadioComponent) {\n this._radios.push([control, radio])\n }\n\n remove(radio: NgvRadioComponent) {\n for (let i = this._radios.length - 1; i >= 0; --i) {\n if (this._radios[i][1] === radio) {\n this._radios.splice(i, 1)\n return\n }\n }\n }\n\n select(radio: NgvRadioComponent) {\n this._radios.forEach((controlPair) => {\n if (this._isSameGroup(controlPair, radio) && controlPair[1] !== radio) {\n controlPair[1].writeValue(radio.value)\n }\n })\n }\n\n private _isSameGroup(\n controlPair: [NgControl, NgvRadioComponent],\n radio: NgvRadioComponent,\n ) {\n if (!controlPair[0].control) return false\n return (\n //@ts-expect-error internal properties not exposed\n controlPair[0]._parent === radio.ngControl._parent &&\n controlPair[1].name === radio.name\n )\n }\n}\n\n/**\n * Use radio buttons when users must select one option in a list with exclusive options out of a set of two or more options.\n * https://designlibrary.sebgroup.com/components/component-radiobutton\n */\n@Component({\n selector: 'nggv-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [NgvRadioControlRegistry],\n})\nexport class NgvRadioComponent\n extends NgvBaseControlValueAccessorComponent\n implements OnInit, OnDestroy\n{\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'radio'\n\n /** Syncs a FormControl in an existing FormGroup to a form control element by name. */\n @Input() formControlName?: string\n\n /**\n * Creates a new RadioComponent\n * @param ngControl optional FormControl provided when component is used in a form, through dependency injection.\n * @param registry internal registry used to uncheck radio buttons with the matching name, through dependency injection.\n * @param cdr change detection reference for rendering purposes.\n */\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected registry: NgvRadioControlRegistry,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n ngOnInit() {\n super.ngOnInit()\n this._checkName()\n this.registry.add(this.ngControl, this)\n }\n\n ngOnDestroy() {\n this.registry.remove(this)\n }\n\n /** @internal */\n onInputChange(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.onChange(this.state)\n }\n\n /** Writes a new value of true or false based on if argument matches this components value property. */\n writeValue(value: any): void {\n // Phantom null value on first load https://github.com/angular/angular/pull/38140\n super.writeValue(value === this.value)\n }\n\n /** Registers a callback function that is called when the child input element's value changes. */\n registerOnChange(fn: (value: any) => any) {\n // Override default to update registry\n this.onChange = () => {\n fn(this.value)\n this.registry.select(this)\n }\n }\n\n /** Checks that the name properties match and updates name property if only formControlName is given. */\n private _checkName(): void {\n if (\n this.name &&\n this.formControlName &&\n this.name !== this.formControlName\n ) {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <input type=\"radio\" formControlName=\"food\" name=\"food\">\n `)\n }\n if (!this.name && this.formControlName) this.name = this.formControlName\n }\n}\n","<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\" class=\"sdv-field-radio-wrap\">\n <div\n [id]=\"id + '-radio'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"sdv-field-radio-wrap\">\n <!-- RADIO BUTTON FIELD -->\n <label [attr.for]=\"id + '-radio'\" class=\"form-control\">\n <input\n #input\n type=\"radio\"\n [attr.id]=\"id + '-radio'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n <!-- LABEL -->\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"\n labelContentTpl ?? null;\n context: { $implicit: value }\n \"\n ></ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-radio'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NgvRadioComponent } from './radio.component'\n\n@NgModule({\n declarations: [NgvRadioComponent],\n imports: [CommonModule, NgvI18nModule],\n exports: [NgvRadioComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgvRadioModule {}\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-radio.mjs","sources":["../../../../libs/angular/src/v-angular/radio/radio.component.ts","../../../../libs/angular/src/v-angular/radio/radio.component.html","../../../../libs/angular/src/v-angular/radio/radio.module.ts","../../../../libs/angular/src/v-angular/radio/sebgroup-green-angular-src-v-angular-radio.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Injectable,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\n\nimport { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/** @internal Internal class used to uncheck radio buttons with the matching name. */\n@Injectable()\nexport class NgvRadioControlRegistry {\n private _radios: any[] = []\n\n add(control: NgControl, radio: NgvRadioComponent) {\n this._radios.push([control, radio])\n }\n\n remove(radio: NgvRadioComponent) {\n for (let i = this._radios.length - 1; i >= 0; --i) {\n if (this._radios[i][1] === radio) {\n this._radios.splice(i, 1)\n return\n }\n }\n }\n\n select(radio: NgvRadioComponent) {\n this._radios.forEach((controlPair) => {\n if (this._isSameGroup(controlPair, radio) && controlPair[1] !== radio) {\n controlPair[1].writeValue(radio.value)\n }\n })\n }\n\n private _isSameGroup(\n controlPair: [NgControl, NgvRadioComponent],\n radio: NgvRadioComponent,\n ) {\n if (!controlPair[0].control) return false\n return (\n //@ts-expect-error internal properties not exposed\n controlPair[0]._parent === radio.ngControl._parent &&\n controlPair[1].name === radio.name\n )\n }\n}\n\n/**\n * Use radio buttons when users must select one option in a list with exclusive options out of a set of two or more options.\n * https://designlibrary.sebgroup.com/components/component-radiobutton\n */\n@Component({\n selector: 'nggv-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss'],\n providers: [NgvRadioControlRegistry],\n})\nexport class NgvRadioComponent\n extends NgvBaseControlValueAccessorComponent\n implements OnInit, OnDestroy\n{\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'radio'\n\n /** Syncs a FormControl in an existing FormGroup to a form control element by name. */\n @Input() formControlName?: string\n\n /**\n * Creates a new RadioComponent\n * @param ngControl optional FormControl provided when component is used in a form, through dependency injection.\n * @param registry internal registry used to uncheck radio buttons with the matching name, through dependency injection.\n * @param cdr change detection reference for rendering purposes.\n */\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected registry: NgvRadioControlRegistry,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n ngOnInit() {\n super.ngOnInit()\n this._checkName()\n this.registry.add(this.ngControl, this)\n }\n\n ngOnDestroy() {\n this.registry.remove(this)\n }\n\n /** @internal */\n onInputChange(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.onChange(this.state)\n }\n\n /** Writes a new value of true or false based on if argument matches this components value property. */\n writeValue(value: any): void {\n // Phantom null value on first load https://github.com/angular/angular/pull/38140\n super.writeValue(value === this.value)\n }\n\n /** Registers a callback function that is called when the child input element's value changes. */\n registerOnChange(fn: (value: any) => any) {\n // Override default to update registry\n this.onChange = () => {\n fn(this.value)\n this.registry.select(this)\n }\n }\n\n /** Checks that the name properties match and updates name property if only formControlName is given. */\n private _checkName(): void {\n if (\n this.name &&\n this.formControlName &&\n this.name !== this.formControlName\n ) {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <input type=\"radio\" formControlName=\"food\" name=\"food\">\n `)\n }\n if (!this.name && this.formControlName) this.name = this.formControlName\n }\n}\n","<!-- LOCKED INPUT -->\n<div *ngIf=\"locked && state\" class=\"sdv-field-radio-wrap\">\n <div\n [id]=\"id + '-radio'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n >\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl ?? null; context: { $implicit: value }\"\n ></ng-template>\n </div>\n</div>\n\n<!-- INPUT WRAPPER -->\n<ng-container *ngIf=\"!locked\">\n <div class=\"sdv-field-radio-wrap\">\n <!-- RADIO BUTTON FIELD -->\n <label [attr.for]=\"id + '-radio'\" class=\"form-control\">\n <input\n #input\n type=\"radio\"\n [attr.id]=\"id + '-radio'\"\n [attr.name]=\"name\"\n [attr.value]=\"value\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [attr.aria-label]=\"description\"\n [checked]=\"state\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onInputChange($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n />\n\n <!-- LABEL -->\n {{ label }}\n <ng-template\n *ngTemplateOutlet=\"\n labelContentTpl ?? null;\n context: { $implicit: value }\n \"\n ></ng-template>\n <i></i>\n </label>\n </div>\n\n <!-- ERRORS -->\n <ng-container *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-radio'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n </ng-container>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NgvRadioComponent } from './radio.component'\n\n@NgModule({\n declarations: [NgvRadioComponent],\n imports: [CommonModule, NgvI18nModule],\n exports: [NgvRadioComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgvRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, Self, Optional, Inject, HostBinding, Input, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
|
-
import * as i3 from '@
|
|
5
|
-
import { TRANSLOCO_SCOPE } from '@
|
|
4
|
+
import * as i3 from '@jsverse/transloco';
|
|
5
|
+
import { TRANSLOCO_SCOPE } from '@jsverse/transloco';
|
|
6
6
|
import { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor';
|
|
7
7
|
import * as i2 from '@angular/common';
|
|
8
8
|
import { CommonModule } from '@angular/common';
|
|
@@ -69,7 +69,7 @@ class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {
|
|
|
69
69
|
this.onChange(this.state);
|
|
70
70
|
}
|
|
71
71
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvTextareaComponent, selector: "nggv-textarea", inputs: { thook: "thook", placeholder: "placeholder", readonly: "readonly", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", rows: "rows" }, host: { properties: { "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{ description }}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.sdv-field-notice){margin-bottom:.5rem}:host label:not(.sdv-field-notice):is(label){margin-bottom:0}:host label:not(.sdv-field-notice).form-control{width:-moz-fit-content;width:fit-content}@supports (-moz-appearance: none){:host label:not(.sdv-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.sdv-field-notice).form-control:focus,:host label:not(.sdv-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.sdv-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.sdv-field-notice)+input,:host label:not(.sdv-field-notice)+textarea,fieldset :host label:not(.sdv-field-notice)+div,:host label:not(.sdv-field-notice)+button,:host label:not(.sdv-field-notice)+.group-stepper,:host label:not(.sdv-field-notice)+.stepper-wrapper,:host label:not(.sdv-field-notice)+.group{margin-top:.5rem}:host label:not(.sdv-field-notice)+.form-info{margin-bottom:.5rem}:host label:is(.sdv-field-label){margin-bottom:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .sdv-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }] }); }
|
|
72
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvTextareaComponent, selector: "nggv-textarea", inputs: { thook: "thook", placeholder: "placeholder", readonly: "readonly", minLength: "minLength", minlength: "minlength", maxLength: "maxLength", maxlength: "maxlength", rows: "rows" }, host: { properties: { "attr.data-thook": "this.thook" } }, usesInheritance: true, ngImport: i0, template: "<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{ description }}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host textarea{padding:.75rem 1rem;border-radius:var(--sg-border-radius);border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--sg-border-color);align-items:center;background-color:var(--sg-form-control-bg);color:var(--text-primary-color);display:flex;justify-content:center;resize:vertical}:host textarea:focus:not(:focus-visible){box-shadow:none;outline:0}:host textarea:focus,:host textarea:focus-visible{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}@media screen and (-ms-high-contrast: active){:host textarea{border:2px solid currentcolor}}:host textarea:hover{background-color:var(--gds-ref-pallet-base100)}:host textarea:disabled,:host textarea.disabled,:host textarea[aria-disabled=true]{background:var(--sg-form-control-bg-disabled)!important;color:var(--text-disabled-color)!important;border-color:var(--border-disabled-color)!important;cursor:not-allowed}:host textarea:disabled::placeholder,:host textarea.disabled::placeholder,:host textarea[aria-disabled=true]::placeholder{color:var(--text-disabled-color)}:host label:not(.sdv-field-notice){margin-bottom:.5rem}:host label:not(.sdv-field-notice):is(label){margin-bottom:0}:host label:not(.sdv-field-notice).form-control{width:-moz-fit-content;width:fit-content}@supports (-moz-appearance: none){:host label:not(.sdv-field-notice).form-control:focus:not(:focus-visible){box-shadow:none;outline:0}:host label:not(.sdv-field-notice).form-control:focus,:host label:not(.sdv-field-notice).form-control:focus-within{outline-color:var(--gds-sys-color-focus-outline);outline-style:solid;outline-width:.125rem;outline-offset:.125rem}}:host label:not(.sdv-field-notice):not(.form-control){font-weight:500;width:100%;line-height:1.25rem}:host label:not(.sdv-field-notice)+input,:host label:not(.sdv-field-notice)+textarea,fieldset :host label:not(.sdv-field-notice)+div,:host label:not(.sdv-field-notice)+button,:host label:not(.sdv-field-notice)+.group-stepper,:host label:not(.sdv-field-notice)+.stepper-wrapper,:host label:not(.sdv-field-notice)+.group{margin-top:.5rem}:host label:not(.sdv-field-notice)+.form-info{margin-bottom:.5rem}:host label:is(.sdv-field-label){margin-bottom:.5rem}:host .hide-if-empty:empty{display:none}:host .unset-state{padding-left:.5rem}:host .sdv-field-label--optional{font-weight:400}:host textarea{width:100%;max-width:100%}:host .description{margin-bottom:.5rem}:host .error-wrapper{margin-top:.5rem}:host .no-resize{resize:none}:host .no-resize::-webkit-scrollbar{-webkit-appearance:none}:host .no-resize::-webkit-scrollbar-thumb{border-radius:.5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: i4.CharacterCountdownDirective, selector: "[nggvCharacterCountdown]", inputs: ["nggvCharacterCountdown", "nggvCharacterCountdownCurrentLength"] }] }); }
|
|
73
73
|
}
|
|
74
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvTextareaComponent, decorators: [{
|
|
75
75
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sebgroup-green-angular-src-v-angular-textarea.mjs","sources":["../../../../libs/angular/src/v-angular/textarea/textarea.component.ts","../../../../libs/angular/src/v-angular/textarea/textarea.component.html","../../../../libs/angular/src/v-angular/textarea/textarea.module.ts","../../../../libs/angular/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@ngneat/transloco'\n\nimport { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/** Textarea fields allow users to add and edit longer or multiple line text. */\n@Component({\n selector: 'nggv-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n})\nexport class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'textarea'\n /** Text shown before input has a written value. */\n @Input() placeholder?: string\n /** If set to true, the value will not be editable. */\n @Input() readonly = false\n /** Minimum length (number of characters) of value. */\n @Input() set minLength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n get minlength(): number {\n return this._minlength\n }\n\n /**\n * Minimum length (number of characters) of value.\n * @deprecated minlength triggers angular-template-validation. Use @Input() minLength instead.\n */\n @Input() set minlength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n /** Maximum length (number of characters) of value. */\n @Input() set maxLength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n get maxlength(): number {\n return this._maxlength\n }\n /**\n * Maximum length (number of characters) of value.\n * @deprecated maxlength triggers angular-template-validation. Use @Input() maxLength instead.\n */\n @Input() set maxlength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n\n /** Returns if maxlength is used */\n get hasMaxLength(): boolean {\n return !!this.maxlength && this.maxlength !== Number.MAX_SAFE_INTEGER\n }\n\n private _maxlength = Number.MAX_SAFE_INTEGER\n\n private _minlength = 0\n\n /** Sets the height of the textarea and disables resize. A scrollbar will appear if necessary. */\n @Input() rows?: number\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n /** @internal */\n onInput(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.state = (event.target as HTMLTextAreaElement).value\n this.onChange(this.state)\n }\n}\n","<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{ description }}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggCharacterCountdownDirectiveModule } from '@sebgroup/green-angular/src/v-angular/character-countdown';\nimport { NgvTextareaComponent } from './textarea.component'\n\n@NgModule({\n declarations: [NgvTextareaComponent],\n imports: [CommonModule, NgvI18nModule, NggCharacterCountdownDirectiveModule],\n exports: [NgvTextareaComponent],\n})\nexport class NgvTextareaModule {}\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-textarea.mjs","sources":["../../../../libs/angular/src/v-angular/textarea/textarea.component.ts","../../../../libs/angular/src/v-angular/textarea/textarea.component.html","../../../../libs/angular/src/v-angular/textarea/textarea.module.ts","../../../../libs/angular/src/v-angular/textarea/sebgroup-green-angular-src-v-angular-textarea.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n Optional,\n Self,\n} from '@angular/core'\nimport { NgControl } from '@angular/forms'\nimport { TRANSLOCO_SCOPE, TranslocoScope } from '@jsverse/transloco'\n\nimport { NgvBaseControlValueAccessorComponent } from '@sebgroup/green-angular/src/v-angular/base-control-value-accessor'\n\n/** Textarea fields allow users to add and edit longer or multiple line text. */\n@Component({\n selector: 'nggv-textarea',\n templateUrl: './textarea.component.html',\n styleUrls: ['./textarea.component.scss'],\n})\nexport class NgvTextareaComponent extends NgvBaseControlValueAccessorComponent {\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook = 'textarea'\n /** Text shown before input has a written value. */\n @Input() placeholder?: string\n /** If set to true, the value will not be editable. */\n @Input() readonly = false\n /** Minimum length (number of characters) of value. */\n @Input() set minLength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n get minlength(): number {\n return this._minlength\n }\n\n /**\n * Minimum length (number of characters) of value.\n * @deprecated minlength triggers angular-template-validation. Use @Input() minLength instead.\n */\n @Input() set minlength(length: number) {\n this._minlength = length\n this.cdr.detectChanges()\n }\n /** Maximum length (number of characters) of value. */\n @Input() set maxLength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n get maxlength(): number {\n return this._maxlength\n }\n /**\n * Maximum length (number of characters) of value.\n * @deprecated maxlength triggers angular-template-validation. Use @Input() maxLength instead.\n */\n @Input() set maxlength(length: number) {\n this._maxlength = length\n this.cdr.detectChanges()\n }\n\n /** Returns if maxlength is used */\n get hasMaxLength(): boolean {\n return !!this.maxlength && this.maxlength !== Number.MAX_SAFE_INTEGER\n }\n\n private _maxlength = Number.MAX_SAFE_INTEGER\n\n private _minlength = 0\n\n /** Sets the height of the textarea and disables resize. A scrollbar will appear if necessary. */\n @Input() rows?: number\n\n constructor(\n @Self() @Optional() public ngControl: NgControl,\n @Optional()\n @Inject(TRANSLOCO_SCOPE)\n protected translocoScope: TranslocoScope,\n protected cdr: ChangeDetectorRef,\n ) {\n super(ngControl, translocoScope, cdr)\n }\n\n /** @internal */\n onInput(event: Event) {\n event.stopPropagation()\n if (this.disabled) return\n this.state = (event.target as HTMLTextAreaElement).value\n this.onChange(this.state)\n }\n}\n","<!-- LABEL -->\n<label\n [id]=\"id + '-label'\"\n class=\"sdv-field-label hide-if-empty\"\n [attr.for]=\"id + '-textarea'\"\n *transloco=\"let t; read: scope\"\n>\n <ng-template\n *ngTemplateOutlet=\"labelContentTpl || basicLabelContentTpl\"\n ></ng-template>\n <ng-template #basicLabelContentTpl>\n <!-- to trigger css:empty if no label was added -->\n <ng-container *ngIf=\"label\">\n {{ label }}\n <span\n *ngIf=\"optional === true || (required !== true && optional !== false)\"\n class=\"sdv-field-label--optional\"\n >\n ({{ t('label.optional') }})\n </span>\n </ng-container>\n </ng-template>\n</label>\n\n<!-- DESCRIPTION -->\n<div class=\"sdv-field-label--small description\">{{ description }}</div>\n\n<!-- LOCKED INPUT -->\n<ng-container *ngIf=\"locked\">\n <div\n [id]=\"id + '-textarea'\"\n class=\"nggv-field--locked\"\n [attr.name]=\"name\"\n [attr.value]=\"state\"\n [attr.role]=\"role\"\n >\n <span *ngIf=\"!state\" class=\"unset-state\">-</span>\n <ng-container *ngIf=\"state\">\n {{ state }}\n </ng-container>\n </div>\n</ng-container>\n\n<!-- INPUT FIELD -->\n<ng-container *ngIf=\"!locked\">\n <textarea\n #input\n [id]=\"id + '-textarea'\"\n class=\"sdv-field\"\n [ngClass]=\"{ 'no-resize': !!rows }\"\n [class.nggv-field--error]=\"invalid\"\n [attr.name]=\"name\"\n [attr.required]=\"required\"\n [disabled]=\"disabled\"\n [autofocus]=\"autofocus\"\n [readOnly]=\"readonly\"\n [attr.maxlength]=\"maxlength\"\n [attr.minlength]=\"minlength\"\n [attr.role]=\"role\"\n [attr.rows]=\"rows\"\n [attr.placeholder]=\"placeholder\"\n [attr.aria-label]=\"description\"\n [value]=\"state\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n\n <!-- ERRORS -->\n <div class=\"error-wrapper\" *transloco=\"let t; read: scope\">\n <label\n class=\"sdv-field-notice sdv-field-notice--error\"\n [attr.for]=\"id + '-textarea'\"\n *ngIf=\"invalid && (error || ngControl?.invalid)\"\n >\n <span *ngIf=\"error; else errorsRef\">{{ error }}</span>\n <ng-template #errorsRef>\n <span *ngIf=\"firstError as error\">\n {{ t('error.field' + error?.code, error?.params) }}\n </span>\n </ng-template>\n </label>\n\n <ng-container *ngIf=\"hasMaxLength\">\n <label\n *nggvCharacterCountdown=\"\n maxlength;\n currentLength: (inputRef?.nativeElement?.value ?? '').length;\n charactersLeft as charactersLeft\n \"\n class=\"sdv-field-notice\"\n style=\"text-align: right\"\n >\n {{ charactersLeft }} {{ t('label.maxlength') }}\n </label>\n </ng-container>\n </div>\n\n <!-- CHILDREN -->\n <ng-content></ng-content>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { NgvI18nModule } from '@sebgroup/green-angular/src/v-angular/i18n'\nimport { NggCharacterCountdownDirectiveModule } from '@sebgroup/green-angular/src/v-angular/character-countdown';\nimport { NgvTextareaComponent } from './textarea.component'\n\n@NgModule({\n declarations: [NgvTextareaComponent],\n imports: [CommonModule, NgvI18nModule, NggCharacterCountdownDirectiveModule],\n exports: [NgvTextareaComponent],\n})\nexport class NgvTextareaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|