@fundamental-ngx/core 0.34.0-rc.1 → 0.34.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) 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/package.json +1 -1
  8. package/busy-indicator/package.json +1 -1
  9. package/button/package.json +1 -1
  10. package/calendar/package.json +1 -1
  11. package/card/package.json +1 -1
  12. package/carousel/package.json +1 -1
  13. package/checkbox/package.json +1 -1
  14. package/combobox/package.json +1 -1
  15. package/date-picker/package.json +1 -1
  16. package/datetime/package.json +1 -1
  17. package/datetime-picker/package.json +1 -1
  18. package/dialog/package.json +1 -1
  19. package/dynamic-page/package.json +1 -1
  20. package/dynamic-side-content/package.json +1 -1
  21. package/esm2020/splitter/splitter-resizer/splitter-resizer.component.mjs +4 -4
  22. package/facets/package.json +1 -1
  23. package/feed-input/package.json +1 -1
  24. package/feed-list-item/package.json +1 -1
  25. package/fesm2015/fundamental-ngx-core-splitter.mjs +3 -3
  26. package/fesm2015/fundamental-ngx-core-splitter.mjs.map +1 -1
  27. package/fesm2020/fundamental-ngx-core-splitter.mjs +3 -3
  28. package/fesm2020/fundamental-ngx-core-splitter.mjs.map +1 -1
  29. package/file-uploader/package.json +1 -1
  30. package/fixed-card-layout/package.json +1 -1
  31. package/flexible-column-layout/package.json +1 -1
  32. package/form/package.json +1 -1
  33. package/formatted-text/package.json +1 -1
  34. package/grid-list/package.json +1 -1
  35. package/icon/package.json +1 -1
  36. package/illustrated-message/package.json +1 -1
  37. package/infinite-scroll/package.json +1 -1
  38. package/info-label/package.json +1 -1
  39. package/inline-help/package.json +1 -1
  40. package/input-group/package.json +1 -1
  41. package/layout-grid/package.json +1 -1
  42. package/layout-panel/package.json +1 -1
  43. package/link/package.json +1 -1
  44. package/list/package.json +1 -1
  45. package/menu/package.json +1 -1
  46. package/message-box/package.json +1 -1
  47. package/message-strip/package.json +1 -1
  48. package/message-toast/package.json +1 -1
  49. package/micro-process-flow/package.json +1 -1
  50. package/mobile-mode/package.json +1 -1
  51. package/multi-input/package.json +1 -1
  52. package/nested-list/package.json +1 -1
  53. package/notification/package.json +1 -1
  54. package/object-identifier/package.json +1 -1
  55. package/object-marker/package.json +1 -1
  56. package/object-number/package.json +1 -1
  57. package/object-status/package.json +1 -1
  58. package/package.json +1 -1
  59. package/pagination/package.json +1 -1
  60. package/panel/package.json +1 -1
  61. package/popover/package.json +1 -1
  62. package/product-switch/package.json +1 -1
  63. package/progress-indicator/package.json +1 -1
  64. package/quick-view/package.json +1 -1
  65. package/radio/package.json +1 -1
  66. package/rating-indicator/package.json +1 -1
  67. package/resizable-card-layout/package.json +1 -1
  68. package/scroll-spy/package.json +1 -1
  69. package/scrollbar/package.json +1 -1
  70. package/segmented-button/package.json +1 -1
  71. package/select/package.json +1 -1
  72. package/shared/package.json +1 -1
  73. package/shellbar/package.json +1 -1
  74. package/side-navigation/package.json +1 -1
  75. package/slider/package.json +1 -1
  76. package/split-button/package.json +1 -1
  77. package/splitter/esm2020/splitter-resizer/splitter-resizer.component.mjs +4 -4
  78. package/splitter/fesm2015/fundamental-ngx-core-splitter.mjs +3 -3
  79. package/splitter/fesm2015/fundamental-ngx-core-splitter.mjs.map +1 -1
  80. package/splitter/fesm2020/fundamental-ngx-core-splitter.mjs +3 -3
  81. package/splitter/fesm2020/fundamental-ngx-core-splitter.mjs.map +1 -1
  82. package/splitter/package.json +1 -1
  83. package/status-indicator/package.json +1 -1
  84. package/step-input/package.json +1 -1
  85. package/switch/package.json +1 -1
  86. package/table/package.json +1 -1
  87. package/tabs/package.json +1 -1
  88. package/text/package.json +1 -1
  89. package/tile/package.json +1 -1
  90. package/time/package.json +1 -1
  91. package/time-picker/package.json +1 -1
  92. package/timeline/package.json +1 -1
  93. package/title/package.json +1 -1
  94. package/token/package.json +1 -1
  95. package/toolbar/package.json +1 -1
  96. package/tree/package.json +1 -1
  97. package/upload-collection/package.json +1 -1
  98. package/utils/package.json +1 -1
  99. package/vertical-navigation/package.json +1 -1
  100. package/wizard/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-bar",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-sheet",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/alert",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar-group",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
package/bar/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/bar",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/breadcrumb",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/busy-indicator",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/button",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/calendar",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
package/card/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/card",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/carousel",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/checkbox",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/combobox",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/date-picker",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/datetime",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/datetime-picker",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dialog",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dynamic-page",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dynamic-side-content",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,8 +1,8 @@
1
1
  import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';
2
2
  import { DOCUMENT } from '@angular/common';
3
3
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Input, NgZone, Optional, Output, ViewEncapsulation } from '@angular/core';
4
- import { fromEvent, Subject } from 'rxjs';
5
- import { delay, take, takeUntil } from 'rxjs/operators';
4
+ import { debounceTime, fromEvent, Subject } from 'rxjs';
5
+ import { take, takeUntil } from 'rxjs/operators';
6
6
  import { KeyUtil } from '@fundamental-ngx/core/utils';
7
7
  import { SplitterPaneContainerOrientation } from '../splitter-pane-container/splitter-pane-orientation.enum';
8
8
  import * as i0 from "@angular/core";
@@ -105,7 +105,7 @@ export class SplitterResizerComponent {
105
105
  }
106
106
  this._ngZone.runOutsideAngular(() => {
107
107
  fromEvent(this._document, 'mousemove')
108
- .pipe(delay(10), takeUntil(this._pointerMoveListener))
108
+ .pipe(debounceTime(10), takeUntil(this._pointerMoveListener))
109
109
  .subscribe((event) => {
110
110
  this._ngZone.run(() => {
111
111
  const newPosition = this._isHorizontal ? event.clientY : event.clientX;
@@ -185,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
185
185
  type: HostListener,
186
186
  args: ['blur']
187
187
  }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXItcmVzaXplci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zcGxpdHRlci9zcGxpdHRlci1yZXNpemVyL3NwbGl0dGVyLXJlc2l6ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3BsaXR0ZXIvc3BsaXR0ZXItcmVzaXplci9zcGxpdHRlci1yZXNpemVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixRQUFRLEVBQ1IsTUFBTSxFQUNOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsT0FBTyxFQUNILGdDQUFnQyxFQUVuQyxNQUFNLDJEQUEyRCxDQUFDOzs7QUFFbkUsZUFBZTtBQVlmLE1BQU0sT0FBTyx3QkFBd0I7SUFvRGpDLGNBQWM7SUFDZCxZQUNxQixXQUF1QixFQUN2QixJQUF1QixFQUN2QixPQUFlLEVBQ2UsU0FBMEI7UUFIeEQsZ0JBQVcsR0FBWCxXQUFX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IHsgRE9XTl9BUlJPVywgTEVGVF9BUlJPVywgUklHSFRfQVJST1csIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuXG5pbXBvcnQge1xuICAgIFNwbGl0dGVyUGFuZUNvbnRhaW5lck9yaWVudGF0aW9uLFxuICAgIFNwbGl0dGVyUGFuZUNvbnRhaW5lck9yaWVudGF0aW9uVHlwZVxufSBmcm9tICcuLi9zcGxpdHRlci1wYW5lLWNvbnRhaW5lci9zcGxpdHRlci1wYW5lLW9yaWVudGF0aW9uLmVudW0nO1xuXG4vKiogQGR5bmFtaWMgKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtc3BsaXR0ZXItcmVzaXplcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwbGl0dGVyLXJlc2l6ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLXNwbGl0dGVyX19yZXNpemVyJyxcbiAgICAgICAgJ1tjbGFzcy5mZC1zcGxpdHRlcl9fcmVzaXplci0tYWN0aXZlXSc6ICdfc3RhcnQgIT0gbnVsbCB8fCBfaXNJbkZvY3VzJyxcbiAgICAgICAgJ1t0YWJpbmRleF0nOiAnMCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFNwbGl0dGVyUmVzaXplckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqIE9yaWVudGF0aW9uIG9mIHRoZSBzcGxpdHRlcidzIGhvc3QgcGFuZSBjb250YWluZXIuICovXG4gICAgQElucHV0KClcbiAgICBvcmllbnRhdGlvbjogU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb25UeXBlID0gU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24udmVydGljYWw7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBhZnRlciByZXNpemluZyBoYXMgc3RhcnRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBzdGFydFJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIGFmdGVyIHJlc2l6aW5nIGhhcyBlbmRlZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlbmRSZXNpemUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGlsZSByZXNpemluZy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgICByZXNpemUgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3N0YXJ0OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc0luRm9jdXMgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIGdldCBfcm9sZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ3NlcGFyYXRvcic7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1vcmllbnRhdGlvbicpXG4gICAgZ2V0IF9hcmlhT3JpZW50YXRpb24oKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZW50YXRpb247XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzSG9yaXpvbnRhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3JpZW50YXRpb24gPT09IFNwbGl0dGVyUGFuZUNvbnRhaW5lck9yaWVudGF0aW9uLmhvcml6b250YWw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2lzVmVydGljYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9yaWVudGF0aW9uID09PSBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvbi52ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3ByZXZEaWZmID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcG9pbnRlck1vdmVMaXN0ZW5lciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQ6IERvY3VtZW50IHwgbnVsbFxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIF9vbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIHRoaXMuX3N0YXJ0ID0gdGhpcy5faXNIb3Jpem9udGFsID8gZXZlbnQuY2xpZW50WSA6IGV2ZW50LmNsaWVudFg7XG5cbiAgICAgICAgdGhpcy5zdGFydFJlc2l6ZS5lbWl0KCk7XG5cbiAgICAgICAgdGhpcy5fbGlzdGVuVG9Qb2ludGVyTW92ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgX29uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtET1dOX0FSUk9XLCBVUF9BUlJPVywgTEVGVF9BUlJPVywgUklHSFRfQVJST1ddKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgbGV0IGRpZmY6IG51bWJlcjtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX2lzSG9yaXpvbnRhbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXJ0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtVUF9BUlJPV10pKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpZmYgPSB0aGlzLl9zdGFydCAtIDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRE9XTl9BUlJPV10pKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpZmYgPSB0aGlzLl9zdGFydCArIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5faXNWZXJ0aWNhbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0YXJ0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcblxuICAgICAgICAgICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0xFRlRfQVJST1ddKSkge1xuICAgICAgICAgICAgICAgICAgICBkaWZmID0gdGhpcy5fc3RhcnQgLSAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW1JJR0hUX0FSUk9XXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlmZiA9IHRoaXMuX3N0YXJ0ICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc3RhcnRSZXNpemUuZW1pdCgpO1xuICAgICAgICAgICAgdGhpcy5fZW1pdFJlc2l6ZShkaWZmKTtcbiAgICAgICAgICAgIHRoaXMuZW5kUmVzaXplLmVtaXQoKTtcblxuICAgICAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmUoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzSW5Gb2N1cyA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gICAgX29uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNJbkZvY3VzID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9Qb2ludGVyTW92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcG9pbnRlck1vdmVMaXN0ZW5lciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLl9kb2N1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLl9kb2N1bWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVsYXkoMTApLCB0YWtlVW50aWwodGhpcy5fcG9pbnRlck1vdmVMaXN0ZW5lcikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdQb3NpdGlvbiA9IHRoaXMuX2lzSG9yaXpvbnRhbCA/IGV2ZW50LmNsaWVudFkgOiBldmVudC5jbGllbnRYO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0UmVzaXplKG5ld1Bvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLl9kb2N1bWVudCwgJ21vdXNldXAnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLl9wb2ludGVyTW92ZUxpc3RlbmVyKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVuZFJlc2l6ZS5lbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl91bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9lbWl0UmVzaXplKG5ld1Bvc2l0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlmZiA9IG5ld1Bvc2l0aW9uIC0gdGhpcy5fc3RhcnQ7XG5cbiAgICAgICAgdGhpcy5yZXNpemUuZW1pdChkaWZmIC0gdGhpcy5fcHJldkRpZmYpO1xuXG4gICAgICAgIHRoaXMuX3ByZXZEaWZmID0gZGlmZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlKHJlbW92ZUZvY3VzID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdGFydCA9IG51bGw7XG4gICAgICAgIHRoaXMuX3ByZXZEaWZmID0gMDtcblxuICAgICAgICB0aGlzLl9wb2ludGVyTW92ZUxpc3RlbmVyPy5uZXh0KCk7XG4gICAgICAgIHRoaXMuX3BvaW50ZXJNb3ZlTGlzdGVuZXI/LmNvbXBsZXRlKCk7XG5cbiAgICAgICAgaWYgKHJlbW92ZUZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLl9pc0luRm9jdXMgPSBmYWxzZTtcblxuICAgICAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZkLXNwbGl0dGVyX19yZXNpemVyLWRlY29yYXRpb24tYmVmb3JlXCI+PC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmZC1zcGxpdHRlcl9fcmVzaXplci1ncmlwXCI+XG4gICAgPGZkLWljb25cbiAgICAgICAgY2xhc3M9XCJmZC1zcGxpdHRlcl9fcmVzaXplci1ncmlwLWljb25cIlxuICAgICAgICBbZ2x5cGhdPVwiKF9pc1ZlcnRpY2FsICYmICd2ZXJ0aWNhbC1ncmlwJykgfHwgKF9pc0hvcml6b250YWwgJiYgJ2hvcml6b250YWwtZ3JpcCcpXCJcbiAgICA+PC9mZC1pY29uPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmZC1zcGxpdHRlcl9fcmVzaXplci1kZWNvcmF0aW9uLWFmdGVyXCI+PC9kaXY+XG4iXX0=
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXR0ZXItcmVzaXplci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zcGxpdHRlci9zcGxpdHRlci1yZXNpemVyL3NwbGl0dGVyLXJlc2l6ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3BsaXR0ZXIvc3BsaXR0ZXItcmVzaXplci9zcGxpdHRlci1yZXNpemVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixRQUFRLEVBQ1IsTUFBTSxFQUNOLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEQsT0FBTyxFQUNILGdDQUFnQyxFQUVuQyxNQUFNLDJEQUEyRCxDQUFDOzs7QUFFbkUsZUFBZTtBQVlmLE1BQU0sT0FBTyx3QkFBd0I7SUFvRGpDLGNBQWM7SUFDZCxZQUNxQixXQUF1QixFQUN2QixJQUF1QixFQUN2QixPQUFlLEVBQ2UsU0FBMEI7UUFIeEQsZ0JBQVcsR0FBWCxXQUFX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IHsgRE9XTl9BUlJPVywgTEVGVF9BUlJPVywgUklHSFRfQVJST1csIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBLZXlVdGlsIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcblxuaW1wb3J0IHtcbiAgICBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvbixcbiAgICBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvblR5cGVcbn0gZnJvbSAnLi4vc3BsaXR0ZXItcGFuZS1jb250YWluZXIvc3BsaXR0ZXItcGFuZS1vcmllbnRhdGlvbi5lbnVtJztcblxuLyoqIEBkeW5hbWljICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXNwbGl0dGVyLXJlc2l6ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zcGxpdHRlci1yZXNpemVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1zcGxpdHRlcl9fcmVzaXplcicsXG4gICAgICAgICdbY2xhc3MuZmQtc3BsaXR0ZXJfX3Jlc2l6ZXItLWFjdGl2ZV0nOiAnX3N0YXJ0ICE9IG51bGwgfHwgX2lzSW5Gb2N1cycsXG4gICAgICAgICdbdGFiaW5kZXhdJzogJzAnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdHRlclJlc2l6ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKiBPcmllbnRhdGlvbiBvZiB0aGUgc3BsaXR0ZXIncyBob3N0IHBhbmUgY29udGFpbmVyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgb3JpZW50YXRpb246IFNwbGl0dGVyUGFuZUNvbnRhaW5lck9yaWVudGF0aW9uVHlwZSA9IFNwbGl0dGVyUGFuZUNvbnRhaW5lck9yaWVudGF0aW9uLnZlcnRpY2FsO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgcmVzaXppbmcgaGFzIHN0YXJ0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgc3RhcnRSZXNpemUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCBhZnRlciByZXNpemluZyBoYXMgZW5kZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgZW5kUmVzaXplID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hpbGUgcmVzaXppbmcuICovXG4gICAgQE91dHB1dCgpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gICAgcmVzaXplID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zdGFydDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXNJbkZvY3VzID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBnZXQgX3JvbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdzZXBhcmF0b3InO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtb3JpZW50YXRpb24nKVxuICAgIGdldCBfYXJpYU9yaWVudGF0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm9yaWVudGF0aW9uO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc0hvcml6b250YWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm9yaWVudGF0aW9uID09PSBTcGxpdHRlclBhbmVDb250YWluZXJPcmllbnRhdGlvbi5ob3Jpem9udGFsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9pc1ZlcnRpY2FsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbiA9PT0gU3BsaXR0ZXJQYW5lQ29udGFpbmVyT3JpZW50YXRpb24udmVydGljYWw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wcmV2RGlmZiA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3BvaW50ZXJNb3ZlTGlzdGVuZXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50OiBEb2N1bWVudCB8IG51bGxcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgICBfb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0aGlzLl9zdGFydCA9IHRoaXMuX2lzSG9yaXpvbnRhbCA/IGV2ZW50LmNsaWVudFkgOiBldmVudC5jbGllbnRYO1xuXG4gICAgICAgIHRoaXMuc3RhcnRSZXNpemUuZW1pdCgpO1xuXG4gICAgICAgIHRoaXMuX2xpc3RlblRvUG9pbnRlck1vdmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIF9vbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRE9XTl9BUlJPVywgVVBfQVJST1csIExFRlRfQVJST1csIFJJR0hUX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIGxldCBkaWZmOiBudW1iZXI7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9pc0hvcml6b250YWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xuXG4gICAgICAgICAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbVVBfQVJST1ddKSkge1xuICAgICAgICAgICAgICAgICAgICBkaWZmID0gdGhpcy5fc3RhcnQgLSAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0RPV05fQVJST1ddKSkge1xuICAgICAgICAgICAgICAgICAgICBkaWZmID0gdGhpcy5fc3RhcnQgKyAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX2lzVmVydGljYWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGFydCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG5cbiAgICAgICAgICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtMRUZUX0FSUk9XXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlmZiA9IHRoaXMuX3N0YXJ0IC0gMTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtSSUdIVF9BUlJPV10pKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpZmYgPSB0aGlzLl9zdGFydCArIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnN0YXJ0UmVzaXplLmVtaXQoKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRSZXNpemUoZGlmZik7XG4gICAgICAgICAgICB0aGlzLmVuZFJlc2l6ZS5lbWl0KCk7XG5cbiAgICAgICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIF9vbkZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc0luRm9jdXMgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICAgIF9vbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzSW5Gb2N1cyA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvUG9pbnRlck1vdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BvaW50ZXJNb3ZlTGlzdGVuZXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgICAgIGlmICghdGhpcy5fZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5fZG9jdW1lbnQsICdtb3VzZW1vdmUnKVxuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMCksIHRha2VVbnRpbCh0aGlzLl9wb2ludGVyTW92ZUxpc3RlbmVyKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1Bvc2l0aW9uID0gdGhpcy5faXNIb3Jpem9udGFsID8gZXZlbnQuY2xpZW50WSA6IGV2ZW50LmNsaWVudFg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRSZXNpemUobmV3UG9zaXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuX2RvY3VtZW50LCAnbW91c2V1cCcpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuX3BvaW50ZXJNb3ZlTGlzdGVuZXIpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW5kUmVzaXplLmVtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VtaXRSZXNpemUobmV3UG9zaXRpb246IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBkaWZmID0gbmV3UG9zaXRpb24gLSB0aGlzLl9zdGFydDtcblxuICAgICAgICB0aGlzLnJlc2l6ZS5lbWl0KGRpZmYgLSB0aGlzLl9wcmV2RGlmZik7XG5cbiAgICAgICAgdGhpcy5fcHJldkRpZmYgPSBkaWZmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmUocmVtb3ZlRm9jdXMgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXJ0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5fcHJldkRpZmYgPSAwO1xuXG4gICAgICAgIHRoaXMuX3BvaW50ZXJNb3ZlTGlzdGVuZXI/Lm5leHQoKTtcbiAgICAgICAgdGhpcy5fcG9pbnRlck1vdmVMaXN0ZW5lcj8uY29tcGxldGUoKTtcblxuICAgICAgICBpZiAocmVtb3ZlRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzSW5Gb2N1cyA9IGZhbHNlO1xuXG4gICAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmQtc3BsaXR0ZXJfX3Jlc2l6ZXItZGVjb3JhdGlvbi1iZWZvcmVcIj48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZkLXNwbGl0dGVyX19yZXNpemVyLWdyaXBcIj5cbiAgICA8ZmQtaWNvblxuICAgICAgICBjbGFzcz1cImZkLXNwbGl0dGVyX19yZXNpemVyLWdyaXAtaWNvblwiXG4gICAgICAgIFtnbHlwaF09XCIoX2lzVmVydGljYWwgJiYgJ3ZlcnRpY2FsLWdyaXAnKSB8fCAoX2lzSG9yaXpvbnRhbCAmJiAnaG9yaXpvbnRhbC1ncmlwJylcIlxuICAgID48L2ZkLWljb24+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZkLXNwbGl0dGVyX19yZXNpemVyLWRlY29yYXRpb24tYWZ0ZXJcIj48L2Rpdj5cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/facets",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/feed-input",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/feed-list-item",
3
- "version": "0.34.0-rc.1",
3
+ "version": "0.34.0-rc.2",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"
@@ -6,8 +6,8 @@ import * as i0 from '@angular/core';
6
6
  import { EventEmitter, TemplateRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Input, Output, ViewChild, ContentChildren, HostBinding, HostListener, SkipSelf, Pipe, NgModule } from '@angular/core';
7
7
  import * as i1$1 from '@fundamental-ngx/core/icon';
8
8
  import { IconModule } from '@fundamental-ngx/core/icon';
9
- import { Subject, fromEvent, Subscription } from 'rxjs';
10
- import { takeUntil, delay, take, filter } from 'rxjs/operators';
9
+ import { Subject, fromEvent, debounceTime, Subscription } from 'rxjs';
10
+ import { takeUntil, take, filter } from 'rxjs/operators';
11
11
  import * as i1 from '@angular/cdk/scrolling';
12
12
  import * as i3 from '@fundamental-ngx/core/utils';
13
13
  import { KeyUtil } from '@fundamental-ngx/core/utils';
@@ -345,7 +345,7 @@ class SplitterResizerComponent {
345
345
  }
346
346
  this._ngZone.runOutsideAngular(() => {
347
347
  fromEvent(this._document, 'mousemove')
348
- .pipe(delay(10), takeUntil(this._pointerMoveListener))
348
+ .pipe(debounceTime(10), takeUntil(this._pointerMoveListener))
349
349
  .subscribe((event) => {
350
350
  this._ngZone.run(() => {
351
351
  const newPosition = this._isHorizontal ? event.clientY : event.clientX;
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-splitter.mjs","sources":["../../../../libs/core/src/lib/splitter/constants.ts","../../../../libs/core/src/lib/splitter/splitter-split-pane/splitter-split-pane.component.ts","../../../../libs/core/src/lib/splitter/splitter-split-pane/splitter-split-pane.component.html","../../../../libs/core/src/lib/splitter/splitter.component.ts","../../../../libs/core/src/lib/splitter/splitter.component.html","../../../../libs/core/src/lib/splitter/splitter-pagination/splitter-pagination.component.ts","../../../../libs/core/src/lib/splitter/splitter-pagination/splitter-pagination.component.html","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-orientation.enum.ts","../../../../libs/core/src/lib/splitter/splitter-resizer/splitter-resizer.component.ts","../../../../libs/core/src/lib/splitter/splitter-resizer/splitter-resizer.component.html","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-container.component.ts","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-container.component.html","../../../../libs/core/src/lib/splitter/splitter.module.ts","../../../../libs/core/src/lib/splitter/fundamental-ngx-core-splitter.ts"],"sourcesContent":["export const PANE_AUTO_SIZE = 'auto';\n\nexport const PANE_NONE_SIZE = 'none';\n\nexport const RESIZER_SIZE_PX = 16;\n\nexport const ROOT_PAGE = 'FD_SPLITTER_ROOT_PAGE';\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { PANE_AUTO_SIZE } from '../constants';\n\nlet paneUniqueId = 0;\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-split-pane',\n templateUrl: './splitter-split-pane.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SplitterSplitPaneComponent implements OnInit, AfterViewInit, OnDestroy {\n /** Size (height in vertical orientation, width in horizontal orientation) of the pane. */\n @Input()\n set size(size: string) {\n this._size = size;\n this._actualSize = this._size;\n }\n\n get size(): string {\n return this._size;\n }\n\n /** Id of the split pane. Generated if not provided. */\n @Input()\n id = `fd-splitter-split-pane-${paneUniqueId++}`;\n\n /** Required browser's window width in pixels when the panel will be shown. */\n @Input()\n requiredParentWidth: number;\n\n /** Whether pane is reachable using pagination bar when is off-canvas. */\n @Input()\n demandPane = true;\n\n /** Event emitted when the pane appears on/disappears out of canvas. */\n @Output()\n readonly toggleOnCanvas = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild(TemplateRef, { static: true })\n _templateRef: TemplateRef<any>;\n\n /** @hidden */\n _actualSize = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _size = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _contentPortal: TemplatePortal | null = null;\n\n /** @hidden */\n private _isOnCanvas = true;\n\n /** @hidden */\n private _unsubscribe$ = new Subject<void>();\n\n /** Returns if the pane is on canvas. */\n get isOnCanvas(): boolean {\n return this._isOnCanvas;\n }\n\n /** @hidden */\n get _content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /** @hidden */\n private get _window(): Window & typeof globalThis {\n return this._document?.defaultView;\n }\n\n /** @hidden */\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._templateRef, this._viewContainerRef);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processPaneOnCanvas();\n this._listenToResize();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n /** Hide pane from the canvas. */\n hideFromCanvas(): void {\n if (!this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = false;\n\n this.toggleOnCanvas.emit(false);\n }\n\n /** Show pane on the canvas. */\n showOnCanvas(): void {\n if (this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = true;\n\n this.toggleOnCanvas.emit(true);\n }\n\n /** @hidden */\n private _listenToResize(): void {\n if (!this._window) {\n return;\n }\n\n this._viewportRuler\n .change(10)\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => this._processPaneOnCanvas());\n }\n\n /** @hidden */\n private _processPaneOnCanvas(): void {\n if (!this._window) {\n return;\n }\n\n if (this.requiredParentWidth > this._window.innerWidth && this.isOnCanvas) {\n this.hideFromCanvas();\n }\n\n if (this.requiredParentWidth < this._window.innerWidth && !this.isOnCanvas) {\n this.showOnCanvas();\n }\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\n\n@Component({\n selector: 'fd-splitter',\n templateUrl: './splitter.component.html',\n styleUrls: ['./splitter.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'fd-splitter' }\n})\nexport class SplitterComponent {\n /** Id of the main pane. */\n @Input()\n set defaultPaneId(value: string) {\n this._defaultPaneId = value;\n\n this._defaultPaneId$.next(this._defaultPaneId);\n }\n\n get defaultPaneId(): string {\n return this._defaultPaneId;\n }\n\n /** aria-label for the pagination item. */\n @Input()\n paginationItemAriaLabel = 'Section';\n\n /** @hidden */\n _defaultPaneId$ = new Subject<string>();\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n private _defaultPaneId: string;\n\n /** Check whether certain pane is on canvas. */\n isPaneOnCanvas(paneId: string): boolean {\n if (!this._panes.length) {\n return false;\n }\n\n const paneToCheck = this._panes.find((pane) => pane.id === paneId);\n\n return paneToCheck?.isOnCanvas;\n }\n\n /** Hide certain pane from the canvas. */\n hidePaneFromCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToRemove = this._panes.find((pane) => pane.id === paneId);\n\n paneToRemove?.hideFromCanvas();\n }\n\n /** Show certain pane from the canvas. */\n showPaneOnCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToShow = this._panes.find((pane) => pane.id === paneId);\n\n paneToShow?.showOnCanvas();\n }\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SplitterComponent } from '../splitter.component';\n\n@Component({\n selector: 'fd-splitter-pagination',\n templateUrl: './splitter-pagination.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pagination',\n '[attr.role]': '\"radiogroup\"'\n }\n})\nexport class SplitterPaginationComponent {\n /** Array of pages ids. */\n @Input()\n pages: string[] = [];\n\n /** Current page id. */\n @Input()\n currentPage: string;\n\n /** Event emitted on page change. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onPageChange = new EventEmitter<string>();\n\n /** @hidden */\n _pages: string[] = [];\n\n /** @hidden */\n get paginationItemAriaLabel(): string {\n return this._splitter.paginationItemAriaLabel;\n }\n\n /** @Hidden */\n constructor(private readonly _splitter: SplitterComponent) {}\n\n /** @hidden */\n _changePage(page: string): void {\n if (page === this.currentPage) {\n return;\n }\n\n this.currentPage = page;\n this.onPageChange.emit(this.currentPage);\n }\n}\n","<button\n *ngFor=\"let page of pages\"\n class=\"fd-splitter__pagination-item\"\n [class.fd-splitter__pagination-item--active]=\"page === currentPage\"\n role=\"radio\"\n [attr.aria-label]=\"paginationItemAriaLabel\"\n [attr.aria-checked]=\"page === currentPage\"\n (click)=\"_changePage(page)\"\n (keydown.enter)=\"_changePage(page)\"\n>\n <span class=\"fd-splitter__pagination-item-dot\"></span>\n</button>\n","export enum SplitterPaneContainerOrientation {\n vertical = 'vertical',\n horizontal = 'horizontal'\n}\n\nexport type SplitterPaneContainerOrientationType =\n | keyof typeof SplitterPaneContainerOrientation\n | SplitterPaneContainerOrientation;\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { delay, take, takeUntil } from 'rxjs/operators';\n\nimport { KeyUtil } from '@fundamental-ngx/core/utils';\n\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from '../splitter-pane-container/splitter-pane-orientation.enum';\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-resizer',\n templateUrl: './splitter-resizer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__resizer',\n '[class.fd-splitter__resizer--active]': '_start != null || _isInFocus',\n '[tabindex]': '0'\n }\n})\nexport class SplitterResizerComponent implements OnDestroy {\n /** Orientation of the splitter's host pane container. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /** Event emitted after resizing has started. */\n @Output()\n startResize = new EventEmitter<void>();\n\n /** Event emitted after resizing has ended. */\n @Output()\n endResize = new EventEmitter<void>();\n\n /** Event emitted while resizing. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n resize = new EventEmitter<number>();\n\n /** @hidden */\n _start: number;\n\n /** @hidden */\n _isInFocus = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n get _role(): string {\n return 'separator';\n }\n\n /** @hidden */\n @HostBinding('attr.aria-orientation')\n get _ariaOrientation(): string {\n return this.orientation;\n }\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n private _prevDiff = 0;\n\n /** @hidden */\n private _pointerMoveListener = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _ngZone: NgZone,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe();\n }\n\n /** @hidden */\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent): void {\n event.preventDefault();\n\n this._start = this._isHorizontal ? event.clientY : event.clientX;\n\n this.startResize.emit();\n\n this._listenToPointerMove();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n let diff: number;\n\n if (this._isHorizontal) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().left;\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (this._isVertical) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().top;\n\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [RIGHT_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n this.startResize.emit();\n this._emitResize(diff);\n this.endResize.emit();\n\n this._unsubscribe(false);\n }\n }\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n this._isInFocus = true;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n @HostListener('blur')\n _onBlur(): void {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _listenToPointerMove(): void {\n this._pointerMoveListener = new Subject<void>();\n\n if (!this._document) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n fromEvent(this._document, 'mousemove')\n .pipe(delay(10), takeUntil(this._pointerMoveListener))\n .subscribe((event: MouseEvent) => {\n this._ngZone.run(() => {\n const newPosition = this._isHorizontal ? event.clientY : event.clientX;\n\n this._emitResize(newPosition);\n this._cdr.markForCheck();\n });\n });\n\n fromEvent(this._document, 'mouseup')\n .pipe(take(1), takeUntil(this._pointerMoveListener))\n .subscribe(() => {\n this._ngZone.run(() => {\n this.endResize.emit();\n this._unsubscribe();\n this._cdr.markForCheck();\n });\n });\n });\n }\n\n /** @hidden */\n private _emitResize(newPosition: number): void {\n const diff = newPosition - this._start;\n\n this.resize.emit(diff - this._prevDiff);\n\n this._prevDiff = diff;\n }\n\n /** @hidden */\n private _unsubscribe(removeFocus = true): void {\n this._start = null;\n this._prevDiff = 0;\n\n this._pointerMoveListener?.next();\n this._pointerMoveListener?.complete();\n\n if (removeFocus) {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n }\n}\n","<div class=\"fd-splitter__resizer-decoration-before\"></div>\n\n<div class=\"fd-splitter__resizer-grip\">\n <fd-icon\n class=\"fd-splitter__resizer-grip-icon\"\n [glyph]=\"(_isVertical && 'vertical-grip') || (_isHorizontal && 'horizontal-grip')\"\n ></fd-icon>\n</div>\n\n<div class=\"fd-splitter__resizer-decoration-after\"></div>\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SkipSelf,\n ViewEncapsulation\n} from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { RtlService } from '@fundamental-ngx/core/utils';\n\nimport { SplitterComponent } from '../splitter.component';\nimport { SplitterPaneResizeEvent } from '../interfaces/splitter-pane-resize-event.interface';\nimport { SplitterSplitPaneComponent } from '../splitter-split-pane/splitter-split-pane.component';\nimport { PANE_AUTO_SIZE, PANE_NONE_SIZE, RESIZER_SIZE_PX, ROOT_PAGE } from '../constants';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from './splitter-pane-orientation.enum';\n\n@Component({\n selector: 'fd-splitter-pane-container',\n templateUrl: './splitter-pane-container.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pane-container',\n '[class.fd-splitter__pane-container--horizontal]': '!_isRootContainer && _isHorizontal',\n '[class.fd-splitter__pane-container--vertical]': '_isRootContainer || _isVertical'\n }\n})\nexport class SplitterPaneContainerComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n /** Pane type - vertical (default) or horizontal. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /** Event emitted after container's panes has resized. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly resize = new EventEmitter<SplitterPaneResizeEvent[]>();\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent)\n _directPanes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _defaultPane: SplitterSplitPaneComponent;\n\n /** @hidden */\n _pages: string[] = [];\n\n /** @hidden */\n _currentPage: string;\n\n /** @hidden */\n private _paneSizes: number[] = [];\n\n /** @hidden */\n private _wantedPanesSizes: number[] = [];\n\n /** @hidden */\n private _initialPaneSizes: number[] = [];\n\n /** @hidden */\n private _directPaneSubscription$ = new Subscription();\n\n /** @hidden */\n private _subscription$ = new Subscription();\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n get _isRootContainer(): boolean {\n return !this._parentSplitterPaneContainer;\n }\n\n /** @hidden */\n get _panesOnCanvas(): SplitterSplitPaneComponent[] {\n return this._directPanes.filter((pane) => pane.isOnCanvas);\n }\n\n /** @hidden */\n get _activePanes(): SplitterSplitPaneComponent[] {\n if (this._currentPage === ROOT_PAGE) {\n return this._panesOnCanvas;\n }\n\n return this._panes.filter((pane) => pane.id === this._currentPage);\n }\n\n /** @hidden */\n private get _panesInRightOrderForResize(): SplitterSplitPaneComponent[] {\n const panes = this._directPanes.filter((pane) => pane.id !== this._defaultPane?.id);\n\n if (this._defaultPane) {\n panes.unshift(this._defaultPane);\n }\n\n return panes;\n }\n\n /** @hidden */\n private get _isRtl(): boolean {\n return this._rtlService?.rtl.getValue();\n }\n\n /** @hidden */\n constructor(\n private readonly _cdr: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _splitter: SplitterComponent,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() private readonly _rtlService: RtlService,\n @Optional() @SkipSelf() private readonly _parentSplitterPaneContainer: SplitterPaneContainerComponent\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._isRootContainer) {\n this._setDefaultPane();\n this._updatePages();\n\n this._panes.forEach((pane) => {\n this._subscription$.add(pane.toggleOnCanvas.subscribe(() => this._updatePages()));\n });\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setPanes();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._directPaneSubscription$.unsubscribe();\n this._subscription$.unsubscribe();\n }\n\n /** @hidden */\n _getPaneStyles(pane: SplitterSplitPaneComponent): { [klass: string]: any } {\n const style = {\n 'min-width': PANE_AUTO_SIZE,\n 'max-width': PANE_NONE_SIZE,\n 'min-height': PANE_AUTO_SIZE,\n 'max-height': PANE_NONE_SIZE\n };\n\n if (this._isVertical && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-width'] = pane._actualSize;\n style['max-width'] = pane._actualSize;\n }\n\n if (this._isHorizontal && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-height'] = pane._actualSize;\n style['max-height'] = pane._actualSize;\n }\n\n return style;\n }\n\n /** @hidden */\n _startResize(): void {\n this._paneSizes = [];\n this._initialPaneSizes = [];\n\n this._panesInRightOrderForResize.forEach((pane) => {\n const paneSize = this._getPaneElementSizePx(pane.id);\n\n this._paneSizes.push(paneSize);\n this._initialPaneSizes.push(paneSize);\n });\n }\n\n /** @hidden */\n _endResize(): void {\n const changedPaneSizes: SplitterPaneResizeEvent[] = [];\n\n this._panesInRightOrderForResize.forEach((pane, index) => {\n if (this._paneSizes[index] !== this._initialPaneSizes[index]) {\n changedPaneSizes.push({\n paneId: pane.id,\n oldSize: this._initialPaneSizes[index] + 'px',\n newSize: this._paneSizes[index] + 'px'\n });\n }\n });\n\n this.resize.emit(changedPaneSizes);\n\n this._resizePanesToFitInContainer(true);\n }\n\n /** @hidden */\n _onResize(paneId: string, diff: number): void {\n if (diff === 0) {\n return;\n }\n\n diff *= this._isRtl && this.orientation === SplitterPaneContainerOrientation.vertical ? -1 : 1;\n\n const resizedPaneIndex =\n this._panesInRightOrderForResize.findIndex((pane) => pane.id === paneId) + (diff < 0 ? 1 : 0);\n const resizedPane = this._panesInRightOrderForResize[resizedPaneIndex];\n\n let siblingPaneIndex = resizedPaneIndex;\n let siblingPane;\n let siblingPaneSize;\n\n do {\n siblingPaneIndex += diff < 0 ? -1 : 1;\n siblingPane = this._panesInRightOrderForResize[siblingPaneIndex];\n siblingPaneSize = this._paneSizes[siblingPaneIndex];\n\n if (!siblingPane) {\n return;\n }\n } while (!siblingPaneSize);\n\n const resizedPaneNewSize = this._paneSizes[resizedPaneIndex] + diff * (diff < 0 ? -1 : 1);\n const siblingPaneNewSize = this._paneSizes[siblingPaneIndex] + diff * (diff < 0 ? 1 : -1);\n\n /** Prevent from setting negative size */\n if (resizedPaneNewSize < 0 || siblingPaneNewSize < 0) {\n return;\n }\n\n this._paneSizes[resizedPaneIndex] = resizedPaneNewSize;\n this._paneSizes[siblingPaneIndex] = siblingPaneNewSize;\n\n resizedPane.size = this._paneSizes[resizedPaneIndex] + 'px';\n siblingPane.size = this._paneSizes[siblingPaneIndex] + 'px';\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _onPageChange(page: string = ROOT_PAGE): void {\n this._currentPage = page;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _updatePages(): void {\n this._pages = [];\n\n const offCanvasDemandPages = this._panes\n .filter((pane) => !pane.isOnCanvas && pane.demandPane)\n .map((pane) => pane.id);\n let newPage = ROOT_PAGE;\n\n if (offCanvasDemandPages.length) {\n this._pages = offCanvasDemandPages;\n newPage = offCanvasDemandPages[0];\n\n if (this._panesOnCanvas.length > 1) {\n this._pages.unshift(ROOT_PAGE);\n newPage = ROOT_PAGE;\n }\n\n if (this._panesOnCanvas.length === 1) {\n this._pages.unshift(this._panesOnCanvas[0].id);\n newPage = this._panesOnCanvas[0].id;\n }\n }\n\n const currentPageExist = this._pages.includes(this._currentPage);\n\n if (!currentPageExist) {\n /** Detaching basically works without the code but it's the edge-case */\n const isShouldDetachDefaultPane = this._currentPage === this._defaultPane?.id && newPage === ROOT_PAGE;\n\n if (isShouldDetachDefaultPane && this._defaultPane?._content.isAttached) {\n this._defaultPane._content.detach();\n }\n\n this._onPageChange(newPage);\n return;\n }\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _setPanes(): void {\n this._resizePanesToFitInContainer(true);\n\n const setDirectPanesSubscription = (): void => {\n this._directPaneSubscription$.unsubscribe();\n this._directPaneSubscription$ = new Subscription();\n\n this._directPanes.forEach((pane) => {\n this._directPaneSubscription$.add(\n pane.toggleOnCanvas.subscribe(() => this._resizePanesToFitInContainer())\n );\n });\n };\n\n let prevDirectPanes = [...this._directPanes];\n const areDirectPanesSame = (panes: QueryList<SplitterSplitPaneComponent>): boolean => {\n if (panes.length !== prevDirectPanes.length) {\n return false;\n }\n\n return prevDirectPanes.every((prevPane) => !!panes.find((pane) => pane.id === prevPane.id));\n };\n\n setDirectPanesSubscription();\n\n this._subscription$.add(\n this._panes.changes.pipe(filter((panes) => !areDirectPanesSame(panes))).subscribe((panesList) => {\n prevDirectPanes = panesList.toArray();\n\n setDirectPanesSubscription();\n\n this._resizePanesToFitInContainer(true);\n })\n );\n\n this._subscription$.add(this._viewportRuler.change(10).subscribe(() => this._resizePanesToFitInContainer()));\n }\n\n /** @hidden */\n private _setDefaultPane(): void {\n const setDefaultPane = (): void => {\n if (this._splitter.defaultPaneId) {\n this._defaultPane = this._panes.find((pane) => pane.id === this._splitter.defaultPaneId);\n }\n\n if (!this._defaultPane) {\n this._defaultPane = this._directPanes[0];\n }\n\n /** Detaching basically works without the code but it's the edge-case */\n if (this._defaultPane?._content.isAttached) {\n this._defaultPane._content.detach();\n }\n };\n\n setDefaultPane();\n\n this._subscription$.add(\n this._splitter._defaultPaneId$.subscribe(() => {\n this._cdr.detectChanges();\n\n setDefaultPane();\n\n this._resizePanesToFitInContainer(true);\n this._updatePages();\n })\n );\n }\n\n /** @hidden */\n private _resizePanesToFitInContainer(setInitialSize = false): void {\n if (setInitialSize) {\n this._cdr.detectChanges();\n }\n\n const containerSizePx = this._isHorizontal\n ? this._elementRef.nativeElement.offsetHeight\n : this._elementRef.nativeElement.offsetWidth;\n let availableSpacePx = containerSizePx - RESIZER_SIZE_PX * (this._directPanes.length - 1);\n\n this._directPanes.forEach((pane, index) => {\n if (!availableSpacePx) {\n pane._actualSize = '0px';\n return;\n }\n\n if (setInitialSize) {\n this._wantedPanesSizes[index] = this._getPaneElementSizePx(pane.id);\n }\n\n const paneSize = this._wantedPanesSizes[index];\n\n if (availableSpacePx - this._wantedPanesSizes[index] < 0) {\n pane._actualSize = availableSpacePx + 'px';\n availableSpacePx = 0;\n return;\n }\n\n pane._actualSize = pane.size === PANE_AUTO_SIZE ? PANE_AUTO_SIZE : paneSize + 'px';\n availableSpacePx -= paneSize;\n });\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _getPaneElementSizePx(paneId: string): number {\n const paneElement = this._getPaneElement(paneId);\n\n if (!paneElement) {\n return null;\n }\n\n return this._isHorizontal ? paneElement.offsetHeight : paneElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPaneElement(paneId: string): HTMLElement {\n return this._elementRef.nativeElement.querySelector(`#${paneId}`);\n }\n}\n\n@Pipe({ name: 'noDefaultPane' })\nexport class NoDefaultPanePipe implements PipeTransform {\n constructor(private readonly _splitterPaneContainer: SplitterPaneContainerComponent) {}\n\n transform(value: SplitterSplitPaneComponent[], excludingCondition = true): SplitterSplitPaneComponent[] {\n if (!excludingCondition) {\n return value;\n }\n\n return value.filter((pane) => pane.id !== this._splitterPaneContainer._defaultPane?.id);\n }\n}\n","<ng-container *ngIf=\"_isRootContainer; else panesOnCanvasTemplate\">\n <ng-container *ngIf=\"_defaultPane?.isOnCanvas && _activePanes.length > 1\">\n <ng-container\n *ngTemplateOutlet=\"panesTemplate; context: { panes: [_defaultPane], showResizer: true }\"\n ></ng-container>\n </ng-container>\n\n <div class=\"fd-splitter__pane-container-wrapper\" [style.flex-grow]=\"_activePanes.length - 1 || 1\">\n <div\n class=\"fd-splitter__pane-container\"\n [class.fd-splitter__pane-container--horizontal]=\"!_isRootContainer && _isHorizontal\"\n [class.fd-splitter__pane-container--vertical]=\"_isRootContainer || _isVertical\"\n [class.fd-splitter__pane-container--root]=\"_isRootContainer\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n panesTemplate;\n context: {\n panes: _activePanes | noDefaultPane: _defaultPane?.isOnCanvas && _activePanes.length > 1\n }\n \"\n ></ng-container>\n </div>\n\n <fd-splitter-pagination\n *ngIf=\"_pages.length\"\n [pages]=\"_pages\"\n [currentPage]=\"_currentPage\"\n (onPageChange)=\"_onPageChange($event)\"\n ></fd-splitter-pagination>\n </div>\n</ng-container>\n\n<ng-template #panesOnCanvasTemplate>\n <ng-container *ngTemplateOutlet=\"panesTemplate; context: { panes: _panesOnCanvas }\"></ng-container>\n</ng-template>\n\n<!-- IDE won't recognize types properly below -->\n\n<ng-template #panesTemplate let-panes=\"panes\" let-showResizer=\"showResizer\">\n <ng-container *ngFor=\"let pane of panes; let last = last\">\n <section [id]=\"pane.id\" class=\"fd-splitter__split-pane\" [style]=\"_getPaneStyles(pane)\">\n <ng-template [cdkPortalOutlet]=\"pane._content\"></ng-template>\n </section>\n\n <fd-splitter-resizer\n *ngIf=\"!last || showResizer\"\n [orientation]=\"orientation\"\n (startResize)=\"_startResize()\"\n (endResize)=\"_endResize()\"\n (resize)=\"_onResize(pane.id, $event)\"\n ></fd-splitter-resizer>\n </ng-container>\n</ng-template>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '@fundamental-ngx/core/icon';\n\nimport { SplitterPaginationComponent } from './splitter-pagination/splitter-pagination.component';\nimport {\n SplitterPaneContainerComponent,\n NoDefaultPanePipe\n} from './splitter-pane-container/splitter-pane-container.component';\nimport { SplitterResizerComponent } from './splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from './splitter.component';\n\n@NgModule({\n declarations: [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n ],\n imports: [CommonModule, IconModule, PortalModule],\n exports: [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n ]\n})\nexport class SplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-splitter.mjs","sources":["../../../../libs/core/src/lib/splitter/constants.ts","../../../../libs/core/src/lib/splitter/splitter-split-pane/splitter-split-pane.component.ts","../../../../libs/core/src/lib/splitter/splitter-split-pane/splitter-split-pane.component.html","../../../../libs/core/src/lib/splitter/splitter.component.ts","../../../../libs/core/src/lib/splitter/splitter.component.html","../../../../libs/core/src/lib/splitter/splitter-pagination/splitter-pagination.component.ts","../../../../libs/core/src/lib/splitter/splitter-pagination/splitter-pagination.component.html","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-orientation.enum.ts","../../../../libs/core/src/lib/splitter/splitter-resizer/splitter-resizer.component.ts","../../../../libs/core/src/lib/splitter/splitter-resizer/splitter-resizer.component.html","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-container.component.ts","../../../../libs/core/src/lib/splitter/splitter-pane-container/splitter-pane-container.component.html","../../../../libs/core/src/lib/splitter/splitter.module.ts","../../../../libs/core/src/lib/splitter/fundamental-ngx-core-splitter.ts"],"sourcesContent":["export const PANE_AUTO_SIZE = 'auto';\n\nexport const PANE_NONE_SIZE = 'none';\n\nexport const RESIZER_SIZE_PX = 16;\n\nexport const ROOT_PAGE = 'FD_SPLITTER_ROOT_PAGE';\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { PANE_AUTO_SIZE } from '../constants';\n\nlet paneUniqueId = 0;\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-split-pane',\n templateUrl: './splitter-split-pane.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SplitterSplitPaneComponent implements OnInit, AfterViewInit, OnDestroy {\n /** Size (height in vertical orientation, width in horizontal orientation) of the pane. */\n @Input()\n set size(size: string) {\n this._size = size;\n this._actualSize = this._size;\n }\n\n get size(): string {\n return this._size;\n }\n\n /** Id of the split pane. Generated if not provided. */\n @Input()\n id = `fd-splitter-split-pane-${paneUniqueId++}`;\n\n /** Required browser's window width in pixels when the panel will be shown. */\n @Input()\n requiredParentWidth: number;\n\n /** Whether pane is reachable using pagination bar when is off-canvas. */\n @Input()\n demandPane = true;\n\n /** Event emitted when the pane appears on/disappears out of canvas. */\n @Output()\n readonly toggleOnCanvas = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild(TemplateRef, { static: true })\n _templateRef: TemplateRef<any>;\n\n /** @hidden */\n _actualSize = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _size = PANE_AUTO_SIZE;\n\n /** @hidden */\n private _contentPortal: TemplatePortal | null = null;\n\n /** @hidden */\n private _isOnCanvas = true;\n\n /** @hidden */\n private _unsubscribe$ = new Subject<void>();\n\n /** Returns if the pane is on canvas. */\n get isOnCanvas(): boolean {\n return this._isOnCanvas;\n }\n\n /** @hidden */\n get _content(): TemplatePortal | null {\n return this._contentPortal;\n }\n\n /** @hidden */\n private get _window(): Window & typeof globalThis {\n return this._document?.defaultView;\n }\n\n /** @hidden */\n constructor(\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n ngOnInit(): void {\n this._contentPortal = new TemplatePortal(this._templateRef, this._viewContainerRef);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._processPaneOnCanvas();\n this._listenToResize();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe$.next();\n this._unsubscribe$.complete();\n }\n\n /** Hide pane from the canvas. */\n hideFromCanvas(): void {\n if (!this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = false;\n\n this.toggleOnCanvas.emit(false);\n }\n\n /** Show pane on the canvas. */\n showOnCanvas(): void {\n if (this.isOnCanvas) {\n return;\n }\n\n this._isOnCanvas = true;\n\n this.toggleOnCanvas.emit(true);\n }\n\n /** @hidden */\n private _listenToResize(): void {\n if (!this._window) {\n return;\n }\n\n this._viewportRuler\n .change(10)\n .pipe(takeUntil(this._unsubscribe$))\n .subscribe(() => this._processPaneOnCanvas());\n }\n\n /** @hidden */\n private _processPaneOnCanvas(): void {\n if (!this._window) {\n return;\n }\n\n if (this.requiredParentWidth > this._window.innerWidth && this.isOnCanvas) {\n this.hideFromCanvas();\n }\n\n if (this.requiredParentWidth < this._window.innerWidth && !this.isOnCanvas) {\n this.showOnCanvas();\n }\n }\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n Input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\n\n@Component({\n selector: 'fd-splitter',\n templateUrl: './splitter.component.html',\n styleUrls: ['./splitter.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'fd-splitter' }\n})\nexport class SplitterComponent {\n /** Id of the main pane. */\n @Input()\n set defaultPaneId(value: string) {\n this._defaultPaneId = value;\n\n this._defaultPaneId$.next(this._defaultPaneId);\n }\n\n get defaultPaneId(): string {\n return this._defaultPaneId;\n }\n\n /** aria-label for the pagination item. */\n @Input()\n paginationItemAriaLabel = 'Section';\n\n /** @hidden */\n _defaultPaneId$ = new Subject<string>();\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n private _defaultPaneId: string;\n\n /** Check whether certain pane is on canvas. */\n isPaneOnCanvas(paneId: string): boolean {\n if (!this._panes.length) {\n return false;\n }\n\n const paneToCheck = this._panes.find((pane) => pane.id === paneId);\n\n return paneToCheck?.isOnCanvas;\n }\n\n /** Hide certain pane from the canvas. */\n hidePaneFromCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToRemove = this._panes.find((pane) => pane.id === paneId);\n\n paneToRemove?.hideFromCanvas();\n }\n\n /** Show certain pane from the canvas. */\n showPaneOnCanvas(paneId: string): void {\n if (!this._panes.length) {\n return;\n }\n\n const paneToShow = this._panes.find((pane) => pane.id === paneId);\n\n paneToShow?.showOnCanvas();\n }\n}\n","<ng-content></ng-content>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { SplitterComponent } from '../splitter.component';\n\n@Component({\n selector: 'fd-splitter-pagination',\n templateUrl: './splitter-pagination.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pagination',\n '[attr.role]': '\"radiogroup\"'\n }\n})\nexport class SplitterPaginationComponent {\n /** Array of pages ids. */\n @Input()\n pages: string[] = [];\n\n /** Current page id. */\n @Input()\n currentPage: string;\n\n /** Event emitted on page change. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onPageChange = new EventEmitter<string>();\n\n /** @hidden */\n _pages: string[] = [];\n\n /** @hidden */\n get paginationItemAriaLabel(): string {\n return this._splitter.paginationItemAriaLabel;\n }\n\n /** @Hidden */\n constructor(private readonly _splitter: SplitterComponent) {}\n\n /** @hidden */\n _changePage(page: string): void {\n if (page === this.currentPage) {\n return;\n }\n\n this.currentPage = page;\n this.onPageChange.emit(this.currentPage);\n }\n}\n","<button\n *ngFor=\"let page of pages\"\n class=\"fd-splitter__pagination-item\"\n [class.fd-splitter__pagination-item--active]=\"page === currentPage\"\n role=\"radio\"\n [attr.aria-label]=\"paginationItemAriaLabel\"\n [attr.aria-checked]=\"page === currentPage\"\n (click)=\"_changePage(page)\"\n (keydown.enter)=\"_changePage(page)\"\n>\n <span class=\"fd-splitter__pagination-item-dot\"></span>\n</button>\n","export enum SplitterPaneContainerOrientation {\n vertical = 'vertical',\n horizontal = 'horizontal'\n}\n\nexport type SplitterPaneContainerOrientationType =\n | keyof typeof SplitterPaneContainerOrientation\n | SplitterPaneContainerOrientation;\n","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Output,\n ViewEncapsulation\n} from '@angular/core';\nimport { debounceTime, fromEvent, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { KeyUtil } from '@fundamental-ngx/core/utils';\n\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from '../splitter-pane-container/splitter-pane-orientation.enum';\n\n/** @dynamic */\n@Component({\n selector: 'fd-splitter-resizer',\n templateUrl: './splitter-resizer.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__resizer',\n '[class.fd-splitter__resizer--active]': '_start != null || _isInFocus',\n '[tabindex]': '0'\n }\n})\nexport class SplitterResizerComponent implements OnDestroy {\n /** Orientation of the splitter's host pane container. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /** Event emitted after resizing has started. */\n @Output()\n startResize = new EventEmitter<void>();\n\n /** Event emitted after resizing has ended. */\n @Output()\n endResize = new EventEmitter<void>();\n\n /** Event emitted while resizing. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n resize = new EventEmitter<number>();\n\n /** @hidden */\n _start: number;\n\n /** @hidden */\n _isInFocus = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n get _role(): string {\n return 'separator';\n }\n\n /** @hidden */\n @HostBinding('attr.aria-orientation')\n get _ariaOrientation(): string {\n return this.orientation;\n }\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n private _prevDiff = 0;\n\n /** @hidden */\n private _pointerMoveListener = new Subject<void>();\n\n /** @hidden */\n constructor(\n private readonly _elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _ngZone: NgZone,\n @Optional() @Inject(DOCUMENT) private readonly _document: Document | null\n ) {}\n\n /** @hidden */\n ngOnDestroy(): void {\n this._unsubscribe();\n }\n\n /** @hidden */\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent): void {\n event.preventDefault();\n\n this._start = this._isHorizontal ? event.clientY : event.clientX;\n\n this.startResize.emit();\n\n this._listenToPointerMove();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n _onKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n event.preventDefault();\n\n let diff: number;\n\n if (this._isHorizontal) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().left;\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n if (this._isVertical) {\n this._start = this._elementRef.nativeElement.getBoundingClientRect().top;\n\n if (KeyUtil.isKeyCode(event, [LEFT_ARROW])) {\n diff = this._start - 1;\n }\n\n if (KeyUtil.isKeyCode(event, [RIGHT_ARROW])) {\n diff = this._start + 1;\n }\n }\n\n this.startResize.emit();\n this._emitResize(diff);\n this.endResize.emit();\n\n this._unsubscribe(false);\n }\n }\n\n /** @hidden */\n @HostListener('focus')\n _onFocus(): void {\n this._isInFocus = true;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n @HostListener('blur')\n _onBlur(): void {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _listenToPointerMove(): void {\n this._pointerMoveListener = new Subject<void>();\n\n if (!this._document) {\n return;\n }\n\n this._ngZone.runOutsideAngular(() => {\n fromEvent(this._document, 'mousemove')\n .pipe(debounceTime(10), takeUntil(this._pointerMoveListener))\n .subscribe((event: MouseEvent) => {\n this._ngZone.run(() => {\n const newPosition = this._isHorizontal ? event.clientY : event.clientX;\n\n this._emitResize(newPosition);\n this._cdr.markForCheck();\n });\n });\n\n fromEvent(this._document, 'mouseup')\n .pipe(take(1), takeUntil(this._pointerMoveListener))\n .subscribe(() => {\n this._ngZone.run(() => {\n this.endResize.emit();\n this._unsubscribe();\n this._cdr.markForCheck();\n });\n });\n });\n }\n\n /** @hidden */\n private _emitResize(newPosition: number): void {\n const diff = newPosition - this._start;\n\n this.resize.emit(diff - this._prevDiff);\n\n this._prevDiff = diff;\n }\n\n /** @hidden */\n private _unsubscribe(removeFocus = true): void {\n this._start = null;\n this._prevDiff = 0;\n\n this._pointerMoveListener?.next();\n this._pointerMoveListener?.complete();\n\n if (removeFocus) {\n this._isInFocus = false;\n\n this._cdr.markForCheck();\n }\n }\n}\n","<div class=\"fd-splitter__resizer-decoration-before\"></div>\n\n<div class=\"fd-splitter__resizer-grip\">\n <fd-icon\n class=\"fd-splitter__resizer-grip-icon\"\n [glyph]=\"(_isVertical && 'vertical-grip') || (_isHorizontal && 'horizontal-grip')\"\n ></fd-icon>\n</div>\n\n<div class=\"fd-splitter__resizer-decoration-after\"></div>\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SkipSelf,\n ViewEncapsulation\n} from '@angular/core';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { RtlService } from '@fundamental-ngx/core/utils';\n\nimport { SplitterComponent } from '../splitter.component';\nimport { SplitterPaneResizeEvent } from '../interfaces/splitter-pane-resize-event.interface';\nimport { SplitterSplitPaneComponent } from '../splitter-split-pane/splitter-split-pane.component';\nimport { PANE_AUTO_SIZE, PANE_NONE_SIZE, RESIZER_SIZE_PX, ROOT_PAGE } from '../constants';\nimport {\n SplitterPaneContainerOrientation,\n SplitterPaneContainerOrientationType\n} from './splitter-pane-orientation.enum';\n\n@Component({\n selector: 'fd-splitter-pane-container',\n templateUrl: './splitter-pane-container.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-splitter__pane-container',\n '[class.fd-splitter__pane-container--horizontal]': '!_isRootContainer && _isHorizontal',\n '[class.fd-splitter__pane-container--vertical]': '_isRootContainer || _isVertical'\n }\n})\nexport class SplitterPaneContainerComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n /** Pane type - vertical (default) or horizontal. */\n @Input()\n orientation: SplitterPaneContainerOrientationType = SplitterPaneContainerOrientation.vertical;\n\n /** Event emitted after container's panes has resized. */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n readonly resize = new EventEmitter<SplitterPaneResizeEvent[]>();\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent, { descendants: true })\n _panes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n @ContentChildren(SplitterSplitPaneComponent)\n _directPanes: QueryList<SplitterSplitPaneComponent>;\n\n /** @hidden */\n _defaultPane: SplitterSplitPaneComponent;\n\n /** @hidden */\n _pages: string[] = [];\n\n /** @hidden */\n _currentPage: string;\n\n /** @hidden */\n private _paneSizes: number[] = [];\n\n /** @hidden */\n private _wantedPanesSizes: number[] = [];\n\n /** @hidden */\n private _initialPaneSizes: number[] = [];\n\n /** @hidden */\n private _directPaneSubscription$ = new Subscription();\n\n /** @hidden */\n private _subscription$ = new Subscription();\n\n /** @hidden */\n get _isHorizontal(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.horizontal;\n }\n\n /** @hidden */\n get _isVertical(): boolean {\n return this.orientation === SplitterPaneContainerOrientation.vertical;\n }\n\n /** @hidden */\n get _isRootContainer(): boolean {\n return !this._parentSplitterPaneContainer;\n }\n\n /** @hidden */\n get _panesOnCanvas(): SplitterSplitPaneComponent[] {\n return this._directPanes.filter((pane) => pane.isOnCanvas);\n }\n\n /** @hidden */\n get _activePanes(): SplitterSplitPaneComponent[] {\n if (this._currentPage === ROOT_PAGE) {\n return this._panesOnCanvas;\n }\n\n return this._panes.filter((pane) => pane.id === this._currentPage);\n }\n\n /** @hidden */\n private get _panesInRightOrderForResize(): SplitterSplitPaneComponent[] {\n const panes = this._directPanes.filter((pane) => pane.id !== this._defaultPane?.id);\n\n if (this._defaultPane) {\n panes.unshift(this._defaultPane);\n }\n\n return panes;\n }\n\n /** @hidden */\n private get _isRtl(): boolean {\n return this._rtlService?.rtl.getValue();\n }\n\n /** @hidden */\n constructor(\n private readonly _cdr: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _splitter: SplitterComponent,\n private readonly _viewportRuler: ViewportRuler,\n @Optional() private readonly _rtlService: RtlService,\n @Optional() @SkipSelf() private readonly _parentSplitterPaneContainer: SplitterPaneContainerComponent\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._isRootContainer) {\n this._setDefaultPane();\n this._updatePages();\n\n this._panes.forEach((pane) => {\n this._subscription$.add(pane.toggleOnCanvas.subscribe(() => this._updatePages()));\n });\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setPanes();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._directPaneSubscription$.unsubscribe();\n this._subscription$.unsubscribe();\n }\n\n /** @hidden */\n _getPaneStyles(pane: SplitterSplitPaneComponent): { [klass: string]: any } {\n const style = {\n 'min-width': PANE_AUTO_SIZE,\n 'max-width': PANE_NONE_SIZE,\n 'min-height': PANE_AUTO_SIZE,\n 'max-height': PANE_NONE_SIZE\n };\n\n if (this._isVertical && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-width'] = pane._actualSize;\n style['max-width'] = pane._actualSize;\n }\n\n if (this._isHorizontal && pane.isOnCanvas && pane._actualSize !== PANE_AUTO_SIZE) {\n style['min-height'] = pane._actualSize;\n style['max-height'] = pane._actualSize;\n }\n\n return style;\n }\n\n /** @hidden */\n _startResize(): void {\n this._paneSizes = [];\n this._initialPaneSizes = [];\n\n this._panesInRightOrderForResize.forEach((pane) => {\n const paneSize = this._getPaneElementSizePx(pane.id);\n\n this._paneSizes.push(paneSize);\n this._initialPaneSizes.push(paneSize);\n });\n }\n\n /** @hidden */\n _endResize(): void {\n const changedPaneSizes: SplitterPaneResizeEvent[] = [];\n\n this._panesInRightOrderForResize.forEach((pane, index) => {\n if (this._paneSizes[index] !== this._initialPaneSizes[index]) {\n changedPaneSizes.push({\n paneId: pane.id,\n oldSize: this._initialPaneSizes[index] + 'px',\n newSize: this._paneSizes[index] + 'px'\n });\n }\n });\n\n this.resize.emit(changedPaneSizes);\n\n this._resizePanesToFitInContainer(true);\n }\n\n /** @hidden */\n _onResize(paneId: string, diff: number): void {\n if (diff === 0) {\n return;\n }\n\n diff *= this._isRtl && this.orientation === SplitterPaneContainerOrientation.vertical ? -1 : 1;\n\n const resizedPaneIndex =\n this._panesInRightOrderForResize.findIndex((pane) => pane.id === paneId) + (diff < 0 ? 1 : 0);\n const resizedPane = this._panesInRightOrderForResize[resizedPaneIndex];\n\n let siblingPaneIndex = resizedPaneIndex;\n let siblingPane;\n let siblingPaneSize;\n\n do {\n siblingPaneIndex += diff < 0 ? -1 : 1;\n siblingPane = this._panesInRightOrderForResize[siblingPaneIndex];\n siblingPaneSize = this._paneSizes[siblingPaneIndex];\n\n if (!siblingPane) {\n return;\n }\n } while (!siblingPaneSize);\n\n const resizedPaneNewSize = this._paneSizes[resizedPaneIndex] + diff * (diff < 0 ? -1 : 1);\n const siblingPaneNewSize = this._paneSizes[siblingPaneIndex] + diff * (diff < 0 ? 1 : -1);\n\n /** Prevent from setting negative size */\n if (resizedPaneNewSize < 0 || siblingPaneNewSize < 0) {\n return;\n }\n\n this._paneSizes[resizedPaneIndex] = resizedPaneNewSize;\n this._paneSizes[siblingPaneIndex] = siblingPaneNewSize;\n\n resizedPane.size = this._paneSizes[resizedPaneIndex] + 'px';\n siblingPane.size = this._paneSizes[siblingPaneIndex] + 'px';\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n _onPageChange(page: string = ROOT_PAGE): void {\n this._currentPage = page;\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _updatePages(): void {\n this._pages = [];\n\n const offCanvasDemandPages = this._panes\n .filter((pane) => !pane.isOnCanvas && pane.demandPane)\n .map((pane) => pane.id);\n let newPage = ROOT_PAGE;\n\n if (offCanvasDemandPages.length) {\n this._pages = offCanvasDemandPages;\n newPage = offCanvasDemandPages[0];\n\n if (this._panesOnCanvas.length > 1) {\n this._pages.unshift(ROOT_PAGE);\n newPage = ROOT_PAGE;\n }\n\n if (this._panesOnCanvas.length === 1) {\n this._pages.unshift(this._panesOnCanvas[0].id);\n newPage = this._panesOnCanvas[0].id;\n }\n }\n\n const currentPageExist = this._pages.includes(this._currentPage);\n\n if (!currentPageExist) {\n /** Detaching basically works without the code but it's the edge-case */\n const isShouldDetachDefaultPane = this._currentPage === this._defaultPane?.id && newPage === ROOT_PAGE;\n\n if (isShouldDetachDefaultPane && this._defaultPane?._content.isAttached) {\n this._defaultPane._content.detach();\n }\n\n this._onPageChange(newPage);\n return;\n }\n\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n private _setPanes(): void {\n this._resizePanesToFitInContainer(true);\n\n const setDirectPanesSubscription = (): void => {\n this._directPaneSubscription$.unsubscribe();\n this._directPaneSubscription$ = new Subscription();\n\n this._directPanes.forEach((pane) => {\n this._directPaneSubscription$.add(\n pane.toggleOnCanvas.subscribe(() => this._resizePanesToFitInContainer())\n );\n });\n };\n\n let prevDirectPanes = [...this._directPanes];\n const areDirectPanesSame = (panes: QueryList<SplitterSplitPaneComponent>): boolean => {\n if (panes.length !== prevDirectPanes.length) {\n return false;\n }\n\n return prevDirectPanes.every((prevPane) => !!panes.find((pane) => pane.id === prevPane.id));\n };\n\n setDirectPanesSubscription();\n\n this._subscription$.add(\n this._panes.changes.pipe(filter((panes) => !areDirectPanesSame(panes))).subscribe((panesList) => {\n prevDirectPanes = panesList.toArray();\n\n setDirectPanesSubscription();\n\n this._resizePanesToFitInContainer(true);\n })\n );\n\n this._subscription$.add(this._viewportRuler.change(10).subscribe(() => this._resizePanesToFitInContainer()));\n }\n\n /** @hidden */\n private _setDefaultPane(): void {\n const setDefaultPane = (): void => {\n if (this._splitter.defaultPaneId) {\n this._defaultPane = this._panes.find((pane) => pane.id === this._splitter.defaultPaneId);\n }\n\n if (!this._defaultPane) {\n this._defaultPane = this._directPanes[0];\n }\n\n /** Detaching basically works without the code but it's the edge-case */\n if (this._defaultPane?._content.isAttached) {\n this._defaultPane._content.detach();\n }\n };\n\n setDefaultPane();\n\n this._subscription$.add(\n this._splitter._defaultPaneId$.subscribe(() => {\n this._cdr.detectChanges();\n\n setDefaultPane();\n\n this._resizePanesToFitInContainer(true);\n this._updatePages();\n })\n );\n }\n\n /** @hidden */\n private _resizePanesToFitInContainer(setInitialSize = false): void {\n if (setInitialSize) {\n this._cdr.detectChanges();\n }\n\n const containerSizePx = this._isHorizontal\n ? this._elementRef.nativeElement.offsetHeight\n : this._elementRef.nativeElement.offsetWidth;\n let availableSpacePx = containerSizePx - RESIZER_SIZE_PX * (this._directPanes.length - 1);\n\n this._directPanes.forEach((pane, index) => {\n if (!availableSpacePx) {\n pane._actualSize = '0px';\n return;\n }\n\n if (setInitialSize) {\n this._wantedPanesSizes[index] = this._getPaneElementSizePx(pane.id);\n }\n\n const paneSize = this._wantedPanesSizes[index];\n\n if (availableSpacePx - this._wantedPanesSizes[index] < 0) {\n pane._actualSize = availableSpacePx + 'px';\n availableSpacePx = 0;\n return;\n }\n\n pane._actualSize = pane.size === PANE_AUTO_SIZE ? PANE_AUTO_SIZE : paneSize + 'px';\n availableSpacePx -= paneSize;\n });\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _getPaneElementSizePx(paneId: string): number {\n const paneElement = this._getPaneElement(paneId);\n\n if (!paneElement) {\n return null;\n }\n\n return this._isHorizontal ? paneElement.offsetHeight : paneElement.offsetWidth;\n }\n\n /** @hidden */\n private _getPaneElement(paneId: string): HTMLElement {\n return this._elementRef.nativeElement.querySelector(`#${paneId}`);\n }\n}\n\n@Pipe({ name: 'noDefaultPane' })\nexport class NoDefaultPanePipe implements PipeTransform {\n constructor(private readonly _splitterPaneContainer: SplitterPaneContainerComponent) {}\n\n transform(value: SplitterSplitPaneComponent[], excludingCondition = true): SplitterSplitPaneComponent[] {\n if (!excludingCondition) {\n return value;\n }\n\n return value.filter((pane) => pane.id !== this._splitterPaneContainer._defaultPane?.id);\n }\n}\n","<ng-container *ngIf=\"_isRootContainer; else panesOnCanvasTemplate\">\n <ng-container *ngIf=\"_defaultPane?.isOnCanvas && _activePanes.length > 1\">\n <ng-container\n *ngTemplateOutlet=\"panesTemplate; context: { panes: [_defaultPane], showResizer: true }\"\n ></ng-container>\n </ng-container>\n\n <div class=\"fd-splitter__pane-container-wrapper\" [style.flex-grow]=\"_activePanes.length - 1 || 1\">\n <div\n class=\"fd-splitter__pane-container\"\n [class.fd-splitter__pane-container--horizontal]=\"!_isRootContainer && _isHorizontal\"\n [class.fd-splitter__pane-container--vertical]=\"_isRootContainer || _isVertical\"\n [class.fd-splitter__pane-container--root]=\"_isRootContainer\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n panesTemplate;\n context: {\n panes: _activePanes | noDefaultPane: _defaultPane?.isOnCanvas && _activePanes.length > 1\n }\n \"\n ></ng-container>\n </div>\n\n <fd-splitter-pagination\n *ngIf=\"_pages.length\"\n [pages]=\"_pages\"\n [currentPage]=\"_currentPage\"\n (onPageChange)=\"_onPageChange($event)\"\n ></fd-splitter-pagination>\n </div>\n</ng-container>\n\n<ng-template #panesOnCanvasTemplate>\n <ng-container *ngTemplateOutlet=\"panesTemplate; context: { panes: _panesOnCanvas }\"></ng-container>\n</ng-template>\n\n<!-- IDE won't recognize types properly below -->\n\n<ng-template #panesTemplate let-panes=\"panes\" let-showResizer=\"showResizer\">\n <ng-container *ngFor=\"let pane of panes; let last = last\">\n <section [id]=\"pane.id\" class=\"fd-splitter__split-pane\" [style]=\"_getPaneStyles(pane)\">\n <ng-template [cdkPortalOutlet]=\"pane._content\"></ng-template>\n </section>\n\n <fd-splitter-resizer\n *ngIf=\"!last || showResizer\"\n [orientation]=\"orientation\"\n (startResize)=\"_startResize()\"\n (endResize)=\"_endResize()\"\n (resize)=\"_onResize(pane.id, $event)\"\n ></fd-splitter-resizer>\n </ng-container>\n</ng-template>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '@fundamental-ngx/core/icon';\n\nimport { SplitterPaginationComponent } from './splitter-pagination/splitter-pagination.component';\nimport {\n SplitterPaneContainerComponent,\n NoDefaultPanePipe\n} from './splitter-pane-container/splitter-pane-container.component';\nimport { SplitterResizerComponent } from './splitter-resizer/splitter-resizer.component';\nimport { SplitterSplitPaneComponent } from './splitter-split-pane/splitter-split-pane.component';\nimport { SplitterComponent } from './splitter.component';\n\n@NgModule({\n declarations: [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n ],\n imports: [CommonModule, IconModule, PortalModule],\n exports: [\n SplitterComponent,\n SplitterPaneContainerComponent,\n SplitterSplitPaneComponent,\n SplitterResizerComponent,\n SplitterPaginationComponent,\n NoDefaultPanePipe\n ]\n})\nexport class SplitterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}