@progress/kendo-angular-layout 7.1.5-dev.202210241150 → 7.1.6-dev.202211081310

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 (44) hide show
  1. package/avatar/avatar.component.d.ts +1 -1
  2. package/avatar.module.d.ts +1 -1
  3. package/bundles/kendo-angular-layout.umd.js +1 -1
  4. package/card.module.d.ts +1 -1
  5. package/drawer/models/drawer-animation.interface.d.ts +1 -1
  6. package/drawer/models/drawer-item.interface.d.ts +2 -2
  7. package/drawer.module.d.ts +1 -1
  8. package/esm2015/avatar.module.js +1 -1
  9. package/esm2015/card.module.js +1 -1
  10. package/esm2015/drawer/list.component.js +1 -0
  11. package/esm2015/drawer.module.js +1 -1
  12. package/esm2015/expansionpanel.module.js +1 -1
  13. package/esm2015/gridlayout.module.js +1 -1
  14. package/esm2015/layout.module.js +1 -1
  15. package/esm2015/package-metadata.js +1 -1
  16. package/esm2015/panelbar.module.js +1 -1
  17. package/esm2015/splitter/splitter-bar.component.js +54 -73
  18. package/esm2015/splitter/splitter-pane.component.js +7 -1
  19. package/esm2015/splitter/splitter.component.js +22 -2
  20. package/esm2015/splitter/splitter.service.js +19 -0
  21. package/esm2015/splitter/util.js +34 -0
  22. package/esm2015/splitter.module.js +1 -1
  23. package/esm2015/stacklayout.module.js +1 -1
  24. package/esm2015/stepper.module.js +1 -1
  25. package/esm2015/tabstrip.module.js +1 -1
  26. package/esm2015/tilelayout.module.js +1 -1
  27. package/expansionpanel.module.d.ts +1 -1
  28. package/fesm2015/kendo-angular-layout.js +142 -88
  29. package/gridlayout.module.d.ts +1 -1
  30. package/layout.module.d.ts +1 -1
  31. package/package.json +1 -1
  32. package/panelbar.module.d.ts +1 -1
  33. package/splitter/splitter-bar.component.d.ts +7 -8
  34. package/splitter/splitter-pane.component.d.ts +5 -1
  35. package/splitter/splitter.component.d.ts +7 -1
  36. package/splitter/splitter.service.d.ts +3 -0
  37. package/splitter/util.d.ts +17 -0
  38. package/splitter.module.d.ts +1 -1
  39. package/stacklayout.module.d.ts +1 -1
  40. package/stepper/models/stepper-step.interface.d.ts +2 -2
  41. package/stepper.module.d.ts +1 -1
  42. package/tabstrip/models/tabstrip-tab.component.d.ts +2 -2
  43. package/tabstrip.module.d.ts +1 -1
  44. package/tilelayout.module.d.ts +1 -1
@@ -26,7 +26,7 @@ const packageMetadata = {
26
26
  name: '@progress/kendo-angular-layout',
27
27
  productName: 'Kendo UI for Angular',
28
28
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
29
- publishDate: 1666612185,
29
+ publishDate: 1667912971,
30
30
  version: '',
31
31
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
32
32
  };
@@ -1519,6 +1519,10 @@ class SplitterPaneComponent {
1519
1519
  this.element = element;
1520
1520
  this.renderer = renderer;
1521
1521
  this.cdr = cdr;
1522
+ /**
1523
+ * The value of the aria-label attribute of the auxiliary separator.
1524
+ */
1525
+ this.separatorLabel = 'Splitter pane';
1522
1526
  /**
1523
1527
  * Specifies if the user is allowed to resize the pane and provide space for other panes.
1524
1528
  */
@@ -1664,7 +1668,7 @@ class SplitterPaneComponent {
1664
1668
  }
1665
1669
  }
1666
1670
  SplitterPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SplitterPaneComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1667
- SplitterPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SplitterPaneComponent, selector: "kendo-splitter-pane", inputs: { order: "order", size: "size", 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-pane-static": "this.staticPaneClass", "class.k-scrollable": "this.scrollablePaneClass" } }, exportAs: ["kendoSplitterPane"], ngImport: i0, template: `
1671
+ SplitterPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SplitterPaneComponent, selector: "kendo-splitter-pane", inputs: { order: "order", size: "size", separatorLabel: "separatorLabel", 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-pane-static": "this.staticPaneClass", "class.k-scrollable": "this.scrollablePaneClass" } }, exportAs: ["kendoSplitterPane"], ngImport: i0, template: `
1668
1672
  <ng-container *ngIf="!collapsed"><ng-content></ng-content></ng-container>
1669
1673
  <div *ngIf="overlayContent" class="k-splitter-overlay k-overlay"></div>
1670
1674
  `, isInline: true, directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
@@ -1682,6 +1686,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1682
1686
  type: Input
1683
1687
  }], size: [{
1684
1688
  type: Input
1689
+ }], separatorLabel: [{
1690
+ type: Input
1685
1691
  }], min: [{
1686
1692
  type: Input
1687
1693
  }], max: [{
@@ -1718,6 +1724,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
1718
1724
  args: ['class.k-scrollable']
1719
1725
  }] } });
1720
1726
 
1727
+ /**
1728
+ * @hidden
1729
+ */
1730
+ const shouldTogglePrev = (keyCode, prev, next) => {
1731
+ const leftArrow = keyCode === Keys.ArrowLeft;
1732
+ const upArrow = keyCode === Keys.ArrowUp;
1733
+ const collapsePrev = !prev.collapsed && !next.collapsed && (leftArrow || upArrow);
1734
+ const expandPrev = prev.collapsed && !(leftArrow || upArrow);
1735
+ return collapsePrev || expandPrev;
1736
+ };
1737
+ /**
1738
+ * @hidden
1739
+ */
1740
+ const shouldToggleNext = (keyCode, prev, next) => {
1741
+ const leftArrow = keyCode === Keys.ArrowLeft;
1742
+ const upArrow = keyCode === Keys.ArrowUp;
1743
+ const collapseNext = !next.collapsed && !prev.collapsed && !(leftArrow || upArrow);
1744
+ const expandNext = next.collapsed && (leftArrow || upArrow);
1745
+ return collapseNext || expandNext;
1746
+ };
1747
+ /**
1748
+ * @hidden
1749
+ */
1750
+ const shouldToggleOrResize = (keyCode, orientation) => {
1751
+ const isHorizontal = orientation === 'horizontal';
1752
+ const isHorizontalChange = isHorizontal && (keyCode === Keys.ArrowLeft || keyCode === Keys.ArrowRight);
1753
+ const isVerticalChange = !isHorizontal && (keyCode === Keys.ArrowUp || keyCode === Keys.ArrowDown);
1754
+ return isHorizontalChange || isVerticalChange;
1755
+ };
1756
+
1721
1757
  const SIZING_DOC_LINK = 'https://www.telerik.com/kendo-angular-ui/components/layout/splitter/panes/#toc-size';
1722
1758
  /**
1723
1759
  * @hidden
@@ -1726,6 +1762,7 @@ class SplitterService {
1726
1762
  constructor(zone) {
1727
1763
  this.zone = zone;
1728
1764
  this.layoutChange = new EventEmitter();
1765
+ this.resizeStep = 10;
1729
1766
  this.containerSize = () => { };
1730
1767
  }
1731
1768
  tryToggle(paneIndex) {
@@ -1743,6 +1780,22 @@ class SplitterService {
1743
1780
  notCollapsed[notCollapsed.length - 1].forceExpand = allHaveFixedSize ? true : false;
1744
1781
  return pane.collapsible;
1745
1782
  }
1783
+ togglePane(keyCode, index) {
1784
+ const prev = this.pane(index);
1785
+ const next = this.pane(index + 1);
1786
+ if (shouldTogglePrev(keyCode, prev, next)) {
1787
+ this.tryToggle(index);
1788
+ }
1789
+ else if (shouldToggleNext(keyCode, prev, next)) {
1790
+ this.tryToggle(index + 1);
1791
+ }
1792
+ }
1793
+ resizePane(keyCode, index) {
1794
+ const state = this.dragState(index);
1795
+ const direction = keyCode === Keys.ArrowLeft || keyCode === Keys.ArrowUp;
1796
+ const step = direction ? (-this.resizeStep) : this.resizeStep;
1797
+ this.setSize(state, step);
1798
+ }
1746
1799
  toggleContentOverlay(index, show) {
1747
1800
  this.pane(index).toggleOverlay(show);
1748
1801
  this.pane(index + 1).toggleOverlay(show);
@@ -1882,11 +1935,12 @@ const createMoveStream = (draggable) => mouseDown => draggable.kendoDrag
1882
1935
  * @hidden
1883
1936
  */
1884
1937
  class SplitterBarComponent {
1885
- constructor(draggable, element, splitter, localization) {
1938
+ constructor(draggable, element, splitterService, localization, renderer) {
1886
1939
  this.draggable = draggable;
1887
1940
  this.element = element;
1888
- this.splitter = splitter;
1941
+ this.splitterService = splitterService;
1889
1942
  this.localization = localization;
1943
+ this.renderer = renderer;
1890
1944
  this.orientation = 'horizontal';
1891
1945
  this.index = 0;
1892
1946
  this.ariaRole = 'separator';
@@ -1897,12 +1951,12 @@ class SplitterBarComponent {
1897
1951
  return this.localization.rtl ? 'rtl' : 'ltr';
1898
1952
  }
1899
1953
  get tabIndex() {
1900
- return this.splitter.isStatic(this.index) ? -1 : 0;
1954
+ return this.splitterService.isStatic(this.index) ? -1 : 0;
1901
1955
  }
1902
1956
  get hostClasses() {
1903
1957
  const isHorizontal = this.orientation === 'horizontal';
1904
- const isDraggable = this.splitter.isDraggable(this.index);
1905
- const isStatic = this.splitter.isStatic(this.index);
1958
+ const isDraggable = this.splitterService.isDraggable(this.index);
1959
+ const isStatic = this.splitterService.isStatic(this.index);
1906
1960
  return classFromObject({
1907
1961
  'k-focus': this.focused,
1908
1962
  'k-splitbar': true,
@@ -1918,52 +1972,13 @@ class SplitterBarComponent {
1918
1972
  get order() {
1919
1973
  return 2 * this.index + 1;
1920
1974
  }
1921
- collapseAny() {
1922
- if (this.expandLast) {
1923
- this.toggleNext();
1924
- }
1925
- else {
1926
- this.tryToggleNearest();
1927
- }
1928
- }
1929
- onFocusIn() {
1930
- this.focused = true;
1931
- }
1932
- onFocusOut() {
1933
- this.focused = false;
1934
- }
1935
- onKeyDown(event) {
1936
- const keyCode = event && event.keyCode;
1937
- const isHorizontal = this.orientation === 'horizontal';
1938
- const resize = delta => {
1939
- event.preventDefault();
1940
- const state = this.splitter.dragState(this.index);
1941
- this.splitter.setSize(state, delta);
1942
- };
1943
- if (keyCode === Keys.Enter) {
1944
- event.preventDefault();
1945
- this.collapseAny();
1946
- }
1947
- else if (isHorizontal && keyCode === Keys.ArrowLeft) {
1948
- resize(-10);
1949
- }
1950
- else if (isHorizontal && keyCode === Keys.ArrowRight) {
1951
- resize(10);
1952
- }
1953
- else if (!isHorizontal && keyCode === Keys.ArrowUp) {
1954
- resize(-10);
1955
- }
1956
- else if (!isHorizontal && keyCode === Keys.ArrowDown) {
1957
- resize(10);
1958
- }
1959
- }
1960
1975
  get expandLast() {
1961
- const panes = this.splitter.panes;
1976
+ const panes = this.splitterService.panes;
1962
1977
  return panes.length === 2 && panes[1].collapsed;
1963
1978
  }
1964
1979
  ngOnInit() {
1965
1980
  let state;
1966
- const listener = this.draggable.kendoPress.pipe(tap(stopPropagation), filter(() => this.splitter.isDraggable(this.index)), tap(() => state = this.splitter.dragState(this.index)), tap(() => this.splitter.toggleContentOverlay(this.index, true)), switchMap(preventOnDblClick(this.draggable.kendoRelease)), switchMap(createMoveStream(this.draggable))).subscribe(({ pageX, pageY, originalX, originalY }) => {
1981
+ 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 }) => {
1967
1982
  let delta;
1968
1983
  if (this.orientation === 'vertical') {
1969
1984
  delta = pageY - originalY;
@@ -1974,10 +1989,15 @@ class SplitterBarComponent {
1974
1989
  else {
1975
1990
  delta = pageX - originalX;
1976
1991
  }
1977
- this.splitter.setSize(state, delta);
1992
+ this.splitterService.setSize(state, delta);
1978
1993
  });
1979
1994
  this.subscriptions.add(listener);
1980
- this.subscriptions.add(this.draggable.kendoRelease.subscribe(() => this.splitter.toggleContentOverlay(this.index, false)));
1995
+ this.subscriptions.add(this.draggable.kendoRelease.subscribe(() => this.splitterService.toggleContentOverlay(this.index, false)));
1996
+ const element = this.element.nativeElement;
1997
+ this.subscriptions.add(this.renderer.listen(element, 'keydown', event => this.onKeyDown(event)));
1998
+ this.subscriptions.add(this.renderer.listen(element, 'focusin', () => this.focused = true));
1999
+ this.subscriptions.add(this.renderer.listen(element, 'focusout', () => this.focused = false));
2000
+ this.subscriptions.add(this.renderer.listen(element, 'dblclick', () => this.togglePane()));
1981
2001
  }
1982
2002
  ngOnDestroy() {
1983
2003
  if (this.subscriptions) {
@@ -1985,26 +2005,26 @@ class SplitterBarComponent {
1985
2005
  }
1986
2006
  }
1987
2007
  togglePrevious() {
1988
- this.splitter.tryToggle(this.index);
2008
+ this.splitterService.tryToggle(this.index);
1989
2009
  }
1990
2010
  toggleNext() {
1991
- this.splitter.tryToggle(this.index + 1);
2011
+ this.splitterService.tryToggle(this.index + 1);
1992
2012
  }
1993
2013
  shouldShowIcon(iconName) {
1994
2014
  const paneIndex = iconName === 'prev' ? this.index : this.index + 1;
1995
2015
  const relatedPaneIndex = iconName === 'prev' ? this.index + 1 : this.index;
1996
- const pane = this.splitter.pane(paneIndex);
1997
- const relatedPane = this.splitter.pane(relatedPaneIndex);
2016
+ const pane = this.splitterService.pane(paneIndex);
2017
+ const relatedPane = this.splitterService.pane(relatedPaneIndex);
1998
2018
  const isCollapsible = pane.collapsible;
1999
2019
  return isCollapsible && !relatedPane.isHidden;
2000
2020
  }
2001
2021
  collapseClass(order) {
2002
- const pane = this.splitter.pane(this.index);
2022
+ const pane = this.splitterService.pane(this.index);
2003
2023
  const isCollapsible = pane.collapsible;
2004
2024
  return isCollapsible ? `k-collapse-${order}` : '';
2005
2025
  }
2006
2026
  previousArrowClass() {
2007
- const pane = this.splitter.pane(this.index);
2027
+ const pane = this.splitterService.pane(this.index);
2008
2028
  const isCollapsible = pane.collapsible;
2009
2029
  const isCollapsed = pane.collapsed;
2010
2030
  const isHorizontal = this.orientation === 'horizontal';
@@ -2017,7 +2037,7 @@ class SplitterBarComponent {
2017
2037
  });
2018
2038
  }
2019
2039
  nextArrowClass() {
2020
- const pane = this.splitter.pane(this.index + 1);
2040
+ const pane = this.splitterService.pane(this.index + 1);
2021
2041
  const isCollapsible = pane.collapsible;
2022
2042
  const isCollapsed = pane.collapsed;
2023
2043
  const isHorizontal = this.orientation === 'horizontal';
@@ -2029,16 +2049,41 @@ class SplitterBarComponent {
2029
2049
  'k-i-caret-alt-up': isCollapsible && !isHorizontal && isCollapsed
2030
2050
  });
2031
2051
  }
2052
+ togglePane() {
2053
+ if (this.expandLast) {
2054
+ this.toggleNext();
2055
+ }
2056
+ else {
2057
+ this.tryToggleNearest();
2058
+ }
2059
+ }
2060
+ onKeyDown(event) {
2061
+ const keyCode = event.keyCode;
2062
+ const shouldToggle = event.ctrlKey || event.metaKey;
2063
+ if (keyCode === Keys.Enter) {
2064
+ event.preventDefault();
2065
+ this.togglePane();
2066
+ }
2067
+ else if (shouldToggleOrResize(keyCode, this.orientation)) {
2068
+ event.preventDefault();
2069
+ if (shouldToggle) {
2070
+ this.splitterService.togglePane(keyCode, this.index);
2071
+ }
2072
+ else {
2073
+ this.splitterService.resizePane(keyCode, this.index);
2074
+ }
2075
+ }
2076
+ }
2032
2077
  tryToggleNearest() {
2033
2078
  const prev = this.index;
2034
2079
  const next = this.index + 1;
2035
- if (!this.splitter.tryToggle(prev)) {
2036
- this.splitter.tryToggle(next);
2080
+ if (!this.splitterService.tryToggle(prev)) {
2081
+ this.splitterService.tryToggle(next);
2037
2082
  }
2038
2083
  }
2039
2084
  }
2040
- SplitterBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SplitterBarComponent, deps: [{ token: i1$1.DraggableDirective, host: true }, { token: i0.ElementRef }, { token: SplitterService }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
2041
- SplitterBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SplitterBarComponent, selector: "kendo-splitter-bar", inputs: { orientation: "orientation", index: "index" }, host: { listeners: { "dblclick": "collapseAny()", "focusin": "onFocusIn()", "focusout": "onFocusOut()", "keydown": "onKeyDown($event)" }, properties: { "attr.aria-orientation": "this.orientation", "attr.role": "this.ariaRole", "class.k-focus": "this.focused", "attr.tabindex": "this.tabIndex", "class": "this.hostClasses", "style.-ms-flex-order": "this.order", "style.order": "this.order" } }, ngImport: i0, template: `
2085
+ SplitterBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SplitterBarComponent, deps: [{ token: i1$1.DraggableDirective, host: true }, { token: i0.ElementRef }, { token: SplitterService }, { token: i1.LocalizationService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
2086
+ SplitterBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SplitterBarComponent, selector: "kendo-splitter-bar", inputs: { orientation: "orientation", index: "index" }, host: { properties: { "attr.aria-orientation": "this.orientation", "attr.role": "this.ariaRole", "class.k-focus": "this.focused", "attr.tabindex": "this.tabIndex", "class": "this.hostClasses", "style.-ms-flex-order": "this.order", "style.order": "this.order" } }, ngImport: i0, template: `
2042
2087
  <div *ngIf="shouldShowIcon('prev')" [class]="collapseClass('prev')" (click)="togglePrevious()">
2043
2088
  <span [class]="previousArrowClass()"></span>
2044
2089
  </div>
@@ -2063,7 +2108,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
2063
2108
  }]
2064
2109
  }], ctorParameters: function () { return [{ type: i1$1.DraggableDirective, decorators: [{
2065
2110
  type: Host
2066
- }] }, { type: i0.ElementRef }, { type: SplitterService }, { type: i1.LocalizationService }]; }, propDecorators: { orientation: [{
2111
+ }] }, { type: i0.ElementRef }, { type: SplitterService }, { type: i1.LocalizationService }, { type: i0.Renderer2 }]; }, propDecorators: { orientation: [{
2067
2112
  type: Input
2068
2113
  }, {
2069
2114
  type: HostBinding,
@@ -2088,18 +2133,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
2088
2133
  }, {
2089
2134
  type: HostBinding,
2090
2135
  args: ['style.order']
2091
- }], collapseAny: [{
2092
- type: HostListener,
2093
- args: ['dblclick']
2094
- }], onFocusIn: [{
2095
- type: HostListener,
2096
- args: ['focusin']
2097
- }], onFocusOut: [{
2098
- type: HostListener,
2099
- args: ['focusout']
2100
- }], onKeyDown: [{
2101
- type: HostListener,
2102
- args: ['keydown', ['$event']]
2103
2136
  }] } });
2104
2137
 
2105
2138
  /**
@@ -2159,6 +2192,16 @@ class SplitterComponent {
2159
2192
  this.layoutChange = this.splitterService.layoutChange;
2160
2193
  this.configure = this.configure.bind(this);
2161
2194
  }
2195
+ /**
2196
+ * The distance in pixels that the separator is moved with during keyboard navigation.
2197
+ * @default 10
2198
+ */
2199
+ set resizeStep(value) {
2200
+ this.splitterService.resizeStep = value;
2201
+ }
2202
+ get resizeStep() {
2203
+ return this.splitterService.resizeStep;
2204
+ }
2162
2205
  get hostClasses() {
2163
2206
  return true;
2164
2207
  }
@@ -2175,9 +2218,17 @@ class SplitterComponent {
2175
2218
  if (!isPresent(splitbars) || !isPresent(this.panes)) {
2176
2219
  return;
2177
2220
  }
2178
- const components = [...this.panes.toArray(), ...splitbars.toArray()]
2221
+ const panesArray = this.panes.toArray();
2222
+ const splitBarsArray = splitbars.toArray();
2223
+ const components = [...panesArray, ...splitBarsArray]
2179
2224
  .sort((a, b) => a.order - b.order);
2180
2225
  const elements = components.map(component => component.element.nativeElement);
2226
+ panesArray.forEach((pane, i) => {
2227
+ if (splitBarsArray[i] && pane.separatorLabel) {
2228
+ const splitbar = splitBarsArray[i].element.nativeElement;
2229
+ this.renderer.setAttribute(splitbar, 'aria-label', pane.separatorLabel);
2230
+ }
2231
+ });
2181
2232
  elements.forEach(element => this.renderer.appendChild(this.element.nativeElement, element));
2182
2233
  }
2183
2234
  ngAfterContentInit() {
@@ -2224,7 +2275,7 @@ class SplitterComponent {
2224
2275
  }
2225
2276
  }
2226
2277
  SplitterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SplitterComponent, deps: [{ token: i0.ElementRef }, { token: SplitterService }, { token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: SplitterPaneComponent, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2227
- SplitterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SplitterComponent, selector: "kendo-splitter", inputs: { orientation: "orientation" }, outputs: { layoutChange: "layoutChange" }, host: { properties: { "class.k-splitter": "this.hostClasses", "class.k-splitter-flex": "this.hostClasses", "class.k-splitter-horizontal": "this.horizontalHostClasses", "class.k-splitter-vertical": "this.verticalHostClasses", "attr.dir": "this.dir" } }, providers: [
2278
+ SplitterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SplitterComponent, selector: "kendo-splitter", inputs: { orientation: "orientation", resizeStep: "resizeStep" }, outputs: { layoutChange: "layoutChange" }, host: { properties: { "class.k-splitter": "this.hostClasses", "class.k-splitter-flex": "this.hostClasses", "class.k-splitter-horizontal": "this.horizontalHostClasses", "class.k-splitter-vertical": "this.verticalHostClasses", "attr.dir": "this.dir" } }, providers: [
2228
2279
  SplitterService,
2229
2280
  LocalizationService,
2230
2281
  {
@@ -2284,6 +2335,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
2284
2335
  args: [SplitterPaneComponent]
2285
2336
  }] }]; }, propDecorators: { orientation: [{
2286
2337
  type: Input
2338
+ }], resizeStep: [{
2339
+ type: Input
2287
2340
  }], layoutChange: [{
2288
2341
  type: Output
2289
2342
  }], hostClasses: [{
@@ -4428,6 +4481,7 @@ class DrawerListComponent {
4428
4481
  }
4429
4482
  else if (isArrowUpOrDown) {
4430
4483
  if (e.target.classList.contains('k-drawer-item')) {
4484
+ e.preventDefault();
4431
4485
  const keyName = e.keyCode === Keys.ArrowUp ? 'arrowUp' : 'arrowDown';
4432
4486
  this.drawerService.changeFocusedItem(this.items, keyName, this.renderer);
4433
4487
  }
@@ -8518,7 +8572,7 @@ const declarations$a = [
8518
8572
  ...exportedModules$a
8519
8573
  ];
8520
8574
  /**
8521
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
8575
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
8522
8576
  * definition for the Avatar component.
8523
8577
  */
8524
8578
  class AvatarModule {
@@ -8551,7 +8605,7 @@ const exportedModules$9 = [
8551
8605
  ];
8552
8606
  const declarations$9 = [...exportedModules$9];
8553
8607
  /**
8554
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
8608
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
8555
8609
  * definition for the Card component.
8556
8610
  */
8557
8611
  class CardModule {
@@ -8600,7 +8654,7 @@ const declarations$8 = [
8600
8654
  ...exportedModules$8
8601
8655
  ];
8602
8656
  /**
8603
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
8657
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
8604
8658
  * definition for the Drawer component.
8605
8659
  */
8606
8660
  class DrawerModule {
@@ -8636,7 +8690,7 @@ const declarations$7 = [
8636
8690
  ...exportedModules$7
8637
8691
  ];
8638
8692
  /**
8639
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
8693
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
8640
8694
  * definition for the ExpansionPanel component.
8641
8695
  */
8642
8696
  class ExpansionPanelModule {
@@ -8666,7 +8720,7 @@ const declarations$6 = [
8666
8720
  ...exportedModules$6
8667
8721
  ];
8668
8722
  /**
8669
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
8723
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
8670
8724
  * definition for the PanelBar component.
8671
8725
  *
8672
8726
  * The module registers:
@@ -8707,7 +8761,7 @@ const declarations$5 = [
8707
8761
  ...exportedModules$5
8708
8762
  ];
8709
8763
  /**
8710
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
8764
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
8711
8765
  * definition for the Splitter component.
8712
8766
  *
8713
8767
  * The module registers:
@@ -8754,7 +8808,7 @@ const declarations$4 = [
8754
8808
  ...exportedModules$4
8755
8809
  ];
8756
8810
  /**
8757
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
8811
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
8758
8812
  * definition for the Stepper component.
8759
8813
  */
8760
8814
  class StepperModule {
@@ -8793,7 +8847,7 @@ const declarations$3 = [
8793
8847
  TabStripScrollableButtonComponent
8794
8848
  ];
8795
8849
  /**
8796
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
8850
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
8797
8851
  * definition for the TabStrip component.
8798
8852
  *
8799
8853
  * The module registers:
@@ -8839,7 +8893,7 @@ const declarations$2 = [
8839
8893
  ...exportedModules$2
8840
8894
  ];
8841
8895
  /**
8842
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
8896
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
8843
8897
  * definition for the TileLayout component.
8844
8898
  *
8845
8899
  * The module registers:
@@ -9109,7 +9163,7 @@ const declarations$1 = [
9109
9163
  ...exportedModules$1
9110
9164
  ];
9111
9165
  /**
9112
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
9166
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
9113
9167
  * definition for the StackLayout component.
9114
9168
  */
9115
9169
  class StackLayoutModule {
@@ -9304,7 +9358,7 @@ const declarations = [
9304
9358
  ...exportedModules
9305
9359
  ];
9306
9360
  /**
9307
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
9361
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
9308
9362
  * definition for the GridLayout component.
9309
9363
  */
9310
9364
  class GridLayoutModule {
@@ -9324,7 +9378,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
9324
9378
  }] });
9325
9379
 
9326
9380
  /**
9327
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
9381
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
9328
9382
  * definition for the Layout components.
9329
9383
  *
9330
9384
  * @example
@@ -7,7 +7,7 @@ import * as i1 from "./layouts/grid-layout.component";
7
7
  import * as i2 from "./layouts/gridlayout-item.component";
8
8
  import * as i3 from "@angular/common";
9
9
  /**
10
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
10
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
11
11
  * definition for the GridLayout component.
12
12
  */
13
13
  export declare class GridLayoutModule {
@@ -15,7 +15,7 @@ import * as i9 from "./tilelayout.module";
15
15
  import * as i10 from "./stacklayout.module";
16
16
  import * as i11 from "./gridlayout.module";
17
17
  /**
18
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
18
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
19
19
  * definition for the Layout components.
20
20
  *
21
21
  * @example
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-layout",
3
- "version": "7.1.5-dev.202210241150",
3
+ "version": "7.1.6-dev.202211081310",
4
4
  "description": "Kendo UI for Angular Layout Package - a collection of components to create professional application layoyts",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -10,7 +10,7 @@ import * as i4 from "./panelbar/panelbar-item-template.directive";
10
10
  import * as i5 from "./panelbar/panelbar-item-title.directive";
11
11
  import * as i6 from "@angular/common";
12
12
  /**
13
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
13
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
14
14
  * definition for the PanelBar component.
15
15
  *
16
16
  * The module registers:
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { ElementRef, OnDestroy, OnInit } from '@angular/core';
5
+ import { ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { Orientation } from '../common/orientation';
8
8
  import { DraggableDirective } from '@progress/kendo-angular-common';
@@ -14,8 +14,9 @@ import * as i0 from "@angular/core";
14
14
  export declare class SplitterBarComponent implements OnInit, OnDestroy {
15
15
  draggable: DraggableDirective;
16
16
  element: ElementRef<HTMLElement>;
17
- private splitter;
17
+ private splitterService;
18
18
  private localization;
19
+ private renderer;
19
20
  orientation: Orientation;
20
21
  get direction(): string;
21
22
  index: number;
@@ -25,12 +26,8 @@ export declare class SplitterBarComponent implements OnInit, OnDestroy {
25
26
  get tabIndex(): number;
26
27
  get hostClasses(): string;
27
28
  get order(): number;
28
- collapseAny(): void;
29
- onFocusIn(): void;
30
- onFocusOut(): void;
31
- onKeyDown(event: any): void;
32
29
  private get expandLast();
33
- constructor(draggable: DraggableDirective, element: ElementRef<HTMLElement>, splitter: SplitterService, localization: LocalizationService);
30
+ constructor(draggable: DraggableDirective, element: ElementRef<HTMLElement>, splitterService: SplitterService, localization: LocalizationService, renderer: Renderer2);
34
31
  ngOnInit(): void;
35
32
  ngOnDestroy(): void;
36
33
  togglePrevious(): void;
@@ -39,7 +36,9 @@ export declare class SplitterBarComponent implements OnInit, OnDestroy {
39
36
  collapseClass(order: string): string;
40
37
  previousArrowClass(): string;
41
38
  nextArrowClass(): string;
39
+ private togglePane;
40
+ private onKeyDown;
42
41
  private tryToggleNearest;
43
- static ɵfac: i0.ɵɵFactoryDeclaration<SplitterBarComponent, [{ host: true; }, null, null, null]>;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<SplitterBarComponent, [{ host: true; }, null, null, null, null]>;
44
43
  static ɵcmp: i0.ɵɵComponentDeclaration<SplitterBarComponent, "kendo-splitter-bar", never, { "orientation": "orientation"; "index": "index"; }, {}, never, never>;
45
44
  }
@@ -23,6 +23,10 @@ export declare class SplitterPaneComponent implements AfterViewChecked {
23
23
  */
24
24
  set size(newSize: string);
25
25
  get size(): string;
26
+ /**
27
+ * The value of the aria-label attribute of the auxiliary separator.
28
+ */
29
+ separatorLabel: string;
26
30
  /**
27
31
  * Sets the minimum possible size of the pane.
28
32
  */
@@ -103,5 +107,5 @@ export declare class SplitterPaneComponent implements AfterViewChecked {
103
107
  detectChanges(): void;
104
108
  private setOrderStyles;
105
109
  static ɵfac: i0.ɵɵFactoryDeclaration<SplitterPaneComponent, never>;
106
- static ɵcmp: i0.ɵɵComponentDeclaration<SplitterPaneComponent, "kendo-splitter-pane", ["kendoSplitterPane"], { "order": "order"; "size": "size"; "min": "min"; "max": "max"; "resizable": "resizable"; "collapsible": "collapsible"; "scrollable": "scrollable"; "collapsed": "collapsed"; "orientation": "orientation"; "containsSplitter": "containsSplitter"; "overlayContent": "overlayContent"; }, { "sizeChange": "sizeChange"; "collapsedChange": "collapsedChange"; }, never, ["*"]>;
110
+ static ɵcmp: i0.ɵɵComponentDeclaration<SplitterPaneComponent, "kendo-splitter-pane", ["kendoSplitterPane"], { "order": "order"; "size": "size"; "separatorLabel": "separatorLabel"; "min": "min"; "max": "max"; "resizable": "resizable"; "collapsible": "collapsible"; "scrollable": "scrollable"; "collapsed": "collapsed"; "orientation": "orientation"; "containsSplitter": "containsSplitter"; "overlayContent": "overlayContent"; }, { "sizeChange": "sizeChange"; "collapsedChange": "collapsedChange"; }, never, ["*"]>;
107
111
  }
@@ -56,6 +56,12 @@ export declare class SplitterComponent implements AfterContentInit {
56
56
  * Panes in a vertical Splitter are placed vertically.
57
57
  */
58
58
  orientation: Orientation;
59
+ /**
60
+ * The distance in pixels that the separator is moved with during keyboard navigation.
61
+ * @default 10
62
+ */
63
+ set resizeStep(value: number);
64
+ get resizeStep(): number;
59
65
  /**
60
66
  * Fires after a Splitter pane is resized or collapsed.
61
67
  * Useful for triggering layout calculations on components
@@ -81,5 +87,5 @@ export declare class SplitterComponent implements AfterContentInit {
81
87
  private configure;
82
88
  private get direction();
83
89
  static ɵfac: i0.ɵɵFactoryDeclaration<SplitterComponent, [null, null, null, null, { optional: true; host: true; }]>;
84
- static ɵcmp: i0.ɵɵComponentDeclaration<SplitterComponent, "kendo-splitter", ["kendoSplitter"], { "orientation": "orientation"; }, { "layoutChange": "layoutChange"; }, ["panes"], ["kendo-splitter-pane"]>;
90
+ static ɵcmp: i0.ɵɵComponentDeclaration<SplitterComponent, "kendo-splitter", ["kendoSplitter"], { "orientation": "orientation"; "resizeStep": "resizeStep"; }, { "layoutChange": "layoutChange"; }, ["panes"], ["kendo-splitter-pane"]>;
85
91
  }
@@ -38,8 +38,11 @@ export declare class SplitterService {
38
38
  private zone;
39
39
  panes: Array<SplitterPaneComponent>;
40
40
  layoutChange: EventEmitter<any>;
41
+ resizeStep: number;
41
42
  constructor(zone: NgZone);
42
43
  tryToggle(paneIndex: number): boolean;
44
+ togglePane(keyCode: number, index: number): void;
45
+ resizePane(keyCode: number, index: number): void;
43
46
  toggleContentOverlay(index: number, show: boolean): void;
44
47
  dragState(splitbarIndex: number): SplitterDragState;
45
48
  setSize(state: SplitterDragState, delta: number): void;
@@ -0,0 +1,17 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2021 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { SplitterPaneComponent } from "./splitter-pane.component";
6
+ /**
7
+ * @hidden
8
+ */
9
+ export declare const shouldTogglePrev: (keyCode: number, prev: SplitterPaneComponent, next: SplitterPaneComponent) => boolean;
10
+ /**
11
+ * @hidden
12
+ */
13
+ export declare const shouldToggleNext: (keyCode: number, prev: SplitterPaneComponent, next: SplitterPaneComponent) => boolean;
14
+ /**
15
+ * @hidden
16
+ */
17
+ export declare const shouldToggleOrResize: (keyCode: number, orientation: string) => boolean;
@@ -9,7 +9,7 @@ import * as i3 from "./splitter/splitter-pane.component";
9
9
  import * as i4 from "@angular/common";
10
10
  import * as i5 from "@progress/kendo-angular-common";
11
11
  /**
12
- * Represents the [NgModule]({{ site.data.urls.angular['ngmoduleapi'] }})
12
+ * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
13
13
  * definition for the Splitter component.
14
14
  *
15
15
  * The module registers: