@fundamental-ngx/core 0.47.2-rc.0 → 0.47.2
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 +2 -2
- package/esm2022/action-sheet/action-sheet.component.mjs +3 -3
- package/esm2022/avatar/avatar.component.mjs +3 -3
- package/esm2022/avatar-group/avatar-group.component.mjs +3 -3
- package/esm2022/bar/bar.component.mjs +2 -2
- package/esm2022/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/busy-indicator/busy-indicator.component.mjs +3 -3
- package/esm2022/button/button.component.mjs +3 -3
- package/esm2022/calendar/calendar.component.mjs +3 -3
- package/esm2022/card/card.component.mjs +3 -3
- package/esm2022/carousel/carousel.component.mjs +3 -3
- package/esm2022/checkbox/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/dialog/dialog.component.mjs +3 -3
- package/esm2022/dynamic-page/dynamic-page.component.mjs +3 -3
- package/esm2022/dynamic-side-content/dynamic-side-content.component.mjs +3 -3
- package/esm2022/facets/facet/facet.component.mjs +3 -3
- package/esm2022/feed-input/feed-input.component.mjs +2 -2
- package/esm2022/feed-list-item/components/list/feed-list.component.mjs +2 -2
- package/esm2022/file-uploader/file-uploader.component.mjs +3 -3
- package/esm2022/fixed-card-layout/fixed-card-layout.component.mjs +3 -3
- package/esm2022/flexible-column-layout/flexible-column-layout.component.mjs +3 -3
- package/esm2022/form/fieldset/fieldset.component.mjs +2 -2
- package/esm2022/form/form-control/form-control.component.mjs +3 -3
- package/esm2022/form/form-group/form-group.component.mjs +2 -2
- package/esm2022/form/form-header/form-header.component.mjs +2 -2
- package/esm2022/form/form-item/form-item.component.mjs +2 -2
- package/esm2022/form/form-label/form-label.component.mjs +3 -3
- package/esm2022/form/form-message/form-message.component.mjs +2 -2
- package/esm2022/generic-tag/generic-tag.component.mjs +3 -3
- package/esm2022/grid-list/components/grid-list/grid-list.component.mjs +2 -2
- package/esm2022/icon/icon.component.mjs +2 -2
- package/esm2022/illustrated-message/illustrated-message.component.mjs +3 -3
- package/esm2022/info-label/info-label.component.mjs +3 -3
- package/esm2022/input-group/input-group.component.mjs +3 -3
- package/esm2022/layout-grid/layout-grid.component.mjs +3 -3
- package/esm2022/layout-panel/layout-panel.component.mjs +2 -2
- package/esm2022/link/link.component.mjs +3 -3
- package/esm2022/list/list-item/list-item.component.mjs +1 -4
- package/esm2022/list/list-navigation-item/list-navigation-item.component.mjs +3 -3
- package/esm2022/list/list.component.mjs +2 -2
- package/esm2022/menu/menu.component.mjs +2 -2
- package/esm2022/message-box/message-box.component.mjs +2 -2
- package/esm2022/message-page/message-page.component.mjs +3 -3
- package/esm2022/message-strip/message-strip.component.mjs +3 -3
- package/esm2022/message-toast/message-toast.component.mjs +3 -3
- package/esm2022/micro-process-flow/components/micro-process-flow/micro-process-flow.component.mjs +3 -3
- package/esm2022/multi-combobox/multi-combobox.component.mjs +3 -3
- package/esm2022/notification/notification/notification.component.mjs +2 -2
- package/esm2022/object-attribute/object-attribute.component.mjs +3 -3
- package/esm2022/object-identifier/object-identifier.component.mjs +3 -3
- package/esm2022/object-marker/object-marker.component.mjs +3 -3
- package/esm2022/object-number/object-number.component.mjs +3 -3
- package/esm2022/object-status/object-status.component.mjs +3 -3
- package/esm2022/pagination/pagination.component.mjs +3 -3
- package/esm2022/panel/panel.component.mjs +3 -3
- package/esm2022/popover/popover-body/popover-body.component.mjs +3 -3
- package/esm2022/product-switch/product-switch-body/product-switch-body.component.mjs +3 -3
- package/esm2022/progress-indicator/progress-indicator.component.mjs +3 -3
- package/esm2022/quick-view/quick-view/quick-view.component.mjs +2 -2
- package/esm2022/radio/radio-button/radio-button.component.mjs +3 -3
- package/esm2022/rating-indicator/components/rating-indicator.component.mjs +3 -3
- package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-item/resizable-card-item.component.mjs +3 -3
- package/esm2022/resizable-card-layout/resizable-card-layout/resizable-card-layout.component.mjs +2 -2
- package/esm2022/segmented-button/segmented-button.component.mjs +2 -2
- package/esm2022/select/select.component.mjs +3 -3
- package/esm2022/shellbar/shellbar.component.mjs +3 -3
- package/esm2022/side-navigation/side-navigation.component.mjs +3 -3
- package/esm2022/skeleton/components/skeleton.component.mjs +3 -3
- package/esm2022/slider/slider.component.mjs +3 -3
- package/esm2022/split-button/split-button.component.mjs +3 -3
- package/esm2022/splitter/splitter.component.mjs +2 -2
- package/esm2022/status-indicator/status-indicator.component.mjs +3 -3
- package/esm2022/step-input/step-input.component.mjs +3 -3
- package/esm2022/switch/switch.component.mjs +3 -3
- package/esm2022/table/table-wrapper.component.mjs +2 -2
- package/esm2022/table/table.component.mjs +2 -2
- package/esm2022/tabs/tab-list.component.mjs +3 -3
- package/esm2022/tabs/tab-nav/tab-nav.component.mjs +2 -2
- package/esm2022/text/text.component.mjs +3 -3
- package/esm2022/tile/tile.component.mjs +3 -3
- package/esm2022/time/time.component.mjs +3 -3
- package/esm2022/title/title.component.mjs +2 -2
- package/esm2022/token/token.component.mjs +3 -3
- package/esm2022/token/tokenizer.component.mjs +3 -3
- package/esm2022/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/tree/tree.component.mjs +3 -3
- package/esm2022/upload-collection/upload-collection.component.mjs +3 -3
- package/esm2022/vertical-navigation/vertical-navigation-main-navigation.component.mjs +3 -3
- package/esm2022/vertical-navigation/vertical-navigation.component.mjs +3 -3
- package/esm2022/wizard/wizard.component.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-action-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-action-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-avatar-group.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 -2
- package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-calendar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-card.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-checkbox.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-facets.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-facets.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +14 -14
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-generic-tag.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-generic-tag.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-grid-list.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-illustrated-message.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-layout-panel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-layout-panel.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 +4 -7
- package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-page.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-toast.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-toast.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-marker.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-marker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-panel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-radio.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-select.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-side-navigation.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-skeleton.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-skeleton.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-slider.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -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-status-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-status-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-table.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-text.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tile.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-tile.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-title.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-title.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +4 -4
- 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-tree.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-wizard.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
- package/fundamental-ngx-core-v0.47.2.tgz +0 -0
- package/package.json +5 -5
- package/schematics/add-dependencies/index.js +8 -8
- package/fundamental-ngx-core-v0.47.2-rc.0.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-fixed-card-layout.mjs","sources":["../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.ts","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.component.ts","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.component.html","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.module.ts","../../../../libs/core/src/lib/fixed-card-layout/fundamental-ngx-core-fixed-card-layout.ts"],"sourcesContent":["import { FocusableOption } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, Component, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'fd-fixed-card-layout-item',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: block'\n },\n standalone: true\n})\nexport class FixedCardLayoutItemComponent implements FocusableOption {\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** Set focus on the element. */\n focus(): void {\n const header = this._elementRef.nativeElement.querySelector('.fd-card__header');\n if (header) {\n header.focus();\n }\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport {\n CdkDrag,\n CdkDragDrop,\n CdkDragEnter,\n CdkDragPlaceholder,\n CdkDragStart,\n CdkDropList,\n CdkDropListGroup\n} from '@angular/cdk/drag-drop';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime, filter, skip, takeUntil } from 'rxjs/operators';\n\nimport { NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n DragAndDropModule,\n Nullable,\n RtlService,\n getDocumentFontSize,\n resizeObservable\n} from '@fundamental-ngx/cdk/utils';\nimport { FixedCardLayoutItemComponent } from './fixed-card-layout-item/fixed-card-layout-item.component';\n\nconst REM_IN_PX = getDocumentFontSize();\nconst CARD_MINIMUM_WIDTH = REM_IN_PX * 20; // 20rem\nconst CARD_GAP_WIDTH = REM_IN_PX; // 1rem\nconst DRAG_START_DELAY = 200; // in ms\nconst MAX_COLUMNS = 10;\n\nlet cardRank = 1;\n\n@Directive({\n selector: '[fdCardDef]',\n standalone: true\n})\nexport class CardDefinitionDirective {\n /**\n * Behaves like rank of card.\n * Useful in creating layout again after drag and drop.\n */\n @Input()\n set fdCardDef(value: NumberInput) {\n if (!value) {\n return;\n }\n\n this._fdCardDef = coerceNumberProperty(value);\n }\n get fdCardDef(): number {\n return this._fdCardDef;\n }\n\n /** @hidden */\n private _fdCardDef: number = cardRank++;\n\n /** @hidden */\n constructor(public template: TemplateRef<any>) {}\n}\n\nexport interface Layout {\n numberOfColumns?: number;\n screenSize: number;\n}\n\nexport interface CardDropped {\n previousIndex: number;\n currentIndex: number;\n layoutColumns: number;\n items: CardDefinitionDirective[];\n}\n\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\nexport type ColumnsWidthConfig = { [C in Columns]?: number };\n\ntype CardColumn = CardDefinitionDirective[];\n\n@Component({\n selector: 'fd-fixed-card-layout',\n templateUrl: './fixed-card-layout.component.html',\n styleUrls: ['./fixed-card-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-fixed-card-layout'\n },\n standalone: true,\n imports: [\n CdkDropListGroup,\n DragAndDropModule,\n NgFor,\n CdkDropList,\n CdkDrag,\n FixedCardLayoutItemComponent,\n NgTemplateOutlet,\n CdkDragPlaceholder,\n NgIf\n ]\n})\nexport class FixedCardLayoutComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n /** Drag drop behavior can be disabled */\n @Input()\n disableDragDrop: boolean;\n\n /** Drag start delay in milliseconds, default to 200ms for safe scrolling on mobile with touchscreen */\n @Input()\n dragStartDelay = DRAG_START_DELAY;\n\n /** Card's minimum width in pixels. */\n @Input()\n set cardMinimumWidth(value: NumberInput) {\n const coercedValue = coerceNumberProperty(value);\n\n if (coercedValue < CARD_MINIMUM_WIDTH) {\n return;\n }\n\n this._cardMinimumWidth = coercedValue;\n }\n get cardMinimumWidth(): number {\n return this._cardMinimumWidth;\n }\n\n /** Config with the width ratios that should take every column. Flex-grow principe. Missed values set to 0. s*/\n @Input()\n columnsWidthConfig: ColumnsWidthConfig;\n\n /** Limit the number of columns. Default is 10. */\n @Input()\n maxColumns = MAX_COLUMNS;\n\n /** Event to emit, when layout changes */\n @Output()\n layoutChange: EventEmitter<Layout> = new EventEmitter<Layout>();\n\n /** Event to emit on Card dragged and dropped */\n @Output()\n cardDraggedDropped: EventEmitter<CardDropped> = new EventEmitter<CardDropped>();\n\n /** @hidden */\n @ContentChildren(CardDefinitionDirective)\n _cards: QueryList<CardDefinitionDirective>;\n\n /** @hidden */\n @ViewChildren(FixedCardLayoutItemComponent)\n _cardContainers: QueryList<FixedCardLayoutItemComponent>;\n\n /** @hidden */\n @ViewChildren(CdkDrag)\n _dragList: QueryList<CdkDrag>;\n\n /** @hidden */\n @ViewChild('layout')\n _layout: ElementRef<HTMLElement>;\n\n /** @hidden */\n _cardsArray: CardDefinitionDirective[];\n\n /** @hidden Number of Columns in layout */\n _numberOfColumns: number;\n\n /** @hidden */\n _cardColumns: CardColumn[];\n\n /** @hidden*/\n _containerHeight = 0;\n\n /** @hidden handles rtl service */\n _dir = 'ltr';\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _groupIndexes = new Map<number, number>();\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _itemIndexes = new Map<number, number>();\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _singleItemColumns = new Set<number>();\n\n /** @hidden */\n _columnsWidth = new Map<number, number>();\n\n /** @hidden Return available width for fixed card layout */\n get _availableWidth(): number {\n return this._layout.nativeElement.getBoundingClientRect().width;\n }\n\n /** @hidden */\n _placeholderMargin: boolean;\n\n /** @hidden */\n _listenResize = true;\n\n /** @hidden */\n _hiddenCard: Nullable<CardDefinitionDirective>;\n\n /** @hidden FocusKeyManager instance */\n private _keyboardEventsManager: FocusKeyManager<FixedCardLayoutItemComponent>;\n\n /** @hidden */\n private _cardMinimumWidth = CARD_MINIMUM_WIDTH;\n\n /** @hidden */\n private _cardsSizeChangeSubscription = new Subscription();\n\n /** @hidden An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _changeDetector: ChangeDetectorRef,\n @Optional() private readonly _rtlService: RtlService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._subscribeToRtl();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processCards();\n\n this._listenOnResize();\n this._listenOnCardsChange();\n this._accessibilitySetup();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n // Skip all changes unless we don't have initial layout created\n if (!this._cardsArray) {\n return;\n }\n\n if ('maxColumns' in changes || 'cardMinimumWidth' in changes) {\n this.updateLayout();\n } else if ('columnsWidthConfig' in changes) {\n this._setCardColumnsWidth();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._cardsSizeChangeSubscription.unsubscribe();\n this._keyboardEventsManager?.destroy();\n\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n handleKeydown(event: KeyboardEvent): void {\n event.stopImmediatePropagation();\n\n if (this._keyboardEventsManager) {\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /** Distribute cards on window resize */\n updateLayout(): void {\n this._listenResize = false;\n\n if (this._cards.length) {\n const possibleNumberOfColumns = getNumberOfColumns(this._availableWidth, this.cardMinimumWidth);\n\n this._numberOfColumns = Math.min(\n possibleNumberOfColumns,\n this._cards.length,\n this.maxColumns || MAX_COLUMNS,\n MAX_COLUMNS\n );\n } else {\n this._numberOfColumns = 1;\n }\n\n this.layoutChange.emit({\n numberOfColumns: this._numberOfColumns,\n screenSize: this._availableWidth\n });\n\n this._setCardColumns();\n this._setCardColumnsWidth();\n this._setContainerHeight();\n\n this._listenResize = true;\n }\n\n /** @hidden */\n _onDragStarted(event: CdkDragStart): void {\n this._listenResize = false;\n this._hiddenCard = event.source.data;\n }\n\n /** @hidden */\n _onDropListEntered(event: CdkDragEnter): void {\n const containerItemCardDef = (event.container.getSortedItems()[0].data as CardDefinitionDirective).fdCardDef;\n const dragItemCardDef = (event.item.data as CardDefinitionDirective).fdCardDef;\n\n this._placeholderMargin = containerItemCardDef !== dragItemCardDef;\n\n const columnIndexToAddSpace = this._cardColumns.findIndex((column) =>\n column.find((card) => event.container.getSortedItems()[0].data === card)\n );\n const spaceToAdd =\n event.item.element.nativeElement.getBoundingClientRect().height +\n (event.container.getSortedItems().length ? REM_IN_PX : 0);\n\n // When we move the card into a certain column we should increase the height of that column by the card height\n this._setContainerHeight(columnIndexToAddSpace, spaceToAdd);\n }\n\n /** @hidden */\n _onDragDropped(event: CdkDragDrop<number, number>): void {\n this._hiddenCard = null;\n\n if (event.container.data === event.previousContainer.data) {\n return;\n }\n\n this._placeholderMargin = false;\n\n const movedCard = event.previousContainer.getSortedItems()[0].data;\n const replacedCard = event.container.getSortedItems()[0].data;\n\n const movedCardColumn = this._cardColumns.find((column) =>\n column.find((card) => card.fdCardDef === movedCard.fdCardDef)\n );\n const replacedCardColumn = this._cardColumns.find((column) =>\n column.find((card) => card.fdCardDef === replacedCard.fdCardDef)\n );\n\n // If we dragged the card from the same column as the column we're dropping into\n // There may be a situation where the order shouldn't change but since there are a different drop lists it will change\n // We should prevent this\n if (movedCardColumn === replacedCardColumn && movedCardColumn?.length === 2) {\n if (movedCard.fdCardDef < replacedCard.fdCardDef && event.previousContainer.data < event.container.data) {\n return;\n }\n\n if (movedCard.fdCardDef > replacedCard.fdCardDef && event.previousContainer.data > event.container.data) {\n return;\n }\n }\n\n this._processDragDrop(event.previousContainer.data, event.container.data, movedCard, replacedCard);\n }\n\n /** @hidden */\n _sortPredicateFn = (index: number): boolean => index === 0;\n\n /** @hidden For the keyboard drag&drop directive */\n _customMoveFn = (group: CardColumn, indexFrom: number, indexTo: number): void => {\n const movedCard = group[indexFrom];\n const replacedCard = group[indexTo];\n\n const indexFromArray = this._cardsArray.findIndex((card) => card.fdCardDef === movedCard.fdCardDef);\n const indexToArray = this._cardsArray.findIndex((card) => card.fdCardDef === replacedCard.fdCardDef);\n\n this._processDragDrop(indexFromArray, indexToArray, movedCard, replacedCard);\n };\n\n /** @hidden For the keyboard drag&drop directive */\n _customTransferFn = (prevGroup: CardColumn, nextGroup: CardColumn, indexFrom: number, indexTo: number): void => {\n const movedCard = prevGroup[indexFrom];\n const replacedCard = nextGroup[indexTo];\n\n const indexFromArray = this._cardsArray.findIndex((card) => card.fdCardDef === movedCard.fdCardDef);\n const indexToArray = this._cardsArray.findIndex((card) => card.fdCardDef === replacedCard.fdCardDef);\n\n this._processDragDrop(indexFromArray, indexToArray, movedCard, replacedCard);\n };\n\n /** @hidden Arranges cards on drop of dragged card */\n private _processDragDrop(\n prevIndex: number,\n newIndex: number,\n prevCard: CardDefinitionDirective,\n newCard: CardDefinitionDirective\n ): void {\n // moveItemInArray from CDK won't work as it changes order of other cards\n const replacedCard = this._cardsArray[newIndex];\n this._cardsArray[newIndex] = this._cardsArray[prevIndex];\n this._cardsArray[prevIndex] = replacedCard;\n\n adjustCardRank(prevCard, newCard);\n\n this.cardDraggedDropped.emit({\n previousIndex: prevIndex,\n currentIndex: newIndex,\n layoutColumns: this._numberOfColumns,\n items: this._cards.toArray()\n });\n\n this.updateLayout();\n }\n\n /** @hidden */\n private _accessibilitySetup(): void {\n this._keyboardEventsManager?.destroy();\n this._keyboardEventsManager = new FocusKeyManager(this._cardContainers).withWrap();\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n this._rtlService?.rtl.pipe(takeUntil(this._onDestroy$)).subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._changeDetector.markForCheck();\n });\n }\n\n /** @hidden Listen window resize and distribute cards on column change */\n private _listenOnResize(): void {\n resizeObservable(this._layout.nativeElement)\n .pipe(\n debounceTime(20),\n filter(\n (entries) => this._listenResize && !!(entries[0].contentRect.height || entries[0].contentRect.width)\n ),\n takeUntil(this._onDestroy$)\n )\n .subscribe(() => this.updateLayout());\n }\n\n /** @hidden Listen card change and distribute cards on column change */\n private _listenOnCardsChange(): void {\n this._cards.changes.subscribe(() => {\n this._processCards();\n this.updateLayout();\n });\n }\n\n /** @hidden */\n private _processCards(): void {\n this._cardsArray = this._cards\n .toArray()\n .sort((firstCard, secondCard) => firstCard.fdCardDef - secondCard.fdCardDef);\n }\n\n /** @hidden Distribute cards among columns to arrange them in \"Z\" flow */\n private _setCardColumns(): void {\n this._groupIndexes = new Map<number, number>();\n this._itemIndexes = new Map<number, number>();\n this._singleItemColumns = new Set<number>();\n\n const columns: CardColumn[] = new Array(this._numberOfColumns).fill(0).map(() => new Array(0));\n\n this._cardsArray.forEach((card, i) => {\n const currColumnIndex = i % this._numberOfColumns;\n const itemIndex = columns[currColumnIndex].length;\n\n columns[currColumnIndex].push(card);\n\n this._groupIndexes.set(card.fdCardDef, currColumnIndex);\n this._itemIndexes.set(card.fdCardDef, itemIndex);\n });\n\n this._cardColumns = columns;\n\n this._cardColumns.forEach((column) => {\n if (column.length === 1) {\n this._singleItemColumns.add(column[0].fdCardDef);\n }\n });\n\n this._listenOnCardsHeightChange();\n }\n\n /** @hidden */\n private _setCardColumnsWidth(): void {\n this._columnsWidth = new Map();\n\n const configPresent =\n this.columnsWidthConfig &&\n typeof this.columnsWidthConfig === 'object' &&\n Object.keys(this.columnsWidthConfig).length;\n\n if (!configPresent || this._numberOfColumns === 1) {\n return;\n }\n\n const fixedWidthModifiers = fixWidthModifiers(this.columnsWidthConfig, this._numberOfColumns);\n const totalWidthModifiers = fixedWidthModifiers.reduce((sum, width) => (sum += width), 0);\n const freeSpace = this._availableWidth - this.cardMinimumWidth * this._numberOfColumns;\n\n this._cardColumns.forEach((column, index) => {\n const columnWidth = Math.round(\n this.cardMinimumWidth + (freeSpace / totalWidthModifiers) * fixedWidthModifiers[index]\n );\n\n column.forEach((card) => this._columnsWidth.set(card.fdCardDef, columnWidth));\n });\n }\n\n /**\n * @hidden\n * Calculate container height accordingly to the the card columns height\n * Parameters used to increase the height of the column where drag'n'drop placeholder currently is\n */\n private _setContainerHeight(columnIndexToAddSpace = -1, spaceToAdd = 0): void {\n this._changeDetector.detectChanges();\n\n const cardColumns = this._cardColumns.map((column) =>\n column\n .map((card) => this._dragList.find((drag) => drag.data === card))\n .filter((cdkDrag) => !cdkDrag?._dragRef.isDragging() && !!cdkDrag?.element?.nativeElement)\n .map((cdkDrag) => cdkDrag?.element)\n );\n\n const columnsHeights = cardColumns\n .map((column) => column.map((cardElRef) => cardElRef?.nativeElement.getBoundingClientRect().height || 0))\n .map(\n (column, columnIndex) =>\n column.reduce((cardsHeight, height) => (cardsHeight += height + REM_IN_PX), 0) +\n (columnIndex === columnIndexToAddSpace ? spaceToAdd : 0)\n );\n\n const prevContainerHeight = this._containerHeight;\n\n // +4px because it's the top & bottom borders of card placeholder\n this._containerHeight = Math.ceil(Math.max(...columnsHeights) + 4);\n\n if (this._containerHeight !== prevContainerHeight) {\n this._changeDetector.detectChanges();\n }\n }\n\n /** @hidden */\n private _listenOnCardsHeightChange(): void {\n this._cardsSizeChangeSubscription.unsubscribe();\n this._cardsSizeChangeSubscription = new Subscription();\n\n this._changeDetector.detectChanges();\n\n this._cardColumns.forEach((column) =>\n column\n .map((card) => this._dragList.find((wrapper) => wrapper.data === card)?.element)\n .filter((v): v is ElementRef<HTMLElement> => !!v)\n .forEach((card) => {\n this._cardsSizeChangeSubscription.add(\n resizeObservable(card.nativeElement)\n .pipe(\n skip(1),\n debounceTime(20),\n filter(() => this._listenResize && !!this._layout.nativeElement.clientHeight)\n )\n .subscribe(() => this._setContainerHeight())\n );\n })\n );\n }\n}\n\n/** @hidden */\nfunction fixWidthModifiers(config: ColumnsWidthConfig, numberOfColumns: number): number[] {\n const modifiers = new Array(numberOfColumns).fill(0);\n\n return modifiers.map((_, index) => {\n const columnWidthModifier = config[index + 1];\n\n if (!columnWidthModifier || columnWidthModifier < 0) {\n return 0;\n }\n\n return columnWidthModifier;\n });\n}\n\n/** @hidden Returns number of columns that can fit in current available width for fd-card-layout */\nfunction getNumberOfColumns(containerWidth: number, cardWidth: number): number {\n containerWidth = containerWidth || 1;\n cardWidth = cardWidth || 1;\n\n const numberOfCardsWithNoGap = Math.max(Math.floor(containerWidth / cardWidth), 1); // Example: 960 / 320 = 3\n const requiredWidthWithGap = numberOfCardsWithNoGap * cardWidth + (numberOfCardsWithNoGap - 1) * CARD_GAP_WIDTH;\n const columnCount = requiredWidthWithGap > containerWidth ? numberOfCardsWithNoGap - 1 : numberOfCardsWithNoGap;\n\n return Math.max(columnCount, 1);\n}\n\n/** @hidden Method to update rank after cards are dragged */\nfunction adjustCardRank(draggedCard: CardDefinitionDirective, replacedCard: CardDefinitionDirective): void {\n const draggedCardRank = draggedCard.fdCardDef;\n draggedCard.fdCardDef = replacedCard.fdCardDef;\n replacedCard.fdCardDef = draggedCardRank;\n}\n","<div\n #layout\n cdkDropListGroup\n fdDndKeyboardGroup\n class=\"fd-fixed-card-layout__card-layout fd-fixed-card-layout__card-layout--columns-{{ this._numberOfColumns }}\"\n [style.height]=\"_containerHeight + 'px'\"\n [groups]=\"_cardColumns\"\n orientation=\"horizontal\"\n [customMoveFn]=\"_customMoveFn\"\n [customTransferFn]=\"_customTransferFn\"\n [disableKeyboardDragDrop]=\"disableDragDrop\"\n [cdkDropListGroupDisabled]=\"disableDragDrop\"\n [attr.dir]=\"_dir\"\n>\n <div\n *ngFor=\"let card of _cardsArray; let cardIndex = index\"\n cdkDropList\n class=\"fd-fixed-card-layout__card\"\n [class.fd-fixed-card-layout__card--single]=\"_singleItemColumns.has(card.fdCardDef)\"\n [style.min-width.px]=\"_columnsWidth.get(card.fdCardDef)\"\n [style.max-width.px]=\"_columnsWidth.get(card.fdCardDef)\"\n [style.display]=\"_hiddenCard === card ? 'none' : 'block'\"\n [cdkDropListData]=\"cardIndex\"\n [cdkDropListSortPredicate]=\"_sortPredicateFn\"\n (cdkDropListEntered)=\"_onDropListEntered($event)\"\n >\n <div\n cdkDrag\n fdDndKeyboardItem\n tabindex=\"0\"\n cdkDragPreviewClass=\"fd-fixed-card-layout__card-preview\"\n [cdkDragData]=\"card\"\n [cdkDragStartDelay]=\"dragStartDelay\"\n [itemIndex]=\"_itemIndexes.get(card.fdCardDef)!\"\n [groupIndex]=\"_groupIndexes.get(card.fdCardDef)!\"\n (cdkDragStarted)=\"_onDragStarted($event)\"\n (cdkDragDropped)=\"_onDragDropped($event)\"\n >\n <fd-fixed-card-layout-item>\n <ng-container *ngTemplateOutlet=\"card?.template || null\"> </ng-container>\n </fd-fixed-card-layout-item>\n\n <div\n *cdkDragPlaceholder\n class=\"fd-fixed-card-layout__card-placeholder\"\n [style.margin-bottom.rem]=\"+_placeholderMargin\"\n >\n <ng-container *ngTemplateOutlet=\"card?.template || null\"></ng-container>\n </div>\n </div>\n </div>\n\n <ng-container *ngFor=\"let column of _cardColumns; let last = last; let index = index\">\n <div *ngIf=\"!last\" class=\"fd-fixed-card-layout__clearfix\" [style.order]=\"index + 1\"></div>\n </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FixedCardLayoutItemComponent } from './fixed-card-layout-item/fixed-card-layout-item.component';\nimport { CardDefinitionDirective, FixedCardLayoutComponent } from './fixed-card-layout.component';\n\nconst components = [FixedCardLayoutComponent, CardDefinitionDirective, FixedCardLayoutItemComponent];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class FixedCardLayoutModule {}\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-fixed-card-layout.mjs","sources":["../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout-item/fixed-card-layout-item.component.ts","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.component.ts","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.component.html","../../../../libs/core/src/lib/fixed-card-layout/fixed-card-layout.module.ts","../../../../libs/core/src/lib/fixed-card-layout/fundamental-ngx-core-fixed-card-layout.ts"],"sourcesContent":["import { FocusableOption } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, Component, ElementRef } from '@angular/core';\n\n@Component({\n selector: 'fd-fixed-card-layout-item',\n template: `<ng-content></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: block'\n },\n standalone: true\n})\nexport class FixedCardLayoutItemComponent implements FocusableOption {\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** Set focus on the element. */\n focus(): void {\n const header = this._elementRef.nativeElement.querySelector('.fd-card__header');\n if (header) {\n header.focus();\n }\n }\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport {\n CdkDrag,\n CdkDragDrop,\n CdkDragEnter,\n CdkDragPlaceholder,\n CdkDragStart,\n CdkDropList,\n CdkDropListGroup\n} from '@angular/cdk/drag-drop';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime, filter, skip, takeUntil } from 'rxjs/operators';\n\nimport { NumberInput, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n DragAndDropModule,\n Nullable,\n RtlService,\n getDocumentFontSize,\n resizeObservable\n} from '@fundamental-ngx/cdk/utils';\nimport { FixedCardLayoutItemComponent } from './fixed-card-layout-item/fixed-card-layout-item.component';\n\nconst REM_IN_PX = getDocumentFontSize();\nconst CARD_MINIMUM_WIDTH = REM_IN_PX * 20; // 20rem\nconst CARD_GAP_WIDTH = REM_IN_PX; // 1rem\nconst DRAG_START_DELAY = 200; // in ms\nconst MAX_COLUMNS = 10;\n\nlet cardRank = 1;\n\n@Directive({\n selector: '[fdCardDef]',\n standalone: true\n})\nexport class CardDefinitionDirective {\n /**\n * Behaves like rank of card.\n * Useful in creating layout again after drag and drop.\n */\n @Input()\n set fdCardDef(value: NumberInput) {\n if (!value) {\n return;\n }\n\n this._fdCardDef = coerceNumberProperty(value);\n }\n get fdCardDef(): number {\n return this._fdCardDef;\n }\n\n /** @hidden */\n private _fdCardDef: number = cardRank++;\n\n /** @hidden */\n constructor(public template: TemplateRef<any>) {}\n}\n\nexport interface Layout {\n numberOfColumns?: number;\n screenSize: number;\n}\n\nexport interface CardDropped {\n previousIndex: number;\n currentIndex: number;\n layoutColumns: number;\n items: CardDefinitionDirective[];\n}\n\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\nexport type ColumnsWidthConfig = { [C in Columns]?: number };\n\ntype CardColumn = CardDefinitionDirective[];\n\n@Component({\n selector: 'fd-fixed-card-layout',\n templateUrl: './fixed-card-layout.component.html',\n styleUrls: ['./fixed-card-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-fixed-card-layout'\n },\n standalone: true,\n imports: [\n CdkDropListGroup,\n DragAndDropModule,\n NgFor,\n CdkDropList,\n CdkDrag,\n FixedCardLayoutItemComponent,\n NgTemplateOutlet,\n CdkDragPlaceholder,\n NgIf\n ]\n})\nexport class FixedCardLayoutComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n /** Drag drop behavior can be disabled */\n @Input()\n disableDragDrop: boolean;\n\n /** Drag start delay in milliseconds, default to 200ms for safe scrolling on mobile with touchscreen */\n @Input()\n dragStartDelay = DRAG_START_DELAY;\n\n /** Card's minimum width in pixels. */\n @Input()\n set cardMinimumWidth(value: NumberInput) {\n const coercedValue = coerceNumberProperty(value);\n\n if (coercedValue < CARD_MINIMUM_WIDTH) {\n return;\n }\n\n this._cardMinimumWidth = coercedValue;\n }\n get cardMinimumWidth(): number {\n return this._cardMinimumWidth;\n }\n\n /** Config with the width ratios that should take every column. Flex-grow principe. Missed values set to 0. s*/\n @Input()\n columnsWidthConfig: ColumnsWidthConfig;\n\n /** Limit the number of columns. Default is 10. */\n @Input()\n maxColumns = MAX_COLUMNS;\n\n /** Event to emit, when layout changes */\n @Output()\n layoutChange: EventEmitter<Layout> = new EventEmitter<Layout>();\n\n /** Event to emit on Card dragged and dropped */\n @Output()\n cardDraggedDropped: EventEmitter<CardDropped> = new EventEmitter<CardDropped>();\n\n /** @hidden */\n @ContentChildren(CardDefinitionDirective)\n _cards: QueryList<CardDefinitionDirective>;\n\n /** @hidden */\n @ViewChildren(FixedCardLayoutItemComponent)\n _cardContainers: QueryList<FixedCardLayoutItemComponent>;\n\n /** @hidden */\n @ViewChildren(CdkDrag)\n _dragList: QueryList<CdkDrag>;\n\n /** @hidden */\n @ViewChild('layout')\n _layout: ElementRef<HTMLElement>;\n\n /** @hidden */\n _cardsArray: CardDefinitionDirective[];\n\n /** @hidden Number of Columns in layout */\n _numberOfColumns: number;\n\n /** @hidden */\n _cardColumns: CardColumn[];\n\n /** @hidden*/\n _containerHeight = 0;\n\n /** @hidden handles rtl service */\n _dir = 'ltr';\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _groupIndexes = new Map<number, number>();\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _itemIndexes = new Map<number, number>();\n\n /** @hidden first number is the CardDefinition rank, i.e. id */\n _singleItemColumns = new Set<number>();\n\n /** @hidden */\n _columnsWidth = new Map<number, number>();\n\n /** @hidden Return available width for fixed card layout */\n get _availableWidth(): number {\n return this._layout.nativeElement.getBoundingClientRect().width;\n }\n\n /** @hidden */\n _placeholderMargin: boolean;\n\n /** @hidden */\n _listenResize = true;\n\n /** @hidden */\n _hiddenCard: Nullable<CardDefinitionDirective>;\n\n /** @hidden FocusKeyManager instance */\n private _keyboardEventsManager: FocusKeyManager<FixedCardLayoutItemComponent>;\n\n /** @hidden */\n private _cardMinimumWidth = CARD_MINIMUM_WIDTH;\n\n /** @hidden */\n private _cardsSizeChangeSubscription = new Subscription();\n\n /** @hidden An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _changeDetector: ChangeDetectorRef,\n @Optional() private readonly _rtlService: RtlService\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._subscribeToRtl();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processCards();\n\n this._listenOnResize();\n this._listenOnCardsChange();\n this._accessibilitySetup();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n // Skip all changes unless we don't have initial layout created\n if (!this._cardsArray) {\n return;\n }\n\n if ('maxColumns' in changes || 'cardMinimumWidth' in changes) {\n this.updateLayout();\n } else if ('columnsWidthConfig' in changes) {\n this._setCardColumnsWidth();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._cardsSizeChangeSubscription.unsubscribe();\n this._keyboardEventsManager?.destroy();\n\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n handleKeydown(event: KeyboardEvent): void {\n event.stopImmediatePropagation();\n\n if (this._keyboardEventsManager) {\n this._keyboardEventsManager.onKeydown(event);\n }\n }\n\n /** Distribute cards on window resize */\n updateLayout(): void {\n this._listenResize = false;\n\n if (this._cards.length) {\n const possibleNumberOfColumns = getNumberOfColumns(this._availableWidth, this.cardMinimumWidth);\n\n this._numberOfColumns = Math.min(\n possibleNumberOfColumns,\n this._cards.length,\n this.maxColumns || MAX_COLUMNS,\n MAX_COLUMNS\n );\n } else {\n this._numberOfColumns = 1;\n }\n\n this.layoutChange.emit({\n numberOfColumns: this._numberOfColumns,\n screenSize: this._availableWidth\n });\n\n this._setCardColumns();\n this._setCardColumnsWidth();\n this._setContainerHeight();\n\n this._listenResize = true;\n }\n\n /** @hidden */\n _onDragStarted(event: CdkDragStart): void {\n this._listenResize = false;\n this._hiddenCard = event.source.data;\n }\n\n /** @hidden */\n _onDropListEntered(event: CdkDragEnter): void {\n const containerItemCardDef = (event.container.getSortedItems()[0].data as CardDefinitionDirective).fdCardDef;\n const dragItemCardDef = (event.item.data as CardDefinitionDirective).fdCardDef;\n\n this._placeholderMargin = containerItemCardDef !== dragItemCardDef;\n\n const columnIndexToAddSpace = this._cardColumns.findIndex((column) =>\n column.find((card) => event.container.getSortedItems()[0].data === card)\n );\n const spaceToAdd =\n event.item.element.nativeElement.getBoundingClientRect().height +\n (event.container.getSortedItems().length ? REM_IN_PX : 0);\n\n // When we move the card into a certain column we should increase the height of that column by the card height\n this._setContainerHeight(columnIndexToAddSpace, spaceToAdd);\n }\n\n /** @hidden */\n _onDragDropped(event: CdkDragDrop<number, number>): void {\n this._hiddenCard = null;\n\n if (event.container.data === event.previousContainer.data) {\n return;\n }\n\n this._placeholderMargin = false;\n\n const movedCard = event.previousContainer.getSortedItems()[0].data;\n const replacedCard = event.container.getSortedItems()[0].data;\n\n const movedCardColumn = this._cardColumns.find((column) =>\n column.find((card) => card.fdCardDef === movedCard.fdCardDef)\n );\n const replacedCardColumn = this._cardColumns.find((column) =>\n column.find((card) => card.fdCardDef === replacedCard.fdCardDef)\n );\n\n // If we dragged the card from the same column as the column we're dropping into\n // There may be a situation where the order shouldn't change but since there are a different drop lists it will change\n // We should prevent this\n if (movedCardColumn === replacedCardColumn && movedCardColumn?.length === 2) {\n if (movedCard.fdCardDef < replacedCard.fdCardDef && event.previousContainer.data < event.container.data) {\n return;\n }\n\n if (movedCard.fdCardDef > replacedCard.fdCardDef && event.previousContainer.data > event.container.data) {\n return;\n }\n }\n\n this._processDragDrop(event.previousContainer.data, event.container.data, movedCard, replacedCard);\n }\n\n /** @hidden */\n _sortPredicateFn = (index: number): boolean => index === 0;\n\n /** @hidden For the keyboard drag&drop directive */\n _customMoveFn = (group: CardColumn, indexFrom: number, indexTo: number): void => {\n const movedCard = group[indexFrom];\n const replacedCard = group[indexTo];\n\n const indexFromArray = this._cardsArray.findIndex((card) => card.fdCardDef === movedCard.fdCardDef);\n const indexToArray = this._cardsArray.findIndex((card) => card.fdCardDef === replacedCard.fdCardDef);\n\n this._processDragDrop(indexFromArray, indexToArray, movedCard, replacedCard);\n };\n\n /** @hidden For the keyboard drag&drop directive */\n _customTransferFn = (prevGroup: CardColumn, nextGroup: CardColumn, indexFrom: number, indexTo: number): void => {\n const movedCard = prevGroup[indexFrom];\n const replacedCard = nextGroup[indexTo];\n\n const indexFromArray = this._cardsArray.findIndex((card) => card.fdCardDef === movedCard.fdCardDef);\n const indexToArray = this._cardsArray.findIndex((card) => card.fdCardDef === replacedCard.fdCardDef);\n\n this._processDragDrop(indexFromArray, indexToArray, movedCard, replacedCard);\n };\n\n /** @hidden Arranges cards on drop of dragged card */\n private _processDragDrop(\n prevIndex: number,\n newIndex: number,\n prevCard: CardDefinitionDirective,\n newCard: CardDefinitionDirective\n ): void {\n // moveItemInArray from CDK won't work as it changes order of other cards\n const replacedCard = this._cardsArray[newIndex];\n this._cardsArray[newIndex] = this._cardsArray[prevIndex];\n this._cardsArray[prevIndex] = replacedCard;\n\n adjustCardRank(prevCard, newCard);\n\n this.cardDraggedDropped.emit({\n previousIndex: prevIndex,\n currentIndex: newIndex,\n layoutColumns: this._numberOfColumns,\n items: this._cards.toArray()\n });\n\n this.updateLayout();\n }\n\n /** @hidden */\n private _accessibilitySetup(): void {\n this._keyboardEventsManager?.destroy();\n this._keyboardEventsManager = new FocusKeyManager(this._cardContainers).withWrap();\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n this._rtlService?.rtl.pipe(takeUntil(this._onDestroy$)).subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._changeDetector.markForCheck();\n });\n }\n\n /** @hidden Listen window resize and distribute cards on column change */\n private _listenOnResize(): void {\n resizeObservable(this._layout.nativeElement)\n .pipe(\n debounceTime(20),\n filter(\n (entries) => this._listenResize && !!(entries[0].contentRect.height || entries[0].contentRect.width)\n ),\n takeUntil(this._onDestroy$)\n )\n .subscribe(() => this.updateLayout());\n }\n\n /** @hidden Listen card change and distribute cards on column change */\n private _listenOnCardsChange(): void {\n this._cards.changes.subscribe(() => {\n this._processCards();\n this.updateLayout();\n });\n }\n\n /** @hidden */\n private _processCards(): void {\n this._cardsArray = this._cards\n .toArray()\n .sort((firstCard, secondCard) => firstCard.fdCardDef - secondCard.fdCardDef);\n }\n\n /** @hidden Distribute cards among columns to arrange them in \"Z\" flow */\n private _setCardColumns(): void {\n this._groupIndexes = new Map<number, number>();\n this._itemIndexes = new Map<number, number>();\n this._singleItemColumns = new Set<number>();\n\n const columns: CardColumn[] = new Array(this._numberOfColumns).fill(0).map(() => new Array(0));\n\n this._cardsArray.forEach((card, i) => {\n const currColumnIndex = i % this._numberOfColumns;\n const itemIndex = columns[currColumnIndex].length;\n\n columns[currColumnIndex].push(card);\n\n this._groupIndexes.set(card.fdCardDef, currColumnIndex);\n this._itemIndexes.set(card.fdCardDef, itemIndex);\n });\n\n this._cardColumns = columns;\n\n this._cardColumns.forEach((column) => {\n if (column.length === 1) {\n this._singleItemColumns.add(column[0].fdCardDef);\n }\n });\n\n this._listenOnCardsHeightChange();\n }\n\n /** @hidden */\n private _setCardColumnsWidth(): void {\n this._columnsWidth = new Map();\n\n const configPresent =\n this.columnsWidthConfig &&\n typeof this.columnsWidthConfig === 'object' &&\n Object.keys(this.columnsWidthConfig).length;\n\n if (!configPresent || this._numberOfColumns === 1) {\n return;\n }\n\n const fixedWidthModifiers = fixWidthModifiers(this.columnsWidthConfig, this._numberOfColumns);\n const totalWidthModifiers = fixedWidthModifiers.reduce((sum, width) => (sum += width), 0);\n const freeSpace = this._availableWidth - this.cardMinimumWidth * this._numberOfColumns;\n\n this._cardColumns.forEach((column, index) => {\n const columnWidth = Math.round(\n this.cardMinimumWidth + (freeSpace / totalWidthModifiers) * fixedWidthModifiers[index]\n );\n\n column.forEach((card) => this._columnsWidth.set(card.fdCardDef, columnWidth));\n });\n }\n\n /**\n * @hidden\n * Calculate container height accordingly to the the card columns height\n * Parameters used to increase the height of the column where drag'n'drop placeholder currently is\n */\n private _setContainerHeight(columnIndexToAddSpace = -1, spaceToAdd = 0): void {\n this._changeDetector.detectChanges();\n\n const cardColumns = this._cardColumns.map((column) =>\n column\n .map((card) => this._dragList.find((drag) => drag.data === card))\n .filter((cdkDrag) => !cdkDrag?._dragRef.isDragging() && !!cdkDrag?.element?.nativeElement)\n .map((cdkDrag) => cdkDrag?.element)\n );\n\n const columnsHeights = cardColumns\n .map((column) => column.map((cardElRef) => cardElRef?.nativeElement.getBoundingClientRect().height || 0))\n .map(\n (column, columnIndex) =>\n column.reduce((cardsHeight, height) => (cardsHeight += height + REM_IN_PX), 0) +\n (columnIndex === columnIndexToAddSpace ? spaceToAdd : 0)\n );\n\n const prevContainerHeight = this._containerHeight;\n\n // +4px because it's the top & bottom borders of card placeholder\n this._containerHeight = Math.ceil(Math.max(...columnsHeights) + 4);\n\n if (this._containerHeight !== prevContainerHeight) {\n this._changeDetector.detectChanges();\n }\n }\n\n /** @hidden */\n private _listenOnCardsHeightChange(): void {\n this._cardsSizeChangeSubscription.unsubscribe();\n this._cardsSizeChangeSubscription = new Subscription();\n\n this._changeDetector.detectChanges();\n\n this._cardColumns.forEach((column) =>\n column\n .map((card) => this._dragList.find((wrapper) => wrapper.data === card)?.element)\n .filter((v): v is ElementRef<HTMLElement> => !!v)\n .forEach((card) => {\n this._cardsSizeChangeSubscription.add(\n resizeObservable(card.nativeElement)\n .pipe(\n skip(1),\n debounceTime(20),\n filter(() => this._listenResize && !!this._layout.nativeElement.clientHeight)\n )\n .subscribe(() => this._setContainerHeight())\n );\n })\n );\n }\n}\n\n/** @hidden */\nfunction fixWidthModifiers(config: ColumnsWidthConfig, numberOfColumns: number): number[] {\n const modifiers = new Array(numberOfColumns).fill(0);\n\n return modifiers.map((_, index) => {\n const columnWidthModifier = config[index + 1];\n\n if (!columnWidthModifier || columnWidthModifier < 0) {\n return 0;\n }\n\n return columnWidthModifier;\n });\n}\n\n/** @hidden Returns number of columns that can fit in current available width for fd-card-layout */\nfunction getNumberOfColumns(containerWidth: number, cardWidth: number): number {\n containerWidth = containerWidth || 1;\n cardWidth = cardWidth || 1;\n\n const numberOfCardsWithNoGap = Math.max(Math.floor(containerWidth / cardWidth), 1); // Example: 960 / 320 = 3\n const requiredWidthWithGap = numberOfCardsWithNoGap * cardWidth + (numberOfCardsWithNoGap - 1) * CARD_GAP_WIDTH;\n const columnCount = requiredWidthWithGap > containerWidth ? numberOfCardsWithNoGap - 1 : numberOfCardsWithNoGap;\n\n return Math.max(columnCount, 1);\n}\n\n/** @hidden Method to update rank after cards are dragged */\nfunction adjustCardRank(draggedCard: CardDefinitionDirective, replacedCard: CardDefinitionDirective): void {\n const draggedCardRank = draggedCard.fdCardDef;\n draggedCard.fdCardDef = replacedCard.fdCardDef;\n replacedCard.fdCardDef = draggedCardRank;\n}\n","<div\n #layout\n cdkDropListGroup\n fdDndKeyboardGroup\n class=\"fd-fixed-card-layout__card-layout fd-fixed-card-layout__card-layout--columns-{{ this._numberOfColumns }}\"\n [style.height]=\"_containerHeight + 'px'\"\n [groups]=\"_cardColumns\"\n orientation=\"horizontal\"\n [customMoveFn]=\"_customMoveFn\"\n [customTransferFn]=\"_customTransferFn\"\n [disableKeyboardDragDrop]=\"disableDragDrop\"\n [cdkDropListGroupDisabled]=\"disableDragDrop\"\n [attr.dir]=\"_dir\"\n>\n <div\n *ngFor=\"let card of _cardsArray; let cardIndex = index\"\n cdkDropList\n class=\"fd-fixed-card-layout__card\"\n [class.fd-fixed-card-layout__card--single]=\"_singleItemColumns.has(card.fdCardDef)\"\n [style.min-width.px]=\"_columnsWidth.get(card.fdCardDef)\"\n [style.max-width.px]=\"_columnsWidth.get(card.fdCardDef)\"\n [style.display]=\"_hiddenCard === card ? 'none' : 'block'\"\n [cdkDropListData]=\"cardIndex\"\n [cdkDropListSortPredicate]=\"_sortPredicateFn\"\n (cdkDropListEntered)=\"_onDropListEntered($event)\"\n >\n <div\n cdkDrag\n fdDndKeyboardItem\n tabindex=\"0\"\n cdkDragPreviewClass=\"fd-fixed-card-layout__card-preview\"\n [cdkDragData]=\"card\"\n [cdkDragStartDelay]=\"dragStartDelay\"\n [itemIndex]=\"_itemIndexes.get(card.fdCardDef)!\"\n [groupIndex]=\"_groupIndexes.get(card.fdCardDef)!\"\n (cdkDragStarted)=\"_onDragStarted($event)\"\n (cdkDragDropped)=\"_onDragDropped($event)\"\n >\n <fd-fixed-card-layout-item>\n <ng-container *ngTemplateOutlet=\"card?.template || null\"> </ng-container>\n </fd-fixed-card-layout-item>\n\n <div\n *cdkDragPlaceholder\n class=\"fd-fixed-card-layout__card-placeholder\"\n [style.margin-bottom.rem]=\"+_placeholderMargin\"\n >\n <ng-container *ngTemplateOutlet=\"card?.template || null\"></ng-container>\n </div>\n </div>\n </div>\n\n <ng-container *ngFor=\"let column of _cardColumns; let last = last; let index = index\">\n <div *ngIf=\"!last\" class=\"fd-fixed-card-layout__clearfix\" [style.order]=\"index + 1\"></div>\n </ng-container>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FixedCardLayoutItemComponent } from './fixed-card-layout-item/fixed-card-layout-item.component';\nimport { CardDefinitionDirective, FixedCardLayoutComponent } from './fixed-card-layout.component';\n\nconst components = [FixedCardLayoutComponent, CardDefinitionDirective, FixedCardLayoutItemComponent];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class FixedCardLayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -361,7 +361,7 @@ class FlexibleColumnLayoutComponent {
|
|
|
361
361
|
provide: FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT,
|
|
362
362
|
useExisting: FlexibleColumnLayoutComponent
|
|
363
363
|
}
|
|
364
|
-
], queries: [{ propertyName: "startColumn", first: true, predicate: ["startColumn"], descendants: true }, { propertyName: "midColumn", first: true, predicate: ["midColumn"], descendants: true }, { propertyName: "endColumn", first: true, predicate: ["endColumn"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"fd-flexible-column-layout\"\n [class.fd-flexible-column-layout--translucent]=\"backgroundDesign === 'translucent'\"\n [class.fd-flexible-column-layout--transparent]=\"backgroundDesign === 'transparent'\"\n>\n <!-- Start/Left/First Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.start\"\n [style.visibility]=\"_columnLayout.start === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.start === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.start === 0\"\n >\n <ng-container *ngTemplateOutlet=\"startColumn\"></ng-container>\n </div>\n <!-- Left Separator -->\n <div\n *ngIf=\"_leftColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_leftColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_leftColumnSeparator ? 'sap-icon--slim-arrow-' + _leftColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- Middle/Second Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.mid\"\n [style.visibility]=\"_columnLayout.mid === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.mid === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.mid === 0\"\n >\n <ng-container *ngTemplateOutlet=\"midColumn\"></ng-container>\n </div>\n <!-- Right Separator -->\n <div\n *ngIf=\"_rightColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleRightColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_rightColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_rightColumnSeparator ? 'sap-icon--slim-arrow-' + _rightColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- End/Right/Third Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.end\"\n [style.visibility]=\"_columnLayout.end === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.end === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.end === 0\"\n >\n <ng-container *ngTemplateOutlet=\"endColumn\"></ng-container>\n </div>\n</div>\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0
|
|
364
|
+
], queries: [{ propertyName: "startColumn", first: true, predicate: ["startColumn"], descendants: true }, { propertyName: "midColumn", first: true, predicate: ["midColumn"], descendants: true }, { propertyName: "endColumn", first: true, predicate: ["endColumn"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"fd-flexible-column-layout\"\n [class.fd-flexible-column-layout--translucent]=\"backgroundDesign === 'translucent'\"\n [class.fd-flexible-column-layout--transparent]=\"backgroundDesign === 'transparent'\"\n>\n <!-- Start/Left/First Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.start\"\n [style.visibility]=\"_columnLayout.start === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.start === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.start === 0\"\n >\n <ng-container *ngTemplateOutlet=\"startColumn\"></ng-container>\n </div>\n <!-- Left Separator -->\n <div\n *ngIf=\"_leftColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_leftColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_leftColumnSeparator ? 'sap-icon--slim-arrow-' + _leftColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- Middle/Second Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.mid\"\n [style.visibility]=\"_columnLayout.mid === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.mid === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.mid === 0\"\n >\n <ng-container *ngTemplateOutlet=\"midColumn\"></ng-container>\n </div>\n <!-- Right Separator -->\n <div\n *ngIf=\"_rightColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleRightColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_rightColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_rightColumnSeparator ? 'sap-icon--slim-arrow-' + _rightColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- End/Right/Third Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.end\"\n [style.visibility]=\"_columnLayout.end === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.end === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.end === 0\"\n >\n <ng-container *ngTemplateOutlet=\"endColumn\"></ng-container>\n </div>\n</div>\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-flexible-column-layout{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-flexible-column-layout:after,.fd-flexible-column-layout:before{box-sizing:inherit;font-size:inherit}.fd-flexible-column-layout__separator{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:var(--fdFlexibleColumnLayout_Background_Solid);border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-width:1rem;padding:0;position:relative;width:1rem}.fd-flexible-column-layout__separator:after,.fd-flexible-column-layout__separator:before{-webkit-box-sizing:inherit;-webkit-transition:all .1s ease-in;-webkit-transform:translateX(-50%);box-sizing:inherit;content:\"\";display:block;font-size:inherit;height:4rem;left:50%;position:absolute;transform:translate(-50%);transition:all .1s ease-in;width:.0625rem}.fd-flexible-column-layout__separator:before{background-image:linear-gradient(to top,var(--fdFlexibleColumnLayout_Toggle_Image_Color),transparent);bottom:calc(50% + 1rem)}.fd-flexible-column-layout__separator:after{background-image:linear-gradient(to bottom,var(--fdFlexibleColumnLayout_Toggle_Image_Color),transparent);top:calc(50% + 1rem)}.fd-flexible-column-layout__separator.is-hover:after,.fd-flexible-column-layout__separator.is-hover:before,.fd-flexible-column-layout__separator:hover:after,.fd-flexible-column-layout__separator:hover:before{height:7rem}.fd-flexible-column-layout .fd-flexible-column-layout__button{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-transform:translate(-50%,-50%);height:2rem;justify-content:center;left:50%;min-width:1.5rem;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:1.5rem;z-index:2}.fd-flexible-column-layout__column{-webkit-box-sizing:border-box;-webkit-transition:width .56s cubic-bezier(.1,0,.05,1),visibility .56s ease-in;border:0;border-left:var(--fdFlexibleColumnLayout_Border);border-right:var(--fdFlexibleColumnLayout_Border);box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;min-width:20rem;padding:0;transition:width .56s cubic-bezier(.1,0,.05,1),visibility .56s ease-in}.fd-flexible-column-layout__column:after,.fd-flexible-column-layout__column:before{box-sizing:inherit;font-size:inherit}.fd-flexible-column-layout__column.is-first-child,.fd-flexible-column-layout__column:first-child{border-left:none}.fd-flexible-column-layout__column.is-last-child,.fd-flexible-column-layout__column:last-child{border-right:none}.fd-flexible-column-layout__column--hidden{border:none;min-width:0}.fd-flexible-column-layout--translucent .fd-flexible-column-layout__separator{background-color:var(--fdFlexibleColumnLayout_Background_Translucent)}.fd-flexible-column-layout--transparent .fd-flexible-column-layout__separator{background-color:var(--fdFlexibleColumnLayout_Background_Transparent)}.fd-button.fd-flexible-column-layout__button{z-index:1}.fd-flexible-column-layout__column{transition:width .56s cubic-bezier(.1,0,.05,1),visibility .1s ease-in;overflow:hidden}.fd-flexible-column-layout__column{min-width:0}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
365
365
|
}
|
|
366
366
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FlexibleColumnLayoutComponent, decorators: [{
|
|
367
367
|
type: Component,
|
|
@@ -370,7 +370,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
|
|
|
370
370
|
provide: FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT,
|
|
371
371
|
useExisting: FlexibleColumnLayoutComponent
|
|
372
372
|
}
|
|
373
|
-
], standalone: true, imports: [NgTemplateOutlet, NgIf, ButtonComponent, ContentDensityDirective], template: "<div\n class=\"fd-flexible-column-layout\"\n [class.fd-flexible-column-layout--translucent]=\"backgroundDesign === 'translucent'\"\n [class.fd-flexible-column-layout--transparent]=\"backgroundDesign === 'transparent'\"\n>\n <!-- Start/Left/First Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.start\"\n [style.visibility]=\"_columnLayout.start === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.start === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.start === 0\"\n >\n <ng-container *ngTemplateOutlet=\"startColumn\"></ng-container>\n </div>\n <!-- Left Separator -->\n <div\n *ngIf=\"_leftColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_leftColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_leftColumnSeparator ? 'sap-icon--slim-arrow-' + _leftColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- Middle/Second Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.mid\"\n [style.visibility]=\"_columnLayout.mid === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.mid === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.mid === 0\"\n >\n <ng-container *ngTemplateOutlet=\"midColumn\"></ng-container>\n </div>\n <!-- Right Separator -->\n <div\n *ngIf=\"_rightColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleRightColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_rightColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_rightColumnSeparator ? 'sap-icon--slim-arrow-' + _rightColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- End/Right/Third Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.end\"\n [style.visibility]=\"_columnLayout.end === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.end === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.end === 0\"\n >\n <ng-container *ngTemplateOutlet=\"endColumn\"></ng-container>\n </div>\n</div>\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0
|
|
373
|
+
], standalone: true, imports: [NgTemplateOutlet, NgIf, ButtonComponent, ContentDensityDirective], template: "<div\n class=\"fd-flexible-column-layout\"\n [class.fd-flexible-column-layout--translucent]=\"backgroundDesign === 'translucent'\"\n [class.fd-flexible-column-layout--transparent]=\"backgroundDesign === 'transparent'\"\n>\n <!-- Start/Left/First Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.start\"\n [style.visibility]=\"_columnLayout.start === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.start === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.start === 0\"\n >\n <ng-container *ngTemplateOutlet=\"startColumn\"></ng-container>\n </div>\n <!-- Left Separator -->\n <div\n *ngIf=\"_leftColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_leftColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_leftColumnSeparator ? 'sap-icon--slim-arrow-' + _leftColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- Middle/Second Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.mid\"\n [style.visibility]=\"_columnLayout.mid === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.mid === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.mid === 0\"\n >\n <ng-container *ngTemplateOutlet=\"midColumn\"></ng-container>\n </div>\n <!-- Right Separator -->\n <div\n *ngIf=\"_rightColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleRightColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_rightColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_rightColumnSeparator ? 'sap-icon--slim-arrow-' + _rightColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- End/Right/Third Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.end\"\n [style.visibility]=\"_columnLayout.end === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.end === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.end === 0\"\n >\n <ng-container *ngTemplateOutlet=\"endColumn\"></ng-container>\n </div>\n</div>\n", styles: ["/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-flexible-column-layout{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:row;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-flexible-column-layout:after,.fd-flexible-column-layout:before{box-sizing:inherit;font-size:inherit}.fd-flexible-column-layout__separator{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:var(--fdFlexibleColumnLayout_Background_Solid);border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-width:1rem;padding:0;position:relative;width:1rem}.fd-flexible-column-layout__separator:after,.fd-flexible-column-layout__separator:before{-webkit-box-sizing:inherit;-webkit-transition:all .1s ease-in;-webkit-transform:translateX(-50%);box-sizing:inherit;content:\"\";display:block;font-size:inherit;height:4rem;left:50%;position:absolute;transform:translate(-50%);transition:all .1s ease-in;width:.0625rem}.fd-flexible-column-layout__separator:before{background-image:linear-gradient(to top,var(--fdFlexibleColumnLayout_Toggle_Image_Color),transparent);bottom:calc(50% + 1rem)}.fd-flexible-column-layout__separator:after{background-image:linear-gradient(to bottom,var(--fdFlexibleColumnLayout_Toggle_Image_Color),transparent);top:calc(50% + 1rem)}.fd-flexible-column-layout__separator.is-hover:after,.fd-flexible-column-layout__separator.is-hover:before,.fd-flexible-column-layout__separator:hover:after,.fd-flexible-column-layout__separator:hover:before{height:7rem}.fd-flexible-column-layout .fd-flexible-column-layout__button{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-transform:translate(-50%,-50%);height:2rem;justify-content:center;left:50%;min-width:1.5rem;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:1.5rem;z-index:2}.fd-flexible-column-layout__column{-webkit-box-sizing:border-box;-webkit-transition:width .56s cubic-bezier(.1,0,.05,1),visibility .56s ease-in;border:0;border-left:var(--fdFlexibleColumnLayout_Border);border-right:var(--fdFlexibleColumnLayout_Border);box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;min-width:20rem;padding:0;transition:width .56s cubic-bezier(.1,0,.05,1),visibility .56s ease-in}.fd-flexible-column-layout__column:after,.fd-flexible-column-layout__column:before{box-sizing:inherit;font-size:inherit}.fd-flexible-column-layout__column.is-first-child,.fd-flexible-column-layout__column:first-child{border-left:none}.fd-flexible-column-layout__column.is-last-child,.fd-flexible-column-layout__column:last-child{border-right:none}.fd-flexible-column-layout__column--hidden{border:none;min-width:0}.fd-flexible-column-layout--translucent .fd-flexible-column-layout__separator{background-color:var(--fdFlexibleColumnLayout_Background_Translucent)}.fd-flexible-column-layout--transparent .fd-flexible-column-layout__separator{background-color:var(--fdFlexibleColumnLayout_Background_Transparent)}.fd-button.fd-flexible-column-layout__button{z-index:1}.fd-flexible-column-layout__column{transition:width .56s cubic-bezier(.1,0,.05,1),visibility .1s ease-in;overflow:hidden}.fd-flexible-column-layout__column{min-width:0}\n"] }]
|
|
374
374
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
375
375
|
type: Inject,
|
|
376
376
|
args: [FD_FLEXIBLE_LAYOUT_CONFIG]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-flexible-column-layout.mjs","sources":["../../../../libs/core/src/lib/flexible-column-layout/constants.ts","../../../../libs/core/src/lib/flexible-column-layout/tokens.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.component.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.component.html","../../../../libs/core/src/lib/flexible-column-layout/provide-config.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.module.ts","../../../../libs/core/src/lib/flexible-column-layout/fundamental-ngx-core-flexible-column-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const ONE_COLUMN_START_FULL_SCREEN = 'OneColumnStartFullScreen';\nexport const ONE_COLUMN_MID_FULL_SCREEN = 'OneColumnMidFullScreen';\nexport const ONE_COLUMN_END_FULL_SCREEN = 'OneColumnEndFullScreen';\nexport const TWO_COLUMNS_START_EXPANDED = 'TwoColumnsStartExpanded';\nexport const TWO_COLUMNS_MID_EXPANDED = 'TwoColumnsMidExpanded';\nexport const TWO_COLUMNS_END_EXPANDED = 'TwoColumnsEndExpanded';\nexport const THREE_COLUMNS_MID_EXPANDED = 'ThreeColumnsMidExpanded';\nexport const THREE_COLUMNS_END_EXPANDED = 'ThreeColumnsEndExpanded';\nexport const THREE_COLUMNS_START_MINIMIZED = 'ThreeColumnsStartMinimized';\nexport const THREE_COLUMNS_END_MINIMIZED = 'ThreeColumnsEndMinimized';\n\nexport const SM_SCREEN_SIZE = 'sm';\nexport const MD_SCREEN_SIZE = 'md';\nexport const LG_SCREEN_SIZE = 'lg';\n\nexport type ScreenSize = 'sm' | 'md' | 'lg';\n\nexport type FlexibleColumnLayout =\n | 'OneColumnStartFullScreen'\n | 'OneColumnMidFullScreen'\n | 'OneColumnEndFullScreen'\n | 'TwoColumnsStartExpanded'\n | 'TwoColumnsMidExpanded'\n | 'TwoColumnsEndExpanded'\n | 'ThreeColumnsMidExpanded'\n | 'ThreeColumnsEndExpanded'\n | 'ThreeColumnsStartMinimized'\n | 'ThreeColumnsEndMinimized';\n\nexport type ColumnSeparatorValue = 'right' | 'left' | null;\n\nexport interface FlexibleColumnSettings {\n start: number;\n mid: number;\n end: number;\n}\n\nexport type FlexibleColumnLayoutDefinition = { [key in FlexibleColumnLayout]: FlexibleColumnSettings };\n\nexport interface FlexibleLayoutConfig {\n layouts: FlexibleColumnLayoutDefinition;\n}\n\nexport const DEFAULT_FLEXIBLE_LAYOUT_CONFIG: FlexibleLayoutConfig = {\n layouts: {\n OneColumnStartFullScreen: { start: 100, mid: 0, end: 0 },\n OneColumnMidFullScreen: { start: 0, mid: 100, end: 0 },\n OneColumnEndFullScreen: { start: 0, mid: 0, end: 100 },\n TwoColumnsStartExpanded: { start: 67, mid: 33, end: 0 },\n TwoColumnsMidExpanded: { start: 33, mid: 67, end: 0 },\n TwoColumnsEndExpanded: { start: 0, mid: 33, end: 67 },\n ThreeColumnsMidExpanded: { start: 25, mid: 50, end: 25 },\n ThreeColumnsEndExpanded: { start: 25, mid: 25, end: 50 },\n ThreeColumnsStartMinimized: { start: 0, mid: 67, end: 33 },\n ThreeColumnsEndMinimized: { start: 33, mid: 67, end: 0 }\n }\n};\n\nexport const FD_FLEXIBLE_LAYOUT_CONFIG = new InjectionToken<FlexibleLayoutConfig>('FdFlexibleLayoutConfig');\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT = new InjectionToken('FdFlexibleColumnLayoutComponent');\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport {\n ColumnSeparatorValue,\n FD_FLEXIBLE_LAYOUT_CONFIG,\n FlexibleColumnLayout,\n FlexibleColumnLayoutDefinition,\n FlexibleLayoutConfig,\n LG_SCREEN_SIZE,\n MD_SCREEN_SIZE,\n ONE_COLUMN_END_FULL_SCREEN,\n ONE_COLUMN_MID_FULL_SCREEN,\n ONE_COLUMN_START_FULL_SCREEN,\n SM_SCREEN_SIZE,\n ScreenSize,\n THREE_COLUMNS_END_EXPANDED,\n THREE_COLUMNS_END_MINIMIZED,\n THREE_COLUMNS_MID_EXPANDED,\n THREE_COLUMNS_START_MINIMIZED,\n TWO_COLUMNS_END_EXPANDED,\n TWO_COLUMNS_MID_EXPANDED,\n TWO_COLUMNS_START_EXPANDED\n} from './constants';\nimport { FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT } from './tokens';\n\n@Component({\n selector: 'fd-flexible-column-layout',\n templateUrl: './flexible-column-layout.component.html',\n styleUrls: ['./flexible-column-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT,\n useExisting: FlexibleColumnLayoutComponent\n }\n ],\n standalone: true,\n imports: [NgTemplateOutlet, NgIf, ButtonComponent, ContentDensityDirective]\n})\nexport class FlexibleColumnLayoutComponent implements AfterViewInit, OnChanges, OnDestroy, OnInit {\n /**\n * The template that provides the content of the first/start/left column\n */\n @ContentChild('startColumn')\n startColumn: TemplateRef<any>;\n\n /**\n * The template that provides the content of the middle column\n */\n @ContentChild('midColumn')\n midColumn: TemplateRef<any>;\n\n /**\n * The template that provides the content of the last/end/right column\n */\n @ContentChild('endColumn')\n endColumn: TemplateRef<any>;\n\n /**\n * The background design of the component\n * Options include: 'solid' | 'translucent' | 'transparent'\n * The default is set to 'solid'\n */\n @Input()\n backgroundDesign: 'solid' | 'translucent' | 'transparent' = 'solid';\n\n /**\n * The layout of the component\n * Options include: 'OneColumnStartFullScreen' | 'OneColumnMidFullScreen' |\n * 'OneColumnEndFullScreen' | 'TwoColumnsStartExpanded' | 'TwoColumnsMidExpanded' |\n * 'TwoColumnsEndExpanded' | 'ThreeColumnsMidExpanded' | 'ThreeColumnsEndExpanded' |\n * 'ThreeColumnsStartMinimized' | 'ThreeColumnsEndMinimized'\n */\n @Input()\n layout: FlexibleColumnLayout = ONE_COLUMN_START_FULL_SCREEN;\n\n /**\n * Mapping of the layout name and the column layout in %\n */\n @Input()\n layoutDefinitions: FlexibleColumnLayoutDefinition = this._config.layouts;\n\n /**\n * The event emitted on layout value change.\n */\n @Output()\n layoutChange: EventEmitter<FlexibleColumnLayout> = new EventEmitter<FlexibleColumnLayout>();\n\n /**\n * User defined break point for SM screens\n * Default (Fiori 3) value is 960\n */\n @Input()\n smBreakPoint = 960;\n\n /**\n * User-defined break point for LG screens\n * the default (Fiori 3) value is 1280\n */\n @Input()\n lgBreakPoint = 1280;\n\n /**\n * User-defined onResize function\n */\n @Input()\n customOnResizeFunction: () => void;\n\n /** aria-label for separator */\n @Input()\n separatorAriaLabel: string;\n\n /** title for expanded button */\n @Input()\n expandTitle: string;\n\n /** title for collapsed button */\n @Input()\n collapseTitle: string;\n\n /**\n * @hidden\n * left column separator value (between start and middle columns)\n * that specifies the direction of the arrow and\n * if the separator is visible\n * Options include: 'left', 'right' and null\n */\n _leftColumnSeparator: ColumnSeparatorValue = null;\n\n /**\n * @hidden\n * right column separator value (between middle and end columns)\n * that specifies the direction of the arrow and\n * if the separator is visible\n * Options include: 'left', 'right' and null\n */\n _rightColumnSeparator: ColumnSeparatorValue = null;\n\n /**\n * @hidden\n * allows to keep track of the previos layout\n * so we can go back to it on window resize\n */\n private _previousLayout: FlexibleColumnLayout = this.layout;\n\n /** @hidden */\n private _screenSize: ScreenSize = LG_SCREEN_SIZE;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /**\n * @hidden\n * the column layout representing the distribution of the width\n * between the first (start), the middle and the last(end) column\n */\n _columnLayout: { start: number; mid: number; end: number } = this.layoutDefinitions[this.layout];\n\n /**\n * @hidden\n * set to 'true' if the layout is changed to fullscreen on window resize\n * this will allow the layout to switch to previous mode on SM->MD transition\n * if a layout is set by the user to fullscreen, it should persist on window resize\n */\n private _responsiveFullscreenLayout = false;\n\n /** @hidden */\n constructor(@Inject(FD_FLEXIBLE_LAYOUT_CONFIG) private readonly _config: FlexibleLayoutConfig) {}\n\n /**\n * @hidden\n * function that handles the click events on the left separator\n * and updates the layout\n */\n _handleLeftColumnSeparatorClick(): void {\n switch (this.layout) {\n case TWO_COLUMNS_START_EXPANDED:\n this._updateCurrentLayout(TWO_COLUMNS_MID_EXPANDED);\n break;\n case TWO_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(TWO_COLUMNS_START_EXPANDED);\n break;\n case THREE_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n break;\n case THREE_COLUMNS_END_MINIMIZED:\n this._updateCurrentLayout(TWO_COLUMNS_START_EXPANDED);\n break;\n case THREE_COLUMNS_START_MINIMIZED:\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n break;\n }\n }\n\n /**\n * @hidden\n * function that handles the click events on the right separator\n * and updates the layout\n */\n _handleRightColumnSeparatorClick(): void {\n switch (this.layout) {\n case TWO_COLUMNS_END_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_START_MINIMIZED);\n break;\n case THREE_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_END_EXPANDED);\n break;\n case THREE_COLUMNS_END_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n break;\n case THREE_COLUMNS_END_MINIMIZED:\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n break;\n case THREE_COLUMNS_START_MINIMIZED:\n this._updateCurrentLayout(TWO_COLUMNS_END_EXPANDED);\n break;\n }\n }\n\n /**\n * @hidden\n * function to determine the screen size in 'sm' | 'md' | 'lg' | 'xl'\n * format depending on the window size in px\n */\n private _getScreenSize(size: number): ScreenSize {\n if (size > this.lgBreakPoint) {\n return LG_SCREEN_SIZE;\n } else if (size > this.smBreakPoint && size <= this.lgBreakPoint) {\n return MD_SCREEN_SIZE;\n } else {\n return SM_SCREEN_SIZE;\n }\n }\n\n /**\n * @hidden\n * handles the change of the layouts on reaching a break point\n */\n private _responsiveLayoutChangeHandler(): void {\n this._screenSize = this._getScreenSize(window.innerWidth);\n\n switch (this.layout) {\n case ONE_COLUMN_MID_FULL_SCREEN:\n case ONE_COLUMN_END_FULL_SCREEN: {\n if (\n this._screenSize !== SM_SCREEN_SIZE &&\n this.layout !== this._previousLayout &&\n this._responsiveFullscreenLayout\n ) {\n this._responsiveFullscreenLayout = false;\n this._updateCurrentLayout(this._previousLayout);\n }\n break;\n }\n\n case TWO_COLUMNS_START_EXPANDED:\n case TWO_COLUMNS_MID_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_MID_FULL_SCREEN);\n }\n break;\n }\n\n case TWO_COLUMNS_END_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_END_EXPANDED);\n }\n break;\n }\n\n case THREE_COLUMNS_START_MINIMIZED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n }\n break;\n }\n\n case THREE_COLUMNS_END_MINIMIZED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n }\n break;\n }\n\n case THREE_COLUMNS_MID_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === MD_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_START_MINIMIZED);\n }\n break;\n }\n\n case THREE_COLUMNS_END_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === MD_SCREEN_SIZE) {\n this._updateCurrentLayout(TWO_COLUMNS_END_EXPANDED);\n }\n break;\n }\n }\n }\n\n /**\n * @hidden\n * Listen on window resize and update the layout\n * call user defined custom function if provided\n */\n private _listenOnWindowResize(): void {\n if (this.customOnResizeFunction) {\n this.customOnResizeFunction();\n } else {\n this._subscriptions.add(\n fromEvent(window, 'resize')\n .pipe(debounceTime(100))\n .subscribe(() => this._responsiveLayoutChangeHandler())\n );\n }\n }\n\n /**\n * @hidden\n * determines if the left separator should be visible\n * and the value that will specify the direction of the arrow\n */\n private _getLeftColumnSeparatorValue(): ColumnSeparatorValue {\n switch (this.layout) {\n case TWO_COLUMNS_START_EXPANDED:\n return 'left';\n case TWO_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_END_MINIMIZED:\n case THREE_COLUMNS_START_MINIMIZED:\n return 'right';\n default:\n return null;\n }\n }\n\n /**\n * @hidden\n * determines if the right separator should be visible\n * and the value that will specify the direction of the arrow\n */\n private _getRightColumnSeparatorValue(): ColumnSeparatorValue {\n switch (this.layout) {\n case TWO_COLUMNS_END_EXPANDED:\n case THREE_COLUMNS_END_EXPANDED:\n return 'right';\n case THREE_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_END_MINIMIZED:\n case THREE_COLUMNS_START_MINIMIZED:\n return 'left';\n default:\n return null;\n }\n }\n\n /**\n * @hidden\n * updates the column layout based on the layout name\n * makes a call to determine the new value of the left separator\n * makes a call to determine the new value of the right separator\n */\n private _updateColumnLayoutParameters(): void {\n this._columnLayout = this.layoutDefinitions[this.layout];\n this._leftColumnSeparator = this._getLeftColumnSeparatorValue();\n this._rightColumnSeparator = this._getRightColumnSeparatorValue();\n }\n\n /**\n * @hidden\n * updates the layout\n * emits an event\n * makes a call to the helper function that will update the column layout and the separators\n */\n private _updateCurrentLayout(newLayout: FlexibleColumnLayout): void {\n this.layout = newLayout;\n this._updateColumnLayoutParameters();\n\n // setTimeout fixes \"ExpressionChangedAfterItHasBeenCheckedError\"\n setTimeout(() => {\n this.layoutChange.emit(this.layout);\n });\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._updateColumnLayoutParameters();\n this._previousLayout = this.layout;\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._screenSize = this._getScreenSize(window.innerWidth);\n this._listenOnWindowResize();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this._updateColumnLayoutParameters();\n\n if (changes && changes.layout.previousValue) {\n this._previousLayout = changes.layout.previousValue;\n }\n\n if (changes && changes.layout) {\n this._responsiveLayoutChangeHandler();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","<div\n class=\"fd-flexible-column-layout\"\n [class.fd-flexible-column-layout--translucent]=\"backgroundDesign === 'translucent'\"\n [class.fd-flexible-column-layout--transparent]=\"backgroundDesign === 'transparent'\"\n>\n <!-- Start/Left/First Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.start\"\n [style.visibility]=\"_columnLayout.start === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.start === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.start === 0\"\n >\n <ng-container *ngTemplateOutlet=\"startColumn\"></ng-container>\n </div>\n <!-- Left Separator -->\n <div\n *ngIf=\"_leftColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_leftColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_leftColumnSeparator ? 'sap-icon--slim-arrow-' + _leftColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- Middle/Second Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.mid\"\n [style.visibility]=\"_columnLayout.mid === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.mid === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.mid === 0\"\n >\n <ng-container *ngTemplateOutlet=\"midColumn\"></ng-container>\n </div>\n <!-- Right Separator -->\n <div\n *ngIf=\"_rightColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleRightColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_rightColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_rightColumnSeparator ? 'sap-icon--slim-arrow-' + _rightColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- End/Right/Third Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.end\"\n [style.visibility]=\"_columnLayout.end === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.end === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.end === 0\"\n >\n <ng-container *ngTemplateOutlet=\"endColumn\"></ng-container>\n </div>\n</div>\n","import { Provider } from '@angular/core';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { DEFAULT_FLEXIBLE_LAYOUT_CONFIG, FD_FLEXIBLE_LAYOUT_CONFIG, FlexibleLayoutConfig } from './constants';\n\n/**\n * Helper function to provide custom configuration for Flexible Column Layout component.\n * @param config\n * @returns\n */\nexport function provideFlexibleColumnLayoutConfig(config: Partial<FlexibleLayoutConfig>): Provider[] {\n config = merge(cloneDeep(DEFAULT_FLEXIBLE_LAYOUT_CONFIG), cloneDeep(config));\n return [\n {\n provide: FD_FLEXIBLE_LAYOUT_CONFIG,\n useValue: config\n }\n ];\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DEFAULT_FLEXIBLE_LAYOUT_CONFIG, FD_FLEXIBLE_LAYOUT_CONFIG, FlexibleLayoutConfig } from './constants';\nimport { FlexibleColumnLayoutComponent } from './flexible-column-layout.component';\nimport { provideFlexibleColumnLayoutConfig } from './provide-config';\n\n/**\n * Adds Flexible Column Layout functionality to your application.\n *\n * Can be imported in two ways:\n * * Plain `FlexibleColumnLayoutModule` with default configuration\n * * With `withConfig()` method which allows passing custom default configuration.\n */\n@NgModule({\n imports: [FlexibleColumnLayoutComponent],\n exports: [FlexibleColumnLayoutComponent],\n providers: [\n {\n provide: FD_FLEXIBLE_LAYOUT_CONFIG,\n useValue: DEFAULT_FLEXIBLE_LAYOUT_CONFIG\n }\n ]\n})\nexport class FlexibleColumnLayoutModule {\n /**\n * Allows configuring module on a global level with custom configuration.\n * @param config User's custom configuration.\n */\n static withConfig(config: Partial<FlexibleLayoutConfig>): ModuleWithProviders<FlexibleColumnLayoutModule> {\n return {\n ngModule: FlexibleColumnLayoutModule,\n providers: provideFlexibleColumnLayoutConfig(config)\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-flexible-column-layout.mjs","sources":["../../../../libs/core/src/lib/flexible-column-layout/constants.ts","../../../../libs/core/src/lib/flexible-column-layout/tokens.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.component.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.component.html","../../../../libs/core/src/lib/flexible-column-layout/provide-config.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.module.ts","../../../../libs/core/src/lib/flexible-column-layout/fundamental-ngx-core-flexible-column-layout.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const ONE_COLUMN_START_FULL_SCREEN = 'OneColumnStartFullScreen';\nexport const ONE_COLUMN_MID_FULL_SCREEN = 'OneColumnMidFullScreen';\nexport const ONE_COLUMN_END_FULL_SCREEN = 'OneColumnEndFullScreen';\nexport const TWO_COLUMNS_START_EXPANDED = 'TwoColumnsStartExpanded';\nexport const TWO_COLUMNS_MID_EXPANDED = 'TwoColumnsMidExpanded';\nexport const TWO_COLUMNS_END_EXPANDED = 'TwoColumnsEndExpanded';\nexport const THREE_COLUMNS_MID_EXPANDED = 'ThreeColumnsMidExpanded';\nexport const THREE_COLUMNS_END_EXPANDED = 'ThreeColumnsEndExpanded';\nexport const THREE_COLUMNS_START_MINIMIZED = 'ThreeColumnsStartMinimized';\nexport const THREE_COLUMNS_END_MINIMIZED = 'ThreeColumnsEndMinimized';\n\nexport const SM_SCREEN_SIZE = 'sm';\nexport const MD_SCREEN_SIZE = 'md';\nexport const LG_SCREEN_SIZE = 'lg';\n\nexport type ScreenSize = 'sm' | 'md' | 'lg';\n\nexport type FlexibleColumnLayout =\n | 'OneColumnStartFullScreen'\n | 'OneColumnMidFullScreen'\n | 'OneColumnEndFullScreen'\n | 'TwoColumnsStartExpanded'\n | 'TwoColumnsMidExpanded'\n | 'TwoColumnsEndExpanded'\n | 'ThreeColumnsMidExpanded'\n | 'ThreeColumnsEndExpanded'\n | 'ThreeColumnsStartMinimized'\n | 'ThreeColumnsEndMinimized';\n\nexport type ColumnSeparatorValue = 'right' | 'left' | null;\n\nexport interface FlexibleColumnSettings {\n start: number;\n mid: number;\n end: number;\n}\n\nexport type FlexibleColumnLayoutDefinition = { [key in FlexibleColumnLayout]: FlexibleColumnSettings };\n\nexport interface FlexibleLayoutConfig {\n layouts: FlexibleColumnLayoutDefinition;\n}\n\nexport const DEFAULT_FLEXIBLE_LAYOUT_CONFIG: FlexibleLayoutConfig = {\n layouts: {\n OneColumnStartFullScreen: { start: 100, mid: 0, end: 0 },\n OneColumnMidFullScreen: { start: 0, mid: 100, end: 0 },\n OneColumnEndFullScreen: { start: 0, mid: 0, end: 100 },\n TwoColumnsStartExpanded: { start: 67, mid: 33, end: 0 },\n TwoColumnsMidExpanded: { start: 33, mid: 67, end: 0 },\n TwoColumnsEndExpanded: { start: 0, mid: 33, end: 67 },\n ThreeColumnsMidExpanded: { start: 25, mid: 50, end: 25 },\n ThreeColumnsEndExpanded: { start: 25, mid: 25, end: 50 },\n ThreeColumnsStartMinimized: { start: 0, mid: 67, end: 33 },\n ThreeColumnsEndMinimized: { start: 33, mid: 67, end: 0 }\n }\n};\n\nexport const FD_FLEXIBLE_LAYOUT_CONFIG = new InjectionToken<FlexibleLayoutConfig>('FdFlexibleLayoutConfig');\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT = new InjectionToken('FdFlexibleColumnLayoutComponent');\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport {\n ColumnSeparatorValue,\n FD_FLEXIBLE_LAYOUT_CONFIG,\n FlexibleColumnLayout,\n FlexibleColumnLayoutDefinition,\n FlexibleLayoutConfig,\n LG_SCREEN_SIZE,\n MD_SCREEN_SIZE,\n ONE_COLUMN_END_FULL_SCREEN,\n ONE_COLUMN_MID_FULL_SCREEN,\n ONE_COLUMN_START_FULL_SCREEN,\n SM_SCREEN_SIZE,\n ScreenSize,\n THREE_COLUMNS_END_EXPANDED,\n THREE_COLUMNS_END_MINIMIZED,\n THREE_COLUMNS_MID_EXPANDED,\n THREE_COLUMNS_START_MINIMIZED,\n TWO_COLUMNS_END_EXPANDED,\n TWO_COLUMNS_MID_EXPANDED,\n TWO_COLUMNS_START_EXPANDED\n} from './constants';\nimport { FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT } from './tokens';\n\n@Component({\n selector: 'fd-flexible-column-layout',\n templateUrl: './flexible-column-layout.component.html',\n styleUrls: ['./flexible-column-layout.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: FD_FLEXIBLE_COLUMN_LAYOUT_COMPONENT,\n useExisting: FlexibleColumnLayoutComponent\n }\n ],\n standalone: true,\n imports: [NgTemplateOutlet, NgIf, ButtonComponent, ContentDensityDirective]\n})\nexport class FlexibleColumnLayoutComponent implements AfterViewInit, OnChanges, OnDestroy, OnInit {\n /**\n * The template that provides the content of the first/start/left column\n */\n @ContentChild('startColumn')\n startColumn: TemplateRef<any>;\n\n /**\n * The template that provides the content of the middle column\n */\n @ContentChild('midColumn')\n midColumn: TemplateRef<any>;\n\n /**\n * The template that provides the content of the last/end/right column\n */\n @ContentChild('endColumn')\n endColumn: TemplateRef<any>;\n\n /**\n * The background design of the component\n * Options include: 'solid' | 'translucent' | 'transparent'\n * The default is set to 'solid'\n */\n @Input()\n backgroundDesign: 'solid' | 'translucent' | 'transparent' = 'solid';\n\n /**\n * The layout of the component\n * Options include: 'OneColumnStartFullScreen' | 'OneColumnMidFullScreen' |\n * 'OneColumnEndFullScreen' | 'TwoColumnsStartExpanded' | 'TwoColumnsMidExpanded' |\n * 'TwoColumnsEndExpanded' | 'ThreeColumnsMidExpanded' | 'ThreeColumnsEndExpanded' |\n * 'ThreeColumnsStartMinimized' | 'ThreeColumnsEndMinimized'\n */\n @Input()\n layout: FlexibleColumnLayout = ONE_COLUMN_START_FULL_SCREEN;\n\n /**\n * Mapping of the layout name and the column layout in %\n */\n @Input()\n layoutDefinitions: FlexibleColumnLayoutDefinition = this._config.layouts;\n\n /**\n * The event emitted on layout value change.\n */\n @Output()\n layoutChange: EventEmitter<FlexibleColumnLayout> = new EventEmitter<FlexibleColumnLayout>();\n\n /**\n * User defined break point for SM screens\n * Default (Fiori 3) value is 960\n */\n @Input()\n smBreakPoint = 960;\n\n /**\n * User-defined break point for LG screens\n * the default (Fiori 3) value is 1280\n */\n @Input()\n lgBreakPoint = 1280;\n\n /**\n * User-defined onResize function\n */\n @Input()\n customOnResizeFunction: () => void;\n\n /** aria-label for separator */\n @Input()\n separatorAriaLabel: string;\n\n /** title for expanded button */\n @Input()\n expandTitle: string;\n\n /** title for collapsed button */\n @Input()\n collapseTitle: string;\n\n /**\n * @hidden\n * left column separator value (between start and middle columns)\n * that specifies the direction of the arrow and\n * if the separator is visible\n * Options include: 'left', 'right' and null\n */\n _leftColumnSeparator: ColumnSeparatorValue = null;\n\n /**\n * @hidden\n * right column separator value (between middle and end columns)\n * that specifies the direction of the arrow and\n * if the separator is visible\n * Options include: 'left', 'right' and null\n */\n _rightColumnSeparator: ColumnSeparatorValue = null;\n\n /**\n * @hidden\n * allows to keep track of the previos layout\n * so we can go back to it on window resize\n */\n private _previousLayout: FlexibleColumnLayout = this.layout;\n\n /** @hidden */\n private _screenSize: ScreenSize = LG_SCREEN_SIZE;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /**\n * @hidden\n * the column layout representing the distribution of the width\n * between the first (start), the middle and the last(end) column\n */\n _columnLayout: { start: number; mid: number; end: number } = this.layoutDefinitions[this.layout];\n\n /**\n * @hidden\n * set to 'true' if the layout is changed to fullscreen on window resize\n * this will allow the layout to switch to previous mode on SM->MD transition\n * if a layout is set by the user to fullscreen, it should persist on window resize\n */\n private _responsiveFullscreenLayout = false;\n\n /** @hidden */\n constructor(@Inject(FD_FLEXIBLE_LAYOUT_CONFIG) private readonly _config: FlexibleLayoutConfig) {}\n\n /**\n * @hidden\n * function that handles the click events on the left separator\n * and updates the layout\n */\n _handleLeftColumnSeparatorClick(): void {\n switch (this.layout) {\n case TWO_COLUMNS_START_EXPANDED:\n this._updateCurrentLayout(TWO_COLUMNS_MID_EXPANDED);\n break;\n case TWO_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(TWO_COLUMNS_START_EXPANDED);\n break;\n case THREE_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n break;\n case THREE_COLUMNS_END_MINIMIZED:\n this._updateCurrentLayout(TWO_COLUMNS_START_EXPANDED);\n break;\n case THREE_COLUMNS_START_MINIMIZED:\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n break;\n }\n }\n\n /**\n * @hidden\n * function that handles the click events on the right separator\n * and updates the layout\n */\n _handleRightColumnSeparatorClick(): void {\n switch (this.layout) {\n case TWO_COLUMNS_END_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_START_MINIMIZED);\n break;\n case THREE_COLUMNS_MID_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_END_EXPANDED);\n break;\n case THREE_COLUMNS_END_EXPANDED:\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n break;\n case THREE_COLUMNS_END_MINIMIZED:\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n break;\n case THREE_COLUMNS_START_MINIMIZED:\n this._updateCurrentLayout(TWO_COLUMNS_END_EXPANDED);\n break;\n }\n }\n\n /**\n * @hidden\n * function to determine the screen size in 'sm' | 'md' | 'lg' | 'xl'\n * format depending on the window size in px\n */\n private _getScreenSize(size: number): ScreenSize {\n if (size > this.lgBreakPoint) {\n return LG_SCREEN_SIZE;\n } else if (size > this.smBreakPoint && size <= this.lgBreakPoint) {\n return MD_SCREEN_SIZE;\n } else {\n return SM_SCREEN_SIZE;\n }\n }\n\n /**\n * @hidden\n * handles the change of the layouts on reaching a break point\n */\n private _responsiveLayoutChangeHandler(): void {\n this._screenSize = this._getScreenSize(window.innerWidth);\n\n switch (this.layout) {\n case ONE_COLUMN_MID_FULL_SCREEN:\n case ONE_COLUMN_END_FULL_SCREEN: {\n if (\n this._screenSize !== SM_SCREEN_SIZE &&\n this.layout !== this._previousLayout &&\n this._responsiveFullscreenLayout\n ) {\n this._responsiveFullscreenLayout = false;\n this._updateCurrentLayout(this._previousLayout);\n }\n break;\n }\n\n case TWO_COLUMNS_START_EXPANDED:\n case TWO_COLUMNS_MID_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_MID_FULL_SCREEN);\n }\n break;\n }\n\n case TWO_COLUMNS_END_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_END_EXPANDED);\n }\n break;\n }\n\n case THREE_COLUMNS_START_MINIMIZED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_MID_EXPANDED);\n }\n break;\n }\n\n case THREE_COLUMNS_END_MINIMIZED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === LG_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_END_MINIMIZED);\n }\n break;\n }\n\n case THREE_COLUMNS_MID_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === MD_SCREEN_SIZE) {\n this._updateCurrentLayout(THREE_COLUMNS_START_MINIMIZED);\n }\n break;\n }\n\n case THREE_COLUMNS_END_EXPANDED: {\n if (this._screenSize === SM_SCREEN_SIZE) {\n this._responsiveFullscreenLayout = true;\n this._updateCurrentLayout(ONE_COLUMN_END_FULL_SCREEN);\n }\n\n if (this._screenSize === MD_SCREEN_SIZE) {\n this._updateCurrentLayout(TWO_COLUMNS_END_EXPANDED);\n }\n break;\n }\n }\n }\n\n /**\n * @hidden\n * Listen on window resize and update the layout\n * call user defined custom function if provided\n */\n private _listenOnWindowResize(): void {\n if (this.customOnResizeFunction) {\n this.customOnResizeFunction();\n } else {\n this._subscriptions.add(\n fromEvent(window, 'resize')\n .pipe(debounceTime(100))\n .subscribe(() => this._responsiveLayoutChangeHandler())\n );\n }\n }\n\n /**\n * @hidden\n * determines if the left separator should be visible\n * and the value that will specify the direction of the arrow\n */\n private _getLeftColumnSeparatorValue(): ColumnSeparatorValue {\n switch (this.layout) {\n case TWO_COLUMNS_START_EXPANDED:\n return 'left';\n case TWO_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_END_MINIMIZED:\n case THREE_COLUMNS_START_MINIMIZED:\n return 'right';\n default:\n return null;\n }\n }\n\n /**\n * @hidden\n * determines if the right separator should be visible\n * and the value that will specify the direction of the arrow\n */\n private _getRightColumnSeparatorValue(): ColumnSeparatorValue {\n switch (this.layout) {\n case TWO_COLUMNS_END_EXPANDED:\n case THREE_COLUMNS_END_EXPANDED:\n return 'right';\n case THREE_COLUMNS_MID_EXPANDED:\n case THREE_COLUMNS_END_MINIMIZED:\n case THREE_COLUMNS_START_MINIMIZED:\n return 'left';\n default:\n return null;\n }\n }\n\n /**\n * @hidden\n * updates the column layout based on the layout name\n * makes a call to determine the new value of the left separator\n * makes a call to determine the new value of the right separator\n */\n private _updateColumnLayoutParameters(): void {\n this._columnLayout = this.layoutDefinitions[this.layout];\n this._leftColumnSeparator = this._getLeftColumnSeparatorValue();\n this._rightColumnSeparator = this._getRightColumnSeparatorValue();\n }\n\n /**\n * @hidden\n * updates the layout\n * emits an event\n * makes a call to the helper function that will update the column layout and the separators\n */\n private _updateCurrentLayout(newLayout: FlexibleColumnLayout): void {\n this.layout = newLayout;\n this._updateColumnLayoutParameters();\n\n // setTimeout fixes \"ExpressionChangedAfterItHasBeenCheckedError\"\n setTimeout(() => {\n this.layoutChange.emit(this.layout);\n });\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._updateColumnLayoutParameters();\n this._previousLayout = this.layout;\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._screenSize = this._getScreenSize(window.innerWidth);\n this._listenOnWindowResize();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this._updateColumnLayoutParameters();\n\n if (changes && changes.layout.previousValue) {\n this._previousLayout = changes.layout.previousValue;\n }\n\n if (changes && changes.layout) {\n this._responsiveLayoutChangeHandler();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","<div\n class=\"fd-flexible-column-layout\"\n [class.fd-flexible-column-layout--translucent]=\"backgroundDesign === 'translucent'\"\n [class.fd-flexible-column-layout--transparent]=\"backgroundDesign === 'transparent'\"\n>\n <!-- Start/Left/First Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.start\"\n [style.visibility]=\"_columnLayout.start === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.start === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.start === 0\"\n >\n <ng-container *ngTemplateOutlet=\"startColumn\"></ng-container>\n </div>\n <!-- Left Separator -->\n <div\n *ngIf=\"_leftColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_leftColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_leftColumnSeparator ? 'sap-icon--slim-arrow-' + _leftColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- Middle/Second Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.mid\"\n [style.visibility]=\"_columnLayout.mid === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.mid === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.mid === 0\"\n >\n <ng-container *ngTemplateOutlet=\"midColumn\"></ng-container>\n </div>\n <!-- Right Separator -->\n <div\n *ngIf=\"_rightColumnSeparator\"\n class=\"fd-flexible-column-layout__separator\"\n [attr.aria-label]=\"separatorAriaLabel\"\n (click)=\"_handleRightColumnSeparatorClick()\"\n >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_rightColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n >\n <i\n [class]=\"_rightColumnSeparator ? 'sap-icon--slim-arrow-' + _rightColumnSeparator : ''\"\n role=\"presentation\"\n ></i>\n </button>\n </div>\n <!-- End/Right/Third Column -->\n <div\n class=\"fd-flexible-column-layout__column\"\n [style.width.%]=\"_columnLayout.end\"\n [style.visibility]=\"_columnLayout.end === 0 ? 'hidden' : 'visible'\"\n [style.height]=\"_columnLayout.end === 0 ? '0' : 'auto'\"\n [attr.aria-hidden]=\"_columnLayout.end === 0\"\n >\n <ng-container *ngTemplateOutlet=\"endColumn\"></ng-container>\n </div>\n</div>\n","import { Provider } from '@angular/core';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { DEFAULT_FLEXIBLE_LAYOUT_CONFIG, FD_FLEXIBLE_LAYOUT_CONFIG, FlexibleLayoutConfig } from './constants';\n\n/**\n * Helper function to provide custom configuration for Flexible Column Layout component.\n * @param config\n * @returns\n */\nexport function provideFlexibleColumnLayoutConfig(config: Partial<FlexibleLayoutConfig>): Provider[] {\n config = merge(cloneDeep(DEFAULT_FLEXIBLE_LAYOUT_CONFIG), cloneDeep(config));\n return [\n {\n provide: FD_FLEXIBLE_LAYOUT_CONFIG,\n useValue: config\n }\n ];\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DEFAULT_FLEXIBLE_LAYOUT_CONFIG, FD_FLEXIBLE_LAYOUT_CONFIG, FlexibleLayoutConfig } from './constants';\nimport { FlexibleColumnLayoutComponent } from './flexible-column-layout.component';\nimport { provideFlexibleColumnLayoutConfig } from './provide-config';\n\n/**\n * Adds Flexible Column Layout functionality to your application.\n *\n * Can be imported in two ways:\n * * Plain `FlexibleColumnLayoutModule` with default configuration\n * * With `withConfig()` method which allows passing custom default configuration.\n */\n@NgModule({\n imports: [FlexibleColumnLayoutComponent],\n exports: [FlexibleColumnLayoutComponent],\n providers: [\n {\n provide: FD_FLEXIBLE_LAYOUT_CONFIG,\n useValue: DEFAULT_FLEXIBLE_LAYOUT_CONFIG\n }\n ]\n})\nexport class FlexibleColumnLayoutModule {\n /**\n * Allows configuring module on a global level with custom configuration.\n * @param config User's custom configuration.\n */\n static withConfig(config: Partial<FlexibleLayoutConfig>): ModuleWithProviders<FlexibleColumnLayoutModule> {\n return {\n ngModule: FlexibleColumnLayoutModule,\n providers: provideFlexibleColumnLayoutConfig(config)\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|