@fundamental-ngx/core 0.44.0-rc.6 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/action-bar/action-bar.component.mjs +3 -2
- package/esm2022/alert/alert-service/alert.service.mjs +3 -3
- package/esm2022/alert/alert-utils/alert-config.mjs +3 -2
- package/esm2022/alert/alert-utils/alert-container.component.mjs +3 -2
- package/esm2022/alert/alert-utils/alert-ref.mjs +3 -2
- package/esm2022/alert/alert.component.mjs +3 -3
- package/esm2022/alert/alert.module.mjs +3 -3
- package/esm2022/avatar/avatar.component.mjs +3 -3
- package/esm2022/bar/directives/bar-element.directive.mjs +3 -2
- package/esm2022/carousel/carousel.component.mjs +4 -4
- package/esm2022/date-picker/date-picker.component.mjs +9 -8
- package/esm2022/datetime-picker/datetime-picker.component.mjs +8 -7
- package/esm2022/dialog/dialog-footer-button/dialog-footer-button.component.mjs +3 -2
- package/esm2022/dialog/directives/dialog-decisive-button.directive.mjs +3 -2
- package/esm2022/feed-list-item/components/item/feed-list-item.component.mjs +4 -4
- package/esm2022/form/form-label/form-label.component.mjs +5 -4
- package/esm2022/inline-help/inline-help.directive.mjs +3 -2
- package/esm2022/input-group/input-group.component.mjs +4 -3
- package/esm2022/link/link.component.mjs +3 -3
- package/esm2022/list/list-item/list-item.component.mjs +6 -6
- package/esm2022/message-box/directives/message-box-decisive-button.directive.mjs +3 -2
- package/esm2022/message-box/message-box-footer-button/message-box-footer-button.component.mjs +3 -2
- package/esm2022/pagination/pagination.component.mjs +10 -10
- package/esm2022/popover/base/base-popover.class.mjs +5 -4
- package/esm2022/popover/popover.component.mjs +3 -2
- package/esm2022/product-switch/product-switch/product-switch.component.mjs +3 -2
- package/esm2022/shellbar/shellbar-actions/shellbar-actions.component.mjs +3 -2
- package/esm2022/slider/slider.component.mjs +5 -4
- package/esm2022/split-button/split-button.component.mjs +4 -3
- package/esm2022/splitter/splitter.component.mjs +3 -2
- package/esm2022/step-input/step-input.component.mjs +4 -4
- package/esm2022/switch/switch.component.mjs +5 -4
- package/esm2022/tabs/tab-item-expand/tab-item-expand.component.mjs +3 -2
- package/esm2022/tabs/tab-list.component.mjs +3 -3
- package/esm2022/time/i18n/time-i18n.mjs +3 -2
- package/esm2022/token/token.component.mjs +4 -4
- package/esm2022/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/upload-collection/upload-collection-button-group/upload-collection-button-group.component.mjs +8 -7
- package/esm2022/upload-collection/upload-collection-form-item/upload-collection-form-item.component.mjs +3 -2
- package/fesm2022/fundamental-ngx-core-action-bar.mjs +2 -1
- package/fesm2022/fundamental-ngx-core-action-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-alert.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-alert.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-bar.mjs +2 -1
- package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-carousel.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs +8 -7
- package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +7 -6
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +3 -2
- package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +4 -3
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-inline-help.mjs +2 -1
- package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-list.mjs +5 -5
- package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +3 -2
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +9 -9
- package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +6 -5
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-slider.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-split-button.mjs +3 -2
- package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-splitter.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-splitter.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-step-input.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs +4 -3
- package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +8 -7
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fundamental-ngx-core-v0.44.0.tgz +0 -0
- package/package.json +3 -3
- package/schematics/add-dependencies/index.js +4 -4
- package/fundamental-ngx-core-v0.44.0-rc.6.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-splitter.mjs","sources":["../../../../libs/core/src/lib/splitter/constants.ts","../../../../libs/core/src/lib/splitter/splitter-split-pane/splitter-split-pane.component.ts","../../../../libs/core/src/lib/splitter/splitter-split-pane/splitter-split-pane.component.html","../../../../libs/core/src/lib/splitter/splitter.component.ts","../../../../libs/core/src/lib/splitter/splitter.component.html","../../../../libs/core/src/lib/splitter/splitter-pagination/splitter-pagination.component.ts","../../../../libs/core/src/lib/splitter/splitter-pagination/splitter-pagination.component.html","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-orientation.enum.ts","../../../../libs/core/src/lib/splitter/splitter-resizer/splitter-resizer.component.ts","../../../../libs/core/src/lib/splitter/splitter-resizer/splitter-resizer.component.html","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-container.component.ts","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-container.component.html","../../../../libs/core/src/lib/splitter/splitter.module.ts","../../../../libs/core/src/lib/splitter/fundamental-ngx-core-splitter.ts"],"sourcesContent":["export const PANE_AUTO_SIZE = 'auto';\n\nexport const PANE_NONE_SIZE = 'none';\n\nexport const RESIZER_SIZE_PX = 16;\n\nexport const ROOT_PAGE = 'FD_SPLITTER_ROOT_PAGE';\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { PANE_AUTO_SIZE } from '../constants';\n\nlet paneUniqueId = 0;\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-split-pane',\n templateUrl: './splitter-split-pane.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SplitterSplitPaneComponent implements OnInit, AfterViewInit, OnDestroy {\n /** Size (height in vertical orientation, width in horizontal orientation) of the pane. */\n @Input()\n set size(size: string) {\n this._size = size;\n this._actualSize = this._size;\n }\n\n get size(): string {\n return this._size;\n }\n\n /** Id of the split pane. Generated if not provided. */\n @Input()\n id = `fd-splitter-split-pane-${paneUniqueId++}`;\n\n /** Required browser's window width in pixels when the panel will be shown. */\n @Input()\n requiredParentWidth: number;\n\n /** Whether pane is reachable using pagination bar when is off-canvas. */\n @Input()\n demandPane = true;\n\n /** Event emitted when the pane appears on/disappears out of canvas. */\n @Output()\n readonly toggleOnCanvas = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild(TemplateRef, { static: true })\n _templateRef: TemplateRef<any>;\n\n /** @hidden */\n _actualSize = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _size = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _contentPortal: TemplatePortal | null = null;\n\n /** @hidden */\n private _isOnCanvas = true;\n\n /** @hidden */\n private _unsubscribe$ = new Subject<void>();\n\n /** Returns if the pane is on canvas. */\n get isOnCanvas(): boolean {\n return this._isOnCanvas;\n }\n\n /** @hidden */\n get _content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /** @hidden */\n private get _window(): Nullable<Window & typeof globalThis> {\n return this._document?.defaultView;\n }\n\n /** @hidden */\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._templateRef, this._viewContainerRef);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processPaneOnCanvas();\n this._listenToResize();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n /** Hide pane from the canvas. */\n hideFromCanvas(): void {\n if (!this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = false;\n\n this.toggleOnCanvas.emit(false);\n }\n\n /** Show pane on the canvas. */\n showOnCanvas(): void {\n if (this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = true;\n\n this.toggleOnCanvas.emit(true);\n }\n\n /** @hidden */\n private _listenToResize(): void {\n if (!this._window) {\n return;\n }\n\n this._viewportRuler\n .change(10)\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => this._processPaneOnCanvas());\n }\n\n /** @hidden */\n private _processPaneOnCanvas(): void {\n if (!this._window) {\n return;\n }\n\n if (this.requiredParentWidth > this._window.innerWidth && this.isOnCanvas) {\n this.hideFromCanvas();\n }\n\n if (this.requiredParentWidth < this._window.innerWidth && !this.isOnCanvas) {\n this.showOnCanvas();\n }\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\n\n@Component({\n selector: 'fd-splitter',\n templateUrl: './splitter.component.html',\n styleUrls: ['./splitter.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'fd-splitter' }\n})\nexport class SplitterComponent {\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** Id of the main pane. */\n @Input()\n set defaultPaneId(value: string) {\n this._defaultPaneId = value;\n\n this._defaultPaneId$.next(this._defaultPaneId);\n }\n\n get defaultPaneId(): string {\n return this._defaultPaneId;\n }\n\n /**\n * @deprecated use i18n capabilities instead\n * aria-label for the pagination item.\n */\n @Input()\n set paginationItemAriaLabel(value: string) {\n console.warn(\n \"Property paginationItemAriaLabel is deprecated. Use i18n capabilities 'coreSplitter.paginationItemAriaLabel' key instead.\"\n );\n this._paginationItemAriaLabel = value;\n }\n\n get paginationItemAriaLabel(): string {\n return this._paginationItemAriaLabel;\n }\n\n /** @hidden */\n _defaultPaneId$ = new Subject<string>();\n\n /** @hidden */\n private _paginationItemAriaLabel: string;\n\n /** @hidden */\n private _defaultPaneId: string;\n\n /** Check whether certain pane is on canvas. */\n isPaneOnCanvas(paneId: string): boolean {\n if (!this._panes.length) {\n return false;\n }\n\n const paneToCheck = this._panes.find((pane) => pane.id === paneId);\n\n return !!paneToCheck?.isOnCanvas;\n }\n\n /** Hide certain pane from the canvas. */\n hidePaneFromCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToRemove = this._panes.find((pane) => pane.id === paneId);\n\n paneToRemove?.hideFromCanvas();\n }\n\n /** Show certain pane from the canvas. */\n showPaneOnCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToShow = this._panes.find((pane) => pane.id === paneId);\n\n paneToShow?.showOnCanvas();\n }\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SplitterComponent } from '../splitter.component';\n\n@Component({\n selector: 'fd-splitter-pagination',\n templateUrl: './splitter-pagination.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pagination',\n '[attr.role]': '\"radiogroup\"'\n }\n})\nexport class SplitterPaginationComponent {\n /** Array of pages ids. */\n @Input()\n pages: string[] = [];\n\n /** Current page id. */\n @Input()\n currentPage: string;\n\n /** Event emitted on page change. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onPageChange = new EventEmitter<string>();\n\n /**\n * @hidden\n * @deprecated use i18n capabilities instead\n */\n get paginationItemAriaLabel(): string {\n return this._splitter.paginationItemAriaLabel;\n }\n\n /** @Hidden */\n constructor(private readonly _splitter: SplitterComponent) {}\n\n /** @hidden */\n _changePage(page: string): void {\n if (page === this.currentPage) {\n return;\n }\n\n this.currentPage = page;\n this.onPageChange.emit(this.currentPage);\n }\n}\n","<button\n *ngFor=\"let page of pages\"\n fd-button\n fdType=\"transparent\"\n class=\"fd-splitter__pagination-item\"\n [class.fd-splitter__pagination-item--active]=\"page === currentPage\"\n role=\"radio\"\n [attr.aria-label]=\"paginationItemAriaLabel || ('coreSplitter.paginationItemAriaLabel' | fdTranslate)\"\n [attr.aria-checked]=\"page === currentPage\"\n (click)=\"_changePage(page)\"\n (keydown.enter)=\"_changePage(page)\"\n>\n <span class=\"fd-splitter__pagination-item-dot\"></span>\n</button>\n","export enum SplitterPaneContainerOrientation {\n vertical = 'vertical',\n horizontal = 'horizontal'\n}\n\nexport type SplitterPaneContainerOrientationType =\n | keyof typeof SplitterPaneContainerOrientation\n | SplitterPaneContainerOrientation;\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, Subject, throttleTime } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from '../splitter-pane-container/splitter-pane-orientation.enum';\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-resizer',\n templateUrl: './splitter-resizer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__resizer',\n '[class.is-active]': '_start != null || _isInFocus',\n '[tabindex]': '0'\n }\n})\nexport class SplitterResizerComponent implements OnDestroy {\n /** Orientation of the splitter's host pane container. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /** Event emitted after resizing has started. */\n @Output()\n startResize = new EventEmitter<void>();\n\n /** Event emitted after resizing has ended. */\n @Output()\n endResize = new EventEmitter<void>();\n\n /** Event emitted while resizing. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n resize = new EventEmitter<number>();\n\n /** @hidden */\n _start: number | null = null;\n\n /** @hidden */\n _isInFocus = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n get _role(): string {\n return 'separator';\n }\n\n /** @hidden */\n @HostBinding('attr.aria-orientation')\n get _ariaOrientation(): string {\n return this.orientation;\n }\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n private _prevDiff = 0;\n\n /** @hidden */\n private _pointerMoveListener = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef<Element>,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _ngZone: NgZone,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent): void {\n event.preventDefault();\n\n this._start = this._isHorizontal ? event.clientY : event.clientX;\n\n this.startResize.emit();\n\n this._listenToPointerMove();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n let diff: number | undefined;\n\n if (this._isHorizontal) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().left;\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (this._isVertical) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().top;\n\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [RIGHT_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (diff !== undefined) {\n this.startResize.emit();\n this._emitResize(diff);\n this.endResize.emit();\n }\n\n this._unsubscribe(false);\n }\n }\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n this._isInFocus = true;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n @HostListener('blur')\n _onBlur(): void {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe();\n }\n\n /** @hidden */\n private _listenToPointerMove(): void {\n this._pointerMoveListener = new Subject<void>();\n\n if (!this._document) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n fromEvent<MouseEvent>(this._document!, 'mousemove')\n .pipe(throttleTime(10), takeUntil(this._pointerMoveListener))\n .subscribe((event) => {\n this._ngZone.run(() => {\n const newPosition = this._isHorizontal ? event.clientY : event.clientX;\n\n this._emitResize(newPosition);\n this._cdr.markForCheck();\n });\n });\n\n fromEvent(this._document!, 'mouseup')\n .pipe(take(1), takeUntil(this._pointerMoveListener))\n .subscribe(() => {\n this._ngZone.run(() => {\n this.endResize.emit();\n this._unsubscribe();\n this._cdr.markForCheck();\n });\n });\n });\n }\n\n /** @hidden */\n private _emitResize(newPosition: number): void {\n const diff = newPosition - (this._start ?? newPosition);\n\n this.resize.emit(diff - this._prevDiff);\n\n this._prevDiff = diff;\n }\n\n /** @hidden */\n private _unsubscribe(removeFocus = true): void {\n this._start = null;\n this._prevDiff = 0;\n\n this._pointerMoveListener?.next();\n this._pointerMoveListener?.complete();\n\n if (removeFocus) {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n }\n}\n","<div class=\"fd-splitter__resizer-decoration-before\"></div>\n\n<button fd-button fdType=\"transparent\" tabindex=\"-1\" class=\"fd-splitter__resizer-grip\">\n <fd-icon\n class=\"fd-splitter__resizer-grip-icon\"\n [glyph]=\"(_isVertical && 'vertical-grip') || (_isHorizontal && 'horizontal-grip')\"\n ></fd-icon>\n</button>\n\n<div class=\"fd-splitter__resizer-decoration-after\"></div>\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SkipSelf,\n ViewEncapsulation\n} from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\n\nimport { SplitterComponent } from '../splitter.component';\nimport { SplitterPaneResizeEvent } from '../interfaces/splitter-pane-resize-event.interface';\nimport { SplitterSplitPaneComponent } from '../splitter-split-pane/splitter-split-pane.component';\nimport { PANE_AUTO_SIZE, PANE_NONE_SIZE, RESIZER_SIZE_PX, ROOT_PAGE } from '../constants';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from './splitter-pane-orientation.enum';\n\n@Component({\n selector: 'fd-splitter-pane-container',\n templateUrl: './splitter-pane-container.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pane-container',\n '[class.fd-splitter__pane-container--horizontal]': '!_isRootContainer && _isHorizontal',\n '[class.fd-splitter__pane-container--vertical]': '_isRootContainer || _isVertical'\n }\n})\nexport class SplitterPaneContainerComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n /** Pane type - vertical (default) or horizontal. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /**\n * Style of the resizer.\n */\n @Input()\n resizerType: 'default' | 'transparent' | 'translucent' = 'default';\n\n /** Event emitted after container's panes has resized. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly resize = new EventEmitter<SplitterPaneResizeEvent[]>();\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent)\n _directPanes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _defaultPane: SplitterSplitPaneComponent;\n\n /** @hidden */\n _pages: string[] = [];\n\n /** @hidden */\n _currentPage: string;\n\n /** @hidden */\n private _paneSizes: number[] = [];\n\n /** @hidden */\n private _wantedPanesSizes: number[] = [];\n\n /** @hidden */\n private _initialPaneSizes: number[] = [];\n\n /** @hidden */\n private _directPaneSubscription$ = new Subscription();\n\n /** @hidden */\n private _subscription$ = new Subscription();\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n get _isRootContainer(): boolean {\n return !this._parentSplitterPaneContainer;\n }\n\n /** @hidden */\n get _panesOnCanvas(): SplitterSplitPaneComponent[] {\n return this._directPanes.filter((pane) => pane.isOnCanvas);\n }\n\n /** @hidden */\n get _activePanes(): SplitterSplitPaneComponent[] {\n if (this._currentPage === ROOT_PAGE) {\n return this._panesOnCanvas;\n }\n\n return this._panes.filter((pane) => pane.id === this._currentPage);\n }\n\n /** @hidden */\n private get _panesInRightOrderForResize(): SplitterSplitPaneComponent[] {\n const panes = this._directPanes.filter((pane) => pane.id !== this._defaultPane?.id);\n\n if (this._defaultPane) {\n panes.unshift(this._defaultPane);\n }\n\n return panes;\n }\n\n /** @hidden */\n private get _isRtl(): boolean {\n return this._rtlService?.rtl.getValue();\n }\n\n /** @hidden */\n constructor(\n private readonly _cdr: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _splitter: SplitterComponent,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() private readonly _rtlService: RtlService,\n @Optional() @SkipSelf() private readonly _parentSplitterPaneContainer: SplitterPaneContainerComponent\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._isRootContainer) {\n this._setDefaultPane();\n this._updatePages();\n\n this._panes.forEach((pane) => {\n this._subscription$.add(pane.toggleOnCanvas.subscribe(() => this._updatePages()));\n });\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setPanes();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._directPaneSubscription$.unsubscribe();\n this._subscription$.unsubscribe();\n }\n\n /** @hidden */\n _getPaneStyles(pane: SplitterSplitPaneComponent): { [klass: string]: any } {\n const style = {\n 'min-width': PANE_AUTO_SIZE,\n 'max-width': PANE_NONE_SIZE,\n 'min-height': PANE_AUTO_SIZE,\n 'max-height': PANE_NONE_SIZE\n };\n\n if (this._isVertical && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-width'] = pane._actualSize;\n style['max-width'] = pane._actualSize;\n }\n\n if (this._isHorizontal && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-height'] = pane._actualSize;\n style['max-height'] = pane._actualSize;\n }\n\n return style;\n }\n\n /** @hidden */\n _startResize(): void {\n this._paneSizes = [];\n this._initialPaneSizes = [];\n\n this._panesInRightOrderForResize.forEach((pane) => {\n const paneSize = this._getPaneElementSizePx(pane.id);\n\n this._paneSizes.push(paneSize);\n this._initialPaneSizes.push(paneSize);\n });\n }\n\n /** @hidden */\n _endResize(): void {\n const changedPaneSizes: SplitterPaneResizeEvent[] = [];\n\n this._panesInRightOrderForResize.forEach((pane, index) => {\n if (this._paneSizes[index] !== this._initialPaneSizes[index]) {\n changedPaneSizes.push({\n paneId: pane.id,\n oldSize: this._initialPaneSizes[index] + 'px',\n newSize: this._paneSizes[index] + 'px'\n });\n }\n });\n\n this.resize.emit(changedPaneSizes);\n\n this._resizePanesToFitInContainer(true);\n }\n\n /** @hidden */\n _onResize(paneId: string, diff: number): void {\n if (diff === 0) {\n return;\n }\n\n diff *= this._isRtl && this.orientation === SplitterPaneContainerOrientation.vertical ? -1 : 1;\n\n const resizedPaneIndex =\n this._panesInRightOrderForResize.findIndex((pane) => pane.id === paneId) + (diff < 0 ? 1 : 0);\n const resizedPane = this._panesInRightOrderForResize[resizedPaneIndex];\n\n let siblingPaneIndex = resizedPaneIndex;\n let siblingPane;\n let siblingPaneSize;\n\n do {\n siblingPaneIndex += diff < 0 ? -1 : 1;\n siblingPane = this._panesInRightOrderForResize[siblingPaneIndex];\n siblingPaneSize = this._paneSizes[siblingPaneIndex];\n\n if (!siblingPane) {\n return;\n }\n } while (!siblingPaneSize);\n\n const resizedPaneNewSize = this._paneSizes[resizedPaneIndex] + diff * (diff < 0 ? -1 : 1);\n const siblingPaneNewSize = this._paneSizes[siblingPaneIndex] + diff * (diff < 0 ? 1 : -1);\n\n /** Prevent from setting negative size */\n if (resizedPaneNewSize < 0 || siblingPaneNewSize < 0) {\n return;\n }\n\n this._paneSizes[resizedPaneIndex] = resizedPaneNewSize;\n this._paneSizes[siblingPaneIndex] = siblingPaneNewSize;\n\n resizedPane.size = this._paneSizes[resizedPaneIndex] + 'px';\n siblingPane.size = this._paneSizes[siblingPaneIndex] + 'px';\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _onPageChange(page: string = ROOT_PAGE): void {\n this._currentPage = page;\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _updatePages(): void {\n this._pages = [];\n\n const offCanvasDemandPages = this._panes\n .filter((pane) => !pane.isOnCanvas && pane.demandPane)\n .map((pane) => pane.id);\n let newPage = ROOT_PAGE;\n\n if (offCanvasDemandPages.length) {\n this._pages = offCanvasDemandPages;\n newPage = offCanvasDemandPages[0];\n\n if (this._panesOnCanvas.length > 1) {\n this._pages.unshift(ROOT_PAGE);\n newPage = ROOT_PAGE;\n }\n\n if (this._panesOnCanvas.length === 1) {\n this._pages.unshift(this._panesOnCanvas[0].id);\n newPage = this._panesOnCanvas[0].id;\n }\n }\n\n const currentPageExist = this._pages.includes(this._currentPage);\n\n if (!currentPageExist) {\n /** Detaching basically works without the code but it's the edge-case */\n const isShouldDetachDefaultPane = this._currentPage === this._defaultPane?.id && newPage === ROOT_PAGE;\n\n if (isShouldDetachDefaultPane && this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n\n this._onPageChange(newPage);\n return;\n }\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _setPanes(): void {\n this._resizePanesToFitInContainer(true);\n\n const setDirectPanesSubscription = (): void => {\n this._directPaneSubscription$.unsubscribe();\n this._directPaneSubscription$ = new Subscription();\n\n this._directPanes.forEach((pane) => {\n this._directPaneSubscription$.add(\n pane.toggleOnCanvas.subscribe(() => this._resizePanesToFitInContainer())\n );\n });\n };\n\n let prevDirectPanes = [...this._directPanes];\n const areDirectPanesSame = (panes: QueryList<SplitterSplitPaneComponent>): boolean => {\n if (panes.length !== prevDirectPanes.length) {\n return false;\n }\n\n return prevDirectPanes.every((prevPane) => !!panes.find((pane) => pane.id === prevPane.id));\n };\n\n setDirectPanesSubscription();\n\n this._subscription$.add(\n this._panes.changes.pipe(filter((panes) => !areDirectPanesSame(panes))).subscribe((panesList) => {\n prevDirectPanes = panesList.toArray();\n\n setDirectPanesSubscription();\n\n this._resizePanesToFitInContainer(true);\n })\n );\n\n this._subscription$.add(this._viewportRuler.change(10).subscribe(() => this._resizePanesToFitInContainer()));\n }\n\n /** @hidden */\n private _setDefaultPane(): void {\n const setDefaultPane = (): void => {\n if (this._splitter.defaultPaneId) {\n this._defaultPane =\n this._panes.find((pane) => pane.id === this._splitter.defaultPaneId) ?? this._directPanes[0];\n }\n\n /** Detaching basically works without the code but it's the edge-case */\n if (this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n };\n\n setDefaultPane();\n\n this._subscription$.add(\n this._splitter._defaultPaneId$.subscribe(() => {\n this._cdr.detectChanges();\n\n setDefaultPane();\n\n this._resizePanesToFitInContainer(true);\n this._updatePages();\n })\n );\n }\n\n /** @hidden */\n private _resizePanesToFitInContainer(setInitialSize = false): void {\n if (setInitialSize) {\n this._cdr.detectChanges();\n }\n\n const containerSizePx = this._isHorizontal\n ? this._elementRef.nativeElement.offsetHeight\n : this._elementRef.nativeElement.offsetWidth;\n let availableSpacePx = containerSizePx - RESIZER_SIZE_PX * (this._directPanes.length - 1);\n\n this._directPanes.forEach((pane, index) => {\n if (!availableSpacePx) {\n pane._actualSize = '0px';\n return;\n }\n\n if (setInitialSize) {\n this._wantedPanesSizes[index] = this._getPaneElementSizePx(pane.id);\n }\n\n const paneSize = this._wantedPanesSizes[index];\n\n if (availableSpacePx - this._wantedPanesSizes[index] < 0) {\n pane._actualSize = availableSpacePx + 'px';\n availableSpacePx = 0;\n return;\n }\n\n pane._actualSize = pane.size === PANE_AUTO_SIZE ? PANE_AUTO_SIZE : paneSize + 'px';\n availableSpacePx -= paneSize;\n });\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _getPaneElementSizePx(paneId: string): number {\n const paneElement = this._getPaneElement(paneId);\n\n if (!paneElement) {\n return 0;\n }\n\n return this._isHorizontal ? paneElement.offsetHeight : paneElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPaneElement(paneId: string): HTMLElement {\n return this._elementRef.nativeElement.querySelector(`#${paneId}`);\n }\n}\n\n@Pipe({ name: 'noDefaultPane' })\nexport class NoDefaultPanePipe implements PipeTransform {\n /** @hidden */\n constructor(private readonly _splitterPaneContainer: SplitterPaneContainerComponent) {}\n\n /** @hidden */\n transform(value: SplitterSplitPaneComponent[], excludingCondition = true): SplitterSplitPaneComponent[] {\n if (!excludingCondition) {\n return value;\n }\n\n return value.filter((pane) => pane.id !== this._splitterPaneContainer._defaultPane?.id);\n }\n}\n","<ng-container *ngIf=\"_isRootContainer; else panesOnCanvasTemplate\">\n <ng-container *ngIf=\"_defaultPane?.isOnCanvas && _activePanes.length > 1\">\n <ng-container\n *ngTemplateOutlet=\"panesTemplate; context: { panes: [_defaultPane], showResizer: true }\"\n ></ng-container>\n </ng-container>\n\n <div class=\"fd-splitter__split-pane\">\n <div\n class=\"fd-splitter__pane-container\"\n [class.fd-splitter__pane-container--horizontal]=\"!_isRootContainer && _isHorizontal\"\n [class.fd-splitter__pane-container--vertical]=\"_isRootContainer || _isVertical\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n panesTemplate;\n context: {\n panes: _activePanes | noDefaultPane : _defaultPane?.isOnCanvas && _activePanes.length > 1\n }\n \"\n ></ng-container>\n </div>\n\n <fd-splitter-pagination\n *ngIf=\"_pages.length\"\n [pages]=\"_pages\"\n [currentPage]=\"_currentPage\"\n (onPageChange)=\"_onPageChange($event)\"\n ></fd-splitter-pagination>\n </div>\n</ng-container>\n\n<ng-template #panesOnCanvasTemplate>\n <ng-container *ngTemplateOutlet=\"panesTemplate; context: { panes: _panesOnCanvas }\"></ng-container>\n</ng-template>\n\n<!-- IDE won't recognize types properly below -->\n\n<ng-template #panesTemplate let-panes=\"panes\" let-showResizer=\"showResizer\">\n <ng-container *ngFor=\"let pane of panes; let last = last\">\n <section [id]=\"pane.id\" class=\"fd-splitter__split-pane\" [style]=\"_getPaneStyles(pane)\">\n <ng-template [cdkPortalOutlet]=\"pane._content\"></ng-template>\n </section>\n\n <fd-splitter-resizer\n *ngIf=\"!last || showResizer\"\n [orientation]=\"orientation\"\n (startResize)=\"_startResize()\"\n (endResize)=\"_endResize()\"\n (resize)=\"_onResize(pane.id, $event)\"\n [class]=\"'fd-splitter__resizer--' + resizerType\"\n ></fd-splitter-resizer>\n </ng-container>\n</ng-template>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { I18nModule } from '@fundamental-ngx/i18n';\n\nimport { SplitterPaginationComponent } from './splitter-pagination/splitter-pagination.component';\nimport {\n SplitterPaneContainerComponent,\n NoDefaultPanePipe\n} from './splitter-pane-container/splitter-pane-container.component';\nimport { SplitterResizerComponent } from './splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from './splitter.component';\n\n@NgModule({\n declarations: [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n ],\n imports: [CommonModule, IconModule, ButtonModule, PortalModule, I18nModule],\n exports: [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n ]\n})\nexport class SplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SplitterComponent","i2","i4","i1","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-splitter.mjs","sources":["../../../../libs/core/src/lib/splitter/constants.ts","../../../../libs/core/src/lib/splitter/splitter-split-pane/splitter-split-pane.component.ts","../../../../libs/core/src/lib/splitter/splitter-split-pane/splitter-split-pane.component.html","../../../../libs/core/src/lib/splitter/splitter.component.ts","../../../../libs/core/src/lib/splitter/splitter.component.html","../../../../libs/core/src/lib/splitter/splitter-pagination/splitter-pagination.component.ts","../../../../libs/core/src/lib/splitter/splitter-pagination/splitter-pagination.component.html","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-orientation.enum.ts","../../../../libs/core/src/lib/splitter/splitter-resizer/splitter-resizer.component.ts","../../../../libs/core/src/lib/splitter/splitter-resizer/splitter-resizer.component.html","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-container.component.ts","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-container.component.html","../../../../libs/core/src/lib/splitter/splitter.module.ts","../../../../libs/core/src/lib/splitter/fundamental-ngx-core-splitter.ts"],"sourcesContent":["export const PANE_AUTO_SIZE = 'auto';\n\nexport const PANE_NONE_SIZE = 'none';\n\nexport const RESIZER_SIZE_PX = 16;\n\nexport const ROOT_PAGE = 'FD_SPLITTER_ROOT_PAGE';\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { PANE_AUTO_SIZE } from '../constants';\n\nlet paneUniqueId = 0;\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-split-pane',\n templateUrl: './splitter-split-pane.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SplitterSplitPaneComponent implements OnInit, AfterViewInit, OnDestroy {\n /** Size (height in vertical orientation, width in horizontal orientation) of the pane. */\n @Input()\n set size(size: string) {\n this._size = size;\n this._actualSize = this._size;\n }\n\n get size(): string {\n return this._size;\n }\n\n /** Id of the split pane. Generated if not provided. */\n @Input()\n id = `fd-splitter-split-pane-${paneUniqueId++}`;\n\n /** Required browser's window width in pixels when the panel will be shown. */\n @Input()\n requiredParentWidth: number;\n\n /** Whether pane is reachable using pagination bar when is off-canvas. */\n @Input()\n demandPane = true;\n\n /** Event emitted when the pane appears on/disappears out of canvas. */\n @Output()\n readonly toggleOnCanvas = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild(TemplateRef, { static: true })\n _templateRef: TemplateRef<any>;\n\n /** @hidden */\n _actualSize = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _size = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _contentPortal: TemplatePortal | null = null;\n\n /** @hidden */\n private _isOnCanvas = true;\n\n /** @hidden */\n private _unsubscribe$ = new Subject<void>();\n\n /** Returns if the pane is on canvas. */\n get isOnCanvas(): boolean {\n return this._isOnCanvas;\n }\n\n /** @hidden */\n get _content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /** @hidden */\n private get _window(): Nullable<Window & typeof globalThis> {\n return this._document?.defaultView;\n }\n\n /** @hidden */\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._templateRef, this._viewContainerRef);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processPaneOnCanvas();\n this._listenToResize();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n /** Hide pane from the canvas. */\n hideFromCanvas(): void {\n if (!this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = false;\n\n this.toggleOnCanvas.emit(false);\n }\n\n /** Show pane on the canvas. */\n showOnCanvas(): void {\n if (this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = true;\n\n this.toggleOnCanvas.emit(true);\n }\n\n /** @hidden */\n private _listenToResize(): void {\n if (!this._window) {\n return;\n }\n\n this._viewportRuler\n .change(10)\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => this._processPaneOnCanvas());\n }\n\n /** @hidden */\n private _processPaneOnCanvas(): void {\n if (!this._window) {\n return;\n }\n\n if (this.requiredParentWidth > this._window.innerWidth && this.isOnCanvas) {\n this.hideFromCanvas();\n }\n\n if (this.requiredParentWidth < this._window.innerWidth && !this.isOnCanvas) {\n this.showOnCanvas();\n }\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\nimport { warnOnce } from '@fundamental-ngx/cdk/utils';\n\n@Component({\n selector: 'fd-splitter',\n templateUrl: './splitter.component.html',\n styleUrls: ['./splitter.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'fd-splitter' }\n})\nexport class SplitterComponent {\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** Id of the main pane. */\n @Input()\n set defaultPaneId(value: string) {\n this._defaultPaneId = value;\n\n this._defaultPaneId$.next(this._defaultPaneId);\n }\n\n get defaultPaneId(): string {\n return this._defaultPaneId;\n }\n\n /**\n * @deprecated use i18n capabilities instead\n * aria-label for the pagination item.\n */\n @Input()\n set paginationItemAriaLabel(value: string) {\n warnOnce(\n \"Property paginationItemAriaLabel is deprecated. Use i18n capabilities 'coreSplitter.paginationItemAriaLabel' key instead.\"\n );\n this._paginationItemAriaLabel = value;\n }\n\n get paginationItemAriaLabel(): string {\n return this._paginationItemAriaLabel;\n }\n\n /** @hidden */\n _defaultPaneId$ = new Subject<string>();\n\n /** @hidden */\n private _paginationItemAriaLabel: string;\n\n /** @hidden */\n private _defaultPaneId: string;\n\n /** Check whether certain pane is on canvas. */\n isPaneOnCanvas(paneId: string): boolean {\n if (!this._panes.length) {\n return false;\n }\n\n const paneToCheck = this._panes.find((pane) => pane.id === paneId);\n\n return !!paneToCheck?.isOnCanvas;\n }\n\n /** Hide certain pane from the canvas. */\n hidePaneFromCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToRemove = this._panes.find((pane) => pane.id === paneId);\n\n paneToRemove?.hideFromCanvas();\n }\n\n /** Show certain pane from the canvas. */\n showPaneOnCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToShow = this._panes.find((pane) => pane.id === paneId);\n\n paneToShow?.showOnCanvas();\n }\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SplitterComponent } from '../splitter.component';\n\n@Component({\n selector: 'fd-splitter-pagination',\n templateUrl: './splitter-pagination.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pagination',\n '[attr.role]': '\"radiogroup\"'\n }\n})\nexport class SplitterPaginationComponent {\n /** Array of pages ids. */\n @Input()\n pages: string[] = [];\n\n /** Current page id. */\n @Input()\n currentPage: string;\n\n /** Event emitted on page change. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onPageChange = new EventEmitter<string>();\n\n /**\n * @hidden\n * @deprecated use i18n capabilities instead\n */\n get paginationItemAriaLabel(): string {\n return this._splitter.paginationItemAriaLabel;\n }\n\n /** @Hidden */\n constructor(private readonly _splitter: SplitterComponent) {}\n\n /** @hidden */\n _changePage(page: string): void {\n if (page === this.currentPage) {\n return;\n }\n\n this.currentPage = page;\n this.onPageChange.emit(this.currentPage);\n }\n}\n","<button\n *ngFor=\"let page of pages\"\n fd-button\n fdType=\"transparent\"\n class=\"fd-splitter__pagination-item\"\n [class.fd-splitter__pagination-item--active]=\"page === currentPage\"\n role=\"radio\"\n [attr.aria-label]=\"paginationItemAriaLabel || ('coreSplitter.paginationItemAriaLabel' | fdTranslate)\"\n [attr.aria-checked]=\"page === currentPage\"\n (click)=\"_changePage(page)\"\n (keydown.enter)=\"_changePage(page)\"\n>\n <span class=\"fd-splitter__pagination-item-dot\"></span>\n</button>\n","export enum SplitterPaneContainerOrientation {\n vertical = 'vertical',\n horizontal = 'horizontal'\n}\n\nexport type SplitterPaneContainerOrientationType =\n | keyof typeof SplitterPaneContainerOrientation\n | SplitterPaneContainerOrientation;\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, Subject, throttleTime } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from '../splitter-pane-container/splitter-pane-orientation.enum';\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-resizer',\n templateUrl: './splitter-resizer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__resizer',\n '[class.is-active]': '_start != null || _isInFocus',\n '[tabindex]': '0'\n }\n})\nexport class SplitterResizerComponent implements OnDestroy {\n /** Orientation of the splitter's host pane container. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /** Event emitted after resizing has started. */\n @Output()\n startResize = new EventEmitter<void>();\n\n /** Event emitted after resizing has ended. */\n @Output()\n endResize = new EventEmitter<void>();\n\n /** Event emitted while resizing. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n resize = new EventEmitter<number>();\n\n /** @hidden */\n _start: number | null = null;\n\n /** @hidden */\n _isInFocus = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n get _role(): string {\n return 'separator';\n }\n\n /** @hidden */\n @HostBinding('attr.aria-orientation')\n get _ariaOrientation(): string {\n return this.orientation;\n }\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n private _prevDiff = 0;\n\n /** @hidden */\n private _pointerMoveListener = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef<Element>,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _ngZone: NgZone,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent): void {\n event.preventDefault();\n\n this._start = this._isHorizontal ? event.clientY : event.clientX;\n\n this.startResize.emit();\n\n this._listenToPointerMove();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n let diff: number | undefined;\n\n if (this._isHorizontal) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().left;\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (this._isVertical) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().top;\n\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [RIGHT_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (diff !== undefined) {\n this.startResize.emit();\n this._emitResize(diff);\n this.endResize.emit();\n }\n\n this._unsubscribe(false);\n }\n }\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n this._isInFocus = true;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n @HostListener('blur')\n _onBlur(): void {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe();\n }\n\n /** @hidden */\n private _listenToPointerMove(): void {\n this._pointerMoveListener = new Subject<void>();\n\n if (!this._document) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n fromEvent<MouseEvent>(this._document!, 'mousemove')\n .pipe(throttleTime(10), takeUntil(this._pointerMoveListener))\n .subscribe((event) => {\n this._ngZone.run(() => {\n const newPosition = this._isHorizontal ? event.clientY : event.clientX;\n\n this._emitResize(newPosition);\n this._cdr.markForCheck();\n });\n });\n\n fromEvent(this._document!, 'mouseup')\n .pipe(take(1), takeUntil(this._pointerMoveListener))\n .subscribe(() => {\n this._ngZone.run(() => {\n this.endResize.emit();\n this._unsubscribe();\n this._cdr.markForCheck();\n });\n });\n });\n }\n\n /** @hidden */\n private _emitResize(newPosition: number): void {\n const diff = newPosition - (this._start ?? newPosition);\n\n this.resize.emit(diff - this._prevDiff);\n\n this._prevDiff = diff;\n }\n\n /** @hidden */\n private _unsubscribe(removeFocus = true): void {\n this._start = null;\n this._prevDiff = 0;\n\n this._pointerMoveListener?.next();\n this._pointerMoveListener?.complete();\n\n if (removeFocus) {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n }\n}\n","<div class=\"fd-splitter__resizer-decoration-before\"></div>\n\n<button fd-button fdType=\"transparent\" tabindex=\"-1\" class=\"fd-splitter__resizer-grip\">\n <fd-icon\n class=\"fd-splitter__resizer-grip-icon\"\n [glyph]=\"(_isVertical && 'vertical-grip') || (_isHorizontal && 'horizontal-grip')\"\n ></fd-icon>\n</button>\n\n<div class=\"fd-splitter__resizer-decoration-after\"></div>\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SkipSelf,\n ViewEncapsulation\n} from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\n\nimport { SplitterComponent } from '../splitter.component';\nimport { SplitterPaneResizeEvent } from '../interfaces/splitter-pane-resize-event.interface';\nimport { SplitterSplitPaneComponent } from '../splitter-split-pane/splitter-split-pane.component';\nimport { PANE_AUTO_SIZE, PANE_NONE_SIZE, RESIZER_SIZE_PX, ROOT_PAGE } from '../constants';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from './splitter-pane-orientation.enum';\n\n@Component({\n selector: 'fd-splitter-pane-container',\n templateUrl: './splitter-pane-container.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pane-container',\n '[class.fd-splitter__pane-container--horizontal]': '!_isRootContainer && _isHorizontal',\n '[class.fd-splitter__pane-container--vertical]': '_isRootContainer || _isVertical'\n }\n})\nexport class SplitterPaneContainerComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n /** Pane type - vertical (default) or horizontal. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /**\n * Style of the resizer.\n */\n @Input()\n resizerType: 'default' | 'transparent' | 'translucent' = 'default';\n\n /** Event emitted after container's panes has resized. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly resize = new EventEmitter<SplitterPaneResizeEvent[]>();\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent)\n _directPanes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _defaultPane: SplitterSplitPaneComponent;\n\n /** @hidden */\n _pages: string[] = [];\n\n /** @hidden */\n _currentPage: string;\n\n /** @hidden */\n private _paneSizes: number[] = [];\n\n /** @hidden */\n private _wantedPanesSizes: number[] = [];\n\n /** @hidden */\n private _initialPaneSizes: number[] = [];\n\n /** @hidden */\n private _directPaneSubscription$ = new Subscription();\n\n /** @hidden */\n private _subscription$ = new Subscription();\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n get _isRootContainer(): boolean {\n return !this._parentSplitterPaneContainer;\n }\n\n /** @hidden */\n get _panesOnCanvas(): SplitterSplitPaneComponent[] {\n return this._directPanes.filter((pane) => pane.isOnCanvas);\n }\n\n /** @hidden */\n get _activePanes(): SplitterSplitPaneComponent[] {\n if (this._currentPage === ROOT_PAGE) {\n return this._panesOnCanvas;\n }\n\n return this._panes.filter((pane) => pane.id === this._currentPage);\n }\n\n /** @hidden */\n private get _panesInRightOrderForResize(): SplitterSplitPaneComponent[] {\n const panes = this._directPanes.filter((pane) => pane.id !== this._defaultPane?.id);\n\n if (this._defaultPane) {\n panes.unshift(this._defaultPane);\n }\n\n return panes;\n }\n\n /** @hidden */\n private get _isRtl(): boolean {\n return this._rtlService?.rtl.getValue();\n }\n\n /** @hidden */\n constructor(\n private readonly _cdr: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _splitter: SplitterComponent,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() private readonly _rtlService: RtlService,\n @Optional() @SkipSelf() private readonly _parentSplitterPaneContainer: SplitterPaneContainerComponent\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._isRootContainer) {\n this._setDefaultPane();\n this._updatePages();\n\n this._panes.forEach((pane) => {\n this._subscription$.add(pane.toggleOnCanvas.subscribe(() => this._updatePages()));\n });\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setPanes();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._directPaneSubscription$.unsubscribe();\n this._subscription$.unsubscribe();\n }\n\n /** @hidden */\n _getPaneStyles(pane: SplitterSplitPaneComponent): { [klass: string]: any } {\n const style = {\n 'min-width': PANE_AUTO_SIZE,\n 'max-width': PANE_NONE_SIZE,\n 'min-height': PANE_AUTO_SIZE,\n 'max-height': PANE_NONE_SIZE\n };\n\n if (this._isVertical && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-width'] = pane._actualSize;\n style['max-width'] = pane._actualSize;\n }\n\n if (this._isHorizontal && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-height'] = pane._actualSize;\n style['max-height'] = pane._actualSize;\n }\n\n return style;\n }\n\n /** @hidden */\n _startResize(): void {\n this._paneSizes = [];\n this._initialPaneSizes = [];\n\n this._panesInRightOrderForResize.forEach((pane) => {\n const paneSize = this._getPaneElementSizePx(pane.id);\n\n this._paneSizes.push(paneSize);\n this._initialPaneSizes.push(paneSize);\n });\n }\n\n /** @hidden */\n _endResize(): void {\n const changedPaneSizes: SplitterPaneResizeEvent[] = [];\n\n this._panesInRightOrderForResize.forEach((pane, index) => {\n if (this._paneSizes[index] !== this._initialPaneSizes[index]) {\n changedPaneSizes.push({\n paneId: pane.id,\n oldSize: this._initialPaneSizes[index] + 'px',\n newSize: this._paneSizes[index] + 'px'\n });\n }\n });\n\n this.resize.emit(changedPaneSizes);\n\n this._resizePanesToFitInContainer(true);\n }\n\n /** @hidden */\n _onResize(paneId: string, diff: number): void {\n if (diff === 0) {\n return;\n }\n\n diff *= this._isRtl && this.orientation === SplitterPaneContainerOrientation.vertical ? -1 : 1;\n\n const resizedPaneIndex =\n this._panesInRightOrderForResize.findIndex((pane) => pane.id === paneId) + (diff < 0 ? 1 : 0);\n const resizedPane = this._panesInRightOrderForResize[resizedPaneIndex];\n\n let siblingPaneIndex = resizedPaneIndex;\n let siblingPane;\n let siblingPaneSize;\n\n do {\n siblingPaneIndex += diff < 0 ? -1 : 1;\n siblingPane = this._panesInRightOrderForResize[siblingPaneIndex];\n siblingPaneSize = this._paneSizes[siblingPaneIndex];\n\n if (!siblingPane) {\n return;\n }\n } while (!siblingPaneSize);\n\n const resizedPaneNewSize = this._paneSizes[resizedPaneIndex] + diff * (diff < 0 ? -1 : 1);\n const siblingPaneNewSize = this._paneSizes[siblingPaneIndex] + diff * (diff < 0 ? 1 : -1);\n\n /** Prevent from setting negative size */\n if (resizedPaneNewSize < 0 || siblingPaneNewSize < 0) {\n return;\n }\n\n this._paneSizes[resizedPaneIndex] = resizedPaneNewSize;\n this._paneSizes[siblingPaneIndex] = siblingPaneNewSize;\n\n resizedPane.size = this._paneSizes[resizedPaneIndex] + 'px';\n siblingPane.size = this._paneSizes[siblingPaneIndex] + 'px';\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _onPageChange(page: string = ROOT_PAGE): void {\n this._currentPage = page;\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _updatePages(): void {\n this._pages = [];\n\n const offCanvasDemandPages = this._panes\n .filter((pane) => !pane.isOnCanvas && pane.demandPane)\n .map((pane) => pane.id);\n let newPage = ROOT_PAGE;\n\n if (offCanvasDemandPages.length) {\n this._pages = offCanvasDemandPages;\n newPage = offCanvasDemandPages[0];\n\n if (this._panesOnCanvas.length > 1) {\n this._pages.unshift(ROOT_PAGE);\n newPage = ROOT_PAGE;\n }\n\n if (this._panesOnCanvas.length === 1) {\n this._pages.unshift(this._panesOnCanvas[0].id);\n newPage = this._panesOnCanvas[0].id;\n }\n }\n\n const currentPageExist = this._pages.includes(this._currentPage);\n\n if (!currentPageExist) {\n /** Detaching basically works without the code but it's the edge-case */\n const isShouldDetachDefaultPane = this._currentPage === this._defaultPane?.id && newPage === ROOT_PAGE;\n\n if (isShouldDetachDefaultPane && this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n\n this._onPageChange(newPage);\n return;\n }\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _setPanes(): void {\n this._resizePanesToFitInContainer(true);\n\n const setDirectPanesSubscription = (): void => {\n this._directPaneSubscription$.unsubscribe();\n this._directPaneSubscription$ = new Subscription();\n\n this._directPanes.forEach((pane) => {\n this._directPaneSubscription$.add(\n pane.toggleOnCanvas.subscribe(() => this._resizePanesToFitInContainer())\n );\n });\n };\n\n let prevDirectPanes = [...this._directPanes];\n const areDirectPanesSame = (panes: QueryList<SplitterSplitPaneComponent>): boolean => {\n if (panes.length !== prevDirectPanes.length) {\n return false;\n }\n\n return prevDirectPanes.every((prevPane) => !!panes.find((pane) => pane.id === prevPane.id));\n };\n\n setDirectPanesSubscription();\n\n this._subscription$.add(\n this._panes.changes.pipe(filter((panes) => !areDirectPanesSame(panes))).subscribe((panesList) => {\n prevDirectPanes = panesList.toArray();\n\n setDirectPanesSubscription();\n\n this._resizePanesToFitInContainer(true);\n })\n );\n\n this._subscription$.add(this._viewportRuler.change(10).subscribe(() => this._resizePanesToFitInContainer()));\n }\n\n /** @hidden */\n private _setDefaultPane(): void {\n const setDefaultPane = (): void => {\n if (this._splitter.defaultPaneId) {\n this._defaultPane =\n this._panes.find((pane) => pane.id === this._splitter.defaultPaneId) ?? this._directPanes[0];\n }\n\n /** Detaching basically works without the code but it's the edge-case */\n if (this._defaultPane?._content?.isAttached) {\n this._defaultPane._content.detach();\n }\n };\n\n setDefaultPane();\n\n this._subscription$.add(\n this._splitter._defaultPaneId$.subscribe(() => {\n this._cdr.detectChanges();\n\n setDefaultPane();\n\n this._resizePanesToFitInContainer(true);\n this._updatePages();\n })\n );\n }\n\n /** @hidden */\n private _resizePanesToFitInContainer(setInitialSize = false): void {\n if (setInitialSize) {\n this._cdr.detectChanges();\n }\n\n const containerSizePx = this._isHorizontal\n ? this._elementRef.nativeElement.offsetHeight\n : this._elementRef.nativeElement.offsetWidth;\n let availableSpacePx = containerSizePx - RESIZER_SIZE_PX * (this._directPanes.length - 1);\n\n this._directPanes.forEach((pane, index) => {\n if (!availableSpacePx) {\n pane._actualSize = '0px';\n return;\n }\n\n if (setInitialSize) {\n this._wantedPanesSizes[index] = this._getPaneElementSizePx(pane.id);\n }\n\n const paneSize = this._wantedPanesSizes[index];\n\n if (availableSpacePx - this._wantedPanesSizes[index] < 0) {\n pane._actualSize = availableSpacePx + 'px';\n availableSpacePx = 0;\n return;\n }\n\n pane._actualSize = pane.size === PANE_AUTO_SIZE ? PANE_AUTO_SIZE : paneSize + 'px';\n availableSpacePx -= paneSize;\n });\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _getPaneElementSizePx(paneId: string): number {\n const paneElement = this._getPaneElement(paneId);\n\n if (!paneElement) {\n return 0;\n }\n\n return this._isHorizontal ? paneElement.offsetHeight : paneElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPaneElement(paneId: string): HTMLElement {\n return this._elementRef.nativeElement.querySelector(`#${paneId}`);\n }\n}\n\n@Pipe({ name: 'noDefaultPane' })\nexport class NoDefaultPanePipe implements PipeTransform {\n /** @hidden */\n constructor(private readonly _splitterPaneContainer: SplitterPaneContainerComponent) {}\n\n /** @hidden */\n transform(value: SplitterSplitPaneComponent[], excludingCondition = true): SplitterSplitPaneComponent[] {\n if (!excludingCondition) {\n return value;\n }\n\n return value.filter((pane) => pane.id !== this._splitterPaneContainer._defaultPane?.id);\n }\n}\n","<ng-container *ngIf=\"_isRootContainer; else panesOnCanvasTemplate\">\n <ng-container *ngIf=\"_defaultPane?.isOnCanvas && _activePanes.length > 1\">\n <ng-container\n *ngTemplateOutlet=\"panesTemplate; context: { panes: [_defaultPane], showResizer: true }\"\n ></ng-container>\n </ng-container>\n\n <div class=\"fd-splitter__split-pane\">\n <div\n class=\"fd-splitter__pane-container\"\n [class.fd-splitter__pane-container--horizontal]=\"!_isRootContainer && _isHorizontal\"\n [class.fd-splitter__pane-container--vertical]=\"_isRootContainer || _isVertical\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n panesTemplate;\n context: {\n panes: _activePanes | noDefaultPane : _defaultPane?.isOnCanvas && _activePanes.length > 1\n }\n \"\n ></ng-container>\n </div>\n\n <fd-splitter-pagination\n *ngIf=\"_pages.length\"\n [pages]=\"_pages\"\n [currentPage]=\"_currentPage\"\n (onPageChange)=\"_onPageChange($event)\"\n ></fd-splitter-pagination>\n </div>\n</ng-container>\n\n<ng-template #panesOnCanvasTemplate>\n <ng-container *ngTemplateOutlet=\"panesTemplate; context: { panes: _panesOnCanvas }\"></ng-container>\n</ng-template>\n\n<!-- IDE won't recognize types properly below -->\n\n<ng-template #panesTemplate let-panes=\"panes\" let-showResizer=\"showResizer\">\n <ng-container *ngFor=\"let pane of panes; let last = last\">\n <section [id]=\"pane.id\" class=\"fd-splitter__split-pane\" [style]=\"_getPaneStyles(pane)\">\n <ng-template [cdkPortalOutlet]=\"pane._content\"></ng-template>\n </section>\n\n <fd-splitter-resizer\n *ngIf=\"!last || showResizer\"\n [orientation]=\"orientation\"\n (startResize)=\"_startResize()\"\n (endResize)=\"_endResize()\"\n (resize)=\"_onResize(pane.id, $event)\"\n [class]=\"'fd-splitter__resizer--' + resizerType\"\n ></fd-splitter-resizer>\n </ng-container>\n</ng-template>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\n\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { I18nModule } from '@fundamental-ngx/i18n';\n\nimport { SplitterPaginationComponent } from './splitter-pagination/splitter-pagination.component';\nimport {\n SplitterPaneContainerComponent,\n NoDefaultPanePipe\n} from './splitter-pane-container/splitter-pane-container.component';\nimport { SplitterResizerComponent } from './splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from './splitter.component';\n\n@NgModule({\n declarations: [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n ],\n imports: [CommonModule, IconModule, ButtonModule, PortalModule, I18nModule],\n exports: [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n ]\n})\nexport class SplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SplitterComponent","i2","i4","i1","i3"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
|
14
14
|
import { Subscription, fromEvent, defer, timer, interval, merge } from 'rxjs';
|
|
15
15
|
import { filter, switchMap, takeUntil } from 'rxjs/operators';
|
|
16
16
|
import { UP_ARROW, DOWN_ARROW, SPACE, ENTER } from '@angular/cdk/keycodes';
|
|
17
|
-
import { KeyUtil } from '@fundamental-ngx/cdk/utils';
|
|
17
|
+
import { warnOnce, KeyUtil } from '@fundamental-ngx/cdk/utils';
|
|
18
18
|
import * as i2 from '@fundamental-ngx/core/content-density';
|
|
19
19
|
import { contentDensityObserverProviders, DeprecatedCompactDirective, CONTENT_DENSITY_DIRECTIVE, ContentDensityModule } from '@fundamental-ngx/core/content-density';
|
|
20
20
|
|
|
@@ -26,7 +26,7 @@ class StepInputComponent {
|
|
|
26
26
|
* Sets Increment Button title attribute
|
|
27
27
|
*/
|
|
28
28
|
set incrementButtonTitle(value) {
|
|
29
|
-
|
|
29
|
+
warnOnce("Property incrementButtonTitle is deprecated. Use i18n capabilities 'coreStepInput.incrementButtonTitle' key instead.");
|
|
30
30
|
this._incrementButtonTitle = value;
|
|
31
31
|
}
|
|
32
32
|
get incrementButtonTitle() {
|
|
@@ -37,7 +37,7 @@ class StepInputComponent {
|
|
|
37
37
|
* Sets Decrement Button title attribute
|
|
38
38
|
*/
|
|
39
39
|
set decrementButtonTitle(value) {
|
|
40
|
-
|
|
40
|
+
warnOnce("Property decrementButtonTitle is deprecated. Use i18n capabilities 'coreStepInput.decrementButtonTitle' key instead.");
|
|
41
41
|
this._decrementButtonTitle = value;
|
|
42
42
|
}
|
|
43
43
|
get decrementButtonTitle() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-step-input.mjs","sources":["../../../../libs/core/src/lib/step-input/step-input.component.ts","../../../../libs/core/src/lib/step-input/step-input.component.html","../../../../libs/core/src/lib/step-input/deprecated-step-input-compact.directive.ts","../../../../libs/core/src/lib/step-input/step-input.module.ts","../../../../libs/core/src/lib/step-input/fundamental-ngx-core-step-input.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n isDevMode,\n LOCALE_ID,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { defer, fromEvent, interval, merge, Observable, Subscription, timer } from 'rxjs';\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\nimport { DOWN_ARROW, ENTER, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { KeyUtil, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport NumberFormat = Intl.NumberFormat;\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\n\nlet stepInputUniqueId = 0;\n\n@Component({\n selector: 'fd-step-input',\n templateUrl: './step-input.component.html',\n styleUrls: ['./step-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StepInputComponent),\n multi: true\n },\n contentDensityObserverProviders(),\n registerFormItemControl(StepInputComponent)\n ],\n host: {\n class: 'fd-step-input__container',\n '(focusout)': 'handleFocusOut($event)'\n }\n})\nexport class StepInputComponent implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor, FormItemControl {\n /** Sets compact mode */\n @Input()\n compact?: boolean;\n\n /** Sets control in readonly mode */\n @Input()\n readonly: boolean;\n\n /** Sets control in disabled mode */\n @Input()\n disabled: boolean;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Sets locale used to format numeric value */\n @Input()\n locale: string;\n\n /** Specifies algorithm used to match locale. Check Intl.NumberFormat documentation for more information */\n @Input()\n localeMatcher: Nullable<string>;\n\n /** Sets icon displayed in Increment Button */\n @Input()\n incrementButtonIcon = 'add';\n\n /** Sets icon displayed in Decrement Button */\n @Input()\n decrementButtonIcon = 'less';\n\n /**\n * @deprecated use i18n capabilities instead\n * Sets Increment Button title attribute\n */\n @Input()\n set incrementButtonTitle(value: string) {\n console.warn(\n \"Property incrementButtonTitle is deprecated. Use i18n capabilities 'coreStepInput.incrementButtonTitle' key instead.\"\n );\n this._incrementButtonTitle = value;\n }\n\n get incrementButtonTitle(): string {\n return this._incrementButtonTitle;\n }\n\n /**\n * @deprecated use i18n capabilities instead\n * Sets Decrement Button title attribute\n */\n @Input()\n set decrementButtonTitle(value: string) {\n console.warn(\n \"Property decrementButtonTitle is deprecated. Use i18n capabilities 'coreStepInput.decrementButtonTitle' key instead.\"\n );\n this._decrementButtonTitle = value;\n }\n\n get decrementButtonTitle(): string {\n return this._decrementButtonTitle;\n }\n\n /** Sets input aria-label attribute */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Sets input aria-labelledby attribute */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Aria defines role description for the Step Input. */\n @Input()\n ariaRoleDescription: string;\n\n /** Sets input id */\n @Input()\n inputId = `fd-step-input-${stepInputUniqueId++}`;\n\n /** Set control value */\n @Input()\n set value(value: Nullable<number>) {\n if (value == null) {\n // cast null or undefined to \"null\"\n this._value = null;\n } else if (!isNaN(value)) {\n value = Number(value);\n this._value = this._checkValueLimits(value);\n }\n this.lastEmittedValue = this._value;\n if (!this._firstEmittedValue && this._value) {\n this._firstEmittedValue = this._value;\n }\n if (this._numberFormat) {\n this._updateViewValue();\n }\n }\n\n /** Control value */\n get value(): number | null {\n return this._value;\n }\n\n /** Sets minimum value boundary */\n @Input()\n min: number;\n\n /** Sets maximum value boundary */\n @Input()\n max: number;\n\n /** Sets input step value */\n @Input()\n step = 1;\n\n /** Sets input name attribute */\n @Input()\n name: Nullable<string>;\n\n /** Sets input title attribute */\n @Input()\n inputTitle = '';\n\n /** Sets formatting mode */\n @Input()\n mode: 'decimal' | 'currency' = 'decimal';\n\n /** Sets state of the control. Can be `success`, `error`, `warning`, `information` or blank for default. */\n @Input()\n state: FormStates = 'default';\n\n /** Holds the message with respect to state */\n @Input()\n stateMessage: string | SafeHtml;\n\n /** Custom unit displayed as a label next to the input */\n @Input()\n unit: string;\n\n /** Whether to use grouping when formatting value */\n @Input()\n useGrouping = true;\n\n /** Defines minimal number of fractional digits for control value */\n @Input()\n minFractionDigits: number;\n\n /** Defines maximal number of fractional digits for control value */\n @Input()\n maxFractionDigits: number;\n\n /** Currency used to format value. Check Intl.NumberFormat documentation for more information*/\n @Input()\n currency: string;\n\n /** Currency used to format value. Check Intl.NumberFormat documentation for more information */\n @Input()\n currencyDisplay: string;\n\n /** Whether StepInput should display Increase/Decrease buttons */\n @Input()\n hasStepButtons = true;\n\n /** Horizontally aligns value inside input */\n @Input()\n textAlign: 'left' | 'center' | 'right';\n\n /** Hint displayed inside input before user writes value */\n @Input()\n placeholder = '';\n\n /** Emits event when input gets focused */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onFocusIn = new EventEmitter<void>();\n\n /** Emits event when input loses focus */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onFocusOut = new EventEmitter<void>();\n\n /** Emits new value when control value has changed */\n @Output()\n valueChange = new EventEmitter<number | null>();\n\n /** @hidden */\n @ViewChild('incrementBtn', { read: ElementRef })\n incrementButton: ElementRef<HTMLButtonElement>;\n\n /** @hidden */\n @ViewChild('decrementBtn', { read: ElementRef })\n decrementButton: ElementRef<HTMLButtonElement>;\n\n /** @hidden */\n @ViewChild('inputElement', { read: ElementRef, static: true })\n inputElement: ElementRef;\n\n /** @hidden */\n lastEmittedValue: Nullable<number>;\n\n /** @hidden */\n currencySign: string;\n\n /** @hidden */\n focused: boolean;\n\n /** @hidden */\n private _value: number | null = null;\n\n /** @hidden */\n private _numerals: RegExp;\n\n /** @hidden */\n private _decimalSeparator: RegExp;\n\n /** @hidden */\n private _currency: RegExp;\n\n /** @hidden */\n private _minusSign: RegExp;\n\n /** @hidden */\n private _groupSeparator: RegExp;\n\n /** @hidden */\n private _numberFormat: NumberFormat;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _index: any;\n\n /** @hidden */\n private _firstEmittedValue: number;\n\n /** @hidden */\n private _decrementButtonTitle: string;\n\n /** @hidden */\n private _incrementButtonTitle: string;\n\n /** @hidden */\n constructor(\n @Inject(LOCALE_ID) locale,\n private _changeDetectorRef: ChangeDetectorRef,\n private readonly _liveAnnouncer: LiveAnnouncer,\n readonly _contentDensityObserver: ContentDensityObserver,\n private readonly _elementRef: ElementRef\n ) {\n this.locale = locale;\n }\n\n /** @hidden */\n onChange: (value: Nullable<number>) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n ngOnInit(): void {\n this._numberFormat = this._getNumberFormat();\n this._buildRegExps();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._updateViewValue();\n this._listenOnButtonsClick();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n registerOnChange(fn: (value: Nullable<number>) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** @hidden */\n get canIncrement(): boolean {\n return this.value == null || this.value + this.step <= this._max;\n }\n\n /** @hidden */\n get canDecrement(): boolean {\n return this.value == null || this.value - this.step >= this._min;\n }\n\n /** @hidden */\n get canDisplayLabel(): boolean {\n return !!this.unit || !!this.currencySign;\n }\n\n /** Increment input value by step value */\n increment(): void {\n this._incrementOrDecrement('increment');\n }\n\n /** Decrement input value by step value */\n decrement(): void {\n this._incrementOrDecrement('decrement');\n }\n\n /** @hidden */\n handleKeyDown(event: KeyboardEvent): void {\n const muteEvent = (evnt: Event): void => {\n evnt.stopPropagation();\n evnt.preventDefault();\n };\n\n if (!this._canChangeValue) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n this.increment();\n muteEvent(event);\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n this.decrement();\n muteEvent(event);\n }\n }\n\n /** @hidden */\n handleFocusIn(): void {\n this.focused = true;\n this.onFocusIn.emit();\n }\n\n /** @hidden */\n handleFocusOut(event: FocusEvent): void {\n this.focused = false;\n this.onFocusOut.emit();\n if (!this._elementRef.nativeElement.contains(event.relatedTarget)) {\n this.onTouched();\n }\n }\n\n /** @hidden */\n handleScroll(event: WheelEvent): void {\n if (this._canChangeValue && this.focused) {\n if (event.deltaY > 0) {\n this.decrement();\n } else {\n this.increment();\n }\n event.preventDefault();\n }\n }\n\n /** @hidden Updates viewValue and conditionally emits new value.\n * This method is called on (change) event, when user leaves input control. */\n updateOnInputChanged(): void {\n if (this.value !== this.lastEmittedValue) {\n this._emitChangedValue();\n }\n this._updateViewValue();\n }\n\n /** @hidden Track parsed value when user changes value of the input control. */\n trackInputValue(event: any): void {\n const parsedValue = this._parseValue(event.target.value);\n this._value = parsedValue != null ? this._checkValueLimits(parsedValue) : null;\n }\n\n /** @hidden */\n private _incrementOrDecrement(direction: 'increment' | 'decrement'): void {\n if ((direction === 'increment' && this.canIncrement) || (direction === 'decrement' && this.canDecrement)) {\n let _shouldChange = true;\n if (this.value == null && this._firstEmittedValue) {\n this._value = this._firstEmittedValue;\n let _limit: number;\n direction === 'increment' ? (_limit = this.max) : (_limit = this.min);\n if (this._firstEmittedValue === _limit) {\n this._value = _limit;\n _shouldChange = false;\n }\n }\n if (_shouldChange) {\n this._value =\n direction === 'increment'\n ? this._cutFloatingNumberDistortion(this.value!, this.step)\n : this._cutFloatingNumberDistortion(this.value!, -this.step);\n }\n this._emitChangedValue();\n this._updateViewValue();\n }\n }\n\n /** @hidden */\n private get _canChangeValue(): boolean {\n return !(this.disabled || this.readonly);\n }\n\n /** @hidden */\n private _cutFloatingNumberDistortion(value: number, step: number): number {\n const stepDecimals = `${step}`.split('.')[1];\n const valueDecimals = `${value}`.split('.')[1];\n const stepDecimalsLength = stepDecimals ? stepDecimals.length : 0;\n const valueDecimalsLength = valueDecimals ? valueDecimals.length : 0;\n const longestDecimal = valueDecimalsLength > stepDecimalsLength ? valueDecimalsLength : stepDecimalsLength;\n\n return Number((value + step).toFixed(longestDecimal));\n }\n\n /** @hidden */\n private _checkValueLimits(value: number): number {\n if (value > this._max) {\n return this._max;\n }\n if (value < this._min) {\n return this._min;\n }\n if (!isNaN(this.maxFractionDigits)) {\n value = Number(value.toFixed(this.maxFractionDigits));\n }\n if (!isNaN(this.minFractionDigits)) {\n value = Number(value.toFixed(this.minFractionDigits));\n }\n return value;\n }\n\n /** @hidden */\n private _emitChangedValue(): void {\n this.lastEmittedValue = this.value;\n this.valueChange.emit(this.value);\n this.onChange(this.value);\n }\n\n /** @hidden */\n private get _max(): number {\n return !isNaN(this.max) ? this.max : Number.MAX_VALUE;\n }\n\n /** @hidden */\n private get _min(): number {\n return !isNaN(this.min) ? this.min : -Number.MAX_VALUE;\n }\n\n /** @hidden */\n private _updateViewValue(): void {\n const value = this._formatToViewValue(this.value);\n this.inputElement.nativeElement.value = value;\n this._liveAnnouncer.announce(value);\n }\n\n /** @hidden */\n private _listenOnButtonsClick(): void {\n if (this.hasStepButtons) {\n this._subscriptions.add(\n this._setupButtonListener(this.incrementButton).subscribe(() => {\n this.increment();\n this._changeDetectorRef.detectChanges();\n })\n );\n\n this._subscriptions.add(\n this._setupButtonListener(this.decrementButton).subscribe(() => {\n this.decrement();\n this._changeDetectorRef.detectChanges();\n })\n );\n }\n }\n\n /**\n * @hidden\n * Listens for click or space/enter keydown events.\n *\n * For long clicks will continuously emit event until \"mouseup\" event is detected\n */\n private _setupButtonListener(elementRef: ElementRef): Observable<any> {\n const onMouseDown$ = fromEvent(elementRef.nativeElement, 'mousedown');\n const onMouseUp$ = fromEvent(window, 'mouseup');\n const onKeyDown$ = fromEvent<KeyboardEvent>(elementRef.nativeElement, 'keydown').pipe(\n filter((event) => KeyUtil.isKeyCode(event, [SPACE, ENTER]))\n );\n\n const timerFactory$ = defer(() =>\n timer(500).pipe(\n switchMap(() => interval(40)),\n takeUntil(onMouseUp$)\n )\n );\n\n return merge(\n onMouseDown$,\n onMouseDown$.pipe(switchMap(() => timerFactory$)),\n // while key is pressed, event will be emitted continuously, so there's no need for timerFactory$\n onKeyDown$\n );\n }\n\n /** @hidden */\n private _parseValue(text: string): Nullable<number> {\n const trimmedText = text.trim();\n\n if (trimmedText === '') {\n return null;\n }\n\n const filteredText = trimmedText\n .replace(/\\s/g, '')\n .replace(this._currency, '')\n .replace(this._groupSeparator, '')\n .replace(this._minusSign, '-')\n .replace(this._decimalSeparator, '.')\n .replace(this._numerals, this._index);\n\n if (filteredText) {\n const parsedValue = Number(filteredText);\n return isNaN(parsedValue) ? this.lastEmittedValue : parsedValue;\n }\n\n return null;\n }\n\n /** @hidden */\n private _getNumberFormat(): NumberFormat {\n if (isDevMode() && this.minFractionDigits > this.maxFractionDigits) {\n throw new Error(\"Range error - minFractionDigits can't be bigger than maxFractionDigits\");\n }\n\n return new NumberFormat(this.locale, {\n localeMatcher: this.localeMatcher ?? undefined,\n style: this.mode,\n currency: this.currency,\n // only available in ES2020 and later\n ['currencyDisplay' as any]: this.currencyDisplay,\n useGrouping: this.useGrouping,\n minimumFractionDigits: this.minFractionDigits,\n maximumFractionDigits: this.maxFractionDigits\n });\n }\n\n /** @hidden */\n private _getNumeralsExpressions(): RegExp {\n const numerals = [\n ...new NumberFormat(this.locale, { useGrouping: false }).format(9876543210).split('')\n ].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n this._index = (d) => index.get(d);\n\n return new RegExp(`[${numerals.join('')}]`, 'g');\n }\n\n /** @hidden */\n private _getDecimalSeparator(): RegExp {\n const formatter = new NumberFormat(this.locale, { useGrouping: false });\n return new RegExp(`[${formatter.format(1.1).trim().replace(this._numerals, '')}]`, 'g');\n }\n\n /** @hidden */\n private _getGroupingSeparator(): RegExp {\n const formatter = new NumberFormat(this.locale, { useGrouping: true });\n return new RegExp(`[${formatter.format(1000).trim().replace(this._numerals, '')}]`, 'g');\n }\n\n /** @hidden */\n private _getMinusSignExpression(): RegExp {\n const formatter = new NumberFormat(this.locale, { useGrouping: false });\n return new RegExp(`[${formatter.format(-1).trim().replace(this._numerals, '')}]`, 'g');\n }\n\n /** @hidden */\n private _getCurrencyExpression(): RegExp {\n if (this.currency) {\n const formatter = new NumberFormat(this.locale, {\n style: 'currency',\n currency: this.currency,\n // only available in ES2020 and later\n ['currencyDisplay' as any]: this.currencyDisplay\n });\n this.currencySign = `${formatter\n .format(1)\n .replace(/\\s/g, '')\n .replace(this._numerals, '')\n .replace(this._decimalSeparator, '')\n .replace(this._groupSeparator, '')}`;\n\n return new RegExp(`[${this.currencySign}]`, 'g');\n }\n\n return new RegExp(`[]`, 'g');\n }\n\n /** @hidden */\n private _buildRegExps(): void {\n this._numerals = this._getNumeralsExpressions();\n this._decimalSeparator = this._getDecimalSeparator();\n this._minusSign = this._getMinusSignExpression();\n this._groupSeparator = this._getGroupingSeparator();\n this._currency = this._getCurrencyExpression();\n }\n\n /** @hidden */\n private _formatToViewValue(number: Nullable<number>): string {\n if (number == null) {\n return '';\n } else {\n return this.currency\n ? this._numberFormat.format(number).replace(this._currency, '')\n : this._numberFormat.format(number);\n }\n }\n}\n","<fd-form-input-message-group>\n <div\n class=\"fd-step-input\"\n [class]=\"state ? 'is-' + state : ''\"\n [class.is-focus]=\"focused\"\n [class.is-readonly]=\"readonly\"\n [class.is-disabled]=\"disabled\"\n [class.fd-step-input--without-buttons]=\"!hasStepButtons\"\n >\n <button\n *ngIf=\"hasStepButtons\"\n fd-button\n #decrementBtn\n fdType=\"transparent\"\n class=\"fd-step-input__button\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"!canDecrement\"\n [title]=\"decrementButtonTitle || ('coreStepInput.decrementButtonTitle' | fdTranslate)\"\n [glyph]=\"decrementButtonIcon\"\n (blur)=\"onTouched()\"\n [attr.aria-label]=\"decrementButtonTitle || ('coreStepInput.decrementButtonTitle' | fdTranslate)\"\n [attr.aria-controls]=\"inputId\"\n ></button>\n <input\n #inputElement\n [name]=\"name\"\n [id]=\"inputId\"\n [title]=\"inputTitle\"\n [disabled]=\"disabled\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-valuenow]=\"value\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-describedby]=\"canDisplayLabel ? inputId + '__description' : ''\"\n [attr.aria-required]=\"required\"\n [attr.aria-roledescription]=\"ariaRoleDescription || ('coreStepInput.ariaRoleDescription' | fdTranslate)\"\n (focusin)=\"handleFocusIn()\"\n (wheel)=\"handleScroll($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (input)=\"trackInputValue($event)\"\n (change)=\"updateOnInputChanged()\"\n [style.textAlign]=\"textAlign\"\n class=\"fd-input fd-input--no-number-spinner fd-step-input__input\"\n type=\"text\"\n inputmode=\"numeric\"\n />\n <button\n *ngIf=\"hasStepButtons\"\n fd-button\n #incrementBtn\n fdType=\"transparent\"\n class=\"fd-step-input__button\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"!canIncrement\"\n [title]=\"incrementButtonTitle || ('coreStepInput.incrementButtonTitle' | fdTranslate)\"\n [glyph]=\"incrementButtonIcon\"\n (blur)=\"onTouched()\"\n [attr.aria-label]=\"incrementButtonTitle || ('coreStepInput.incrementButtonTitle' | fdTranslate)\"\n [attr.aria-controls]=\"inputId\"\n ></button>\n </div>\n\n <fd-form-message *ngIf=\"!!stateMessage\" [type]=\"state\" [innerHTML]=\"stateMessage\"></fd-form-message>\n</fd-form-input-message-group>\n\n<span *ngIf=\"canDisplayLabel\" [id]=\"inputId + '__description'\" class=\"fd-form-label fd-form-label--unit-description\">\n {{ unit || currencySign }}\n</span>\n","import { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-step-input[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedStepInputCompactDirective)\n }\n ]\n})\nexport class DeprecatedStepInputCompactDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-step-input');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FormInputMessageGroupModule, FormMessageModule } from '@fundamental-ngx/core/form';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { StepInputComponent } from './step-input.component';\nimport { DeprecatedStepInputCompactDirective } from './deprecated-step-input-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n declarations: [StepInputComponent, DeprecatedStepInputCompactDirective],\n imports: [\n CommonModule,\n ButtonModule,\n FormInputMessageGroupModule,\n FormMessageModule,\n A11yModule,\n ContentDensityModule,\n I18nModule\n ],\n exports: [StepInputComponent, DeprecatedStepInputCompactDirective, ContentDensityModule]\n})\nexport class StepInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-step-input.mjs","sources":["../../../../libs/core/src/lib/step-input/step-input.component.ts","../../../../libs/core/src/lib/step-input/step-input.component.html","../../../../libs/core/src/lib/step-input/deprecated-step-input-compact.directive.ts","../../../../libs/core/src/lib/step-input/step-input.module.ts","../../../../libs/core/src/lib/step-input/fundamental-ngx-core-step-input.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n isDevMode,\n LOCALE_ID,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { defer, fromEvent, interval, merge, Observable, Subscription, timer } from 'rxjs';\nimport { filter, switchMap, takeUntil } from 'rxjs/operators';\nimport { DOWN_ARROW, ENTER, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { KeyUtil, Nullable, warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { FormItemControl, registerFormItemControl } from '@fundamental-ngx/core/form';\nimport NumberFormat = Intl.NumberFormat;\nimport { FormStates } from '@fundamental-ngx/cdk/forms';\n\nlet stepInputUniqueId = 0;\n\n@Component({\n selector: 'fd-step-input',\n templateUrl: './step-input.component.html',\n styleUrls: ['./step-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => StepInputComponent),\n multi: true\n },\n contentDensityObserverProviders(),\n registerFormItemControl(StepInputComponent)\n ],\n host: {\n class: 'fd-step-input__container',\n '(focusout)': 'handleFocusOut($event)'\n }\n})\nexport class StepInputComponent implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor, FormItemControl {\n /** Sets compact mode */\n @Input()\n compact?: boolean;\n\n /** Sets control in readonly mode */\n @Input()\n readonly: boolean;\n\n /** Sets control in disabled mode */\n @Input()\n disabled: boolean;\n\n /** If it is mandatory field */\n @Input()\n required = false;\n\n /** Sets locale used to format numeric value */\n @Input()\n locale: string;\n\n /** Specifies algorithm used to match locale. Check Intl.NumberFormat documentation for more information */\n @Input()\n localeMatcher: Nullable<string>;\n\n /** Sets icon displayed in Increment Button */\n @Input()\n incrementButtonIcon = 'add';\n\n /** Sets icon displayed in Decrement Button */\n @Input()\n decrementButtonIcon = 'less';\n\n /**\n * @deprecated use i18n capabilities instead\n * Sets Increment Button title attribute\n */\n @Input()\n set incrementButtonTitle(value: string) {\n warnOnce(\n \"Property incrementButtonTitle is deprecated. Use i18n capabilities 'coreStepInput.incrementButtonTitle' key instead.\"\n );\n this._incrementButtonTitle = value;\n }\n\n get incrementButtonTitle(): string {\n return this._incrementButtonTitle;\n }\n\n /**\n * @deprecated use i18n capabilities instead\n * Sets Decrement Button title attribute\n */\n @Input()\n set decrementButtonTitle(value: string) {\n warnOnce(\n \"Property decrementButtonTitle is deprecated. Use i18n capabilities 'coreStepInput.decrementButtonTitle' key instead.\"\n );\n this._decrementButtonTitle = value;\n }\n\n get decrementButtonTitle(): string {\n return this._decrementButtonTitle;\n }\n\n /** Sets input aria-label attribute */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Sets input aria-labelledby attribute */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /** Aria defines role description for the Step Input. */\n @Input()\n ariaRoleDescription: string;\n\n /** Sets input id */\n @Input()\n inputId = `fd-step-input-${stepInputUniqueId++}`;\n\n /** Set control value */\n @Input()\n set value(value: Nullable<number>) {\n if (value == null) {\n // cast null or undefined to \"null\"\n this._value = null;\n } else if (!isNaN(value)) {\n value = Number(value);\n this._value = this._checkValueLimits(value);\n }\n this.lastEmittedValue = this._value;\n if (!this._firstEmittedValue && this._value) {\n this._firstEmittedValue = this._value;\n }\n if (this._numberFormat) {\n this._updateViewValue();\n }\n }\n\n /** Control value */\n get value(): number | null {\n return this._value;\n }\n\n /** Sets minimum value boundary */\n @Input()\n min: number;\n\n /** Sets maximum value boundary */\n @Input()\n max: number;\n\n /** Sets input step value */\n @Input()\n step = 1;\n\n /** Sets input name attribute */\n @Input()\n name: Nullable<string>;\n\n /** Sets input title attribute */\n @Input()\n inputTitle = '';\n\n /** Sets formatting mode */\n @Input()\n mode: 'decimal' | 'currency' = 'decimal';\n\n /** Sets state of the control. Can be `success`, `error`, `warning`, `information` or blank for default. */\n @Input()\n state: FormStates = 'default';\n\n /** Holds the message with respect to state */\n @Input()\n stateMessage: string | SafeHtml;\n\n /** Custom unit displayed as a label next to the input */\n @Input()\n unit: string;\n\n /** Whether to use grouping when formatting value */\n @Input()\n useGrouping = true;\n\n /** Defines minimal number of fractional digits for control value */\n @Input()\n minFractionDigits: number;\n\n /** Defines maximal number of fractional digits for control value */\n @Input()\n maxFractionDigits: number;\n\n /** Currency used to format value. Check Intl.NumberFormat documentation for more information*/\n @Input()\n currency: string;\n\n /** Currency used to format value. Check Intl.NumberFormat documentation for more information */\n @Input()\n currencyDisplay: string;\n\n /** Whether StepInput should display Increase/Decrease buttons */\n @Input()\n hasStepButtons = true;\n\n /** Horizontally aligns value inside input */\n @Input()\n textAlign: 'left' | 'center' | 'right';\n\n /** Hint displayed inside input before user writes value */\n @Input()\n placeholder = '';\n\n /** Emits event when input gets focused */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onFocusIn = new EventEmitter<void>();\n\n /** Emits event when input loses focus */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onFocusOut = new EventEmitter<void>();\n\n /** Emits new value when control value has changed */\n @Output()\n valueChange = new EventEmitter<number | null>();\n\n /** @hidden */\n @ViewChild('incrementBtn', { read: ElementRef })\n incrementButton: ElementRef<HTMLButtonElement>;\n\n /** @hidden */\n @ViewChild('decrementBtn', { read: ElementRef })\n decrementButton: ElementRef<HTMLButtonElement>;\n\n /** @hidden */\n @ViewChild('inputElement', { read: ElementRef, static: true })\n inputElement: ElementRef;\n\n /** @hidden */\n lastEmittedValue: Nullable<number>;\n\n /** @hidden */\n currencySign: string;\n\n /** @hidden */\n focused: boolean;\n\n /** @hidden */\n private _value: number | null = null;\n\n /** @hidden */\n private _numerals: RegExp;\n\n /** @hidden */\n private _decimalSeparator: RegExp;\n\n /** @hidden */\n private _currency: RegExp;\n\n /** @hidden */\n private _minusSign: RegExp;\n\n /** @hidden */\n private _groupSeparator: RegExp;\n\n /** @hidden */\n private _numberFormat: NumberFormat;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _index: any;\n\n /** @hidden */\n private _firstEmittedValue: number;\n\n /** @hidden */\n private _decrementButtonTitle: string;\n\n /** @hidden */\n private _incrementButtonTitle: string;\n\n /** @hidden */\n constructor(\n @Inject(LOCALE_ID) locale,\n private _changeDetectorRef: ChangeDetectorRef,\n private readonly _liveAnnouncer: LiveAnnouncer,\n readonly _contentDensityObserver: ContentDensityObserver,\n private readonly _elementRef: ElementRef\n ) {\n this.locale = locale;\n }\n\n /** @hidden */\n onChange: (value: Nullable<number>) => void = () => {};\n\n /** @hidden */\n onTouched = (): void => {};\n\n /** @hidden */\n ngOnInit(): void {\n this._numberFormat = this._getNumberFormat();\n this._buildRegExps();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._updateViewValue();\n this._listenOnButtonsClick();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n registerOnChange(fn: (value: Nullable<number>) => void): void {\n this.onChange = fn;\n }\n\n /** @hidden */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @hidden */\n writeValue(value: number | null): void {\n this.value = value;\n }\n\n /** @hidden */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n /** @hidden */\n get canIncrement(): boolean {\n return this.value == null || this.value + this.step <= this._max;\n }\n\n /** @hidden */\n get canDecrement(): boolean {\n return this.value == null || this.value - this.step >= this._min;\n }\n\n /** @hidden */\n get canDisplayLabel(): boolean {\n return !!this.unit || !!this.currencySign;\n }\n\n /** Increment input value by step value */\n increment(): void {\n this._incrementOrDecrement('increment');\n }\n\n /** Decrement input value by step value */\n decrement(): void {\n this._incrementOrDecrement('decrement');\n }\n\n /** @hidden */\n handleKeyDown(event: KeyboardEvent): void {\n const muteEvent = (evnt: Event): void => {\n evnt.stopPropagation();\n evnt.preventDefault();\n };\n\n if (!this._canChangeValue) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n this.increment();\n muteEvent(event);\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n this.decrement();\n muteEvent(event);\n }\n }\n\n /** @hidden */\n handleFocusIn(): void {\n this.focused = true;\n this.onFocusIn.emit();\n }\n\n /** @hidden */\n handleFocusOut(event: FocusEvent): void {\n this.focused = false;\n this.onFocusOut.emit();\n if (!this._elementRef.nativeElement.contains(event.relatedTarget)) {\n this.onTouched();\n }\n }\n\n /** @hidden */\n handleScroll(event: WheelEvent): void {\n if (this._canChangeValue && this.focused) {\n if (event.deltaY > 0) {\n this.decrement();\n } else {\n this.increment();\n }\n event.preventDefault();\n }\n }\n\n /** @hidden Updates viewValue and conditionally emits new value.\n * This method is called on (change) event, when user leaves input control. */\n updateOnInputChanged(): void {\n if (this.value !== this.lastEmittedValue) {\n this._emitChangedValue();\n }\n this._updateViewValue();\n }\n\n /** @hidden Track parsed value when user changes value of the input control. */\n trackInputValue(event: any): void {\n const parsedValue = this._parseValue(event.target.value);\n this._value = parsedValue != null ? this._checkValueLimits(parsedValue) : null;\n }\n\n /** @hidden */\n private _incrementOrDecrement(direction: 'increment' | 'decrement'): void {\n if ((direction === 'increment' && this.canIncrement) || (direction === 'decrement' && this.canDecrement)) {\n let _shouldChange = true;\n if (this.value == null && this._firstEmittedValue) {\n this._value = this._firstEmittedValue;\n let _limit: number;\n direction === 'increment' ? (_limit = this.max) : (_limit = this.min);\n if (this._firstEmittedValue === _limit) {\n this._value = _limit;\n _shouldChange = false;\n }\n }\n if (_shouldChange) {\n this._value =\n direction === 'increment'\n ? this._cutFloatingNumberDistortion(this.value!, this.step)\n : this._cutFloatingNumberDistortion(this.value!, -this.step);\n }\n this._emitChangedValue();\n this._updateViewValue();\n }\n }\n\n /** @hidden */\n private get _canChangeValue(): boolean {\n return !(this.disabled || this.readonly);\n }\n\n /** @hidden */\n private _cutFloatingNumberDistortion(value: number, step: number): number {\n const stepDecimals = `${step}`.split('.')[1];\n const valueDecimals = `${value}`.split('.')[1];\n const stepDecimalsLength = stepDecimals ? stepDecimals.length : 0;\n const valueDecimalsLength = valueDecimals ? valueDecimals.length : 0;\n const longestDecimal = valueDecimalsLength > stepDecimalsLength ? valueDecimalsLength : stepDecimalsLength;\n\n return Number((value + step).toFixed(longestDecimal));\n }\n\n /** @hidden */\n private _checkValueLimits(value: number): number {\n if (value > this._max) {\n return this._max;\n }\n if (value < this._min) {\n return this._min;\n }\n if (!isNaN(this.maxFractionDigits)) {\n value = Number(value.toFixed(this.maxFractionDigits));\n }\n if (!isNaN(this.minFractionDigits)) {\n value = Number(value.toFixed(this.minFractionDigits));\n }\n return value;\n }\n\n /** @hidden */\n private _emitChangedValue(): void {\n this.lastEmittedValue = this.value;\n this.valueChange.emit(this.value);\n this.onChange(this.value);\n }\n\n /** @hidden */\n private get _max(): number {\n return !isNaN(this.max) ? this.max : Number.MAX_VALUE;\n }\n\n /** @hidden */\n private get _min(): number {\n return !isNaN(this.min) ? this.min : -Number.MAX_VALUE;\n }\n\n /** @hidden */\n private _updateViewValue(): void {\n const value = this._formatToViewValue(this.value);\n this.inputElement.nativeElement.value = value;\n this._liveAnnouncer.announce(value);\n }\n\n /** @hidden */\n private _listenOnButtonsClick(): void {\n if (this.hasStepButtons) {\n this._subscriptions.add(\n this._setupButtonListener(this.incrementButton).subscribe(() => {\n this.increment();\n this._changeDetectorRef.detectChanges();\n })\n );\n\n this._subscriptions.add(\n this._setupButtonListener(this.decrementButton).subscribe(() => {\n this.decrement();\n this._changeDetectorRef.detectChanges();\n })\n );\n }\n }\n\n /**\n * @hidden\n * Listens for click or space/enter keydown events.\n *\n * For long clicks will continuously emit event until \"mouseup\" event is detected\n */\n private _setupButtonListener(elementRef: ElementRef): Observable<any> {\n const onMouseDown$ = fromEvent(elementRef.nativeElement, 'mousedown');\n const onMouseUp$ = fromEvent(window, 'mouseup');\n const onKeyDown$ = fromEvent<KeyboardEvent>(elementRef.nativeElement, 'keydown').pipe(\n filter((event) => KeyUtil.isKeyCode(event, [SPACE, ENTER]))\n );\n\n const timerFactory$ = defer(() =>\n timer(500).pipe(\n switchMap(() => interval(40)),\n takeUntil(onMouseUp$)\n )\n );\n\n return merge(\n onMouseDown$,\n onMouseDown$.pipe(switchMap(() => timerFactory$)),\n // while key is pressed, event will be emitted continuously, so there's no need for timerFactory$\n onKeyDown$\n );\n }\n\n /** @hidden */\n private _parseValue(text: string): Nullable<number> {\n const trimmedText = text.trim();\n\n if (trimmedText === '') {\n return null;\n }\n\n const filteredText = trimmedText\n .replace(/\\s/g, '')\n .replace(this._currency, '')\n .replace(this._groupSeparator, '')\n .replace(this._minusSign, '-')\n .replace(this._decimalSeparator, '.')\n .replace(this._numerals, this._index);\n\n if (filteredText) {\n const parsedValue = Number(filteredText);\n return isNaN(parsedValue) ? this.lastEmittedValue : parsedValue;\n }\n\n return null;\n }\n\n /** @hidden */\n private _getNumberFormat(): NumberFormat {\n if (isDevMode() && this.minFractionDigits > this.maxFractionDigits) {\n throw new Error(\"Range error - minFractionDigits can't be bigger than maxFractionDigits\");\n }\n\n return new NumberFormat(this.locale, {\n localeMatcher: this.localeMatcher ?? undefined,\n style: this.mode,\n currency: this.currency,\n // only available in ES2020 and later\n ['currencyDisplay' as any]: this.currencyDisplay,\n useGrouping: this.useGrouping,\n minimumFractionDigits: this.minFractionDigits,\n maximumFractionDigits: this.maxFractionDigits\n });\n }\n\n /** @hidden */\n private _getNumeralsExpressions(): RegExp {\n const numerals = [\n ...new NumberFormat(this.locale, { useGrouping: false }).format(9876543210).split('')\n ].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n this._index = (d) => index.get(d);\n\n return new RegExp(`[${numerals.join('')}]`, 'g');\n }\n\n /** @hidden */\n private _getDecimalSeparator(): RegExp {\n const formatter = new NumberFormat(this.locale, { useGrouping: false });\n return new RegExp(`[${formatter.format(1.1).trim().replace(this._numerals, '')}]`, 'g');\n }\n\n /** @hidden */\n private _getGroupingSeparator(): RegExp {\n const formatter = new NumberFormat(this.locale, { useGrouping: true });\n return new RegExp(`[${formatter.format(1000).trim().replace(this._numerals, '')}]`, 'g');\n }\n\n /** @hidden */\n private _getMinusSignExpression(): RegExp {\n const formatter = new NumberFormat(this.locale, { useGrouping: false });\n return new RegExp(`[${formatter.format(-1).trim().replace(this._numerals, '')}]`, 'g');\n }\n\n /** @hidden */\n private _getCurrencyExpression(): RegExp {\n if (this.currency) {\n const formatter = new NumberFormat(this.locale, {\n style: 'currency',\n currency: this.currency,\n // only available in ES2020 and later\n ['currencyDisplay' as any]: this.currencyDisplay\n });\n this.currencySign = `${formatter\n .format(1)\n .replace(/\\s/g, '')\n .replace(this._numerals, '')\n .replace(this._decimalSeparator, '')\n .replace(this._groupSeparator, '')}`;\n\n return new RegExp(`[${this.currencySign}]`, 'g');\n }\n\n return new RegExp(`[]`, 'g');\n }\n\n /** @hidden */\n private _buildRegExps(): void {\n this._numerals = this._getNumeralsExpressions();\n this._decimalSeparator = this._getDecimalSeparator();\n this._minusSign = this._getMinusSignExpression();\n this._groupSeparator = this._getGroupingSeparator();\n this._currency = this._getCurrencyExpression();\n }\n\n /** @hidden */\n private _formatToViewValue(number: Nullable<number>): string {\n if (number == null) {\n return '';\n } else {\n return this.currency\n ? this._numberFormat.format(number).replace(this._currency, '')\n : this._numberFormat.format(number);\n }\n }\n}\n","<fd-form-input-message-group>\n <div\n class=\"fd-step-input\"\n [class]=\"state ? 'is-' + state : ''\"\n [class.is-focus]=\"focused\"\n [class.is-readonly]=\"readonly\"\n [class.is-disabled]=\"disabled\"\n [class.fd-step-input--without-buttons]=\"!hasStepButtons\"\n >\n <button\n *ngIf=\"hasStepButtons\"\n fd-button\n #decrementBtn\n fdType=\"transparent\"\n class=\"fd-step-input__button\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"!canDecrement\"\n [title]=\"decrementButtonTitle || ('coreStepInput.decrementButtonTitle' | fdTranslate)\"\n [glyph]=\"decrementButtonIcon\"\n (blur)=\"onTouched()\"\n [attr.aria-label]=\"decrementButtonTitle || ('coreStepInput.decrementButtonTitle' | fdTranslate)\"\n [attr.aria-controls]=\"inputId\"\n ></button>\n <input\n #inputElement\n [name]=\"name\"\n [id]=\"inputId\"\n [title]=\"inputTitle\"\n [disabled]=\"disabled\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-valuenow]=\"value\"\n [attr.aria-valuemax]=\"max\"\n [attr.aria-valuemin]=\"min\"\n [attr.aria-describedby]=\"canDisplayLabel ? inputId + '__description' : ''\"\n [attr.aria-required]=\"required\"\n [attr.aria-roledescription]=\"ariaRoleDescription || ('coreStepInput.ariaRoleDescription' | fdTranslate)\"\n (focusin)=\"handleFocusIn()\"\n (wheel)=\"handleScroll($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (input)=\"trackInputValue($event)\"\n (change)=\"updateOnInputChanged()\"\n [style.textAlign]=\"textAlign\"\n class=\"fd-input fd-input--no-number-spinner fd-step-input__input\"\n type=\"text\"\n inputmode=\"numeric\"\n />\n <button\n *ngIf=\"hasStepButtons\"\n fd-button\n #incrementBtn\n fdType=\"transparent\"\n class=\"fd-step-input__button\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"!canIncrement\"\n [title]=\"incrementButtonTitle || ('coreStepInput.incrementButtonTitle' | fdTranslate)\"\n [glyph]=\"incrementButtonIcon\"\n (blur)=\"onTouched()\"\n [attr.aria-label]=\"incrementButtonTitle || ('coreStepInput.incrementButtonTitle' | fdTranslate)\"\n [attr.aria-controls]=\"inputId\"\n ></button>\n </div>\n\n <fd-form-message *ngIf=\"!!stateMessage\" [type]=\"state\" [innerHTML]=\"stateMessage\"></fd-form-message>\n</fd-form-input-message-group>\n\n<span *ngIf=\"canDisplayLabel\" [id]=\"inputId + '__description'\" class=\"fd-form-label fd-form-label--unit-description\">\n {{ unit || currencySign }}\n</span>\n","import { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-step-input[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedStepInputCompactDirective)\n }\n ]\n})\nexport class DeprecatedStepInputCompactDirective extends DeprecatedCompactDirective {\n /** @hidden */\n constructor() {\n super('fd-step-input');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { FormInputMessageGroupModule, FormMessageModule } from '@fundamental-ngx/core/form';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { StepInputComponent } from './step-input.component';\nimport { DeprecatedStepInputCompactDirective } from './deprecated-step-input-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n declarations: [StepInputComponent, DeprecatedStepInputCompactDirective],\n imports: [\n CommonModule,\n ButtonModule,\n FormInputMessageGroupModule,\n FormMessageModule,\n A11yModule,\n ContentDensityModule,\n I18nModule\n ],\n exports: [StepInputComponent, DeprecatedStepInputCompactDirective, ContentDensityModule]\n})\nexport class StepInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { CommonModule } from '@angular/common';
|
|
|
5
5
|
import * as i3 from '@angular/forms';
|
|
6
6
|
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
7
7
|
import { Subscription } from 'rxjs';
|
|
8
|
+
import { warnOnce } from '@fundamental-ngx/cdk/utils';
|
|
8
9
|
import { registerFormItemControl } from '@fundamental-ngx/core/form';
|
|
9
10
|
import * as i1 from '@fundamental-ngx/core/content-density';
|
|
10
11
|
import { contentDensityObserverProviders, DeprecatedCompactDirective, CONTENT_DENSITY_DIRECTIVE, ContentDensityModule } from '@fundamental-ngx/core/content-density';
|
|
@@ -21,7 +22,7 @@ class SwitchComponent {
|
|
|
21
22
|
/** @deprecated renamed to "ariaLabelledBy" */
|
|
22
23
|
set ariaLabelledby(value) {
|
|
23
24
|
if (isDevMode() && !warnedAboutAriaLabeledBy) {
|
|
24
|
-
|
|
25
|
+
warnOnce('fd-switch[ariaLabelledby] is deprecated. Use fd-switch[ariaLabelledBy] instead');
|
|
25
26
|
warnedAboutAriaLabeledBy = true;
|
|
26
27
|
}
|
|
27
28
|
this.ariaLabelledBy = value;
|
|
@@ -31,7 +32,7 @@ class SwitchComponent {
|
|
|
31
32
|
* Semantic Label Accept set for Accessibility
|
|
32
33
|
*/
|
|
33
34
|
set semanticAcceptLabel(value) {
|
|
34
|
-
|
|
35
|
+
warnOnce("Property semanticAcceptLabel is deprecated. Use i18n capabilities 'coreSwitch.semanticAcceptLabel' key instead.");
|
|
35
36
|
this._semanticAcceptLabel = value;
|
|
36
37
|
}
|
|
37
38
|
get semanticAcceptLabel() {
|
|
@@ -42,7 +43,7 @@ class SwitchComponent {
|
|
|
42
43
|
* Semantic Label Decline set for Accessibility
|
|
43
44
|
*/
|
|
44
45
|
set semanticDeclineLabel(value) {
|
|
45
|
-
|
|
46
|
+
warnOnce("Property semanticDeclineLabel is deprecated. Use i18n capabilities 'coreSwitch.semanticDeclineLabel' key instead.");
|
|
46
47
|
this._semanticDeclineLabel = value;
|
|
47
48
|
}
|
|
48
49
|
get semanticDeclineLabel() {
|