@progress/kendo-angular-layout 17.0.0-develop.4 → 17.0.0-develop.40

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 (242) hide show
  1. package/README.md +42 -27
  2. package/avatar/avatar.component.d.ts +1 -1
  3. package/avatar/l10n/messages.d.ts +1 -1
  4. package/avatar/models/fill.d.ts +1 -1
  5. package/avatar/models/rounded.d.ts +1 -1
  6. package/avatar/models/shape.d.ts +2 -2
  7. package/avatar/models/size.d.ts +1 -1
  8. package/avatar/models/theme-color.d.ts +1 -1
  9. package/card/card-actions.component.d.ts +1 -1
  10. package/card/card.component.d.ts +1 -1
  11. package/card/directives/card-separator.directive.d.ts +1 -1
  12. package/card/models/actions-layout.d.ts +1 -1
  13. package/common/direction.d.ts +1 -1
  14. package/common/orientation.d.ts +1 -1
  15. package/drawer/drawer.component.d.ts +1 -1
  16. package/drawer/item.component.d.ts +1 -1
  17. package/drawer/list.component.d.ts +1 -1
  18. package/drawer/models/drawer-item-expand.interface.d.ts +1 -1
  19. package/drawer/models/mode.d.ts +1 -1
  20. package/drawer/models/position.d.ts +1 -1
  21. package/{esm2020 → esm2022}/avatar/avatar.component.mjs +61 -25
  22. package/{esm2020 → esm2022}/avatar/l10n/custom-messages.component.mjs +9 -8
  23. package/{esm2020 → esm2022}/avatar/l10n/localized-messages.directive.mjs +9 -8
  24. package/{esm2020 → esm2022}/avatar/l10n/messages.mjs +7 -3
  25. package/{esm2020 → esm2022}/avatar.module.mjs +4 -4
  26. package/{esm2020 → esm2022}/card/card-actions.component.mjs +37 -31
  27. package/{esm2020 → esm2022}/card/card-body.component.mjs +5 -7
  28. package/{esm2020 → esm2022}/card/card-footer.component.mjs +5 -7
  29. package/{esm2020 → esm2022}/card/card-header.component.mjs +5 -7
  30. package/{esm2020 → esm2022}/card/card.component.mjs +40 -34
  31. package/{esm2020 → esm2022}/card/directives/card-media.directive.mjs +4 -6
  32. package/{esm2020 → esm2022}/card/directives/card-separator.directive.mjs +16 -14
  33. package/{esm2020 → esm2022}/card/directives/card-subtitle.directive.mjs +4 -6
  34. package/{esm2020 → esm2022}/card/directives/card-title.directive.mjs +4 -6
  35. package/{esm2020 → esm2022}/card/models/card-action.mjs +12 -0
  36. package/{esm2020 → esm2022}/card.module.mjs +4 -4
  37. package/{esm2020 → esm2022}/common/preventable-event.mjs +7 -7
  38. package/{esm2020 → esm2022}/drawer/drawer-container.component.mjs +28 -18
  39. package/{esm2020 → esm2022}/drawer/drawer-content.component.mjs +6 -7
  40. package/{esm2020 → esm2022}/drawer/drawer.component.mjs +132 -106
  41. package/{esm2020 → esm2022}/drawer/drawer.service.mjs +10 -10
  42. package/{esm2020 → esm2022}/drawer/events/drawer-list-select.event.mjs +12 -0
  43. package/{esm2020 → esm2022}/drawer/events/select-event.mjs +16 -0
  44. package/{esm2020 → esm2022}/drawer/item.component.mjs +22 -11
  45. package/{esm2020 → esm2022}/drawer/list.component.mjs +14 -6
  46. package/{esm2020 → esm2022}/drawer/template-directives/drawer-template.directive.mjs +4 -3
  47. package/{esm2020 → esm2022}/drawer/template-directives/footer-template.directive.mjs +4 -3
  48. package/{esm2020 → esm2022}/drawer/template-directives/header-template.directive.mjs +4 -3
  49. package/{esm2020 → esm2022}/drawer/template-directives/item-template.directive.mjs +4 -3
  50. package/{esm2020 → esm2022}/drawer.module.mjs +4 -4
  51. package/{esm2020 → esm2022}/expansionpanel/events/action-event.mjs +4 -0
  52. package/{esm2020 → esm2022}/expansionpanel/expansionpanel-title.directive.mjs +4 -3
  53. package/{esm2020 → esm2022}/expansionpanel/expansionpanel.component.mjs +103 -81
  54. package/{esm2020 → esm2022}/expansionpanel.module.mjs +4 -4
  55. package/{esm2020 → esm2022}/gridlayout.module.mjs +4 -4
  56. package/{esm2020 → esm2022}/layout.module.mjs +4 -4
  57. package/{esm2020 → esm2022}/layouts/grid-layout.component.mjs +57 -26
  58. package/{esm2020 → esm2022}/layouts/gridlayout-item.component.mjs +26 -4
  59. package/{esm2020 → esm2022}/layouts/stack-layout.component.mjs +40 -35
  60. package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
  61. package/{esm2020 → esm2022}/panelbar/events/collapse-event.mjs +4 -0
  62. package/{esm2020 → esm2022}/panelbar/events/expand-event.mjs +4 -0
  63. package/{esm2020 → esm2022}/panelbar/events/item-click-event.mjs +8 -0
  64. package/{esm2020 → esm2022}/panelbar/events/select-event.mjs +4 -0
  65. package/{esm2020 → esm2022}/panelbar/events/state-change-event.mjs +4 -0
  66. package/{esm2020 → esm2022}/panelbar/panelbar-content.directive.mjs +4 -3
  67. package/{esm2020 → esm2022}/panelbar/panelbar-item-template.directive.mjs +4 -3
  68. package/{esm2020 → esm2022}/panelbar/panelbar-item-title.directive.mjs +4 -3
  69. package/{esm2020 → esm2022}/panelbar/panelbar-item.component.mjs +101 -66
  70. package/{esm2020 → esm2022}/panelbar/panelbar.component.mjs +109 -98
  71. package/{esm2020 → esm2022}/panelbar/panelbar.service.mjs +23 -13
  72. package/{esm2020 → esm2022}/panelbar.module.mjs +4 -4
  73. package/{esm2020 → esm2022}/splitter/splitter-bar.component.mjs +68 -28
  74. package/esm2022/splitter/splitter-pane.component.mjs +267 -0
  75. package/{esm2020 → esm2022}/splitter/splitter.component.mjs +98 -40
  76. package/{esm2020 → esm2022}/splitter/splitter.service.mjs +69 -28
  77. package/{esm2020 → esm2022}/splitter.module.mjs +4 -4
  78. package/{esm2020 → esm2022}/stacklayout.module.mjs +4 -4
  79. package/{esm2020 → esm2022}/stepper/events/activate-event.mjs +16 -0
  80. package/{esm2020 → esm2022}/stepper/list.component.mjs +23 -5
  81. package/{esm2020 → esm2022}/stepper/localization/custom-messages.component.mjs +9 -8
  82. package/{esm2020 → esm2022}/stepper/localization/localized-messages.directive.mjs +9 -8
  83. package/{esm2020 → esm2022}/stepper/localization/messages.mjs +7 -3
  84. package/{esm2020 → esm2022}/stepper/step.component.mjs +25 -8
  85. package/{esm2020 → esm2022}/stepper/stepper.component.mjs +111 -70
  86. package/{esm2020 → esm2022}/stepper/stepper.service.mjs +30 -9
  87. package/{esm2020 → esm2022}/stepper/template-directives/indicator-template.directive.mjs +4 -3
  88. package/{esm2020 → esm2022}/stepper/template-directives/label-template.directive.mjs +4 -3
  89. package/{esm2020 → esm2022}/stepper/template-directives/step-template.directive.mjs +4 -3
  90. package/{esm2020 → esm2022}/stepper.module.mjs +4 -4
  91. package/{esm2020 → esm2022}/tabstrip/directives/tab-content.directive.mjs +4 -3
  92. package/{esm2020 → esm2022}/tabstrip/directives/tab-title.directive.mjs +4 -3
  93. package/{esm2020 → esm2022}/tabstrip/directives/tab.directive.mjs +4 -3
  94. package/{esm2020 → esm2022}/tabstrip/events/select-event.mjs +2 -0
  95. package/{esm2020 → esm2022}/tabstrip/events/tabclose-event.mjs +2 -0
  96. package/{esm2020 → esm2022}/tabstrip/events/tabscroll-event.mjs +4 -0
  97. package/{esm2020 → esm2022}/tabstrip/localization/custom-messages.component.mjs +9 -8
  98. package/{esm2020 → esm2022}/tabstrip/localization/localized-messages.directive.mjs +9 -8
  99. package/{esm2020 → esm2022}/tabstrip/localization/messages.mjs +15 -3
  100. package/esm2022/tabstrip/models/tabstrip-tab.component.mjs +117 -0
  101. package/{esm2020 → esm2022}/tabstrip/rendering/tab.component.mjs +25 -17
  102. package/{esm2020 → esm2022}/tabstrip/scrollable-button.component.mjs +33 -27
  103. package/{esm2020 → esm2022}/tabstrip/tabstrip-scroll.service.mjs +11 -9
  104. package/{esm2020 → esm2022}/tabstrip/tabstrip.component.mjs +150 -106
  105. package/{esm2020 → esm2022}/tabstrip/tabstrip.service.mjs +6 -3
  106. package/{esm2020 → esm2022}/tabstrip.module.mjs +4 -4
  107. package/{esm2020 → esm2022}/tilelayout/dragging-service.mjs +39 -24
  108. package/{esm2020 → esm2022}/tilelayout/keyboard-navigation.service.mjs +9 -4
  109. package/{esm2020 → esm2022}/tilelayout/reorder-event.mjs +8 -0
  110. package/{esm2020 → esm2022}/tilelayout/resize-event.mjs +6 -0
  111. package/{esm2020 → esm2022}/tilelayout/tilelayout-item-body.component.mjs +6 -8
  112. package/esm2022/tilelayout/tilelayout-item-header.component.mjs +33 -0
  113. package/{esm2020 → esm2022}/tilelayout/tilelayout-item.component.mjs +85 -58
  114. package/{esm2020 → esm2022}/tilelayout/tilelayout-resize-handle.directive.mjs +7 -3
  115. package/{esm2020 → esm2022}/tilelayout/tilelayout.component.mjs +103 -93
  116. package/{esm2020 → esm2022}/tilelayout.module.mjs +4 -4
  117. package/{esm2020 → esm2022}/timeline/localization/custom-messages.component.mjs +9 -8
  118. package/{esm2020 → esm2022}/timeline/localization/localized-messages.directive.mjs +9 -8
  119. package/{esm2020 → esm2022}/timeline/localization/messages.mjs +11 -3
  120. package/{esm2020 → esm2022}/timeline/templates/timeline-card-actions.directive.mjs +4 -3
  121. package/{esm2020 → esm2022}/timeline/templates/timeline-card-body.directive.mjs +4 -3
  122. package/{esm2020 → esm2022}/timeline/templates/timeline-card-header.directive.mjs +4 -3
  123. package/{esm2020 → esm2022}/timeline/timeline-card.component.mjs +49 -34
  124. package/{esm2020 → esm2022}/timeline/timeline-horizontal.component.mjs +85 -55
  125. package/{esm2020 → esm2022}/timeline/timeline-vertical.component.mjs +20 -6
  126. package/{esm2020 → esm2022}/timeline/timeline.component.mjs +108 -68
  127. package/{esm2020 → esm2022}/timeline/timeline.service.mjs +4 -3
  128. package/{esm2020 → esm2022}/timeline.module.mjs +4 -4
  129. package/expansionpanel/events/action-event.d.ts +1 -1
  130. package/expansionpanel/expansionpanel.component.d.ts +1 -1
  131. package/{fesm2020 → fesm2022}/progress-kendo-angular-layout.mjs +2687 -1781
  132. package/layouts/grid-layout.component.d.ts +1 -1
  133. package/layouts/gridlayout-item.component.d.ts +1 -1
  134. package/layouts/models/layout-horizontal-align.d.ts +1 -1
  135. package/layouts/models/layout-vertical-align.d.ts +1 -1
  136. package/layouts/stack-layout.component.d.ts +1 -1
  137. package/package.json +16 -22
  138. package/panelbar/panelbar-item.component.d.ts +1 -1
  139. package/panelbar/panelbar.component.d.ts +1 -1
  140. package/splitter/splitter-bar.component.d.ts +13 -1
  141. package/splitter/splitter-pane.component.d.ts +26 -6
  142. package/splitter/splitter.component.d.ts +12 -4
  143. package/splitter/splitter.service.d.ts +7 -2
  144. package/stepper/list.component.d.ts +1 -1
  145. package/stepper/localization/messages.d.ts +1 -1
  146. package/stepper/models/orientation.d.ts +1 -1
  147. package/stepper/models/step-predicate.d.ts +1 -1
  148. package/stepper/models/step-type.d.ts +1 -1
  149. package/stepper/step.component.d.ts +1 -1
  150. package/stepper/stepper.component.d.ts +1 -1
  151. package/tabstrip/localization/messages.d.ts +1 -1
  152. package/tabstrip/models/button-state-change.d.ts +1 -1
  153. package/tabstrip/models/scroll-button-type.d.ts +1 -1
  154. package/tabstrip/models/scroll-buttons-visibility.d.ts +1 -1
  155. package/tabstrip/models/tab-alignment.d.ts +1 -1
  156. package/tabstrip/models/tab-position.d.ts +1 -1
  157. package/tabstrip/models/tabstrip-tab.component.d.ts +1 -1
  158. package/tabstrip/rendering/tab.component.d.ts +1 -1
  159. package/tabstrip/scrollable-button.component.d.ts +1 -1
  160. package/tabstrip/tabstrip.component.d.ts +3 -1
  161. package/tilelayout/models/flowmode.type.d.ts +1 -1
  162. package/tilelayout/tilelayout-item-header.component.d.ts +1 -9
  163. package/tilelayout/tilelayout-item.component.d.ts +1 -1
  164. package/tilelayout/tilelayout-resize-handle.directive.d.ts +1 -1
  165. package/tilelayout/tilelayout.component.d.ts +1 -1
  166. package/timeline/events/navigation-direction.d.ts +1 -1
  167. package/timeline/localization/messages.d.ts +1 -1
  168. package/timeline/models/anchor-target.d.ts +1 -1
  169. package/timeline/timeline-card.component.d.ts +1 -1
  170. package/timeline/timeline-horizontal.component.d.ts +2 -2
  171. package/timeline/timeline-vertical.component.d.ts +1 -1
  172. package/timeline/timeline.component.d.ts +1 -1
  173. package/esm2020/splitter/splitter-pane.component.mjs +0 -222
  174. package/esm2020/tabstrip/models/tabstrip-tab.component.mjs +0 -78
  175. package/esm2020/tilelayout/tilelayout-item-header.component.mjs +0 -53
  176. package/fesm2015/progress-kendo-angular-layout.mjs +0 -12374
  177. /package/{esm2020 → esm2022}/avatar/models/fill.mjs +0 -0
  178. /package/{esm2020 → esm2022}/avatar/models/models.mjs +0 -0
  179. /package/{esm2020 → esm2022}/avatar/models/rounded.mjs +0 -0
  180. /package/{esm2020 → esm2022}/avatar/models/shape.mjs +0 -0
  181. /package/{esm2020 → esm2022}/avatar/models/size.mjs +0 -0
  182. /package/{esm2020 → esm2022}/avatar/models/theme-color.mjs +0 -0
  183. /package/{esm2020 → esm2022}/card/models/actions-layout.mjs +0 -0
  184. /package/{esm2020 → esm2022}/common/direction.mjs +0 -0
  185. /package/{esm2020 → esm2022}/common/dom-queries.mjs +0 -0
  186. /package/{esm2020 → esm2022}/common/orientation.mjs +0 -0
  187. /package/{esm2020 → esm2022}/common/styling-classes.mjs +0 -0
  188. /package/{esm2020 → esm2022}/common/util.mjs +0 -0
  189. /package/{esm2020 → esm2022}/directives.mjs +0 -0
  190. /package/{esm2020 → esm2022}/drawer/animations.mjs +0 -0
  191. /package/{esm2020 → esm2022}/drawer/models/constants.mjs +0 -0
  192. /package/{esm2020 → esm2022}/drawer/models/drawer-animation.interface.mjs +0 -0
  193. /package/{esm2020 → esm2022}/drawer/models/drawer-item-expand.interface.mjs +0 -0
  194. /package/{esm2020 → esm2022}/drawer/models/drawer-item.interface.mjs +0 -0
  195. /package/{esm2020 → esm2022}/drawer/models/drawer-view-item.interface.mjs +0 -0
  196. /package/{esm2020 → esm2022}/drawer/models/mode.mjs +0 -0
  197. /package/{esm2020 → esm2022}/drawer/models/position.mjs +0 -0
  198. /package/{esm2020 → esm2022}/drawer/template-directives.mjs +0 -0
  199. /package/{esm2020 → esm2022}/drawer/types.mjs +0 -0
  200. /package/{esm2020 → esm2022}/drawer/util.mjs +0 -0
  201. /package/{esm2020 → esm2022}/expansionpanel/animations.mjs +0 -0
  202. /package/{esm2020 → esm2022}/index.mjs +0 -0
  203. /package/{esm2020 → esm2022}/layouts/models/gridlayout-gap-settings.mjs +0 -0
  204. /package/{esm2020 → esm2022}/layouts/models/gridlayout-row-col-size.mjs +0 -0
  205. /package/{esm2020 → esm2022}/layouts/models/layout-align-settings.mjs +0 -0
  206. /package/{esm2020 → esm2022}/layouts/models/layout-horizontal-align.mjs +0 -0
  207. /package/{esm2020 → esm2022}/layouts/models/layout-vertical-align.mjs +0 -0
  208. /package/{esm2020 → esm2022}/layouts/models.mjs +0 -0
  209. /package/{esm2020 → esm2022}/layouts/util.mjs +0 -0
  210. /package/{esm2020 → esm2022}/panelbar/events.mjs +0 -0
  211. /package/{esm2020 → esm2022}/panelbar/panelbar-expand-mode.mjs +0 -0
  212. /package/{esm2020 → esm2022}/panelbar/panelbar-item-model.mjs +0 -0
  213. /package/{esm2020 → esm2022}/progress-kendo-angular-layout.mjs +0 -0
  214. /package/{esm2020 → esm2022}/splitter/util.mjs +0 -0
  215. /package/{esm2020 → esm2022}/stepper/models/constants.mjs +0 -0
  216. /package/{esm2020 → esm2022}/stepper/models/orientation.mjs +0 -0
  217. /package/{esm2020 → esm2022}/stepper/models/step-predicate.mjs +0 -0
  218. /package/{esm2020 → esm2022}/stepper/models/step-type.mjs +0 -0
  219. /package/{esm2020 → esm2022}/stepper/models/stepper-step.interface.mjs +0 -0
  220. /package/{esm2020 → esm2022}/stepper/template-directives.mjs +0 -0
  221. /package/{esm2020 → esm2022}/stepper/types.mjs +0 -0
  222. /package/{esm2020 → esm2022}/tabstrip/constants.mjs +0 -0
  223. /package/{esm2020 → esm2022}/tabstrip/events.mjs +0 -0
  224. /package/{esm2020 → esm2022}/tabstrip/models/button-state-change.mjs +0 -0
  225. /package/{esm2020 → esm2022}/tabstrip/models/scroll-button-type.mjs +0 -0
  226. /package/{esm2020 → esm2022}/tabstrip/models/scroll-buttons-visibility.mjs +0 -0
  227. /package/{esm2020 → esm2022}/tabstrip/models/scrollable-settings.mjs +0 -0
  228. /package/{esm2020 → esm2022}/tabstrip/models/tab-alignment.mjs +0 -0
  229. /package/{esm2020 → esm2022}/tabstrip/models/tab-position.mjs +0 -0
  230. /package/{esm2020 → esm2022}/tabstrip/util.mjs +0 -0
  231. /package/{esm2020 → esm2022}/tilelayout/constants.mjs +0 -0
  232. /package/{esm2020 → esm2022}/tilelayout/models/dragging-config.interface.mjs +0 -0
  233. /package/{esm2020 → esm2022}/tilelayout/models/flowmode.type.mjs +0 -0
  234. /package/{esm2020 → esm2022}/tilelayout/models/gap.interface.mjs +0 -0
  235. /package/{esm2020 → esm2022}/tilelayout/models/navigation.interface.mjs +0 -0
  236. /package/{esm2020 → esm2022}/tilelayout/util.mjs +0 -0
  237. /package/{esm2020 → esm2022}/timeline/events/navigation-direction.mjs +0 -0
  238. /package/{esm2020 → esm2022}/timeline/models/anchor-target.mjs +0 -0
  239. /package/{esm2020 → esm2022}/timeline/models/default-model-fields.mjs +0 -0
  240. /package/{esm2020 → esm2022}/timeline/models/model-fields.mjs +0 -0
  241. /package/{esm2020 → esm2022}/timeline/models/timeline-event.mjs +0 -0
  242. /package/{esm2020 → esm2022}/timeline/util.mjs +0 -0
@@ -5,7 +5,7 @@
5
5
  /* eslint-disable @typescript-eslint/no-explicit-any */
6
6
  import { ChangeDetectorRef, Component, ElementRef, Host, HostBinding, Input, Renderer2 } from '@angular/core';
7
7
  import { LocalizationService } from '@progress/kendo-angular-l10n';
8
- import { DraggableDirective, Keys } from '@progress/kendo-angular-common';
8
+ import { DraggableDirective, Keys, isObjectPresent, parseAttributes, removeHTMLAttributes, setHTMLAttributes } from '@progress/kendo-angular-common';
9
9
  import { SplitterService } from './splitter.service';
10
10
  import { Subscription, of } from 'rxjs';
11
11
  import { delay, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';
@@ -34,19 +34,15 @@ const createMoveStream = (draggable) => mouseDown => draggable.kendoDrag
34
34
  * @hidden
35
35
  */
36
36
  export class SplitterBarComponent {
37
- constructor(draggable, localization, splitterService, element, renderer, cdr) {
38
- this.draggable = draggable;
39
- this.localization = localization;
40
- this.splitterService = splitterService;
41
- this.element = element;
42
- this.renderer = renderer;
43
- this.cdr = cdr;
44
- this.ariaRole = 'separator';
45
- this.focused = false;
46
- this.orientation = 'horizontal';
47
- this.index = 0;
48
- this.subscriptions = new Subscription();
49
- }
37
+ draggable;
38
+ localization;
39
+ splitterService;
40
+ element;
41
+ renderer;
42
+ cdr;
43
+ ariaRole = 'separator';
44
+ ariaLabel = 'Splitter pane';
45
+ focused = false;
50
46
  get hostOrientation() {
51
47
  return this.orientation === 'horizontal' ? 'vertical' : 'horizontal';
52
48
  }
@@ -72,6 +68,41 @@ export class SplitterBarComponent {
72
68
  get order() {
73
69
  return 2 * this.index + 1;
74
70
  }
71
+ orientation = 'horizontal';
72
+ index = 0;
73
+ set htmlAttributes(attributes) {
74
+ if (isObjectPresent(this.parsedAttributes)) {
75
+ removeHTMLAttributes(this.parsedAttributes, this.renderer, this.element.nativeElement);
76
+ }
77
+ this._htmlAttributes = attributes;
78
+ this.parsedAttributes = this.htmlAttributes ?
79
+ parseAttributes(this.htmlAttributes, this.defaultAttributes) :
80
+ this.htmlAttributes;
81
+ this.setHtmlAttributes();
82
+ }
83
+ get htmlAttributes() {
84
+ return this._htmlAttributes;
85
+ }
86
+ subscriptions = new Subscription();
87
+ _htmlAttributes;
88
+ parsedAttributes = {};
89
+ get defaultAttributes() {
90
+ return {
91
+ 'aria-orientation': this.hostOrientation,
92
+ role: this.ariaRole
93
+ };
94
+ }
95
+ get mutableAttributes() {
96
+ return { 'tabindex': this.tabIndex };
97
+ }
98
+ constructor(draggable, localization, splitterService, element, renderer, cdr) {
99
+ this.draggable = draggable;
100
+ this.localization = localization;
101
+ this.splitterService = splitterService;
102
+ this.element = element;
103
+ this.renderer = renderer;
104
+ this.cdr = cdr;
105
+ }
75
106
  ngOnInit() {
76
107
  let state;
77
108
  const listener = this.draggable.kendoPress.pipe(tap(stopPropagation), filter(() => this.splitterService.isDraggable(this.index)), tap(() => state = this.splitterService.dragState(this.index)), tap(() => this.splitterService.toggleContentOverlay(this.index, true)), switchMap(preventOnDblClick(this.draggable.kendoRelease)), switchMap(createMoveStream(this.draggable))).subscribe(({ pageX, pageY, originalX, originalY }) => {
@@ -114,13 +145,13 @@ export class SplitterBarComponent {
114
145
  const relatedPaneIndex = iconName === 'prev' ? this.index + 1 : this.index;
115
146
  const pane = this.splitterService.pane(paneIndex);
116
147
  const relatedPane = this.splitterService.pane(relatedPaneIndex);
117
- const isCollapsible = pane.collapsible;
118
- return isCollapsible && !relatedPane.isHidden;
148
+ const isCollapsible = pane?.collapsible;
149
+ return isCollapsible && !relatedPane?.isHidden;
119
150
  }
120
151
  previousArrowClass() {
121
152
  const pane = this.splitterService.pane(this.index);
122
- const isCollapsible = pane.collapsible;
123
- const isCollapsed = pane.collapsed;
153
+ const isCollapsible = pane?.collapsible;
154
+ const isCollapsed = pane?.collapsed;
124
155
  const isHorizontal = this.orientation === 'horizontal';
125
156
  const isRTL = this.direction === 'rtl';
126
157
  return classFromObject({
@@ -132,8 +163,8 @@ export class SplitterBarComponent {
132
163
  }
133
164
  previousSVGArrowClass() {
134
165
  const pane = this.splitterService.pane(this.index);
135
- const isCollapsible = pane.collapsible;
136
- const isCollapsed = pane.collapsed;
166
+ const isCollapsible = pane?.collapsible;
167
+ const isCollapsed = pane?.collapsed;
137
168
  const isHorizontal = this.orientation === 'horizontal';
138
169
  const isRTL = this.direction === 'rtl';
139
170
  if (isCollapsible && isHorizontal && ((!isCollapsed && !isRTL) || (isCollapsed && isRTL))) {
@@ -151,8 +182,8 @@ export class SplitterBarComponent {
151
182
  }
152
183
  nextArrowClass() {
153
184
  const pane = this.splitterService.pane(this.index + 1);
154
- const isCollapsible = pane.collapsible;
155
- const isCollapsed = pane.collapsed;
185
+ const isCollapsible = pane?.collapsible;
186
+ const isCollapsed = pane?.collapsed;
156
187
  const isHorizontal = this.orientation === 'horizontal';
157
188
  const isRTL = this.direction === 'rtl';
158
189
  return classFromObject({
@@ -164,8 +195,8 @@ export class SplitterBarComponent {
164
195
  }
165
196
  nextSVGArrowClass() {
166
197
  const pane = this.splitterService.pane(this.index + 1);
167
- const isCollapsible = pane.collapsible;
168
- const isCollapsed = pane.collapsed;
198
+ const isCollapsible = pane?.collapsible;
199
+ const isCollapsed = pane?.collapsed;
169
200
  const isHorizontal = this.orientation === 'horizontal';
170
201
  const isRTL = this.direction === 'rtl';
171
202
  if (isCollapsible && isHorizontal && ((!isCollapsed && !isRTL) || (isCollapsed && isRTL))) {
@@ -218,9 +249,12 @@ export class SplitterBarComponent {
218
249
  this.splitterService.tryToggle(next);
219
250
  }
220
251
  }
221
- }
222
- SplitterBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitterBarComponent, deps: [{ token: i1.DraggableDirective, host: true }, { token: i2.LocalizationService }, { token: i3.SplitterService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
223
- SplitterBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SplitterBarComponent, isStandalone: true, selector: "kendo-splitter-bar", inputs: { orientation: "orientation", index: "index" }, host: { properties: { "attr.role": "this.ariaRole", "class.k-focus": "this.focused", "attr.aria-orientation": "this.hostOrientation", "attr.tabindex": "this.tabIndex", "class": "this.hostClasses", "style.-ms-flex-order": "this.order", "style.order": "this.order" } }, ngImport: i0, template: `
252
+ setHtmlAttributes() {
253
+ const attributesToRender = { ...this.mutableAttributes, ...this.parsedAttributes };
254
+ setHTMLAttributes(attributesToRender, this.renderer, this.element.nativeElement);
255
+ }
256
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitterBarComponent, deps: [{ token: i1.DraggableDirective, host: true }, { token: i2.LocalizationService }, { token: i3.SplitterService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
257
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SplitterBarComponent, isStandalone: true, selector: "kendo-splitter-bar", inputs: { orientation: "orientation", index: "index", htmlAttributes: "htmlAttributes" }, host: { properties: { "attr.role": "this.ariaRole", "attr.aria-label": "this.ariaLabel", "class.k-focus": "this.focused", "attr.aria-orientation": "this.hostOrientation", "attr.tabindex": "this.tabIndex", "class": "this.hostClasses", "style.-ms-flex-order": "this.order", "style.order": "this.order" } }, ngImport: i0, template: `
224
258
  <div *ngIf="shouldShowIcon('prev')" class="k-collapse-prev" (click)="togglePrevious()">
225
259
  <kendo-icon-wrapper
226
260
  size="xsmall"
@@ -237,7 +271,8 @@ SplitterBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
237
271
  ></kendo-icon-wrapper>
238
272
  </div>
239
273
  `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SplitterBarComponent, decorators: [{
274
+ }
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitterBarComponent, decorators: [{
241
276
  type: Component,
242
277
  args: [{
243
278
  selector: 'kendo-splitter-bar',
@@ -266,6 +301,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
266
301
  }] }, { type: i2.LocalizationService }, { type: i3.SplitterService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { ariaRole: [{
267
302
  type: HostBinding,
268
303
  args: ['attr.role']
304
+ }], ariaLabel: [{
305
+ type: HostBinding,
306
+ args: ['attr.aria-label']
269
307
  }], focused: [{
270
308
  type: HostBinding,
271
309
  args: ['class.k-focus']
@@ -288,4 +326,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
288
326
  type: Input
289
327
  }], index: [{
290
328
  type: Input
329
+ }], htmlAttributes: [{
330
+ type: Input
291
331
  }] } });
@@ -0,0 +1,267 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Renderer2, Input, Output } from '@angular/core';
6
+ import { NgIf } from '@angular/common';
7
+ import { SplitterService } from './splitter.service';
8
+ import { anyChanged } from '@progress/kendo-angular-common';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "./splitter.service";
11
+ /**
12
+ * Represents the pane component of the Splitter.
13
+ */
14
+ export class SplitterPaneComponent {
15
+ element;
16
+ renderer;
17
+ cdr;
18
+ splitterService;
19
+ /**
20
+ * @hidden
21
+ */
22
+ set order(paneOrder) {
23
+ this._order = paneOrder;
24
+ this.setOrderStyles();
25
+ }
26
+ get order() {
27
+ return this._order;
28
+ }
29
+ /**
30
+ * Sets the initial size of the pane.
31
+ * Accepts units in pixel and percentage values.
32
+ * Has to be between the `min` and `max` properties.
33
+ */
34
+ set size(newSize) {
35
+ this._size = newSize;
36
+ this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', newSize);
37
+ this.renderer.setStyle(this.nativeElement, 'flex-basis', newSize);
38
+ this.setStaticPaneClass();
39
+ }
40
+ get size() {
41
+ return this._size;
42
+ }
43
+ /**
44
+ * Sets the HTML attributes of the splitter bar.
45
+ * The property accepts string key-value based pairs.
46
+ * Attributes which are essential for certain functionalities cannot be changed.
47
+ */
48
+ set splitterBarAttributes(attributes) {
49
+ this._splitterBarAttributes = attributes;
50
+ const splitterBar = this.splitterService.getPaneSplitterBar(this);
51
+ if (splitterBar) {
52
+ splitterBar.htmlAttributes = attributes;
53
+ }
54
+ }
55
+ get splitterBarAttributes() {
56
+ return this._splitterBarAttributes;
57
+ }
58
+ /**
59
+ * The CSS classes that will be rendered on the splitter bar.
60
+ * Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
61
+ */
62
+ splitterBarClass;
63
+ /**
64
+ * Sets the minimum possible size of the pane.
65
+ * Accepts units in pixel and percentage values.
66
+ */
67
+ min;
68
+ /**
69
+ * Sets the maximum possible size of the pane.
70
+ * Accepts units in pixel and percentage values.
71
+ */
72
+ max;
73
+ /**
74
+ * Specifies if the user is allowed to resize the pane and provide space for other panes.
75
+ */
76
+ resizable = true;
77
+ /**
78
+ * Specifies if the user is allowed to hide the pane and provide space for other panes.
79
+ */
80
+ collapsible = false;
81
+ /**
82
+ * Specifies if overflowing content is scrollable or hidden.
83
+ */
84
+ scrollable = true;
85
+ /**
86
+ * Specifies if the pane is initially collapsed.
87
+ */
88
+ collapsed = false;
89
+ /**
90
+ * @hidden
91
+ */
92
+ orientation = 'horizontal';
93
+ /**
94
+ * @hidden
95
+ */
96
+ set containsSplitter(value) {
97
+ if (value) {
98
+ this.renderer.addClass(this.nativeElement, 'k-pane-flex');
99
+ }
100
+ else {
101
+ this.renderer.removeClass(this.nativeElement, 'k-pane-flex');
102
+ }
103
+ }
104
+ /**
105
+ * @hidden
106
+ */
107
+ overlayContent = false;
108
+ /**
109
+ * Fires each time the user resizes the Splitter pane.
110
+ * The event data contains the new pane size.
111
+ * Allows a two-way binding of the pane `size` property.
112
+ */
113
+ sizeChange = new EventEmitter();
114
+ /**
115
+ * Fires each time the `collapsed` property changes.
116
+ * The event data contains the new property state.
117
+ * Allows a two-way binding of the `collapsed` pane property.
118
+ */
119
+ collapsedChange = new EventEmitter();
120
+ get isHidden() {
121
+ return this.collapsed;
122
+ }
123
+ ariaRole = 'group';
124
+ hostClass = true;
125
+ get scrollablePaneClass() {
126
+ return this.scrollable;
127
+ }
128
+ get fixedSize() {
129
+ return this.size && this.size.length > 0;
130
+ }
131
+ /**
132
+ * @hidden
133
+ */
134
+ forceExpand = false;
135
+ /**
136
+ * @hidden
137
+ */
138
+ isResized = false;
139
+ _size;
140
+ _order;
141
+ _splitterBarAttributes;
142
+ constructor(element, renderer, cdr, splitterService) {
143
+ this.element = element;
144
+ this.renderer = renderer;
145
+ this.cdr = cdr;
146
+ this.splitterService = splitterService;
147
+ }
148
+ ngAfterViewChecked() {
149
+ if (this.isHidden) {
150
+ this.renderer.addClass(this.nativeElement, 'k-hidden');
151
+ this.renderer.addClass(this.nativeElement, 'hidden');
152
+ }
153
+ else {
154
+ this.renderer.removeClass(this.nativeElement, 'k-hidden');
155
+ this.renderer.removeClass(this.nativeElement, 'hidden');
156
+ }
157
+ this.setStaticPaneClass();
158
+ }
159
+ ngOnChanges(changes) {
160
+ if (anyChanged(['resizable', 'collapsible'], changes)) {
161
+ this.setStaticPaneClass();
162
+ }
163
+ }
164
+ /**
165
+ * @hidden
166
+ */
167
+ get computedSize() {
168
+ if (this.orientation === 'vertical') {
169
+ return this.nativeElement.offsetHeight;
170
+ }
171
+ else {
172
+ return this.nativeElement.offsetWidth;
173
+ }
174
+ }
175
+ /**
176
+ * @hidden
177
+ */
178
+ get nativeElement() {
179
+ return this.element.nativeElement;
180
+ }
181
+ /**
182
+ * @hidden
183
+ */
184
+ toggleOverlay(show) {
185
+ this.overlayContent = show;
186
+ this.cdr.detectChanges();
187
+ }
188
+ /**
189
+ * @hidden
190
+ */
191
+ detectChanges() {
192
+ this.cdr.detectChanges();
193
+ }
194
+ setOrderStyles() {
195
+ this.renderer.setStyle(this.nativeElement, '-ms-flex-order', this.order);
196
+ this.renderer.setStyle(this.nativeElement, 'order', this.order);
197
+ }
198
+ setStaticPaneClass() {
199
+ if (this.forceExpand) {
200
+ this.renderer.removeClass(this.nativeElement, 'k-pane-static');
201
+ return;
202
+ }
203
+ if (!this.resizable && !this.collapsible || this.fixedSize) {
204
+ this.renderer.addClass(this.nativeElement, 'k-pane-static');
205
+ }
206
+ else {
207
+ this.renderer.removeClass(this.nativeElement, 'k-pane-static');
208
+ }
209
+ }
210
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitterPaneComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.SplitterService }], target: i0.ɵɵFactoryTarget.Component });
211
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SplitterPaneComponent, isStandalone: true, selector: "kendo-splitter-pane", inputs: { order: "order", size: "size", splitterBarAttributes: "splitterBarAttributes", splitterBarClass: "splitterBarClass", min: "min", max: "max", resizable: "resizable", collapsible: "collapsible", scrollable: "scrollable", collapsed: "collapsed", orientation: "orientation", containsSplitter: "containsSplitter", overlayContent: "overlayContent" }, outputs: { sizeChange: "sizeChange", collapsedChange: "collapsedChange" }, host: { properties: { "attr.role": "this.ariaRole", "class.k-pane": "this.hostClass", "class.k-scrollable": "this.scrollablePaneClass" } }, exportAs: ["kendoSplitterPane"], usesOnChanges: true, ngImport: i0, template: `
212
+ <ng-container *ngIf="!collapsed"><ng-content></ng-content></ng-container>
213
+ <div *ngIf="overlayContent" class="k-splitter-overlay k-overlay"></div>
214
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
215
+ }
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitterPaneComponent, decorators: [{
217
+ type: Component,
218
+ args: [{
219
+ exportAs: 'kendoSplitterPane',
220
+ selector: 'kendo-splitter-pane',
221
+ template: `
222
+ <ng-container *ngIf="!collapsed"><ng-content></ng-content></ng-container>
223
+ <div *ngIf="overlayContent" class="k-splitter-overlay k-overlay"></div>
224
+ `,
225
+ standalone: true,
226
+ imports: [NgIf]
227
+ }]
228
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.SplitterService }]; }, propDecorators: { order: [{
229
+ type: Input
230
+ }], size: [{
231
+ type: Input
232
+ }], splitterBarAttributes: [{
233
+ type: Input
234
+ }], splitterBarClass: [{
235
+ type: Input
236
+ }], min: [{
237
+ type: Input
238
+ }], max: [{
239
+ type: Input
240
+ }], resizable: [{
241
+ type: Input
242
+ }], collapsible: [{
243
+ type: Input
244
+ }], scrollable: [{
245
+ type: Input
246
+ }], collapsed: [{
247
+ type: Input
248
+ }], orientation: [{
249
+ type: Input
250
+ }], containsSplitter: [{
251
+ type: Input
252
+ }], overlayContent: [{
253
+ type: Input
254
+ }], sizeChange: [{
255
+ type: Output
256
+ }], collapsedChange: [{
257
+ type: Output
258
+ }], ariaRole: [{
259
+ type: HostBinding,
260
+ args: ['attr.role']
261
+ }], hostClass: [{
262
+ type: HostBinding,
263
+ args: ['class.k-pane']
264
+ }], scrollablePaneClass: [{
265
+ type: HostBinding,
266
+ args: ['class.k-scrollable']
267
+ }] } });