@fundamental-ngx/core 0.35.5-rc.6 → 0.35.6

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 (175) 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/esm2020/breadcrumb.component.mjs +1 -1
  8. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +1 -1
  9. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +1 -1
  10. package/breadcrumb/package.json +1 -1
  11. package/busy-indicator/package.json +1 -1
  12. package/button/package.json +1 -1
  13. package/calendar/package.json +1 -1
  14. package/card/package.json +1 -1
  15. package/carousel/package.json +1 -1
  16. package/checkbox/package.json +1 -1
  17. package/combobox/package.json +1 -1
  18. package/content-density/package.json +4 -4
  19. package/date-picker/date-picker.component.d.ts +1 -10
  20. package/date-picker/date-picker.module.d.ts +2 -3
  21. package/date-picker/esm2020/date-picker.component.mjs +6 -30
  22. package/date-picker/esm2020/date-picker.module.mjs +1 -5
  23. package/date-picker/fesm2015/fundamental-ngx-core-date-picker.mjs +5 -33
  24. package/date-picker/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
  25. package/date-picker/fesm2020/fundamental-ngx-core-date-picker.mjs +5 -33
  26. package/date-picker/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
  27. package/date-picker/package.json +1 -1
  28. package/datetime/package.json +1 -1
  29. package/datetime-picker/package.json +1 -1
  30. package/dialog/package.json +1 -1
  31. package/dynamic-page/package.json +1 -1
  32. package/dynamic-side-content/package.json +1 -1
  33. package/esm2020/breadcrumb/breadcrumb.component.mjs +1 -1
  34. package/esm2020/date-picker/date-picker.component.mjs +6 -30
  35. package/esm2020/date-picker/date-picker.module.mjs +1 -5
  36. package/esm2020/menu/menu-item/menu-item.component.mjs +43 -7
  37. package/esm2020/menu/menu.component.mjs +37 -34
  38. package/esm2020/menu/services/menu.service.mjs +14 -13
  39. package/esm2020/shellbar/product-menu/product-menu.component.mjs +1 -1
  40. package/esm2020/shellbar/user-menu/shellbar-user-menu.component.mjs +1 -1
  41. package/esm2020/split-button/split-button.component.mjs +6 -6
  42. package/esm2020/tabs/tab-list.component.mjs +1 -1
  43. package/esm2020/time/time-column/time-column.component.mjs +2 -12
  44. package/esm2020/tree/tree-child.component.mjs +2 -2
  45. package/facets/package.json +1 -1
  46. package/feed-input/package.json +1 -1
  47. package/feed-list-item/package.json +1 -1
  48. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +1 -1
  49. package/fesm2015/fundamental-ngx-core-date-picker.mjs +5 -33
  50. package/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
  51. package/fesm2015/fundamental-ngx-core-menu.mjs +90 -50
  52. package/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
  53. package/fesm2015/fundamental-ngx-core-shellbar.mjs +2 -2
  54. package/fesm2015/fundamental-ngx-core-split-button.mjs +5 -5
  55. package/fesm2015/fundamental-ngx-core-split-button.mjs.map +1 -1
  56. package/fesm2015/fundamental-ngx-core-tabs.mjs +1 -1
  57. package/fesm2015/fundamental-ngx-core-time.mjs +1 -11
  58. package/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
  59. package/fesm2015/fundamental-ngx-core-tree.mjs +1 -1
  60. package/fesm2015/fundamental-ngx-core-tree.mjs.map +1 -1
  61. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +1 -1
  62. package/fesm2020/fundamental-ngx-core-date-picker.mjs +5 -33
  63. package/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
  64. package/fesm2020/fundamental-ngx-core-menu.mjs +90 -50
  65. package/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
  66. package/fesm2020/fundamental-ngx-core-shellbar.mjs +2 -2
  67. package/fesm2020/fundamental-ngx-core-split-button.mjs +5 -5
  68. package/fesm2020/fundamental-ngx-core-split-button.mjs.map +1 -1
  69. package/fesm2020/fundamental-ngx-core-tabs.mjs +1 -1
  70. package/fesm2020/fundamental-ngx-core-time.mjs +1 -11
  71. package/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
  72. package/fesm2020/fundamental-ngx-core-tree.mjs +1 -1
  73. package/fesm2020/fundamental-ngx-core-tree.mjs.map +1 -1
  74. package/file-uploader/package.json +1 -1
  75. package/fixed-card-layout/package.json +1 -1
  76. package/flexible-column-layout/package.json +1 -1
  77. package/form/package.json +1 -1
  78. package/formatted-text/package.json +1 -1
  79. package/grid-list/package.json +1 -1
  80. package/icon/package.json +1 -1
  81. package/illustrated-message/package.json +1 -1
  82. package/infinite-scroll/package.json +1 -1
  83. package/info-label/package.json +1 -1
  84. package/inline-help/package.json +1 -1
  85. package/input-group/package.json +1 -1
  86. package/layout-grid/package.json +1 -1
  87. package/layout-panel/package.json +1 -1
  88. package/link/package.json +1 -1
  89. package/list/package.json +1 -1
  90. package/menu/esm2020/menu-item/menu-item.component.mjs +43 -7
  91. package/menu/esm2020/menu.component.mjs +37 -34
  92. package/menu/esm2020/services/menu.service.mjs +14 -13
  93. package/menu/fesm2015/fundamental-ngx-core-menu.mjs +90 -50
  94. package/menu/fesm2015/fundamental-ngx-core-menu.mjs.map +1 -1
  95. package/menu/fesm2020/fundamental-ngx-core-menu.mjs +90 -50
  96. package/menu/fesm2020/fundamental-ngx-core-menu.mjs.map +1 -1
  97. package/menu/menu-item/menu-item.component.d.ts +27 -7
  98. package/menu/menu.component.d.ts +10 -10
  99. package/menu/package.json +1 -1
  100. package/menu/services/menu.service.d.ts +3 -3
  101. package/message-box/package.json +1 -1
  102. package/message-strip/package.json +1 -1
  103. package/message-toast/package.json +1 -1
  104. package/micro-process-flow/package.json +1 -1
  105. package/mobile-mode/package.json +1 -1
  106. package/multi-input/package.json +1 -1
  107. package/nested-list/package.json +1 -1
  108. package/notification/package.json +1 -1
  109. package/object-identifier/package.json +1 -1
  110. package/object-marker/package.json +1 -1
  111. package/object-number/package.json +1 -1
  112. package/object-status/package.json +1 -1
  113. package/overflow-layout/package.json +14 -14
  114. package/package.json +2 -2
  115. package/pagination/package.json +1 -1
  116. package/panel/package.json +1 -1
  117. package/popover/package.json +1 -1
  118. package/product-switch/package.json +1 -1
  119. package/progress-indicator/package.json +1 -1
  120. package/quick-view/package.json +1 -1
  121. package/radio/package.json +1 -1
  122. package/rating-indicator/package.json +1 -1
  123. package/resizable-card-layout/package.json +1 -1
  124. package/scroll-spy/package.json +1 -1
  125. package/scrollbar/package.json +1 -1
  126. package/segmented-button/package.json +1 -1
  127. package/select/package.json +1 -1
  128. package/shared/package.json +1 -1
  129. package/shellbar/esm2020/product-menu/product-menu.component.mjs +1 -1
  130. package/shellbar/esm2020/user-menu/shellbar-user-menu.component.mjs +1 -1
  131. package/shellbar/fesm2015/fundamental-ngx-core-shellbar.mjs +2 -2
  132. package/shellbar/fesm2020/fundamental-ngx-core-shellbar.mjs +2 -2
  133. package/shellbar/package.json +1 -1
  134. package/side-navigation/package.json +1 -1
  135. package/slider/package.json +1 -1
  136. package/split-button/esm2020/split-button.component.mjs +6 -6
  137. package/split-button/fesm2015/fundamental-ngx-core-split-button.mjs +5 -5
  138. package/split-button/fesm2015/fundamental-ngx-core-split-button.mjs.map +1 -1
  139. package/split-button/fesm2020/fundamental-ngx-core-split-button.mjs +5 -5
  140. package/split-button/fesm2020/fundamental-ngx-core-split-button.mjs.map +1 -1
  141. package/split-button/package.json +1 -1
  142. package/splitter/package.json +1 -1
  143. package/status-indicator/package.json +1 -1
  144. package/step-input/package.json +1 -1
  145. package/switch/package.json +1 -1
  146. package/table/package.json +1 -1
  147. package/tabs/esm2020/tab-list.component.mjs +1 -1
  148. package/tabs/fesm2015/fundamental-ngx-core-tabs.mjs +1 -1
  149. package/tabs/fesm2020/fundamental-ngx-core-tabs.mjs +1 -1
  150. package/tabs/package.json +1 -1
  151. package/text/package.json +1 -1
  152. package/theming/package.json +1 -1
  153. package/tile/package.json +1 -1
  154. package/time/esm2020/time-column/time-column.component.mjs +2 -12
  155. package/time/fesm2015/fundamental-ngx-core-time.mjs +1 -11
  156. package/time/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
  157. package/time/fesm2020/fundamental-ngx-core-time.mjs +1 -11
  158. package/time/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
  159. package/time/package.json +1 -1
  160. package/time/time-column/time-column.component.d.ts +0 -2
  161. package/time-picker/package.json +1 -1
  162. package/timeline/package.json +1 -1
  163. package/title/package.json +1 -1
  164. package/token/package.json +1 -1
  165. package/toolbar/package.json +1 -1
  166. package/tree/esm2020/tree-child.component.mjs +2 -2
  167. package/tree/fesm2015/fundamental-ngx-core-tree.mjs +1 -1
  168. package/tree/fesm2015/fundamental-ngx-core-tree.mjs.map +1 -1
  169. package/tree/fesm2020/fundamental-ngx-core-tree.mjs +1 -1
  170. package/tree/fesm2020/fundamental-ngx-core-tree.mjs.map +1 -1
  171. package/tree/package.json +1 -1
  172. package/upload-collection/package.json +1 -1
  173. package/utils/package.json +2 -2
  174. package/vertical-navigation/package.json +1 -1
  175. package/wizard/package.json +1 -1
@@ -92,14 +92,14 @@ export class SplitButtonComponent {
92
92
  }
93
93
  /** @hidden */
94
94
  ngAfterContentInit() {
95
- this.menu.menuItems.forEach((item) => {
95
+ this.menu._menuItems.forEach((item) => {
96
96
  item.menuInteractive._fromSplitButton = true;
97
97
  });
98
98
  this._setupMenuSubscription();
99
99
  this._setupMenuItemSubscriptions();
100
100
  this._handleMainActionObject();
101
101
  if (!this.mainActionTitle && !this.titleTemplate && !this.selected) {
102
- this.selectMenuItem(this.menu.menuItems.first);
102
+ this.selectMenuItem(this.menu._menuItems.first);
103
103
  }
104
104
  else if (!this.mainActionTitle && this.selected) {
105
105
  this.selectMenuItem(this.selected);
@@ -156,7 +156,7 @@ export class SplitButtonComponent {
156
156
  }
157
157
  /** @hidden */
158
158
  _setupMenuItemSubscriptions() {
159
- this.menu.menuItems.forEach((menuItem) => {
159
+ this.menu._menuItems.forEach((menuItem) => {
160
160
  menuItem.onSelect.pipe(first()).subscribe(() => {
161
161
  if (this.fixedWidth) {
162
162
  this._getMainButtonWidth();
@@ -171,7 +171,7 @@ export class SplitButtonComponent {
171
171
  _handleMenuItemSelection(menuItem) {
172
172
  if (!this.mainAction || !this.mainAction.keepMainAction) {
173
173
  this.selected = menuItem;
174
- this.menu.menuItems.forEach((item) => {
174
+ this.menu._menuItems.forEach((item) => {
175
175
  item.setSelected(false, true);
176
176
  });
177
177
  menuItem.setSelected(true, true);
@@ -182,7 +182,7 @@ export class SplitButtonComponent {
182
182
  }
183
183
  /** @hidden */
184
184
  _setupMenuSubscription() {
185
- this._menuSubscription = this.menu.menuItems.changes.subscribe(() => {
185
+ this._menuSubscription = this.menu._menuItems.changes.subscribe(() => {
186
186
  this._menuItemSubscriptions.unsubscribe();
187
187
  this._menuItemSubscriptions.closed = false;
188
188
  this._setupMenuItemSubscriptions();
@@ -244,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
244
244
  type: ViewChild,
245
245
  args: ['menuActionButton', { read: ElementRef }]
246
246
  }] } });
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3NwbGl0LWJ1dHRvbi9zcGxpdC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3BsaXQtYnV0dG9uL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7QUFFL0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsdUJBQXVCLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsZ0NBQWdDLENBQUM7QUFDNUUsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLG9CQUFvQixFQUFFLDJCQUEyQixDQUFDLENBQUM7QUFFbkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FB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TixRQUFRO3NCQURQLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQU1OLE1BQU07c0JBREwsS0FBSztnQkFLTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBS04saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBUU4sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLFVBQVU7c0JBRFQsS0FBSztnQkFLRyxvQkFBb0I7c0JBRDVCLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixZQUFZO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFLM0QsSUFBSTtzQkFESCxZQUFZO3VCQUFDLGFBQWE7Z0JBSzNCLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS25ELGFBQWE7c0JBRFosU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQnV0dG9uVHlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgTWVudUNvbXBvbmVudCwgTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5cbmltcG9ydCB7IFNwbGl0QnV0dG9uQWN0aW9uVGl0bGUgfSBmcm9tICcuL3NwbGl0LWJ1dHRvbi11dGlscy9zcGxpdC1idXR0b24uZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNYWluQWN0aW9uIH0gZnJvbSAnLi9tYWluLWFjdGlvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBEZXN0cm95ZWRTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IHNwbGl0QnV0dG9uVGV4dENsYXNzID0gJ2ZkLWJ1dHRvbi1zcGxpdF9fdGV4dCc7XG5leHBvcnQgY29uc3Qgc3BsaXRCdXR0b25UZXh0Q29tcGFjdENsYXNzID0gJ2ZkLWJ1dHRvbi1zcGxpdF9fdGV4dC0tY29tcGFjdCc7XG5jb25zdCBzcGxpdEJ1dHRvblRleHRDbGFzc2VzID0gW3NwbGl0QnV0dG9uVGV4dENsYXNzLCBzcGxpdEJ1dHRvblRleHRDb21wYWN0Q2xhc3NdO1xuXG4vKipcbiAqIFNwbGl0IEJ1dHRvbiBjb21wb25lbnQsIHVzZWQgdG8gZW5oYW5jZSBzdGFuZGFyZCBIVE1MIGJ1dHRvbiBhbmQgYWRkIHBvc3NpYmlsaXR5IHRvIHB1dCBzb21lIGRyb3Bkb3duIHdpdGhcbiAqIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtc3BsaXQtYnV0dG9uPlxuICogICA8ZmQtbWVudT5cbiAqICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gKiAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxuICogICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPk9wdGlvbiAxPC9zcGFuPlxuICogICAgICAgICAgIDwvZGl2PlxuICogICAgICAgPC9saT5cbiAqICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gKiAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxuICogICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPk9wdGlvbiAyPC9zcGFuPlxuICogICAgICAgICAgIDwvZGl2PlxuICogICAgICAgPC9saT5cbiAqICAgIDwvZmQtbWVudT5cbiAqPC9mZC1zcGxpdC1idXR0b24+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zcGxpdC1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnc3BsaXQtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zcGxpdC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKV1cbn0pXG5leHBvcnQgY2xhc3MgU3BsaXRCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIFRoZSBpY29uIHRvIGluY2x1ZGUgaW4gdGhlIGJ1dHRvbi4gU2VlIHRoZSBpY29uIHBhZ2UgZm9yIHRoZSBsaXN0IG9mIGljb25zLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGggPSAnc2xpbS1hcnJvdy1kb3duJztcblxuICAgIC8qKiBUaGUgaWNvbiB0byBpbmNsdWRlIGluIHRoZSBidXR0b24uIFNlZSB0aGUgaWNvbiBwYWdlIGZvciB0aGUgbGlzdCBvZiBpY29ucy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIFRoZSBUaXRsZSBmb3IgbWFpbiBhY3Rpb24gYnV0dG9uLiBUaGlzIHdpbGwgYmUgZGVwcmVjYXRlZCBhcyBhbiBpbnB1dCBidXQgd2lsbCByZW1haW4gYSBwcm9wZXJ0eSBvbiB0aGlzIGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1haW5BY3Rpb25UaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIFRoZSB0eXBlIG9mIHRoZSBidXR0b24uIFR5cGVzIGluY2x1ZGUgJ3N0YW5kYXJkJywgJ3Bvc2l0aXZlJywgJ21lZGl1bScsIGFuZCAnbmVnYXRpdmUnLlxuICAgICAqIExlYXZlIGVtcHR5IGZvciBkZWZhdWx0IChBY3Rpb24gYnV0dG9uKS4nKi9cbiAgICBASW5wdXQoKVxuICAgIGZkVHlwZTogQnV0dG9uVHlwZTtcblxuICAgIC8qKiBBcmlhLWxhYmVsIGF0dHJpYnV0ZSB1c2VkIHRvIGRlc2NyaWJlIGV4cGFuZCBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIGV4cGFuZEJ1dHRvbkFyaWFMYWJlbCA9ICdNb3JlIGFjdGlvbnMnO1xuXG4gICAgLyoqIFRpdGxlIGF0dHJpYnV0ZSB1c2VkIHRvIGRlc2NyaWJlIGV4cGFuZCBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIGV4cGFuZEJ1dHRvblRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKiogU2VsZWN0ZWQgbWVudSBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZDogTWVudUl0ZW1Db21wb25lbnQ7XG5cbiAgICAvKiogV2hldGhlciBvciBub3QgdGhlIGVsZW1lbnQgc2hvdWxkIGtlZXAgYSBmaXhlZCB3aWR0aC4gVGhlIHdpZHRoIGNvdWxkIGNoYW5nZSBpZiB0aGUgdGV4dCBjaGFuZ2VzIGxlbmd0aC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkV2lkdGggPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBtYWluQWN0aW9uVGl0bGUsIGtlZXBNYWluQWN0aW9uIG9wdGlvbiBhbmQgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlXG4gICAgICogZXhlY3V0ZWQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYWluQWN0aW9uOiBNYWluQWN0aW9uO1xuXG4gICAgLyoqIGFyaWEtbGFiZWwgYXR0cmlidXRlICovXG4gICAgQElucHV0KClcbiAgICBhcmlhbExhYmVsID0gJ1NwbGl0IGJ1dHRvbic7XG5cbiAgICAvKiogRXZlbnQgc2VudCB3aGVuIHByaW1hcnkgYnV0dG9uIGlzIGNsaWNrZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBwcmltYXJ5QnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoU3BsaXRCdXR0b25BY3Rpb25UaXRsZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIHRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKE1lbnVDb21wb25lbnQpXG4gICAgbWVudTogTWVudUNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbWFpbkFjdGlvbkJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIG1haW5BY3Rpb25CdG46IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ21lbnVBY3Rpb25CdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBtZW51QWN0aW9uQnRuOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtYWluQnV0dG9uV2lkdGg6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IHR5cGVDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mZFR5cGUgPyBgZmQtYnV0dG9uLXNwbGl0LS0ke3RoaXMuZmRUeXBlfWAgOiAnJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21lbnVJdGVtU3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbWVudVN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29udGVudERlbnNpdHlTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21lbnVBY3RpdmVQYXRoU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9kZXN0cm95JDogRGVzdHJveWVkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuIEVtaXRzIGV2ZW50IHdoZW4gbWFpbiBidXR0b24gaXMgY2xpY2tlZCAqL1xuICAgIG9uTWFpbkJ1dHRvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJpbWFyeUJ1dHRvbkNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWFpbkFjdGlvbiAmJiB0aGlzLm1haW5BY3Rpb24uY2FsbGJhY2spIHtcbiAgICAgICAgICAgIHRoaXMubWFpbkFjdGlvbi5jYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnUubWVudUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0ubWVudUludGVyYWN0aXZlLl9mcm9tU3BsaXRCdXR0b24gPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fc2V0dXBNZW51U3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIHRoaXMuX3NldHVwTWVudUl0ZW1TdWJzY3JpcHRpb25zKCk7XG4gICAgICAgIHRoaXMuX2hhbmRsZU1haW5BY3Rpb25PYmplY3QoKTtcblxuICAgICAgICBpZiAoIXRoaXMubWFpbkFjdGlvblRpdGxlICYmICF0aGlzLnRpdGxlVGVtcGxhdGUgJiYgIXRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0odGhpcy5tZW51Lm1lbnVJdGVtcy5maXJzdCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMubWFpbkFjdGlvblRpdGxlICYmIHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0odGhpcy5zZWxlY3RlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tZW51QWN0aXZlUGF0aFN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLm1lbnUuYWN0aXZlUGF0aC5zdWJzY3JpYmUoKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFzdEl0ZW0gPSBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICBpZiAobGFzdEl0ZW0gJiYgIWxhc3RJdGVtLnN1Ym1lbnUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZW51LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzVHJpZ2dlckVsZW1lbnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eU9ic2VydmVyLmlzQ29tcGFjdCRcbiAgICAgICAgICAgIC5waXBlKHRhcCh0aGlzLl9hZGRCdXR0b25UZXh0Q2xhc3MpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ3NlbGVjdGVkJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdE1lbnVJdGVtKHRoaXMuc2VsZWN0ZWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICgnbWFpbkFjdGlvbicgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5faGFuZGxlTWFpbkFjdGlvbk9iamVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbWVudUl0ZW1TdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX21lbnVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fY29udGVudERlbnNpdHlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fbWVudUFjdGl2ZVBhdGhTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gY2FsbGVkIHRvIHNlbGVjdCBhIG1lbnUgaXRlbSBmb3IgdGhlIHNwbGl0IGJ1dHRvbi4gKi9cbiAgICBzZWxlY3RNZW51SXRlbShtZW51SXRlbTogTWVudUl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKG1lbnVJdGVtICYmICghdGhpcy5tYWluQWN0aW9uIHx8ICF0aGlzLm1haW5BY3Rpb24ua2VlcE1haW5BY3Rpb24pKSB7XG4gICAgICAgICAgICBtZW51SXRlbS5zZXRTZWxlY3RlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdyYXBwZXIgZ2V0cyBmb2N1c2VkIHByb2dyYW1tYXRpY2FsbHkgYnkgbWVudVxuICAgICAqIHdoZW4gdGhlIFwiZXNjYXBlXCIgYnV0dG9uIGlzIHByZXNzZWQuXG4gICAgICogSW4gdGhpcyBjYXNlIHdlIG5lZWQgdG8gdHJhbnNpdCBmb2N1cyB0byB0aGUgXCJtb3JlIGFjdGlvbnNcIiBidXR0b25cbiAgICAgKi9cbiAgICBfb25Hcm91cEZvY3VzZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZvY3VzVHJpZ2dlckVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldE1haW5CdXR0b25XaWR0aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWFpbkFjdGlvbkJ0biAmJiB0aGlzLm1haW5BY3Rpb25CdG4ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5tYWluQnV0dG9uV2lkdGggPSB0aGlzLm1haW5BY3Rpb25CdG4ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCArICdweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldHVwTWVudUl0ZW1TdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnUubWVudUl0ZW1zLmZvckVhY2goKG1lbnVJdGVtKSA9PiB7XG4gICAgICAgICAgICBtZW51SXRlbS5vblNlbGVjdC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZml4ZWRXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXRNYWluQnV0dG9uV2lkdGgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX21lbnVJdGVtU3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICAgICAgbWVudUl0ZW0ub25TZWxlY3Quc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlTWVudUl0ZW1TZWxlY3Rpb24obWVudUl0ZW0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZU1lbnVJdGVtU2VsZWN0aW9uKG1lbnVJdGVtOiBNZW51SXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubWFpbkFjdGlvbiB8fCAhdGhpcy5tYWluQWN0aW9uLmtlZXBNYWluQWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gbWVudUl0ZW07XG4gICAgICAgICAgICB0aGlzLm1lbnUubWVudUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLnNldFNlbGVjdGVkKGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbWVudUl0ZW0uc2V0U2VsZWN0ZWQodHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLnRpdGxlVGVtcGxhdGUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5tYWluQWN0aW9uVGl0bGUgPSBtZW51SXRlbS5tZW51SXRlbVRpdGxlLnRpdGxlO1xuICAgICAgICAgICAgdGhpcy5fY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXR1cE1lbnVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21lbnVTdWJzY3JpcHRpb24gPSB0aGlzLm1lbnUubWVudUl0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX21lbnVJdGVtU3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5fbWVudUl0ZW1TdWJzY3JpcHRpb25zLmNsb3NlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fc2V0dXBNZW51SXRlbVN1YnNjcmlwdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGNhbGwgbWFya0ZvckNoZWNrIG9uY2UgbWVudSBvcGVuIHN0YXRlIGdldHMgY2hhbmdlZFxuICAgICAgICB0aGlzLl9tZW51U3Vic2NyaXB0aW9uLmFkZCh0aGlzLm1lbnUuaXNPcGVuQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlTWFpbkFjdGlvbk9iamVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWFpbkFjdGlvbiAmJiB0eXBlb2YgdGhpcy5tYWluQWN0aW9uLm1haW5BY3Rpb25UaXRsZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRoaXMubWFpbkFjdGlvblRpdGxlID0gdGhpcy5tYWluQWN0aW9uLm1haW5BY3Rpb25UaXRsZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1haW5BY3Rpb24gJiYgdGhpcy5tYWluQWN0aW9uLm1haW5BY3Rpb25UaXRsZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlVGVtcGxhdGUgPSB0aGlzLm1haW5BY3Rpb24ubWFpbkFjdGlvblRpdGxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGRCdXR0b25UZXh0Q2xhc3MgPSAoY29tcGFjdDogYm9vbGVhbik6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCB0ZXh0U3BhbkVsZW1lbnQgPSB0aGlzLm1haW5BY3Rpb25CdG4/Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZkLWJ1dHRvbl9fdGV4dCcpO1xuICAgICAgICBpZiAoIXRleHRTcGFuRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNwbGl0QnV0dG9uVGV4dENsYXNzZXMuZm9yRWFjaCgoX2NsYXNzKSA9PiB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0ZXh0U3BhbkVsZW1lbnQsIF9jbGFzcykpO1xuICAgICAgICBpZiAoY29tcGFjdCkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGV4dFNwYW5FbGVtZW50LCBzcGxpdEJ1dHRvblRleHRDb21wYWN0Q2xhc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGV4dFNwYW5FbGVtZW50LCBzcGxpdEJ1dHRvblRleHRDbGFzcyk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c1RyaWdnZXJFbGVtZW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVBY3Rpb25CdG4/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmZC1idXR0b24tc3BsaXQgZmQtaGFzLW1hcmdpbi1yaWdodC1zbWFsbFwiXG4gICAgW25nQ2xhc3NdPVwidHlwZUNsYXNzXCJcbiAgICByb2xlPVwiZ3JvdXBcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYWxMYWJlbFwiXG4gICAgW2ZkTWVudVRyaWdnZXJdPVwibWVudVwiXG4gICAgKGZvY3VzKT1cIl9vbkdyb3VwRm9jdXNlZCgpXCJcbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAjbWFpbkFjdGlvbkJ1dHRvblxuICAgICAgICBbbGFiZWxdPVwibWFpbkFjdGlvblRpdGxlXCJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cIm1haW5CdXR0b25XaWR0aFwiXG4gICAgICAgIFtmZFR5cGVdPVwiZmRUeXBlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTWFpbkJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRpdGxlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICNtZW51QWN0aW9uQnV0dG9uXG4gICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXG4gICAgICAgIFtmZFR5cGVdPVwiZmRUeXBlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJleHBhbmRCdXR0b25BcmlhTGFiZWxcIlxuICAgICAgICBbYXR0ci50aXRsZV09XCJleHBhbmRCdXR0b25UaXRsZSB8fCBleHBhbmRCdXR0b25BcmlhTGFiZWxcIlxuICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cIm1lbnUuaXNPcGVuXCJcbiAgICA+PC9idXR0b24+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtbWVudVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3NwbGl0LWJ1dHRvbi9zcGxpdC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc3BsaXQtYnV0dG9uL3NwbGl0LWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7QUFFL0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsdUJBQXVCLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsZ0NBQWdDLENBQUM7QUFDNUUsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLG9CQUFvQixFQUFFLDJCQUEyQixDQUFDLENBQUM7QUFFbkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FB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TixRQUFRO3NCQURQLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQU1OLE1BQU07c0JBREwsS0FBSztnQkFLTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBS04saUJBQWlCO3NCQURoQixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBUU4sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLFVBQVU7c0JBRFQsS0FBSztnQkFLRyxvQkFBb0I7c0JBRDVCLE1BQU07Z0JBS1AsYUFBYTtzQkFEWixZQUFZO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFLM0QsSUFBSTtzQkFESCxZQUFZO3VCQUFDLGFBQWE7Z0JBSzNCLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBS25ELGFBQWE7c0JBRFosU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQnV0dG9uVHlwZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgTWVudUNvbXBvbmVudCwgTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVudSc7XG5cbmltcG9ydCB7IFNwbGl0QnV0dG9uQWN0aW9uVGl0bGUgfSBmcm9tICcuL3NwbGl0LWJ1dHRvbi11dGlscy9zcGxpdC1idXR0b24uZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNYWluQWN0aW9uIH0gZnJvbSAnLi9tYWluLWFjdGlvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBEZXN0cm95ZWRTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IHNwbGl0QnV0dG9uVGV4dENsYXNzID0gJ2ZkLWJ1dHRvbi1zcGxpdF9fdGV4dCc7XG5leHBvcnQgY29uc3Qgc3BsaXRCdXR0b25UZXh0Q29tcGFjdENsYXNzID0gJ2ZkLWJ1dHRvbi1zcGxpdF9fdGV4dC0tY29tcGFjdCc7XG5jb25zdCBzcGxpdEJ1dHRvblRleHRDbGFzc2VzID0gW3NwbGl0QnV0dG9uVGV4dENsYXNzLCBzcGxpdEJ1dHRvblRleHRDb21wYWN0Q2xhc3NdO1xuXG4vKipcbiAqIFNwbGl0IEJ1dHRvbiBjb21wb25lbnQsIHVzZWQgdG8gZW5oYW5jZSBzdGFuZGFyZCBIVE1MIGJ1dHRvbiBhbmQgYWRkIHBvc3NpYmlsaXR5IHRvIHB1dCBzb21lIGRyb3Bkb3duIHdpdGhcbiAqIGFkZGl0aW9uYWwgb3B0aW9ucy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtc3BsaXQtYnV0dG9uPlxuICogICA8ZmQtbWVudT5cbiAqICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gKiAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxuICogICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPk9wdGlvbiAxPC9zcGFuPlxuICogICAgICAgICAgIDwvZGl2PlxuICogICAgICAgPC9saT5cbiAqICAgICAgIDxsaSBmZC1tZW51LWl0ZW0+XG4gKiAgICAgICAgICAgPGRpdiBmZC1tZW51LWludGVyYWN0aXZlPlxuICogICAgICAgICAgICAgICA8c3BhbiBmZC1tZW51LXRpdGxlPk9wdGlvbiAyPC9zcGFuPlxuICogICAgICAgICAgIDwvZGl2PlxuICogICAgICAgPC9saT5cbiAqICAgIDwvZmQtbWVudT5cbiAqPC9mZC1zcGxpdC1idXR0b24+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1zcGxpdC1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnc3BsaXQtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zcGxpdC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMoKV1cbn0pXG5leHBvcnQgY2xhc3MgU3BsaXRCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIFRoZSBpY29uIHRvIGluY2x1ZGUgaW4gdGhlIGJ1dHRvbi4gU2VlIHRoZSBpY29uIHBhZ2UgZm9yIHRoZSBsaXN0IG9mIGljb25zLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGggPSAnc2xpbS1hcnJvdy1kb3duJztcblxuICAgIC8qKiBUaGUgaWNvbiB0byBpbmNsdWRlIGluIHRoZSBidXR0b24uIFNlZSB0aGUgaWNvbiBwYWdlIGZvciB0aGUgbGlzdCBvZiBpY29ucy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqIEBkZXByZWNhdGVkIFRoZSBUaXRsZSBmb3IgbWFpbiBhY3Rpb24gYnV0dG9uLiBUaGlzIHdpbGwgYmUgZGVwcmVjYXRlZCBhcyBhbiBpbnB1dCBidXQgd2lsbCByZW1haW4gYSBwcm9wZXJ0eSBvbiB0aGlzIGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1haW5BY3Rpb25UaXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIFRoZSB0eXBlIG9mIHRoZSBidXR0b24uIFR5cGVzIGluY2x1ZGUgJ3N0YW5kYXJkJywgJ3Bvc2l0aXZlJywgJ21lZGl1bScsIGFuZCAnbmVnYXRpdmUnLlxuICAgICAqIExlYXZlIGVtcHR5IGZvciBkZWZhdWx0IChBY3Rpb24gYnV0dG9uKS4nKi9cbiAgICBASW5wdXQoKVxuICAgIGZkVHlwZTogQnV0dG9uVHlwZTtcblxuICAgIC8qKiBBcmlhLWxhYmVsIGF0dHJpYnV0ZSB1c2VkIHRvIGRlc2NyaWJlIGV4cGFuZCBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIGV4cGFuZEJ1dHRvbkFyaWFMYWJlbCA9ICdNb3JlIGFjdGlvbnMnO1xuXG4gICAgLyoqIFRpdGxlIGF0dHJpYnV0ZSB1c2VkIHRvIGRlc2NyaWJlIGV4cGFuZCBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIGV4cGFuZEJ1dHRvblRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKiogU2VsZWN0ZWQgbWVudSBpdGVtICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZDogTWVudUl0ZW1Db21wb25lbnQ7XG5cbiAgICAvKiogV2hldGhlciBvciBub3QgdGhlIGVsZW1lbnQgc2hvdWxkIGtlZXAgYSBmaXhlZCB3aWR0aC4gVGhlIHdpZHRoIGNvdWxkIGNoYW5nZSBpZiB0aGUgdGV4dCBjaGFuZ2VzIGxlbmd0aC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZpeGVkV2lkdGggPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZSBtYWluQWN0aW9uVGl0bGUsIGtlZXBNYWluQWN0aW9uIG9wdGlvbiBhbmQgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlXG4gICAgICogZXhlY3V0ZWQgd2hlbiB0aGUgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBtYWluQWN0aW9uOiBNYWluQWN0aW9uO1xuXG4gICAgLyoqIGFyaWEtbGFiZWwgYXR0cmlidXRlICovXG4gICAgQElucHV0KClcbiAgICBhcmlhbExhYmVsID0gJ1NwbGl0IGJ1dHRvbic7XG5cbiAgICAvKiogRXZlbnQgc2VudCB3aGVuIHByaW1hcnkgYnV0dG9uIGlzIGNsaWNrZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBwcmltYXJ5QnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoU3BsaXRCdXR0b25BY3Rpb25UaXRsZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIHRpdGxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKE1lbnVDb21wb25lbnQpXG4gICAgbWVudTogTWVudUNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbWFpbkFjdGlvbkJ1dHRvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIG1haW5BY3Rpb25CdG46IEVsZW1lbnRSZWY7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ21lbnVBY3Rpb25CdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBtZW51QWN0aW9uQnRuOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBtYWluQnV0dG9uV2lkdGg6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IHR5cGVDbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5mZFR5cGUgPyBgZmQtYnV0dG9uLXNwbGl0LS0ke3RoaXMuZmRUeXBlfWAgOiAnJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21lbnVJdGVtU3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbWVudVN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29udGVudERlbnNpdHlTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21lbnVBY3RpdmVQYXRoU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9kZXN0cm95JDogRGVzdHJveWVkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY29udGVudERlbnNpdHlPYnNlcnZlcjogQ29udGVudERlbnNpdHlPYnNlcnZlcixcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuIEVtaXRzIGV2ZW50IHdoZW4gbWFpbiBidXR0b24gaXMgY2xpY2tlZCAqL1xuICAgIG9uTWFpbkJ1dHRvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJpbWFyeUJ1dHRvbkNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWFpbkFjdGlvbiAmJiB0aGlzLm1haW5BY3Rpb24uY2FsbGJhY2spIHtcbiAgICAgICAgICAgIHRoaXMubWFpbkFjdGlvbi5jYWxsYmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnUuX21lbnVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLm1lbnVJbnRlcmFjdGl2ZS5fZnJvbVNwbGl0QnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3NldHVwTWVudVN1YnNjcmlwdGlvbigpO1xuICAgICAgICB0aGlzLl9zZXR1cE1lbnVJdGVtU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICB0aGlzLl9oYW5kbGVNYWluQWN0aW9uT2JqZWN0KCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLm1haW5BY3Rpb25UaXRsZSAmJiAhdGhpcy50aXRsZVRlbXBsYXRlICYmICF0aGlzLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdE1lbnVJdGVtKHRoaXMubWVudS5fbWVudUl0ZW1zLmZpcnN0KTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5tYWluQWN0aW9uVGl0bGUgJiYgdGhpcy5zZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RNZW51SXRlbSh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21lbnVBY3RpdmVQYXRoU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMubWVudS5hY3RpdmVQYXRoLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0SXRlbSA9IGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgIGlmIChsYXN0SXRlbSAmJiAhbGFzdEl0ZW0uc3VibWVudSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbnUuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9jdXNUcmlnZ2VyRWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXIuaXNDb21wYWN0JFxuICAgICAgICAgICAgLnBpcGUodGFwKHRoaXMuX2FkZEJ1dHRvblRleHRDbGFzcyksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICgnc2VsZWN0ZWQnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TWVudUl0ZW0odGhpcy5zZWxlY3RlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdtYWluQWN0aW9uJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVNYWluQWN0aW9uT2JqZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tZW51SXRlbVN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fbWVudVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9jb250ZW50RGVuc2l0eVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9tZW51QWN0aXZlUGF0aFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiBjYWxsZWQgdG8gc2VsZWN0IGEgbWVudSBpdGVtIGZvciB0aGUgc3BsaXQgYnV0dG9uLiAqL1xuICAgIHNlbGVjdE1lbnVJdGVtKG1lbnVJdGVtOiBNZW51SXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAobWVudUl0ZW0gJiYgKCF0aGlzLm1haW5BY3Rpb24gfHwgIXRoaXMubWFpbkFjdGlvbi5rZWVwTWFpbkFjdGlvbikpIHtcbiAgICAgICAgICAgIG1lbnVJdGVtLnNldFNlbGVjdGVkKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV3JhcHBlciBnZXRzIGZvY3VzZWQgcHJvZ3JhbW1hdGljYWxseSBieSBtZW51XG4gICAgICogd2hlbiB0aGUgXCJlc2NhcGVcIiBidXR0b24gaXMgcHJlc3NlZC5cbiAgICAgKiBJbiB0aGlzIGNhc2Ugd2UgbmVlZCB0byB0cmFuc2l0IGZvY3VzIHRvIHRoZSBcIm1vcmUgYWN0aW9uc1wiIGJ1dHRvblxuICAgICAqL1xuICAgIF9vbkdyb3VwRm9jdXNlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNUcmlnZ2VyRWxlbWVudCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0TWFpbkJ1dHRvbldpZHRoKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tYWluQWN0aW9uQnRuICYmIHRoaXMubWFpbkFjdGlvbkJ0bi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLm1haW5CdXR0b25XaWR0aCA9IHRoaXMubWFpbkFjdGlvbkJ0bi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICsgJ3B4JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0dXBNZW51SXRlbVN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudS5fbWVudUl0ZW1zLmZvckVhY2goKG1lbnVJdGVtKSA9PiB7XG4gICAgICAgICAgICBtZW51SXRlbS5vblNlbGVjdC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZml4ZWRXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nZXRNYWluQnV0dG9uV2lkdGgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX21lbnVJdGVtU3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICAgICAgbWVudUl0ZW0ub25TZWxlY3Quc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlTWVudUl0ZW1TZWxlY3Rpb24obWVudUl0ZW0pO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZU1lbnVJdGVtU2VsZWN0aW9uKG1lbnVJdGVtOiBNZW51SXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubWFpbkFjdGlvbiB8fCAhdGhpcy5tYWluQWN0aW9uLmtlZXBNYWluQWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gbWVudUl0ZW07XG4gICAgICAgICAgICB0aGlzLm1lbnUuX21lbnVJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZXRTZWxlY3RlZChmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1lbnVJdGVtLnNldFNlbGVjdGVkKHRydWUsIHRydWUpO1xuICAgICAgICAgICAgdGhpcy50aXRsZVRlbXBsYXRlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMubWFpbkFjdGlvblRpdGxlID0gbWVudUl0ZW0ubWVudUl0ZW1UaXRsZS50aXRsZTtcbiAgICAgICAgICAgIHRoaXMuX2NkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0dXBNZW51U3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tZW51U3Vic2NyaXB0aW9uID0gdGhpcy5tZW51Ll9tZW51SXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbWVudUl0ZW1TdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLl9tZW51SXRlbVN1YnNjcmlwdGlvbnMuY2xvc2VkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl9zZXR1cE1lbnVJdGVtU3Vic2NyaXB0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gY2FsbCBtYXJrRm9yQ2hlY2sgb25jZSBtZW51IG9wZW4gc3RhdGUgZ2V0cyBjaGFuZ2VkXG4gICAgICAgIHRoaXMuX21lbnVTdWJzY3JpcHRpb24uYWRkKHRoaXMubWVudS5pc09wZW5DaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVNYWluQWN0aW9uT2JqZWN0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tYWluQWN0aW9uICYmIHR5cGVvZiB0aGlzLm1haW5BY3Rpb24ubWFpbkFjdGlvblRpdGxlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy5tYWluQWN0aW9uVGl0bGUgPSB0aGlzLm1haW5BY3Rpb24ubWFpbkFjdGlvblRpdGxlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWFpbkFjdGlvbiAmJiB0aGlzLm1haW5BY3Rpb24ubWFpbkFjdGlvblRpdGxlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcbiAgICAgICAgICAgIHRoaXMudGl0bGVUZW1wbGF0ZSA9IHRoaXMubWFpbkFjdGlvbi5tYWluQWN0aW9uVGl0bGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZEJ1dHRvblRleHRDbGFzcyA9IChjb21wYWN0OiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgIGNvbnN0IHRleHRTcGFuRWxlbWVudCA9IHRoaXMubWFpbkFjdGlvbkJ0bj8ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZmQtYnV0dG9uX190ZXh0Jyk7XG4gICAgICAgIGlmICghdGV4dFNwYW5FbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc3BsaXRCdXR0b25UZXh0Q2xhc3Nlcy5mb3JFYWNoKChfY2xhc3MpID0+IHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRleHRTcGFuRWxlbWVudCwgX2NsYXNzKSk7XG4gICAgICAgIGlmIChjb21wYWN0KSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0ZXh0U3BhbkVsZW1lbnQsIHNwbGl0QnV0dG9uVGV4dENvbXBhY3RDbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0ZXh0U3BhbkVsZW1lbnQsIHNwbGl0QnV0dG9uVGV4dENsYXNzKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzVHJpZ2dlckVsZW1lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUFjdGlvbkJ0bj8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImZkLWJ1dHRvbi1zcGxpdCBmZC1oYXMtbWFyZ2luLXJpZ2h0LXNtYWxsXCJcbiAgICBbbmdDbGFzc109XCJ0eXBlQ2xhc3NcIlxuICAgIHJvbGU9XCJncm91cFwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhbExhYmVsXCJcbiAgICBbZmRNZW51VHJpZ2dlcl09XCJtZW51XCJcbiAgICAoZm9jdXMpPVwiX29uR3JvdXBGb2N1c2VkKClcIlxuPlxuICAgIDxidXR0b25cbiAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICNtYWluQWN0aW9uQnV0dG9uXG4gICAgICAgIFtsYWJlbF09XCJtYWluQWN0aW9uVGl0bGVcIlxuICAgICAgICBbc3R5bGUud2lkdGhdPVwibWFpbkJ1dHRvbldpZHRoXCJcbiAgICAgICAgW2ZkVHlwZV09XCJmZFR5cGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwib25NYWluQnV0dG9uQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGl0bGVUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvblxuICAgICAgICBmZC1idXR0b25cbiAgICAgICAgI21lbnVBY3Rpb25CdXR0b25cbiAgICAgICAgW2dseXBoXT1cImdseXBoXCJcbiAgICAgICAgW2ZkVHlwZV09XCJmZFR5cGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXJpYUxhYmVsXT1cImV4cGFuZEJ1dHRvbkFyaWFMYWJlbFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImV4cGFuZEJ1dHRvblRpdGxlIHx8IGV4cGFuZEJ1dHRvbkFyaWFMYWJlbFwiXG4gICAgICAgIFtjbGFzcy5pcy1hY3RpdmVdPVwibWVudS5pc09wZW5cIlxuICAgID48L2J1dHRvbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1tZW51XCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -133,14 +133,14 @@ class SplitButtonComponent {
133
133
  }
134
134
  /** @hidden */
135
135
  ngAfterContentInit() {
136
- this.menu.menuItems.forEach((item) => {
136
+ this.menu._menuItems.forEach((item) => {
137
137
  item.menuInteractive._fromSplitButton = true;
138
138
  });
139
139
  this._setupMenuSubscription();
140
140
  this._setupMenuItemSubscriptions();
141
141
  this._handleMainActionObject();
142
142
  if (!this.mainActionTitle && !this.titleTemplate && !this.selected) {
143
- this.selectMenuItem(this.menu.menuItems.first);
143
+ this.selectMenuItem(this.menu._menuItems.first);
144
144
  }
145
145
  else if (!this.mainActionTitle && this.selected) {
146
146
  this.selectMenuItem(this.selected);
@@ -197,7 +197,7 @@ class SplitButtonComponent {
197
197
  }
198
198
  /** @hidden */
199
199
  _setupMenuItemSubscriptions() {
200
- this.menu.menuItems.forEach((menuItem) => {
200
+ this.menu._menuItems.forEach((menuItem) => {
201
201
  menuItem.onSelect.pipe(first()).subscribe(() => {
202
202
  if (this.fixedWidth) {
203
203
  this._getMainButtonWidth();
@@ -212,7 +212,7 @@ class SplitButtonComponent {
212
212
  _handleMenuItemSelection(menuItem) {
213
213
  if (!this.mainAction || !this.mainAction.keepMainAction) {
214
214
  this.selected = menuItem;
215
- this.menu.menuItems.forEach((item) => {
215
+ this.menu._menuItems.forEach((item) => {
216
216
  item.setSelected(false, true);
217
217
  });
218
218
  menuItem.setSelected(true, true);
@@ -223,7 +223,7 @@ class SplitButtonComponent {
223
223
  }
224
224
  /** @hidden */
225
225
  _setupMenuSubscription() {
226
- this._menuSubscription = this.menu.menuItems.changes.subscribe(() => {
226
+ this._menuSubscription = this.menu._menuItems.changes.subscribe(() => {
227
227
  this._menuItemSubscriptions.unsubscribe();
228
228
  this._menuItemSubscriptions.closed = false;
229
229
  this._setupMenuItemSubscriptions();
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-split-button.mjs","sources":["../../../../../libs/core/src/lib/split-button/split-button-utils/split-button.directives.ts","../../../../../libs/core/src/lib/split-button/split-button.component.ts","../../../../../libs/core/src/lib/split-button/split-button.component.html","../../../../../libs/core/src/lib/split-button/deprecated-split-button-compact.directive.ts","../../../../../libs/core/src/lib/split-button/split-button.module.ts","../../../../../libs/core/src/lib/split-button/fundamental-ngx-core-split-button.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * Directive used to identify the template which will populate the main action button.\n * Used to achieve complex buttons that require more than a string.\n *```html\n * <fd-button-split>\n * <ng-template fd-button-split-action-title>\n * <p>Paragraph 1</p>\n * <p>Paragraph 2</p>\n * </ng-template>\n * <fd-menu>\n * <li fd-menu-item>\n * <a fd-menu-interactive [routerLink]=\"'/'\">\n * <span fd-menu-title>option2</span>\n * </a>\n * </li>\n * <li fd-menu-item>\n * <a fd-menu-interactive [routerLink]=\"'/'\">\n * <span fd-menu-title>option2</span>\n * </a>\n * </li>\n * </fd-menu>\n * </fd-button-split>\n *</fd-button-split>\n *```\n */\n@Directive({\n // TODO to be discussed\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-split-button-action-title]'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class SplitButtonActionTitle {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription, takeUntil, tap } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { ButtonType } from '@fundamental-ngx/core/button';\nimport { MenuComponent, MenuItemComponent } from '@fundamental-ngx/core/menu';\n\nimport { SplitButtonActionTitle } from './split-button-utils/split-button.directives';\nimport { MainAction } from './main-action';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { DestroyedService } from '@fundamental-ngx/core/utils';\n\nexport const splitButtonTextClass = 'fd-button-split__text';\nexport const splitButtonTextCompactClass = 'fd-button-split__text--compact';\nconst splitButtonTextClasses = [splitButtonTextClass, splitButtonTextCompactClass];\n\n/**\n * Split Button component, used to enhance standard HTML button and add possibility to put some dropdown with\n * additional options.\n *\n * ```html\n * <fd-split-button>\n * <fd-menu>\n * <li fd-menu-item>\n * <div fd-menu-interactive>\n * <span fd-menu-title>Option 1</span>\n * </div>\n * </li>\n * <li fd-menu-item>\n * <div fd-menu-interactive>\n * <span fd-menu-title>Option 2</span>\n * </div>\n * </li>\n * </fd-menu>\n *</fd-split-button>\n * ```\n */\n@Component({\n selector: 'fd-split-button',\n templateUrl: 'split-button.component.html',\n styleUrls: ['./split-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [contentDensityObserverProviders()]\n})\nexport class SplitButtonComponent implements AfterContentInit, OnChanges, OnDestroy, AfterViewInit {\n /** The icon to include in the button. See the icon page for the list of icons. */\n @Input()\n glyph = 'slim-arrow-down';\n\n /** The icon to include in the button. See the icon page for the list of icons. */\n @Input()\n disabled: boolean;\n\n /** @deprecated The Title for main action button. This will be deprecated as an input but will remain a property on this component. */\n @Input()\n mainActionTitle: string;\n\n /** The type of the button. Types include 'standard', 'positive', 'medium', and 'negative'.\n * Leave empty for default (Action button).'*/\n @Input()\n fdType: ButtonType;\n\n /** Aria-label attribute used to describe expand button */\n @Input()\n expandButtonAriaLabel = 'More actions';\n\n /** Title attribute used to describe expand button */\n @Input()\n expandButtonTitle: string;\n\n /** Selected menu item */\n @Input()\n selected: MenuItemComponent;\n\n /** Whether or not the element should keep a fixed width. The width could change if the text changes length. */\n @Input()\n fixedWidth = true;\n\n /**\n * The object that contains the mainActionTitle, keepMainAction option and the callback function that should be\n * executed when the button is clicked.\n */\n @Input()\n mainAction: MainAction;\n\n /** aria-label attribute */\n @Input()\n arialLabel = 'Split button';\n\n /** Event sent when primary button is clicked */\n @Output()\n readonly primaryButtonClicked: EventEmitter<Event> = new EventEmitter<Event>();\n\n /** @hidden */\n @ContentChild(SplitButtonActionTitle, { read: TemplateRef })\n titleTemplate: TemplateRef<any> | null;\n\n /** @hidden */\n @ContentChild(MenuComponent)\n menu: MenuComponent;\n\n /** @hidden */\n @ViewChild('mainActionButton', { read: ElementRef })\n mainActionBtn: ElementRef;\n\n /** @hidden */\n @ViewChild('menuActionButton', { read: ElementRef })\n menuActionBtn: ElementRef;\n\n /** @hidden */\n mainButtonWidth: string;\n\n /** @hidden */\n get typeClass(): string {\n return this.fdType ? `fd-button-split--${this.fdType}` : '';\n }\n\n /** @hidden */\n private _menuItemSubscriptions = new Subscription();\n\n /** @hidden */\n private _menuSubscription = new Subscription();\n\n /** @hidden */\n private _contentDensitySubscription = new Subscription();\n\n /** @hidden */\n private _menuActivePathSubscription = new Subscription();\n\n /** @hidden */\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _destroy$: DestroyedService,\n private _contentDensityObserver: ContentDensityObserver,\n private _renderer: Renderer2\n ) {}\n\n /** @hidden Emits event when main button is clicked */\n onMainButtonClick(event: MouseEvent): void {\n this.primaryButtonClicked.emit(event);\n if (this.selected) {\n this.selected.elementRef.nativeElement.click();\n } else if (this.mainAction && this.mainAction.callback) {\n this.mainAction.callback();\n }\n event.stopPropagation();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this.menu.menuItems.forEach((item) => {\n item.menuInteractive._fromSplitButton = true;\n });\n this._setupMenuSubscription();\n this._setupMenuItemSubscriptions();\n this._handleMainActionObject();\n\n if (!this.mainActionTitle && !this.titleTemplate && !this.selected) {\n this.selectMenuItem(this.menu.menuItems.first);\n } else if (!this.mainActionTitle && this.selected) {\n this.selectMenuItem(this.selected);\n }\n\n this._menuActivePathSubscription.add(\n this.menu.activePath.subscribe((items) => {\n const lastItem = items[items.length - 1];\n if (lastItem && !lastItem.submenu) {\n this.menu.close();\n this._focusTriggerElement();\n }\n })\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._contentDensityObserver.isCompact$\n .pipe(tap(this._addButtonTextClass), takeUntil(this._destroy$))\n .subscribe();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('selected' in changes) {\n this.selectMenuItem(this.selected);\n }\n if ('mainAction' in changes) {\n this._handleMainActionObject();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._menuItemSubscriptions.unsubscribe();\n this._menuSubscription.unsubscribe();\n this._contentDensitySubscription.unsubscribe();\n this._menuActivePathSubscription.unsubscribe();\n }\n\n /** Function called to select a menu item for the split button. */\n selectMenuItem(menuItem: MenuItemComponent): void {\n if (menuItem && (!this.mainAction || !this.mainAction.keepMainAction)) {\n menuItem.setSelected(true);\n }\n }\n\n /**\n * Wrapper gets focused programmatically by menu\n * when the \"escape\" button is pressed.\n * In this case we need to transit focus to the \"more actions\" button\n */\n _onGroupFocused(): void {\n this._focusTriggerElement();\n }\n\n /** @hidden */\n private _getMainButtonWidth(): void {\n if (this.mainActionBtn && this.mainActionBtn.nativeElement) {\n this.mainButtonWidth = this.mainActionBtn.nativeElement.getBoundingClientRect().width + 'px';\n }\n }\n\n /** @hidden */\n private _setupMenuItemSubscriptions(): void {\n this.menu.menuItems.forEach((menuItem) => {\n menuItem.onSelect.pipe(first()).subscribe(() => {\n if (this.fixedWidth) {\n this._getMainButtonWidth();\n }\n });\n this._menuItemSubscriptions.add(\n menuItem.onSelect.subscribe(() => {\n this._handleMenuItemSelection(menuItem);\n })\n );\n });\n }\n\n /** @hidden */\n private _handleMenuItemSelection(menuItem: MenuItemComponent): void {\n if (!this.mainAction || !this.mainAction.keepMainAction) {\n this.selected = menuItem;\n this.menu.menuItems.forEach((item) => {\n item.setSelected(false, true);\n });\n menuItem.setSelected(true, true);\n this.titleTemplate = null;\n this.mainActionTitle = menuItem.menuItemTitle.title;\n this._cdRef.detectChanges();\n }\n }\n\n /** @hidden */\n private _setupMenuSubscription(): void {\n this._menuSubscription = this.menu.menuItems.changes.subscribe(() => {\n this._menuItemSubscriptions.unsubscribe();\n this._menuItemSubscriptions.closed = false;\n this._setupMenuItemSubscriptions();\n });\n // call markForCheck once menu open state gets changed\n this._menuSubscription.add(this.menu.isOpenChange.subscribe(() => this._cdRef.markForCheck()));\n }\n\n /** @hidden */\n private _handleMainActionObject(): void {\n if (this.mainAction && typeof this.mainAction.mainActionTitle === 'string') {\n this.mainActionTitle = this.mainAction.mainActionTitle;\n } else if (this.mainAction && this.mainAction.mainActionTitle instanceof TemplateRef) {\n this.titleTemplate = this.mainAction.mainActionTitle;\n }\n }\n\n /** @hidden */\n private _addButtonTextClass = (compact: boolean): void => {\n const textSpanElement = this.mainActionBtn?.nativeElement.querySelector('.fd-button__text');\n if (!textSpanElement) {\n return;\n }\n splitButtonTextClasses.forEach((_class) => this._renderer.removeClass(textSpanElement, _class));\n if (compact) {\n this._renderer.addClass(textSpanElement, splitButtonTextCompactClass);\n } else {\n this._renderer.addClass(textSpanElement, splitButtonTextClass);\n }\n };\n\n /** @hidden */\n private _focusTriggerElement(): void {\n this.menuActionBtn?.nativeElement.focus();\n }\n}\n","<div\n class=\"fd-button-split fd-has-margin-right-small\"\n [ngClass]=\"typeClass\"\n role=\"group\"\n tabindex=\"-1\"\n [attr.aria-label]=\"arialLabel\"\n [fdMenuTrigger]=\"menu\"\n (focus)=\"_onGroupFocused()\"\n>\n <button\n fd-button\n #mainActionButton\n [label]=\"mainActionTitle\"\n [style.width]=\"mainButtonWidth\"\n [fdType]=\"fdType\"\n [disabled]=\"disabled\"\n (click)=\"onMainButtonClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"titleTemplate\"></ng-container>\n </button>\n\n <button\n fd-button\n #menuActionButton\n [glyph]=\"glyph\"\n [fdType]=\"fdType\"\n [disabled]=\"disabled\"\n [ariaLabel]=\"expandButtonAriaLabel\"\n [attr.title]=\"expandButtonTitle || expandButtonAriaLabel\"\n [class.is-active]=\"menu.isOpen\"\n ></button>\n <ng-content select=\"fd-menu\"></ng-content>\n</div>\n","import { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-split-button[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedSplitButtonCompactDirective)\n }\n ]\n})\nexport class DeprecatedSplitButtonCompactDirective extends DeprecatedCompactDirective {\n constructor() {\n super('fd-split-button');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SplitButtonComponent } from './split-button.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { SplitButtonActionTitle } from './split-button-utils/split-button.directives';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { DeprecatedSplitButtonCompactDirective } from './deprecated-split-button-compact.directive';\n\n@NgModule({\n imports: [CommonModule, ButtonModule, MenuModule, ContentDensityModule],\n declarations: [SplitButtonComponent, SplitButtonActionTitle, DeprecatedSplitButtonCompactDirective],\n exports: [SplitButtonComponent, SplitButtonActionTitle, ContentDensityModule, DeprecatedSplitButtonCompactDirective]\n})\nexport class SplitButtonModule {}\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-split-button.mjs","sources":["../../../../../libs/core/src/lib/split-button/split-button-utils/split-button.directives.ts","../../../../../libs/core/src/lib/split-button/split-button.component.ts","../../../../../libs/core/src/lib/split-button/split-button.component.html","../../../../../libs/core/src/lib/split-button/deprecated-split-button-compact.directive.ts","../../../../../libs/core/src/lib/split-button/split-button.module.ts","../../../../../libs/core/src/lib/split-button/fundamental-ngx-core-split-button.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * Directive used to identify the template which will populate the main action button.\n * Used to achieve complex buttons that require more than a string.\n *```html\n * <fd-button-split>\n * <ng-template fd-button-split-action-title>\n * <p>Paragraph 1</p>\n * <p>Paragraph 2</p>\n * </ng-template>\n * <fd-menu>\n * <li fd-menu-item>\n * <a fd-menu-interactive [routerLink]=\"'/'\">\n * <span fd-menu-title>option2</span>\n * </a>\n * </li>\n * <li fd-menu-item>\n * <a fd-menu-interactive [routerLink]=\"'/'\">\n * <span fd-menu-title>option2</span>\n * </a>\n * </li>\n * </fd-menu>\n * </fd-button-split>\n *</fd-button-split>\n *```\n */\n@Directive({\n // TODO to be discussed\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-split-button-action-title]'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class SplitButtonActionTitle {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription, takeUntil, tap } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { ButtonType } from '@fundamental-ngx/core/button';\nimport { MenuComponent, MenuItemComponent } from '@fundamental-ngx/core/menu';\n\nimport { SplitButtonActionTitle } from './split-button-utils/split-button.directives';\nimport { MainAction } from './main-action';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { DestroyedService } from '@fundamental-ngx/core/utils';\n\nexport const splitButtonTextClass = 'fd-button-split__text';\nexport const splitButtonTextCompactClass = 'fd-button-split__text--compact';\nconst splitButtonTextClasses = [splitButtonTextClass, splitButtonTextCompactClass];\n\n/**\n * Split Button component, used to enhance standard HTML button and add possibility to put some dropdown with\n * additional options.\n *\n * ```html\n * <fd-split-button>\n * <fd-menu>\n * <li fd-menu-item>\n * <div fd-menu-interactive>\n * <span fd-menu-title>Option 1</span>\n * </div>\n * </li>\n * <li fd-menu-item>\n * <div fd-menu-interactive>\n * <span fd-menu-title>Option 2</span>\n * </div>\n * </li>\n * </fd-menu>\n *</fd-split-button>\n * ```\n */\n@Component({\n selector: 'fd-split-button',\n templateUrl: 'split-button.component.html',\n styleUrls: ['./split-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [contentDensityObserverProviders()]\n})\nexport class SplitButtonComponent implements AfterContentInit, OnChanges, OnDestroy, AfterViewInit {\n /** The icon to include in the button. See the icon page for the list of icons. */\n @Input()\n glyph = 'slim-arrow-down';\n\n /** The icon to include in the button. See the icon page for the list of icons. */\n @Input()\n disabled: boolean;\n\n /** @deprecated The Title for main action button. This will be deprecated as an input but will remain a property on this component. */\n @Input()\n mainActionTitle: string;\n\n /** The type of the button. Types include 'standard', 'positive', 'medium', and 'negative'.\n * Leave empty for default (Action button).'*/\n @Input()\n fdType: ButtonType;\n\n /** Aria-label attribute used to describe expand button */\n @Input()\n expandButtonAriaLabel = 'More actions';\n\n /** Title attribute used to describe expand button */\n @Input()\n expandButtonTitle: string;\n\n /** Selected menu item */\n @Input()\n selected: MenuItemComponent;\n\n /** Whether or not the element should keep a fixed width. The width could change if the text changes length. */\n @Input()\n fixedWidth = true;\n\n /**\n * The object that contains the mainActionTitle, keepMainAction option and the callback function that should be\n * executed when the button is clicked.\n */\n @Input()\n mainAction: MainAction;\n\n /** aria-label attribute */\n @Input()\n arialLabel = 'Split button';\n\n /** Event sent when primary button is clicked */\n @Output()\n readonly primaryButtonClicked: EventEmitter<Event> = new EventEmitter<Event>();\n\n /** @hidden */\n @ContentChild(SplitButtonActionTitle, { read: TemplateRef })\n titleTemplate: TemplateRef<any> | null;\n\n /** @hidden */\n @ContentChild(MenuComponent)\n menu: MenuComponent;\n\n /** @hidden */\n @ViewChild('mainActionButton', { read: ElementRef })\n mainActionBtn: ElementRef;\n\n /** @hidden */\n @ViewChild('menuActionButton', { read: ElementRef })\n menuActionBtn: ElementRef;\n\n /** @hidden */\n mainButtonWidth: string;\n\n /** @hidden */\n get typeClass(): string {\n return this.fdType ? `fd-button-split--${this.fdType}` : '';\n }\n\n /** @hidden */\n private _menuItemSubscriptions = new Subscription();\n\n /** @hidden */\n private _menuSubscription = new Subscription();\n\n /** @hidden */\n private _contentDensitySubscription = new Subscription();\n\n /** @hidden */\n private _menuActivePathSubscription = new Subscription();\n\n /** @hidden */\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _destroy$: DestroyedService,\n private _contentDensityObserver: ContentDensityObserver,\n private _renderer: Renderer2\n ) {}\n\n /** @hidden Emits event when main button is clicked */\n onMainButtonClick(event: MouseEvent): void {\n this.primaryButtonClicked.emit(event);\n if (this.selected) {\n this.selected.elementRef.nativeElement.click();\n } else if (this.mainAction && this.mainAction.callback) {\n this.mainAction.callback();\n }\n event.stopPropagation();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this.menu._menuItems.forEach((item) => {\n item.menuInteractive._fromSplitButton = true;\n });\n this._setupMenuSubscription();\n this._setupMenuItemSubscriptions();\n this._handleMainActionObject();\n\n if (!this.mainActionTitle && !this.titleTemplate && !this.selected) {\n this.selectMenuItem(this.menu._menuItems.first);\n } else if (!this.mainActionTitle && this.selected) {\n this.selectMenuItem(this.selected);\n }\n\n this._menuActivePathSubscription.add(\n this.menu.activePath.subscribe((items) => {\n const lastItem = items[items.length - 1];\n if (lastItem && !lastItem.submenu) {\n this.menu.close();\n this._focusTriggerElement();\n }\n })\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._contentDensityObserver.isCompact$\n .pipe(tap(this._addButtonTextClass), takeUntil(this._destroy$))\n .subscribe();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('selected' in changes) {\n this.selectMenuItem(this.selected);\n }\n if ('mainAction' in changes) {\n this._handleMainActionObject();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._menuItemSubscriptions.unsubscribe();\n this._menuSubscription.unsubscribe();\n this._contentDensitySubscription.unsubscribe();\n this._menuActivePathSubscription.unsubscribe();\n }\n\n /** Function called to select a menu item for the split button. */\n selectMenuItem(menuItem: MenuItemComponent): void {\n if (menuItem && (!this.mainAction || !this.mainAction.keepMainAction)) {\n menuItem.setSelected(true);\n }\n }\n\n /**\n * Wrapper gets focused programmatically by menu\n * when the \"escape\" button is pressed.\n * In this case we need to transit focus to the \"more actions\" button\n */\n _onGroupFocused(): void {\n this._focusTriggerElement();\n }\n\n /** @hidden */\n private _getMainButtonWidth(): void {\n if (this.mainActionBtn && this.mainActionBtn.nativeElement) {\n this.mainButtonWidth = this.mainActionBtn.nativeElement.getBoundingClientRect().width + 'px';\n }\n }\n\n /** @hidden */\n private _setupMenuItemSubscriptions(): void {\n this.menu._menuItems.forEach((menuItem) => {\n menuItem.onSelect.pipe(first()).subscribe(() => {\n if (this.fixedWidth) {\n this._getMainButtonWidth();\n }\n });\n this._menuItemSubscriptions.add(\n menuItem.onSelect.subscribe(() => {\n this._handleMenuItemSelection(menuItem);\n })\n );\n });\n }\n\n /** @hidden */\n private _handleMenuItemSelection(menuItem: MenuItemComponent): void {\n if (!this.mainAction || !this.mainAction.keepMainAction) {\n this.selected = menuItem;\n this.menu._menuItems.forEach((item) => {\n item.setSelected(false, true);\n });\n menuItem.setSelected(true, true);\n this.titleTemplate = null;\n this.mainActionTitle = menuItem.menuItemTitle.title;\n this._cdRef.detectChanges();\n }\n }\n\n /** @hidden */\n private _setupMenuSubscription(): void {\n this._menuSubscription = this.menu._menuItems.changes.subscribe(() => {\n this._menuItemSubscriptions.unsubscribe();\n this._menuItemSubscriptions.closed = false;\n this._setupMenuItemSubscriptions();\n });\n // call markForCheck once menu open state gets changed\n this._menuSubscription.add(this.menu.isOpenChange.subscribe(() => this._cdRef.markForCheck()));\n }\n\n /** @hidden */\n private _handleMainActionObject(): void {\n if (this.mainAction && typeof this.mainAction.mainActionTitle === 'string') {\n this.mainActionTitle = this.mainAction.mainActionTitle;\n } else if (this.mainAction && this.mainAction.mainActionTitle instanceof TemplateRef) {\n this.titleTemplate = this.mainAction.mainActionTitle;\n }\n }\n\n /** @hidden */\n private _addButtonTextClass = (compact: boolean): void => {\n const textSpanElement = this.mainActionBtn?.nativeElement.querySelector('.fd-button__text');\n if (!textSpanElement) {\n return;\n }\n splitButtonTextClasses.forEach((_class) => this._renderer.removeClass(textSpanElement, _class));\n if (compact) {\n this._renderer.addClass(textSpanElement, splitButtonTextCompactClass);\n } else {\n this._renderer.addClass(textSpanElement, splitButtonTextClass);\n }\n };\n\n /** @hidden */\n private _focusTriggerElement(): void {\n this.menuActionBtn?.nativeElement.focus();\n }\n}\n","<div\n class=\"fd-button-split fd-has-margin-right-small\"\n [ngClass]=\"typeClass\"\n role=\"group\"\n tabindex=\"-1\"\n [attr.aria-label]=\"arialLabel\"\n [fdMenuTrigger]=\"menu\"\n (focus)=\"_onGroupFocused()\"\n>\n <button\n fd-button\n #mainActionButton\n [label]=\"mainActionTitle\"\n [style.width]=\"mainButtonWidth\"\n [fdType]=\"fdType\"\n [disabled]=\"disabled\"\n (click)=\"onMainButtonClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"titleTemplate\"></ng-container>\n </button>\n\n <button\n fd-button\n #menuActionButton\n [glyph]=\"glyph\"\n [fdType]=\"fdType\"\n [disabled]=\"disabled\"\n [ariaLabel]=\"expandButtonAriaLabel\"\n [attr.title]=\"expandButtonTitle || expandButtonAriaLabel\"\n [class.is-active]=\"menu.isOpen\"\n ></button>\n <ng-content select=\"fd-menu\"></ng-content>\n</div>\n","import { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-split-button[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedSplitButtonCompactDirective)\n }\n ]\n})\nexport class DeprecatedSplitButtonCompactDirective extends DeprecatedCompactDirective {\n constructor() {\n super('fd-split-button');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SplitButtonComponent } from './split-button.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { SplitButtonActionTitle } from './split-button-utils/split-button.directives';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { DeprecatedSplitButtonCompactDirective } from './deprecated-split-button-compact.directive';\n\n@NgModule({\n imports: [CommonModule, ButtonModule, MenuModule, ContentDensityModule],\n declarations: [SplitButtonComponent, SplitButtonActionTitle, DeprecatedSplitButtonCompactDirective],\n exports: [SplitButtonComponent, SplitButtonActionTitle, ContentDensityModule, DeprecatedSplitButtonCompactDirective]\n})\nexport class SplitButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -132,14 +132,14 @@ class SplitButtonComponent {
132
132
  }
133
133
  /** @hidden */
134
134
  ngAfterContentInit() {
135
- this.menu.menuItems.forEach((item) => {
135
+ this.menu._menuItems.forEach((item) => {
136
136
  item.menuInteractive._fromSplitButton = true;
137
137
  });
138
138
  this._setupMenuSubscription();
139
139
  this._setupMenuItemSubscriptions();
140
140
  this._handleMainActionObject();
141
141
  if (!this.mainActionTitle && !this.titleTemplate && !this.selected) {
142
- this.selectMenuItem(this.menu.menuItems.first);
142
+ this.selectMenuItem(this.menu._menuItems.first);
143
143
  }
144
144
  else if (!this.mainActionTitle && this.selected) {
145
145
  this.selectMenuItem(this.selected);
@@ -196,7 +196,7 @@ class SplitButtonComponent {
196
196
  }
197
197
  /** @hidden */
198
198
  _setupMenuItemSubscriptions() {
199
- this.menu.menuItems.forEach((menuItem) => {
199
+ this.menu._menuItems.forEach((menuItem) => {
200
200
  menuItem.onSelect.pipe(first()).subscribe(() => {
201
201
  if (this.fixedWidth) {
202
202
  this._getMainButtonWidth();
@@ -211,7 +211,7 @@ class SplitButtonComponent {
211
211
  _handleMenuItemSelection(menuItem) {
212
212
  if (!this.mainAction || !this.mainAction.keepMainAction) {
213
213
  this.selected = menuItem;
214
- this.menu.menuItems.forEach((item) => {
214
+ this.menu._menuItems.forEach((item) => {
215
215
  item.setSelected(false, true);
216
216
  });
217
217
  menuItem.setSelected(true, true);
@@ -222,7 +222,7 @@ class SplitButtonComponent {
222
222
  }
223
223
  /** @hidden */
224
224
  _setupMenuSubscription() {
225
- this._menuSubscription = this.menu.menuItems.changes.subscribe(() => {
225
+ this._menuSubscription = this.menu._menuItems.changes.subscribe(() => {
226
226
  this._menuItemSubscriptions.unsubscribe();
227
227
  this._menuItemSubscriptions.closed = false;
228
228
  this._setupMenuItemSubscriptions();
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-split-button.mjs","sources":["../../../../../libs/core/src/lib/split-button/split-button-utils/split-button.directives.ts","../../../../../libs/core/src/lib/split-button/split-button.component.ts","../../../../../libs/core/src/lib/split-button/split-button.component.html","../../../../../libs/core/src/lib/split-button/deprecated-split-button-compact.directive.ts","../../../../../libs/core/src/lib/split-button/split-button.module.ts","../../../../../libs/core/src/lib/split-button/fundamental-ngx-core-split-button.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * Directive used to identify the template which will populate the main action button.\n * Used to achieve complex buttons that require more than a string.\n *```html\n * <fd-button-split>\n * <ng-template fd-button-split-action-title>\n * <p>Paragraph 1</p>\n * <p>Paragraph 2</p>\n * </ng-template>\n * <fd-menu>\n * <li fd-menu-item>\n * <a fd-menu-interactive [routerLink]=\"'/'\">\n * <span fd-menu-title>option2</span>\n * </a>\n * </li>\n * <li fd-menu-item>\n * <a fd-menu-interactive [routerLink]=\"'/'\">\n * <span fd-menu-title>option2</span>\n * </a>\n * </li>\n * </fd-menu>\n * </fd-button-split>\n *</fd-button-split>\n *```\n */\n@Directive({\n // TODO to be discussed\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-split-button-action-title]'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class SplitButtonActionTitle {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription, takeUntil, tap } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { ButtonType } from '@fundamental-ngx/core/button';\nimport { MenuComponent, MenuItemComponent } from '@fundamental-ngx/core/menu';\n\nimport { SplitButtonActionTitle } from './split-button-utils/split-button.directives';\nimport { MainAction } from './main-action';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { DestroyedService } from '@fundamental-ngx/core/utils';\n\nexport const splitButtonTextClass = 'fd-button-split__text';\nexport const splitButtonTextCompactClass = 'fd-button-split__text--compact';\nconst splitButtonTextClasses = [splitButtonTextClass, splitButtonTextCompactClass];\n\n/**\n * Split Button component, used to enhance standard HTML button and add possibility to put some dropdown with\n * additional options.\n *\n * ```html\n * <fd-split-button>\n * <fd-menu>\n * <li fd-menu-item>\n * <div fd-menu-interactive>\n * <span fd-menu-title>Option 1</span>\n * </div>\n * </li>\n * <li fd-menu-item>\n * <div fd-menu-interactive>\n * <span fd-menu-title>Option 2</span>\n * </div>\n * </li>\n * </fd-menu>\n *</fd-split-button>\n * ```\n */\n@Component({\n selector: 'fd-split-button',\n templateUrl: 'split-button.component.html',\n styleUrls: ['./split-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [contentDensityObserverProviders()]\n})\nexport class SplitButtonComponent implements AfterContentInit, OnChanges, OnDestroy, AfterViewInit {\n /** The icon to include in the button. See the icon page for the list of icons. */\n @Input()\n glyph = 'slim-arrow-down';\n\n /** The icon to include in the button. See the icon page for the list of icons. */\n @Input()\n disabled: boolean;\n\n /** @deprecated The Title for main action button. This will be deprecated as an input but will remain a property on this component. */\n @Input()\n mainActionTitle: string;\n\n /** The type of the button. Types include 'standard', 'positive', 'medium', and 'negative'.\n * Leave empty for default (Action button).'*/\n @Input()\n fdType: ButtonType;\n\n /** Aria-label attribute used to describe expand button */\n @Input()\n expandButtonAriaLabel = 'More actions';\n\n /** Title attribute used to describe expand button */\n @Input()\n expandButtonTitle: string;\n\n /** Selected menu item */\n @Input()\n selected: MenuItemComponent;\n\n /** Whether or not the element should keep a fixed width. The width could change if the text changes length. */\n @Input()\n fixedWidth = true;\n\n /**\n * The object that contains the mainActionTitle, keepMainAction option and the callback function that should be\n * executed when the button is clicked.\n */\n @Input()\n mainAction: MainAction;\n\n /** aria-label attribute */\n @Input()\n arialLabel = 'Split button';\n\n /** Event sent when primary button is clicked */\n @Output()\n readonly primaryButtonClicked: EventEmitter<Event> = new EventEmitter<Event>();\n\n /** @hidden */\n @ContentChild(SplitButtonActionTitle, { read: TemplateRef })\n titleTemplate: TemplateRef<any> | null;\n\n /** @hidden */\n @ContentChild(MenuComponent)\n menu: MenuComponent;\n\n /** @hidden */\n @ViewChild('mainActionButton', { read: ElementRef })\n mainActionBtn: ElementRef;\n\n /** @hidden */\n @ViewChild('menuActionButton', { read: ElementRef })\n menuActionBtn: ElementRef;\n\n /** @hidden */\n mainButtonWidth: string;\n\n /** @hidden */\n get typeClass(): string {\n return this.fdType ? `fd-button-split--${this.fdType}` : '';\n }\n\n /** @hidden */\n private _menuItemSubscriptions = new Subscription();\n\n /** @hidden */\n private _menuSubscription = new Subscription();\n\n /** @hidden */\n private _contentDensitySubscription = new Subscription();\n\n /** @hidden */\n private _menuActivePathSubscription = new Subscription();\n\n /** @hidden */\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _destroy$: DestroyedService,\n private _contentDensityObserver: ContentDensityObserver,\n private _renderer: Renderer2\n ) {}\n\n /** @hidden Emits event when main button is clicked */\n onMainButtonClick(event: MouseEvent): void {\n this.primaryButtonClicked.emit(event);\n if (this.selected) {\n this.selected.elementRef.nativeElement.click();\n } else if (this.mainAction && this.mainAction.callback) {\n this.mainAction.callback();\n }\n event.stopPropagation();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this.menu.menuItems.forEach((item) => {\n item.menuInteractive._fromSplitButton = true;\n });\n this._setupMenuSubscription();\n this._setupMenuItemSubscriptions();\n this._handleMainActionObject();\n\n if (!this.mainActionTitle && !this.titleTemplate && !this.selected) {\n this.selectMenuItem(this.menu.menuItems.first);\n } else if (!this.mainActionTitle && this.selected) {\n this.selectMenuItem(this.selected);\n }\n\n this._menuActivePathSubscription.add(\n this.menu.activePath.subscribe((items) => {\n const lastItem = items[items.length - 1];\n if (lastItem && !lastItem.submenu) {\n this.menu.close();\n this._focusTriggerElement();\n }\n })\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._contentDensityObserver.isCompact$\n .pipe(tap(this._addButtonTextClass), takeUntil(this._destroy$))\n .subscribe();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('selected' in changes) {\n this.selectMenuItem(this.selected);\n }\n if ('mainAction' in changes) {\n this._handleMainActionObject();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._menuItemSubscriptions.unsubscribe();\n this._menuSubscription.unsubscribe();\n this._contentDensitySubscription.unsubscribe();\n this._menuActivePathSubscription.unsubscribe();\n }\n\n /** Function called to select a menu item for the split button. */\n selectMenuItem(menuItem: MenuItemComponent): void {\n if (menuItem && (!this.mainAction || !this.mainAction.keepMainAction)) {\n menuItem.setSelected(true);\n }\n }\n\n /**\n * Wrapper gets focused programmatically by menu\n * when the \"escape\" button is pressed.\n * In this case we need to transit focus to the \"more actions\" button\n */\n _onGroupFocused(): void {\n this._focusTriggerElement();\n }\n\n /** @hidden */\n private _getMainButtonWidth(): void {\n if (this.mainActionBtn && this.mainActionBtn.nativeElement) {\n this.mainButtonWidth = this.mainActionBtn.nativeElement.getBoundingClientRect().width + 'px';\n }\n }\n\n /** @hidden */\n private _setupMenuItemSubscriptions(): void {\n this.menu.menuItems.forEach((menuItem) => {\n menuItem.onSelect.pipe(first()).subscribe(() => {\n if (this.fixedWidth) {\n this._getMainButtonWidth();\n }\n });\n this._menuItemSubscriptions.add(\n menuItem.onSelect.subscribe(() => {\n this._handleMenuItemSelection(menuItem);\n })\n );\n });\n }\n\n /** @hidden */\n private _handleMenuItemSelection(menuItem: MenuItemComponent): void {\n if (!this.mainAction || !this.mainAction.keepMainAction) {\n this.selected = menuItem;\n this.menu.menuItems.forEach((item) => {\n item.setSelected(false, true);\n });\n menuItem.setSelected(true, true);\n this.titleTemplate = null;\n this.mainActionTitle = menuItem.menuItemTitle.title;\n this._cdRef.detectChanges();\n }\n }\n\n /** @hidden */\n private _setupMenuSubscription(): void {\n this._menuSubscription = this.menu.menuItems.changes.subscribe(() => {\n this._menuItemSubscriptions.unsubscribe();\n this._menuItemSubscriptions.closed = false;\n this._setupMenuItemSubscriptions();\n });\n // call markForCheck once menu open state gets changed\n this._menuSubscription.add(this.menu.isOpenChange.subscribe(() => this._cdRef.markForCheck()));\n }\n\n /** @hidden */\n private _handleMainActionObject(): void {\n if (this.mainAction && typeof this.mainAction.mainActionTitle === 'string') {\n this.mainActionTitle = this.mainAction.mainActionTitle;\n } else if (this.mainAction && this.mainAction.mainActionTitle instanceof TemplateRef) {\n this.titleTemplate = this.mainAction.mainActionTitle;\n }\n }\n\n /** @hidden */\n private _addButtonTextClass = (compact: boolean): void => {\n const textSpanElement = this.mainActionBtn?.nativeElement.querySelector('.fd-button__text');\n if (!textSpanElement) {\n return;\n }\n splitButtonTextClasses.forEach((_class) => this._renderer.removeClass(textSpanElement, _class));\n if (compact) {\n this._renderer.addClass(textSpanElement, splitButtonTextCompactClass);\n } else {\n this._renderer.addClass(textSpanElement, splitButtonTextClass);\n }\n };\n\n /** @hidden */\n private _focusTriggerElement(): void {\n this.menuActionBtn?.nativeElement.focus();\n }\n}\n","<div\n class=\"fd-button-split fd-has-margin-right-small\"\n [ngClass]=\"typeClass\"\n role=\"group\"\n tabindex=\"-1\"\n [attr.aria-label]=\"arialLabel\"\n [fdMenuTrigger]=\"menu\"\n (focus)=\"_onGroupFocused()\"\n>\n <button\n fd-button\n #mainActionButton\n [label]=\"mainActionTitle\"\n [style.width]=\"mainButtonWidth\"\n [fdType]=\"fdType\"\n [disabled]=\"disabled\"\n (click)=\"onMainButtonClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"titleTemplate\"></ng-container>\n </button>\n\n <button\n fd-button\n #menuActionButton\n [glyph]=\"glyph\"\n [fdType]=\"fdType\"\n [disabled]=\"disabled\"\n [ariaLabel]=\"expandButtonAriaLabel\"\n [attr.title]=\"expandButtonTitle || expandButtonAriaLabel\"\n [class.is-active]=\"menu.isOpen\"\n ></button>\n <ng-content select=\"fd-menu\"></ng-content>\n</div>\n","import { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-split-button[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedSplitButtonCompactDirective)\n }\n ]\n})\nexport class DeprecatedSplitButtonCompactDirective extends DeprecatedCompactDirective {\n constructor() {\n super('fd-split-button');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SplitButtonComponent } from './split-button.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { SplitButtonActionTitle } from './split-button-utils/split-button.directives';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { DeprecatedSplitButtonCompactDirective } from './deprecated-split-button-compact.directive';\n\n@NgModule({\n imports: [CommonModule, ButtonModule, MenuModule, ContentDensityModule],\n declarations: [SplitButtonComponent, SplitButtonActionTitle, DeprecatedSplitButtonCompactDirective],\n exports: [SplitButtonComponent, SplitButtonActionTitle, ContentDensityModule, DeprecatedSplitButtonCompactDirective]\n})\nexport class SplitButtonModule {}\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-split-button.mjs","sources":["../../../../../libs/core/src/lib/split-button/split-button-utils/split-button.directives.ts","../../../../../libs/core/src/lib/split-button/split-button.component.ts","../../../../../libs/core/src/lib/split-button/split-button.component.html","../../../../../libs/core/src/lib/split-button/deprecated-split-button-compact.directive.ts","../../../../../libs/core/src/lib/split-button/split-button.module.ts","../../../../../libs/core/src/lib/split-button/fundamental-ngx-core-split-button.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * Directive used to identify the template which will populate the main action button.\n * Used to achieve complex buttons that require more than a string.\n *```html\n * <fd-button-split>\n * <ng-template fd-button-split-action-title>\n * <p>Paragraph 1</p>\n * <p>Paragraph 2</p>\n * </ng-template>\n * <fd-menu>\n * <li fd-menu-item>\n * <a fd-menu-interactive [routerLink]=\"'/'\">\n * <span fd-menu-title>option2</span>\n * </a>\n * </li>\n * <li fd-menu-item>\n * <a fd-menu-interactive [routerLink]=\"'/'\">\n * <span fd-menu-title>option2</span>\n * </a>\n * </li>\n * </fd-menu>\n * </fd-button-split>\n *</fd-button-split>\n *```\n */\n@Directive({\n // TODO to be discussed\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-split-button-action-title]'\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class SplitButtonActionTitle {}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n Renderer2,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Subscription, takeUntil, tap } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { ButtonType } from '@fundamental-ngx/core/button';\nimport { MenuComponent, MenuItemComponent } from '@fundamental-ngx/core/menu';\n\nimport { SplitButtonActionTitle } from './split-button-utils/split-button.directives';\nimport { MainAction } from './main-action';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { DestroyedService } from '@fundamental-ngx/core/utils';\n\nexport const splitButtonTextClass = 'fd-button-split__text';\nexport const splitButtonTextCompactClass = 'fd-button-split__text--compact';\nconst splitButtonTextClasses = [splitButtonTextClass, splitButtonTextCompactClass];\n\n/**\n * Split Button component, used to enhance standard HTML button and add possibility to put some dropdown with\n * additional options.\n *\n * ```html\n * <fd-split-button>\n * <fd-menu>\n * <li fd-menu-item>\n * <div fd-menu-interactive>\n * <span fd-menu-title>Option 1</span>\n * </div>\n * </li>\n * <li fd-menu-item>\n * <div fd-menu-interactive>\n * <span fd-menu-title>Option 2</span>\n * </div>\n * </li>\n * </fd-menu>\n *</fd-split-button>\n * ```\n */\n@Component({\n selector: 'fd-split-button',\n templateUrl: 'split-button.component.html',\n styleUrls: ['./split-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [contentDensityObserverProviders()]\n})\nexport class SplitButtonComponent implements AfterContentInit, OnChanges, OnDestroy, AfterViewInit {\n /** The icon to include in the button. See the icon page for the list of icons. */\n @Input()\n glyph = 'slim-arrow-down';\n\n /** The icon to include in the button. See the icon page for the list of icons. */\n @Input()\n disabled: boolean;\n\n /** @deprecated The Title for main action button. This will be deprecated as an input but will remain a property on this component. */\n @Input()\n mainActionTitle: string;\n\n /** The type of the button. Types include 'standard', 'positive', 'medium', and 'negative'.\n * Leave empty for default (Action button).'*/\n @Input()\n fdType: ButtonType;\n\n /** Aria-label attribute used to describe expand button */\n @Input()\n expandButtonAriaLabel = 'More actions';\n\n /** Title attribute used to describe expand button */\n @Input()\n expandButtonTitle: string;\n\n /** Selected menu item */\n @Input()\n selected: MenuItemComponent;\n\n /** Whether or not the element should keep a fixed width. The width could change if the text changes length. */\n @Input()\n fixedWidth = true;\n\n /**\n * The object that contains the mainActionTitle, keepMainAction option and the callback function that should be\n * executed when the button is clicked.\n */\n @Input()\n mainAction: MainAction;\n\n /** aria-label attribute */\n @Input()\n arialLabel = 'Split button';\n\n /** Event sent when primary button is clicked */\n @Output()\n readonly primaryButtonClicked: EventEmitter<Event> = new EventEmitter<Event>();\n\n /** @hidden */\n @ContentChild(SplitButtonActionTitle, { read: TemplateRef })\n titleTemplate: TemplateRef<any> | null;\n\n /** @hidden */\n @ContentChild(MenuComponent)\n menu: MenuComponent;\n\n /** @hidden */\n @ViewChild('mainActionButton', { read: ElementRef })\n mainActionBtn: ElementRef;\n\n /** @hidden */\n @ViewChild('menuActionButton', { read: ElementRef })\n menuActionBtn: ElementRef;\n\n /** @hidden */\n mainButtonWidth: string;\n\n /** @hidden */\n get typeClass(): string {\n return this.fdType ? `fd-button-split--${this.fdType}` : '';\n }\n\n /** @hidden */\n private _menuItemSubscriptions = new Subscription();\n\n /** @hidden */\n private _menuSubscription = new Subscription();\n\n /** @hidden */\n private _contentDensitySubscription = new Subscription();\n\n /** @hidden */\n private _menuActivePathSubscription = new Subscription();\n\n /** @hidden */\n constructor(\n private _cdRef: ChangeDetectorRef,\n private _destroy$: DestroyedService,\n private _contentDensityObserver: ContentDensityObserver,\n private _renderer: Renderer2\n ) {}\n\n /** @hidden Emits event when main button is clicked */\n onMainButtonClick(event: MouseEvent): void {\n this.primaryButtonClicked.emit(event);\n if (this.selected) {\n this.selected.elementRef.nativeElement.click();\n } else if (this.mainAction && this.mainAction.callback) {\n this.mainAction.callback();\n }\n event.stopPropagation();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this.menu._menuItems.forEach((item) => {\n item.menuInteractive._fromSplitButton = true;\n });\n this._setupMenuSubscription();\n this._setupMenuItemSubscriptions();\n this._handleMainActionObject();\n\n if (!this.mainActionTitle && !this.titleTemplate && !this.selected) {\n this.selectMenuItem(this.menu._menuItems.first);\n } else if (!this.mainActionTitle && this.selected) {\n this.selectMenuItem(this.selected);\n }\n\n this._menuActivePathSubscription.add(\n this.menu.activePath.subscribe((items) => {\n const lastItem = items[items.length - 1];\n if (lastItem && !lastItem.submenu) {\n this.menu.close();\n this._focusTriggerElement();\n }\n })\n );\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._contentDensityObserver.isCompact$\n .pipe(tap(this._addButtonTextClass), takeUntil(this._destroy$))\n .subscribe();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('selected' in changes) {\n this.selectMenuItem(this.selected);\n }\n if ('mainAction' in changes) {\n this._handleMainActionObject();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._menuItemSubscriptions.unsubscribe();\n this._menuSubscription.unsubscribe();\n this._contentDensitySubscription.unsubscribe();\n this._menuActivePathSubscription.unsubscribe();\n }\n\n /** Function called to select a menu item for the split button. */\n selectMenuItem(menuItem: MenuItemComponent): void {\n if (menuItem && (!this.mainAction || !this.mainAction.keepMainAction)) {\n menuItem.setSelected(true);\n }\n }\n\n /**\n * Wrapper gets focused programmatically by menu\n * when the \"escape\" button is pressed.\n * In this case we need to transit focus to the \"more actions\" button\n */\n _onGroupFocused(): void {\n this._focusTriggerElement();\n }\n\n /** @hidden */\n private _getMainButtonWidth(): void {\n if (this.mainActionBtn && this.mainActionBtn.nativeElement) {\n this.mainButtonWidth = this.mainActionBtn.nativeElement.getBoundingClientRect().width + 'px';\n }\n }\n\n /** @hidden */\n private _setupMenuItemSubscriptions(): void {\n this.menu._menuItems.forEach((menuItem) => {\n menuItem.onSelect.pipe(first()).subscribe(() => {\n if (this.fixedWidth) {\n this._getMainButtonWidth();\n }\n });\n this._menuItemSubscriptions.add(\n menuItem.onSelect.subscribe(() => {\n this._handleMenuItemSelection(menuItem);\n })\n );\n });\n }\n\n /** @hidden */\n private _handleMenuItemSelection(menuItem: MenuItemComponent): void {\n if (!this.mainAction || !this.mainAction.keepMainAction) {\n this.selected = menuItem;\n this.menu._menuItems.forEach((item) => {\n item.setSelected(false, true);\n });\n menuItem.setSelected(true, true);\n this.titleTemplate = null;\n this.mainActionTitle = menuItem.menuItemTitle.title;\n this._cdRef.detectChanges();\n }\n }\n\n /** @hidden */\n private _setupMenuSubscription(): void {\n this._menuSubscription = this.menu._menuItems.changes.subscribe(() => {\n this._menuItemSubscriptions.unsubscribe();\n this._menuItemSubscriptions.closed = false;\n this._setupMenuItemSubscriptions();\n });\n // call markForCheck once menu open state gets changed\n this._menuSubscription.add(this.menu.isOpenChange.subscribe(() => this._cdRef.markForCheck()));\n }\n\n /** @hidden */\n private _handleMainActionObject(): void {\n if (this.mainAction && typeof this.mainAction.mainActionTitle === 'string') {\n this.mainActionTitle = this.mainAction.mainActionTitle;\n } else if (this.mainAction && this.mainAction.mainActionTitle instanceof TemplateRef) {\n this.titleTemplate = this.mainAction.mainActionTitle;\n }\n }\n\n /** @hidden */\n private _addButtonTextClass = (compact: boolean): void => {\n const textSpanElement = this.mainActionBtn?.nativeElement.querySelector('.fd-button__text');\n if (!textSpanElement) {\n return;\n }\n splitButtonTextClasses.forEach((_class) => this._renderer.removeClass(textSpanElement, _class));\n if (compact) {\n this._renderer.addClass(textSpanElement, splitButtonTextCompactClass);\n } else {\n this._renderer.addClass(textSpanElement, splitButtonTextClass);\n }\n };\n\n /** @hidden */\n private _focusTriggerElement(): void {\n this.menuActionBtn?.nativeElement.focus();\n }\n}\n","<div\n class=\"fd-button-split fd-has-margin-right-small\"\n [ngClass]=\"typeClass\"\n role=\"group\"\n tabindex=\"-1\"\n [attr.aria-label]=\"arialLabel\"\n [fdMenuTrigger]=\"menu\"\n (focus)=\"_onGroupFocused()\"\n>\n <button\n fd-button\n #mainActionButton\n [label]=\"mainActionTitle\"\n [style.width]=\"mainButtonWidth\"\n [fdType]=\"fdType\"\n [disabled]=\"disabled\"\n (click)=\"onMainButtonClick($event)\"\n >\n <ng-container *ngTemplateOutlet=\"titleTemplate\"></ng-container>\n </button>\n\n <button\n fd-button\n #menuActionButton\n [glyph]=\"glyph\"\n [fdType]=\"fdType\"\n [disabled]=\"disabled\"\n [ariaLabel]=\"expandButtonAriaLabel\"\n [attr.title]=\"expandButtonTitle || expandButtonAriaLabel\"\n [class.is-active]=\"menu.isOpen\"\n ></button>\n <ng-content select=\"fd-menu\"></ng-content>\n</div>\n","import { CONTENT_DENSITY_DIRECTIVE, DeprecatedCompactDirective } from '@fundamental-ngx/core/content-density';\nimport { Directive, forwardRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-split-button[compact]',\n providers: [\n {\n provide: CONTENT_DENSITY_DIRECTIVE,\n useExisting: forwardRef(() => DeprecatedSplitButtonCompactDirective)\n }\n ]\n})\nexport class DeprecatedSplitButtonCompactDirective extends DeprecatedCompactDirective {\n constructor() {\n super('fd-split-button');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SplitButtonComponent } from './split-button.component';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { SplitButtonActionTitle } from './split-button-utils/split-button.directives';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { DeprecatedSplitButtonCompactDirective } from './deprecated-split-button-compact.directive';\n\n@NgModule({\n imports: [CommonModule, ButtonModule, MenuModule, ContentDensityModule],\n declarations: [SplitButtonComponent, SplitButtonActionTitle, DeprecatedSplitButtonCompactDirective],\n exports: [SplitButtonComponent, SplitButtonActionTitle, ContentDensityModule, DeprecatedSplitButtonCompactDirective]\n})\nexport class SplitButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/split-button",
3
- "version": "0.35.5-rc.6",
3
+ "version": "0.35.6",
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/splitter",
3
- "version": "0.35.5-rc.6",
3
+ "version": "0.35.6",
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/status-indicator",
3
- "version": "0.35.5-rc.6",
3
+ "version": "0.35.6",
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/step-input",
3
- "version": "0.35.5-rc.6",
3
+ "version": "0.35.6",
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/switch",
3
- "version": "0.35.5-rc.6",
3
+ "version": "0.35.6",
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/table",
3
- "version": "0.35.5-rc.6",
3
+ "version": "0.35.6",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"