@fundamental-ngx/core 0.36.0-rc.21 → 0.36.0-rc.22

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.
Files changed (136) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/breadcrumb.component.d.ts +6 -3
  8. package/breadcrumb/esm2020/breadcrumb.component.mjs +13 -5
  9. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +14 -6
  10. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  11. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +14 -6
  12. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  13. package/breadcrumb/package.json +1 -1
  14. package/busy-indicator/package.json +1 -1
  15. package/button/package.json +1 -1
  16. package/calendar/package.json +1 -1
  17. package/card/package.json +1 -1
  18. package/carousel/package.json +1 -1
  19. package/checkbox/package.json +1 -1
  20. package/combobox/package.json +1 -1
  21. package/content-density/package.json +2 -2
  22. package/date-picker/package.json +1 -1
  23. package/datetime/package.json +1 -1
  24. package/datetime-picker/package.json +1 -1
  25. package/dialog/package.json +1 -1
  26. package/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.d.ts +7 -1
  27. package/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.d.ts +3 -1
  28. package/dynamic-page/dynamic-page.service.d.ts +2 -0
  29. package/dynamic-page/esm2020/dynamic-page-header/actions/dynamic-page-global-actions.component.mjs +6 -3
  30. package/dynamic-page/esm2020/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +19 -5
  31. package/dynamic-page/esm2020/dynamic-page-header/header/dynamic-page-header.component.mjs +8 -4
  32. package/dynamic-page/esm2020/dynamic-page-header/subheader/dynamic-page-subheader.component.mjs +3 -3
  33. package/dynamic-page/esm2020/dynamic-page.service.mjs +3 -1
  34. package/dynamic-page/fesm2015/fundamental-ngx-core-dynamic-page.mjs +50 -30
  35. package/dynamic-page/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  36. package/dynamic-page/fesm2020/fundamental-ngx-core-dynamic-page.mjs +50 -30
  37. package/dynamic-page/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  38. package/dynamic-page/package.json +1 -1
  39. package/dynamic-side-content/package.json +1 -1
  40. package/esm2020/breadcrumb/breadcrumb.component.mjs +13 -5
  41. package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-global-actions.component.mjs +6 -3
  42. package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +19 -5
  43. package/esm2020/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +8 -4
  44. package/esm2020/dynamic-page/dynamic-page-header/subheader/dynamic-page-subheader.component.mjs +3 -3
  45. package/esm2020/dynamic-page/dynamic-page.service.mjs +3 -1
  46. package/esm2020/flexible-column-layout/flexible-column-layout.component.mjs +9 -3
  47. package/facets/package.json +1 -1
  48. package/feed-input/package.json +1 -1
  49. package/feed-list-item/package.json +1 -1
  50. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +14 -6
  51. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  52. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +50 -30
  53. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  54. package/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs +8 -2
  55. package/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
  56. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +14 -6
  57. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  58. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +50 -30
  59. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  60. package/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs +8 -2
  61. package/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
  62. package/file-uploader/package.json +1 -1
  63. package/fixed-card-layout/package.json +1 -1
  64. package/flexible-column-layout/esm2020/flexible-column-layout.component.mjs +9 -3
  65. package/flexible-column-layout/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs +8 -2
  66. package/flexible-column-layout/fesm2015/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
  67. package/flexible-column-layout/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs +8 -2
  68. package/flexible-column-layout/fesm2020/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
  69. package/flexible-column-layout/flexible-column-layout.component.d.ts +7 -1
  70. package/flexible-column-layout/package.json +1 -1
  71. package/form/package.json +1 -1
  72. package/formatted-text/package.json +1 -1
  73. package/grid-list/package.json +1 -1
  74. package/icon/package.json +1 -1
  75. package/illustrated-message/package.json +1 -1
  76. package/infinite-scroll/package.json +1 -1
  77. package/info-label/package.json +1 -1
  78. package/inline-help/package.json +1 -1
  79. package/input-group/package.json +1 -1
  80. package/layout-grid/package.json +1 -1
  81. package/layout-panel/package.json +1 -1
  82. package/link/package.json +1 -1
  83. package/list/package.json +1 -1
  84. package/menu/package.json +1 -1
  85. package/message-box/package.json +1 -1
  86. package/message-strip/package.json +1 -1
  87. package/message-toast/package.json +1 -1
  88. package/micro-process-flow/package.json +1 -1
  89. package/mobile-mode/package.json +1 -1
  90. package/multi-input/package.json +1 -1
  91. package/nested-list/package.json +1 -1
  92. package/notification/package.json +1 -1
  93. package/object-identifier/package.json +1 -1
  94. package/object-marker/package.json +1 -1
  95. package/object-number/package.json +1 -1
  96. package/object-status/package.json +1 -1
  97. package/overflow-layout/package.json +4 -4
  98. package/package.json +2 -2
  99. package/pagination/package.json +1 -1
  100. package/panel/package.json +1 -1
  101. package/popover/package.json +1 -1
  102. package/product-switch/package.json +1 -1
  103. package/progress-indicator/package.json +1 -1
  104. package/quick-view/package.json +1 -1
  105. package/radio/package.json +1 -1
  106. package/rating-indicator/package.json +1 -1
  107. package/resizable-card-layout/package.json +1 -1
  108. package/scroll-spy/package.json +1 -1
  109. package/scrollbar/package.json +1 -1
  110. package/segmented-button/package.json +1 -1
  111. package/select/package.json +1 -1
  112. package/shared/package.json +1 -1
  113. package/shellbar/package.json +1 -1
  114. package/side-navigation/package.json +1 -1
  115. package/slider/package.json +1 -1
  116. package/split-button/package.json +1 -1
  117. package/splitter/package.json +1 -1
  118. package/status-indicator/package.json +1 -1
  119. package/step-input/package.json +1 -1
  120. package/switch/package.json +1 -1
  121. package/table/package.json +1 -1
  122. package/tabs/package.json +1 -1
  123. package/text/package.json +1 -1
  124. package/theming/package.json +1 -1
  125. package/tile/package.json +1 -1
  126. package/time/package.json +1 -1
  127. package/time-picker/package.json +1 -1
  128. package/timeline/package.json +1 -1
  129. package/title/package.json +1 -1
  130. package/token/package.json +1 -1
  131. package/toolbar/package.json +1 -1
  132. package/tree/package.json +1 -1
  133. package/upload-collection/package.json +1 -1
  134. package/utils/package.json +1 -1
  135. package/vertical-navigation/package.json +1 -1
  136. package/wizard/package.json +1 -1
@@ -356,10 +356,10 @@ class FlexibleColumnLayoutComponent {
356
356
  }
357
357
  }
358
358
  FlexibleColumnLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: FlexibleColumnLayoutComponent, deps: [{ token: FD_FLEXIBLE_LAYOUT_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
359
- FlexibleColumnLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: FlexibleColumnLayoutComponent, selector: "fd-flexible-column-layout", inputs: { backgroundDesign: "backgroundDesign", layout: "layout", layoutDefinitions: "layoutDefinitions", smBreakPoint: "smBreakPoint", lgBreakPoint: "lgBreakPoint", customOnResizeFunction: "customOnResizeFunction" }, outputs: { layoutChange: "layoutChange" }, 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 *ngIf=\"_leftColumnSeparator\" class=\"fd-flexible-column-layout__separator\">\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n ariaLabel=\"Expand\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\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 *ngIf=\"_rightColumnSeparator\" class=\"fd-flexible-column-layout__separator\">\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n ariaLabel=\"Expand\"\n (click)=\"_handleRightColumnSeparatorClick()\"\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.24.4\n * Copyright (c) 2022 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;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;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;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:first-child{border-left:none;margin-left:0}.fd-flexible-column-layout__column:last-child{border-right:none;margin-bottom:0;margin-right:0}.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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i3.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 });
359
+ FlexibleColumnLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: FlexibleColumnLayoutComponent, selector: "fd-flexible-column-layout", inputs: { backgroundDesign: "backgroundDesign", layout: "layout", layoutDefinitions: "layoutDefinitions", smBreakPoint: "smBreakPoint", lgBreakPoint: "lgBreakPoint", customOnResizeFunction: "customOnResizeFunction", separatorAriaLabel: "separatorAriaLabel", expandTitle: "expandTitle", collapseTitle: "collapseTitle" }, outputs: { layoutChange: "layoutChange" }, 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 >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_leftColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\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 >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_rightColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n (click)=\"_handleRightColumnSeparatorClick()\"\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.24.4\n * Copyright (c) 2022 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;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;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;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:first-child{border-left:none;margin-left:0}.fd-flexible-column-layout__column:last-child{border-right:none;margin-bottom:0;margin-right:0}.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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: i3.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 });
360
360
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: FlexibleColumnLayoutComponent, decorators: [{
361
361
  type: Component,
362
- args: [{ selector: 'fd-flexible-column-layout', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, 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 *ngIf=\"_leftColumnSeparator\" class=\"fd-flexible-column-layout__separator\">\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n ariaLabel=\"Expand\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\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 *ngIf=\"_rightColumnSeparator\" class=\"fd-flexible-column-layout__separator\">\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n ariaLabel=\"Expand\"\n (click)=\"_handleRightColumnSeparatorClick()\"\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.24.4\n * Copyright (c) 2022 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;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;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;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:first-child{border-left:none;margin-left:0}.fd-flexible-column-layout__column:last-child{border-right:none;margin-bottom:0;margin-right:0}.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"] }]
362
+ args: [{ selector: 'fd-flexible-column-layout', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, 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 >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_leftColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\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 >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_rightColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n (click)=\"_handleRightColumnSeparatorClick()\"\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.24.4\n * Copyright (c) 2022 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;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;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;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:first-child{border-left:none;margin-left:0}.fd-flexible-column-layout__column:last-child{border-right:none;margin-bottom:0;margin-right:0}.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"] }]
363
363
  }], ctorParameters: function () {
364
364
  return [{ type: undefined, decorators: [{
365
365
  type: Inject,
@@ -388,6 +388,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
388
388
  type: Input
389
389
  }], customOnResizeFunction: [{
390
390
  type: Input
391
+ }], separatorAriaLabel: [{
392
+ type: Input
393
+ }], expandTitle: [{
394
+ type: Input
395
+ }], collapseTitle: [{
396
+ type: Input
391
397
  }] } });
392
398
 
393
399
  /**
@@ -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/flexible-column-layout.component.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.component.html","../../../../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 {\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 { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport {\n ColumnSeparatorValue,\n FD_FLEXIBLE_LAYOUT_CONFIG,\n FlexibleLayoutConfig,\n FlexibleColumnLayout,\n FlexibleColumnLayoutDefinition,\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 ScreenSize,\n SM_SCREEN_SIZE,\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';\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})\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 /**\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 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 *ngIf=\"_leftColumnSeparator\" class=\"fd-flexible-column-layout__separator\">\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n ariaLabel=\"Expand\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\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 *ngIf=\"_rightColumnSeparator\" class=\"fd-flexible-column-layout__separator\">\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n ariaLabel=\"Expand\"\n (click)=\"_handleRightColumnSeparatorClick()\"\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 { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { DEFAULT_FLEXIBLE_LAYOUT_CONFIG, FD_FLEXIBLE_LAYOUT_CONFIG, FlexibleLayoutConfig } from './constants';\nimport { FlexibleColumnLayoutComponent } from './flexible-column-layout.component';\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 declarations: [FlexibleColumnLayoutComponent],\n imports: [CommonModule, ButtonModule],\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 config = merge(cloneDeep(DEFAULT_FLEXIBLE_LAYOUT_CONFIG), cloneDeep(config));\n return {\n ngModule: FlexibleColumnLayoutModule,\n providers: [\n {\n provide: FD_FLEXIBLE_LAYOUT_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\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/flexible-column-layout.component.ts","../../../../libs/core/src/lib/flexible-column-layout/flexible-column-layout.component.html","../../../../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 {\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 { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport {\n ColumnSeparatorValue,\n FD_FLEXIBLE_LAYOUT_CONFIG,\n FlexibleLayoutConfig,\n FlexibleColumnLayout,\n FlexibleColumnLayoutDefinition,\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 ScreenSize,\n SM_SCREEN_SIZE,\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';\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})\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 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 >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_leftColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n (click)=\"_handleLeftColumnSeparatorClick()\"\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 >\n <button\n fd-button\n fdCompact\n fdType=\"transparent\"\n class=\"fd-flexible-column-layout__button\"\n [title]=\"_rightColumnSeparator === 'left' ? expandTitle : collapseTitle\"\n (click)=\"_handleRightColumnSeparatorClick()\"\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 { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { cloneDeep, merge } from 'lodash-es';\nimport { DEFAULT_FLEXIBLE_LAYOUT_CONFIG, FD_FLEXIBLE_LAYOUT_CONFIG, FlexibleLayoutConfig } from './constants';\nimport { FlexibleColumnLayoutComponent } from './flexible-column-layout.component';\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 declarations: [FlexibleColumnLayoutComponent],\n imports: [CommonModule, ButtonModule],\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 config = merge(cloneDeep(DEFAULT_FLEXIBLE_LAYOUT_CONFIG), cloneDeep(config));\n return {\n ngModule: FlexibleColumnLayoutModule,\n providers: [\n {\n provide: FD_FLEXIBLE_LAYOUT_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -5,15 +5,15 @@ import { CommonModule } from '@angular/common';
5
5
  import { ButtonModule } from '@fundamental-ngx/core/button';
6
6
  import * as i7 from '@fundamental-ngx/core/overflow-layout';
7
7
  import { OverflowLayoutComponent, OverflowLayoutModule } from '@fundamental-ngx/core/overflow-layout';
8
- import * as i6 from '@angular/cdk/portal';
9
- import { DomPortal, PortalModule } from '@angular/cdk/portal';
10
- import * as i5 from '@fundamental-ngx/core/link';
11
- import { LinkComponent, LinkModule } from '@fundamental-ngx/core/link';
12
8
  import * as i1 from '@fundamental-ngx/core/utils';
13
9
  import { DestroyedService, PipeModule } from '@fundamental-ngx/core/utils';
14
10
  import { BehaviorSubject, takeUntil } from 'rxjs';
15
11
  import * as i4 from '@fundamental-ngx/core/menu';
16
12
  import { MenuComponent, MenuModule } from '@fundamental-ngx/core/menu';
13
+ import * as i6 from '@angular/cdk/portal';
14
+ import { DomPortal, PortalModule } from '@angular/cdk/portal';
15
+ import * as i5 from '@fundamental-ngx/core/link';
16
+ import { LinkComponent, LinkModule } from '@fundamental-ngx/core/link';
17
17
  import * as i3 from '@fundamental-ngx/core/icon';
18
18
  import { IconModule } from '@fundamental-ngx/core/icon';
19
19
  import { PopoverModule } from '@fundamental-ngx/core/popover';
@@ -114,6 +114,8 @@ class BreadcrumbComponent {
114
114
  this._cdr = _cdr;
115
115
  /** Whether to append items to the overflow dropdown in reverse order. Default is true. */
116
116
  this.reverse = false;
117
+ /** Tabindex of the breadcrumb. */
118
+ this.tabIndex = '0';
117
119
  /**
118
120
  * Event emitted when visible items count is changed.
119
121
  */
@@ -197,11 +199,12 @@ class BreadcrumbComponent {
197
199
  }
198
200
  }
199
201
  BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i0.ElementRef }, { token: i1.DestroyedService }, { token: i1.RtlService, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
200
- BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { containerElement: "containerElement", reverse: "reverse" }, outputs: { visibleItemsCount: "visibleItemsCount", hiddenItemsCount: "hiddenItemsCount" }, host: { classAttribute: "fd-breadcrumb" }, providers: [DestroyedService], queries: [{ propertyName: "_contentItems", predicate: BreadcrumbItemComponent }], viewQueries: [{ propertyName: "_menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowLayout", first: true, predicate: OverflowLayoutComponent, descendants: true }], ngImport: i0, template: "<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n>\n <ng-container *ngFor=\"let breadcrumb of _items\">\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n </ng-container>\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of breadcrumbs\">\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem.item, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.item.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\">\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n </fd-menu>\n <span class=\"fd-breadcrumb__item\" *ngIf=\"breadcrumbs.length > 0\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n \u2026\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n </span>\n </ng-container>\n</fd-overflow-layout>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.4\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;padding:0}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{color:var(--sapContent_LabelColor);content:\"/\";margin-left:.25rem;margin-right:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb{display:flex;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}.fd-breadcrumb .fd-overflow-layout{justify-content:start}.fd-breadcrumb .fd-breadcrumb__item:last-child:after{content:\"/\"}.fd-breadcrumb .fd-overflow-layout__item--last .fd-breadcrumb__item:after{content:none}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i4.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i4.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i4.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i4.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i4.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i4.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i5.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i7.OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "reverseHiddenItems", "enableKeyboardNavigation", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "directive", type: i7.OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "directive", type: i7.OverflowExpandDirective, selector: "[fdOverflowExpand]", inputs: ["fdOverflowExpandItems"] }, { kind: "directive", type: i7.OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
202
+ BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: BreadcrumbComponent, selector: "fd-breadcrumb", inputs: { containerElement: "containerElement", reverse: "reverse", tabIndex: "tabIndex" }, outputs: { visibleItemsCount: "visibleItemsCount", hiddenItemsCount: "hiddenItemsCount" }, host: { attributes: { "role": "tree" }, classAttribute: "fd-breadcrumb" }, providers: [DestroyedService], queries: [{ propertyName: "_contentItems", predicate: BreadcrumbItemComponent }, { propertyName: "breadcrumbItems", predicate: i0.forwardRef(function () { return BreadcrumbItemComponent; }) }], viewQueries: [{ propertyName: "_menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowLayout", first: true, predicate: OverflowLayoutComponent, descendants: true }], ngImport: i0, template: "<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n>\n <ng-container *ngFor=\"let breadcrumb of _items\">\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n </ng-container>\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of breadcrumbs\">\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem.item, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.item.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\">\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n </fd-menu>\n <span class=\"fd-breadcrumb__item\" *ngIf=\"breadcrumbs.length > 0\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n \u2026\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n </span>\n </ng-container>\n</fd-overflow-layout>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.4\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;padding:0}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{color:var(--sapContent_LabelColor);content:\"/\";margin-left:.25rem;margin-right:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb{display:flex;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}.fd-breadcrumb .fd-overflow-layout{justify-content:start}.fd-breadcrumb .fd-breadcrumb__item:last-child:after{content:\"/\"}.fd-breadcrumb .fd-overflow-layout__item--last .fd-breadcrumb__item:after{content:none}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i4.MenuComponent, selector: "fd-menu", inputs: ["mobile", "disabled", "focusTrapped", "openOnHoverTime", "mobileConfig", "ariaLabel", "ariaLabelledby", "id"], outputs: ["activePath"] }, { kind: "component", type: i4.MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "directive", type: i4.MenuInteractiveDirective, selector: "[fd-menu-interactive]" }, { kind: "directive", type: i4.MenuTitleDirective, selector: "[fd-menu-title]" }, { kind: "component", type: i4.MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "glyph", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: i4.MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: i5.LinkComponent, selector: "[fdLink], [fd-link], [fd-breadcrumb-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "directive", type: i6.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i7.OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "reverseHiddenItems", "enableKeyboardNavigation", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount"] }, { kind: "directive", type: i7.OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "directive", type: i7.OverflowExpandDirective, selector: "[fdOverflowExpand]", inputs: ["fdOverflowExpandItems"] }, { kind: "directive", type: i7.OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
201
203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BreadcrumbComponent, decorators: [{
202
204
  type: Component,
203
205
  args: [{ selector: 'fd-breadcrumb', host: {
204
- class: 'fd-breadcrumb'
206
+ class: 'fd-breadcrumb',
207
+ role: 'tree'
205
208
  }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DestroyedService], template: "<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n>\n <ng-container *ngFor=\"let breadcrumb of _items\">\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n </ng-container>\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of breadcrumbs\">\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem.item, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.item.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\">\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n </fd-menu>\n <span class=\"fd-breadcrumb__item\" *ngIf=\"breadcrumbs.length > 0\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n \u2026\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n </span>\n </ng-container>\n</fd-overflow-layout>\n\n<ng-content></ng-content>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.4\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-breadcrumb\n .fd-breadcrumb__item\n .fd-breadcrump__link\n*/.fd-breadcrumb{-webkit-box-sizing:border-box;-ms-flex-wrap:wrap;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-wrap:wrap;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);list-style:none;margin:0;padding:0}.fd-breadcrumb:after,.fd-breadcrumb:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-breadcrumb__item:after,.fd-breadcrumb__item:before{box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:after{color:var(--sapContent_LabelColor);content:\"/\";margin-left:.25rem;margin-right:.25rem}.fd-breadcrumb__item:last-child:after{content:none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb{display:flex;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}.fd-breadcrumb .fd-overflow-layout{justify-content:start}.fd-breadcrumb .fd-breadcrumb__item:last-child:after{content:\"/\"}.fd-breadcrumb .fd-overflow-layout__item--last .fd-breadcrumb__item:after{content:none}\n"] }]
206
209
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DestroyedService }, { type: i1.RtlService, decorators: [{
207
210
  type: Optional
@@ -209,6 +212,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
209
212
  type: Input
210
213
  }], reverse: [{
211
214
  type: Input
215
+ }], tabIndex: [{
216
+ type: Input
212
217
  }], visibleItemsCount: [{
213
218
  type: Output
214
219
  }], hiddenItemsCount: [{
@@ -216,6 +221,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
216
221
  }], _contentItems: [{
217
222
  type: ContentChildren,
218
223
  args: [BreadcrumbItemComponent]
224
+ }], breadcrumbItems: [{
225
+ type: ContentChildren,
226
+ args: [forwardRef(() => BreadcrumbItemComponent)]
219
227
  }], _menuComponent: [{
220
228
  type: ViewChild,
221
229
  args: [MenuComponent]
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-breadcrumb.mjs","sources":["../../../../libs/core/src/lib/breadcrumb/breadcrumb-item.component.ts","../../../../libs/core/src/lib/breadcrumb/breadcrumb.component.ts","../../../../libs/core/src/lib/breadcrumb/breadcrumb.component.html","../../../../libs/core/src/lib/breadcrumb/deprecated-breadcrumbs-compact.directive.ts","../../../../libs/core/src/lib/breadcrumb/breadcrumb.module.ts","../../../../libs/core/src/lib/breadcrumb/fundamental-ngx-core-breadcrumb.ts"],"sourcesContent":["import { DomPortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\n\n/**\n * Breadcrumb item directive. Must have child breadcrumb link directives.\n *\n * ```html\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb-item',\n template: '<ng-content></ng-content>',\n host: {\n class: 'fd-breadcrumb__item'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BreadcrumbItemComponent implements AfterViewInit {\n /** @hidden */\n @ContentChild(forwardRef(() => LinkComponent))\n breadcrumbLink: LinkComponent;\n\n /** In case there is no link in Item and breadcrumb item is non-interactive, we move whole item content to menu item title */\n breadcrumbItemPortal: DomPortal<Element>;\n\n /** When breadcrumb item has link in it, we are moving link content to menu item title */\n linkContentPortal: DomPortal;\n\n /**\n * Breadcrumb item dom portal.\n */\n portal: DomPortal;\n\n /** @hidden */\n private _attached = false;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n get _needsClickProxy(): boolean {\n return (\n !!this.breadcrumbLink?.elementRef().nativeElement.getAttribute('href') || !!this.breadcrumbLink.routerLink\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._attach();\n }\n\n /**\n * Sets breadcrumb item dom portal.\n */\n setPortal(): void {\n if (!this.portal) {\n this.portal = new DomPortal(this.elementRef);\n }\n }\n\n /** @hidden */\n _detach(): void {\n if (!this._attached) {\n return;\n }\n\n if (this.linkContentPortal?.isAttached) {\n this.linkContentPortal?.detach();\n }\n\n if (this.breadcrumbItemPortal?.isAttached) {\n this.breadcrumbItemPortal?.detach();\n }\n\n this._attached = false;\n }\n\n /** @hidden */\n _attach(): void {\n if (this._attached) {\n return;\n }\n\n if (this.breadcrumbLink && this.breadcrumbLink.contentSpan) {\n this.linkContentPortal = new DomPortal<HTMLElement>(this.breadcrumbLink.contentSpan.nativeElement);\n }\n\n this.breadcrumbItemPortal = new DomPortal(this.elementRef.nativeElement.firstElementChild as Element);\n this._attached = true;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n isDevMode,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { OverflowLayoutComponent } from '@fundamental-ngx/core/overflow-layout';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { DestroyedService, RtlService } from '@fundamental-ngx/core/utils';\nimport { BehaviorSubject, takeUntil } from 'rxjs';\nimport { MenuComponent } from '@fundamental-ngx/core/menu';\nimport { Placement } from '@fundamental-ngx/core/shared';\n\n/**\n * Breadcrumb parent wrapper directive. Must have breadcrumb item child directives.\n *\n * ```html\n * <fd-breadcrumb>\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * </fd-breadcrumb>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb',\n host: {\n class: 'fd-breadcrumb'\n },\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DestroyedService]\n})\nexport class BreadcrumbComponent implements OnInit, AfterViewInit {\n /**\n * @deprecated\n * Breadcrumbs component now uses more advanced calculation mechanism without the need of specifying the container element.\n *\n * The element to act as the breadcrumb container. When provided, the breadcrumb's responsive collapsing behavior\n * performs better. When not provided, the immediate parent element's width will be used.\n */\n @Input()\n set containerElement(_: HTMLElement) {\n if (isDevMode()) {\n console.warn(\n 'Breadcrumbs component now uses more advanced calculation mechanism without the need of specifying the container element.'\n );\n }\n }\n\n /** Whether to append items to the overflow dropdown in reverse order. Default is true. */\n @Input()\n reverse = false;\n\n /**\n * Event emitted when visible items count is changed.\n */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /**\n * Event emitted when hidden items count is changed.\n */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /** @hidden */\n @ContentChildren(BreadcrumbItemComponent)\n private readonly _contentItems: QueryList<BreadcrumbItemComponent>;\n\n /** @hidden */\n @ViewChild(MenuComponent)\n private readonly _menuComponent: MenuComponent;\n\n /** @hidden */\n @ViewChild(OverflowLayoutComponent)\n private readonly _overflowLayout: OverflowLayoutComponent;\n\n /**\n * @hidden\n * Array of breadcrumb items.\n */\n _items: BreadcrumbItemComponent[] = [];\n\n /** @hidden */\n _placement$ = new BehaviorSubject<Placement>('bottom-start');\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n private _onDestroy$: DestroyedService,\n @Optional() private _rtlService: RtlService | null,\n private _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._rtlService?.rtl\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((value) => this._placement$.next(value ? 'bottom-end' : 'bottom-start'));\n }\n\n /** @hidden */\n onResize(): void {\n this._overflowLayout.triggerRecalculation();\n }\n\n /**\n * We catch interactions with item, Enter, Space, Mouse click and Touch click,\n * if original element had router link we are proxying click to that element\n * */\n itemClicked(breadcrumbItem: any, $event: any): void {\n if (breadcrumbItem.needsClickProxy) {\n $event.preventDefault();\n breadcrumbItem.breadcrumbLink.elementRef().nativeElement.click();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setItems();\n\n this._contentItems.changes.subscribe(() => this._setItems());\n }\n\n /** @hidden */\n _keyDownHandle(event: Event): void {\n this._menuComponent.toggle();\n event.preventDefault();\n }\n\n /** @hidden */\n _onHiddenChange(isHidden: boolean, breadcrumb: BreadcrumbItemComponent): void {\n if (!isHidden) {\n breadcrumb._detach();\n } else {\n breadcrumb._attach();\n }\n }\n\n /** @hidden */\n _onVisibleItemsCountChange(visibleItemsCount: number): void {\n this.visibleItemsCount.emit(visibleItemsCount);\n }\n\n /** @hidden */\n _onHiddenItemsCountChange(hiddenItemsCount: number): void {\n this.hiddenItemsCount.emit(hiddenItemsCount);\n }\n\n /** @hidden */\n private _setItems(): void {\n this._contentItems.forEach((item) => item.setPortal());\n this._items = this._contentItems.toArray();\n this._cdr.detectChanges();\n }\n}\n","<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n>\n <ng-container *ngFor=\"let breadcrumb of _items\">\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n </ng-container>\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of breadcrumbs\">\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem.item, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.item.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\">\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n </fd-menu>\n <span class=\"fd-breadcrumb__item\" *ngIf=\"breadcrumbs.length > 0\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n …\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n </span>\n </ng-container>\n</fd-overflow-layout>\n\n<ng-content></ng-content>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-breadcrumb[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedBreadcrumbsCompactDirective)\n }\n ]\n})\nexport class DeprecatedBreadcrumbsCompactDirective extends DeprecatedCompactDirective {\n constructor() {\n super('fd-breadcrumb');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { OverflowLayoutModule } from '@fundamental-ngx/core/overflow-layout';\n\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { LinkModule } from '@fundamental-ngx/core/link';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { PipeModule } from '@fundamental-ngx/core/utils';\nimport { DeprecatedBreadcrumbsCompactDirective } from './deprecated-breadcrumbs-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n MenuModule,\n LinkModule,\n PortalModule,\n PipeModule,\n ContentDensityModule,\n OverflowLayoutModule,\n ButtonModule\n ],\n exports: [\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n LinkModule,\n DeprecatedBreadcrumbsCompactDirective,\n ContentDensityModule\n ],\n declarations: [BreadcrumbComponent, BreadcrumbItemComponent, DeprecatedBreadcrumbsCompactDirective]\n})\nexport class BreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-breadcrumb.mjs","sources":["../../../../libs/core/src/lib/breadcrumb/breadcrumb-item.component.ts","../../../../libs/core/src/lib/breadcrumb/breadcrumb.component.ts","../../../../libs/core/src/lib/breadcrumb/breadcrumb.component.html","../../../../libs/core/src/lib/breadcrumb/deprecated-breadcrumbs-compact.directive.ts","../../../../libs/core/src/lib/breadcrumb/breadcrumb.module.ts","../../../../libs/core/src/lib/breadcrumb/fundamental-ngx-core-breadcrumb.ts"],"sourcesContent":["import { DomPortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n forwardRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\n\n/**\n * Breadcrumb item directive. Must have child breadcrumb link directives.\n *\n * ```html\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb-item',\n template: '<ng-content></ng-content>',\n host: {\n class: 'fd-breadcrumb__item'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BreadcrumbItemComponent implements AfterViewInit {\n /** @hidden */\n @ContentChild(forwardRef(() => LinkComponent))\n breadcrumbLink: LinkComponent;\n\n /** In case there is no link in Item and breadcrumb item is non-interactive, we move whole item content to menu item title */\n breadcrumbItemPortal: DomPortal<Element>;\n\n /** When breadcrumb item has link in it, we are moving link content to menu item title */\n linkContentPortal: DomPortal;\n\n /**\n * Breadcrumb item dom portal.\n */\n portal: DomPortal;\n\n /** @hidden */\n private _attached = false;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n get _needsClickProxy(): boolean {\n return (\n !!this.breadcrumbLink?.elementRef().nativeElement.getAttribute('href') || !!this.breadcrumbLink.routerLink\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._attach();\n }\n\n /**\n * Sets breadcrumb item dom portal.\n */\n setPortal(): void {\n if (!this.portal) {\n this.portal = new DomPortal(this.elementRef);\n }\n }\n\n /** @hidden */\n _detach(): void {\n if (!this._attached) {\n return;\n }\n\n if (this.linkContentPortal?.isAttached) {\n this.linkContentPortal?.detach();\n }\n\n if (this.breadcrumbItemPortal?.isAttached) {\n this.breadcrumbItemPortal?.detach();\n }\n\n this._attached = false;\n }\n\n /** @hidden */\n _attach(): void {\n if (this._attached) {\n return;\n }\n\n if (this.breadcrumbLink && this.breadcrumbLink.contentSpan) {\n this.linkContentPortal = new DomPortal<HTMLElement>(this.breadcrumbLink.contentSpan.nativeElement);\n }\n\n this.breadcrumbItemPortal = new DomPortal(this.elementRef.nativeElement.firstElementChild as Element);\n this._attached = true;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n isDevMode,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { OverflowLayoutComponent } from '@fundamental-ngx/core/overflow-layout';\nimport { DestroyedService, RtlService } from '@fundamental-ngx/core/utils';\nimport { BehaviorSubject, takeUntil } from 'rxjs';\nimport { MenuComponent } from '@fundamental-ngx/core/menu';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\n\n/**\n * Breadcrumb parent wrapper directive. Must have breadcrumb item child directives.\n *\n * ```html\n * <fd-breadcrumb>\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * </fd-breadcrumb>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb',\n host: {\n class: 'fd-breadcrumb',\n role: 'tree'\n },\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DestroyedService]\n})\nexport class BreadcrumbComponent implements OnInit, AfterViewInit {\n /**\n * @deprecated\n * Breadcrumbs component now uses more advanced calculation mechanism without the need of specifying the container element.\n *\n * The element to act as the breadcrumb container. When provided, the breadcrumb's responsive collapsing behavior\n * performs better. When not provided, the immediate parent element's width will be used.\n */\n @Input()\n set containerElement(_: HTMLElement) {\n if (isDevMode()) {\n console.warn(\n 'Breadcrumbs component now uses more advanced calculation mechanism without the need of specifying the container element.'\n );\n }\n }\n\n /** Whether to append items to the overflow dropdown in reverse order. Default is true. */\n @Input()\n reverse = false;\n\n /** Tabindex of the breadcrumb. */\n @Input()\n tabIndex = '0';\n\n /**\n * Event emitted when visible items count is changed.\n */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /**\n * Event emitted when hidden items count is changed.\n */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /** @hidden */\n @ContentChildren(BreadcrumbItemComponent)\n private readonly _contentItems: QueryList<BreadcrumbItemComponent>;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => BreadcrumbItemComponent))\n breadcrumbItems: QueryList<BreadcrumbItemComponent>;\n\n @ViewChild(MenuComponent)\n private readonly _menuComponent: MenuComponent;\n\n /** @hidden */\n @ViewChild(OverflowLayoutComponent)\n private readonly _overflowLayout: OverflowLayoutComponent;\n\n /**\n * @hidden\n * Array of breadcrumb items.\n */\n _items: BreadcrumbItemComponent[] = [];\n\n /** @hidden */\n _placement$ = new BehaviorSubject<Placement>('bottom-start');\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n private _onDestroy$: DestroyedService,\n @Optional() private _rtlService: RtlService | null,\n private _cdr: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._rtlService?.rtl\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((value) => this._placement$.next(value ? 'bottom-end' : 'bottom-start'));\n }\n\n /** @hidden */\n onResize(): void {\n this._overflowLayout.triggerRecalculation();\n }\n\n /**\n * We catch interactions with item, Enter, Space, Mouse click and Touch click,\n * if original element had router link we are proxying click to that element\n * */\n itemClicked(breadcrumbItem: any, $event: any): void {\n if (breadcrumbItem.needsClickProxy) {\n $event.preventDefault();\n breadcrumbItem.breadcrumbLink.elementRef().nativeElement.click();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setItems();\n\n this._contentItems.changes.subscribe(() => this._setItems());\n }\n\n /** @hidden */\n _keyDownHandle(event: Event): void {\n this._menuComponent.toggle();\n event.preventDefault();\n }\n\n /** @hidden */\n _onHiddenChange(isHidden: boolean, breadcrumb: BreadcrumbItemComponent): void {\n if (!isHidden) {\n breadcrumb._detach();\n } else {\n breadcrumb._attach();\n }\n }\n\n /** @hidden */\n _onVisibleItemsCountChange(visibleItemsCount: number): void {\n this.visibleItemsCount.emit(visibleItemsCount);\n }\n\n /** @hidden */\n _onHiddenItemsCountChange(hiddenItemsCount: number): void {\n this.hiddenItemsCount.emit(hiddenItemsCount);\n }\n\n /** @hidden */\n private _setItems(): void {\n this._contentItems.forEach((item) => item.setPortal());\n this._items = this._contentItems.toArray();\n this._cdr.detectChanges();\n }\n}\n","<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n>\n <ng-container *ngFor=\"let breadcrumb of _items\">\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n </ng-container>\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"_placement$ | async\">\n <ng-container *ngFor=\"let breadcrumbItem of breadcrumbs\">\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a\n fd-menu-interactive\n (click)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.enter)=\"itemClicked(breadcrumbItem.item, $event)\"\n (keydown.space)=\"itemClicked(breadcrumbItem.item, $event)\"\n >\n <ng-container *ngIf=\"breadcrumbItem?.item.breadcrumbLink; else portalContent\">\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\">\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n </ng-container>\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n <ng-container *ngIf=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\">\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n </ng-container>\n </ng-container>\n <ng-template #portalContent>\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n </ng-template>\n </a>\n </li>\n </ng-container>\n </fd-menu>\n <span class=\"fd-breadcrumb__item\" *ngIf=\"breadcrumbs.length > 0\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n …\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n </span>\n </ng-container>\n</fd-overflow-layout>\n\n<ng-content></ng-content>\n","import { Directive, forwardRef } from '@angular/core';\nimport { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-breadcrumb[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedBreadcrumbsCompactDirective)\n }\n ]\n})\nexport class DeprecatedBreadcrumbsCompactDirective extends DeprecatedCompactDirective {\n constructor() {\n super('fd-breadcrumb');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { OverflowLayoutModule } from '@fundamental-ngx/core/overflow-layout';\n\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { LinkModule } from '@fundamental-ngx/core/link';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { PipeModule } from '@fundamental-ngx/core/utils';\nimport { DeprecatedBreadcrumbsCompactDirective } from './deprecated-breadcrumbs-compact.directive';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [\n CommonModule,\n IconModule,\n PopoverModule,\n MenuModule,\n LinkModule,\n PortalModule,\n PipeModule,\n ContentDensityModule,\n OverflowLayoutModule,\n ButtonModule\n ],\n exports: [\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n LinkModule,\n DeprecatedBreadcrumbsCompactDirective,\n ContentDensityModule\n ],\n declarations: [BreadcrumbComponent, BreadcrumbItemComponent, DeprecatedBreadcrumbsCompactDirective]\n})\nexport class BreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}