@progress/kendo-angular-toolbar 18.1.0-develop.30 → 18.1.0-develop.4

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 (36) hide show
  1. package/esm2022/localization/messages.mjs +2 -14
  2. package/esm2022/navigation.service.mjs +3 -5
  3. package/esm2022/package-metadata.mjs +2 -2
  4. package/esm2022/renderer.component.mjs +0 -8
  5. package/esm2022/toolbar.component.mjs +124 -716
  6. package/esm2022/tools/toolbar-button.component.mjs +2 -62
  7. package/esm2022/tools/toolbar-buttongroup.component.mjs +6 -87
  8. package/esm2022/tools/toolbar-dropdownbutton.component.mjs +11 -67
  9. package/esm2022/tools/toolbar-separator.component.mjs +0 -8
  10. package/esm2022/tools/toolbar-splitbutton.component.mjs +5 -61
  11. package/esm2022/tools/toolbar-tool.component.mjs +1 -9
  12. package/esm2022/tools/tools.service.mjs +0 -3
  13. package/esm2022/util.mjs +0 -17
  14. package/fesm2022/progress-kendo-angular-toolbar.mjs +155 -1300
  15. package/index.d.ts +0 -3
  16. package/localization/messages.d.ts +2 -10
  17. package/package.json +9 -9
  18. package/render-location.d.ts +1 -1
  19. package/toolbar.component.d.ts +6 -77
  20. package/tools/toolbar-button.component.d.ts +0 -1
  21. package/tools/toolbar-buttongroup.component.d.ts +0 -1
  22. package/tools/toolbar-dropdownbutton.component.d.ts +1 -2
  23. package/tools/toolbar-splitbutton.component.d.ts +0 -1
  24. package/tools/toolbar-tool.component.d.ts +0 -6
  25. package/tools/tools.service.d.ts +0 -1
  26. package/util.d.ts +0 -5
  27. package/common/overflow-mode.d.ts +0 -8
  28. package/common/overflow-settings.d.ts +0 -53
  29. package/common/scroll-buttons.d.ts +0 -12
  30. package/esm2022/common/overflow-mode.mjs +0 -5
  31. package/esm2022/common/overflow-settings.mjs +0 -5
  32. package/esm2022/common/scroll-buttons.mjs +0 -5
  33. package/esm2022/scroll.service.mjs +0 -102
  34. package/esm2022/scrollable-button.component.mjs +0 -162
  35. package/scroll.service.d.ts +0 -42
  36. package/scrollable-button.component.d.ts +0 -44
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { EventEmitter, Injectable, inject, ElementRef, Directive, ViewChild, Input, Output, forwardRef, Component, HostBinding, HostListener, ViewContainerRef, ContentChildren, isDevMode, ViewChildren, NgModule } from '@angular/core';
6
+ import { EventEmitter, Injectable, inject, ElementRef, Directive, ViewChild, Input, Output, forwardRef, ViewContainerRef, Component, ContentChildren, HostBinding, HostListener, isDevMode, ViewChildren, NgModule } from '@angular/core';
7
7
  import * as i2 from '@progress/kendo-angular-popup';
8
8
  import { PopupService } from '@progress/kendo-angular-popup';
9
9
  import { Keys, isDocumentAvailable, guid, ResizeSensorComponent, ResizeBatchService } from '@progress/kendo-angular-common';
@@ -12,7 +12,7 @@ import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/k
12
12
  import { validatePackage } from '@progress/kendo-licensing';
13
13
  import { take, filter, takeUntil } from 'rxjs/operators';
14
14
  import { Subject, Subscription, merge, fromEvent } from 'rxjs';
15
- import { caretAltLeftIcon, caretAltRightIcon, moreHorizontalIcon, moreVerticalIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';
15
+ import { moreVerticalIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';
16
16
  import { ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, SplitButtonComponent } from '@progress/kendo-angular-buttons';
17
17
  import { NgTemplateOutlet, NgFor, NgIf, NgClass, NgStyle } from '@angular/common';
18
18
  import { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
@@ -25,8 +25,8 @@ const packageMetadata = {
25
25
  productName: 'Kendo UI for Angular',
26
26
  productCode: 'KENDOUIANGULAR',
27
27
  productCodes: ['KENDOUIANGULAR'],
28
- publishDate: 1738961998,
29
- version: '18.1.0-develop.30',
28
+ publishDate: 1738318239,
29
+ version: '18.1.0-develop.4',
30
30
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
31
31
  };
32
32
 
@@ -263,23 +263,6 @@ const getStylingClasses = (componentType, stylingOption, previousValue, newValue
263
263
  * nodeType 1 is Element, nodeType 3 is Text
264
264
  */
265
265
  const isElementOrTextNode = n => n.nodeType === 1 || n.nodeType === 3;
266
- /**
267
- * @hidden
268
- */
269
- const normalizeOverflowSettings = (overflow) => {
270
- const defaultOverflowSettings = { mode: 'none', scrollButtons: 'auto', scrollButtonsPosition: 'split' };
271
- let normalizedSettings = {};
272
- if (typeof overflow === 'object') {
273
- normalizedSettings = Object.assign(defaultOverflowSettings, overflow);
274
- }
275
- else if (typeof overflow === 'boolean') {
276
- normalizedSettings = overflow ? Object.assign(defaultOverflowSettings, { mode: 'menu' }) : defaultOverflowSettings;
277
- }
278
- else {
279
- normalizedSettings = Object.assign(defaultOverflowSettings, { mode: overflow });
280
- }
281
- return normalizedSettings;
282
- };
283
266
 
284
267
  /**
285
268
  * @hidden
@@ -416,11 +399,9 @@ class NavigationService {
416
399
  }
417
400
  }
418
401
  focusOverflowButton() {
419
- if (this.overflowButton) {
420
- this.isOverflowButtonFocused = true;
421
- this.overflowButton.nativeElement.tabIndex = 0;
422
- this.overflowButton.nativeElement.focus();
423
- }
402
+ this.isOverflowButtonFocused = true;
403
+ this.overflowButton.nativeElement.tabIndex = 0;
404
+ this.overflowButton.nativeElement.focus();
424
405
  }
425
406
  isOverflowButtonVisible() {
426
407
  return (isPresent(this.overflowButton) &&
@@ -439,17 +420,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
439
420
  */
440
421
  class ToolBarToolComponent {
441
422
  toolbarTemplate;
442
- sectionTemplate;
443
423
  popupTemplate;
444
424
  tabIndex = -1; //Focus movement inside the toolbar is managed using roving tabindex.
445
425
  overflows = true;
446
426
  visibility;
447
427
  element;
448
428
  isBuiltInTool = false;
449
- /**
450
- * @hidden
451
- */
452
- location;
453
429
  constructor() {
454
430
  this.element = inject(ElementRef);
455
431
  }
@@ -491,7 +467,7 @@ class ToolBarToolComponent {
491
467
  return false;
492
468
  }
493
469
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
494
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarToolComponent, isStandalone: true, inputs: { responsive: "responsive" }, viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "sectionTemplate", first: true, predicate: ["sectionTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }], ngImport: i0 });
470
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarToolComponent, isStandalone: true, inputs: { responsive: "responsive" }, viewQueries: [{ propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true, static: true }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }], ngImport: i0 });
495
471
  }
496
472
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarToolComponent, decorators: [{
497
473
  type: Directive,
@@ -501,9 +477,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
501
477
  }], ctorParameters: function () { return []; }, propDecorators: { toolbarTemplate: [{
502
478
  type: ViewChild,
503
479
  args: ['toolbarTemplate', { static: true }]
504
- }], sectionTemplate: [{
505
- type: ViewChild,
506
- args: ['sectionTemplate', { static: true }]
507
480
  }], popupTemplate: [{
508
481
  type: ViewChild,
509
482
  args: ['popupTemplate', { static: true }]
@@ -588,9 +561,6 @@ class ToolbarToolsService {
588
561
  renderedTools = [];
589
562
  overflowTools = [];
590
563
  allTools = [];
591
- reset() {
592
- this.renderedTools = this.overflowTools = this.allTools = [];
593
- }
594
564
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarToolsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
595
565
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarToolsService });
596
566
  }
@@ -631,7 +601,6 @@ class ToolBarRendererComponent {
631
601
  if (!viewContainerRootNodes || viewContainerRootNodes.length === 0) {
632
602
  return;
633
603
  }
634
- this.tool.location = this.location;
635
604
  this.internalComponentRef = viewContainerRootNodes[0];
636
605
  this.element = this.tool.element;
637
606
  this.internalComponentRef.addEventListener('click', this.onClick);
@@ -648,11 +617,6 @@ class ToolBarRendererComponent {
648
617
  this.renderer.setStyle(this.internalComponentRef, 'visibility', 'hidden');
649
618
  this.renderer.setStyle(this.internalComponentRef, 'display', 'none');
650
619
  }
651
- else if (this.location === 'section') {
652
- this.template = this.tool.toolbarTemplate;
653
- this.renderer.setStyle(this.internalComponentRef, 'visibility', 'visible');
654
- this.renderer.setStyle(this.internalComponentRef, 'display', 'inline-flex');
655
- }
656
620
  else {
657
621
  this.template = this.tool.popupTemplate;
658
622
  this.renderer.setStyle(this.internalComponentRef, 'display', 'none');
@@ -688,7 +652,6 @@ class ToolBarRendererComponent {
688
652
  return this.internalComponentRef?.style?.display !== 'none';
689
653
  }
690
654
  refresh() {
691
- this.tool.location = this.location;
692
655
  if (this.resizable && this.internalComponentRef) {
693
656
  if (this.location === 'toolbar') {
694
657
  this.renderer.setStyle(this.internalComponentRef, 'visibility', this.tool.visibility);
@@ -707,7 +670,6 @@ class ToolBarRendererComponent {
707
670
  this.rendererClick.emit({ context: this, event: ev });
708
671
  };
709
672
  updateTools() {
710
- this.tool.location = this.location;
711
673
  const isInToolbar = this.toolsService.renderedTools.some(t => t.tool === this.tool);
712
674
  const isInPopup = this.toolsService.overflowTools.some(t => t.tool === this.tool);
713
675
  if (this.location === 'toolbar') {
@@ -749,19 +711,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
749
711
  */
750
712
  class ToolbarMessages extends ComponentMessages {
751
713
  /**
752
- * The title of the **More Tools** button in a responsive ToolBar
714
+ * The title of the **more tools** button in a responsive ToolBar
753
715
  */
754
716
  moreToolsTitle;
755
- /**
756
- * The title for the **Previous Tool** button when the Toolbar is scrollable.
757
- */
758
- previousToolButton;
759
- /**
760
- * The title for the **Next Tool** button when the Toolbar is scrollable.
761
- */
762
- nextToolButton;
763
717
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
764
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ToolbarMessages, selector: "kendo-toolbar-messages-base", inputs: { moreToolsTitle: "moreToolsTitle", previousToolButton: "previousToolButton", nextToolButton: "nextToolButton" }, usesInheritance: true, ngImport: i0 });
718
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ToolbarMessages, selector: "kendo-toolbar-messages-base", inputs: { moreToolsTitle: "moreToolsTitle" }, usesInheritance: true, ngImport: i0 });
765
719
  }
766
720
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarMessages, decorators: [{
767
721
  type: Directive,
@@ -771,10 +725,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
771
725
  }]
772
726
  }], propDecorators: { moreToolsTitle: [{
773
727
  type: Input
774
- }], previousToolButton: [{
775
- type: Input
776
- }], nextToolButton: [{
777
- type: Input
778
728
  }] } });
779
729
 
780
730
  /**
@@ -808,251 +758,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
808
758
  }]
809
759
  }], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
810
760
 
811
- const DEFAULT_SCROLL_BEHAVIOR = 'smooth';
812
- const DEFAULT_SCROLL_SPEED = 100;
813
- /**
814
- * @hidden
815
- */
816
- class ScrollService {
817
- ngZone;
818
- localization;
819
- owner;
820
- position = 0;
821
- scrollButtonActiveStateChange = new Subject();
822
- get scrollElement() {
823
- return this.owner.scrollContainer?.nativeElement;
824
- }
825
- get scrollContainerOverflowSize() {
826
- if (!isDocumentAvailable()) {
827
- return 0;
828
- }
829
- if (!this.scrollElement) {
830
- return 0;
831
- }
832
- const overflowSize = Math.floor(this.scrollElement.scrollWidth - this.scrollElement.getBoundingClientRect().width);
833
- return overflowSize < 0 ? 0 : overflowSize;
834
- }
835
- get toolsOverflow() {
836
- return this.scrollContainerOverflowSize > 0;
837
- }
838
- constructor(ngZone, localization) {
839
- this.ngZone = ngZone;
840
- this.localization = localization;
841
- }
842
- toggleScrollButtonsState() {
843
- const toolbar = this.owner;
844
- if (!toolbar.hasScrollButtons) {
845
- return;
846
- }
847
- const currentPrevButtonActive = !this.isDisabled('prev');
848
- const currentNextButtonActive = !this.isDisabled('next');
849
- const defaultOffset = 1;
850
- const rtlDelta = this.localization.rtl ? -1 : 1;
851
- const calculatedPrevButtonActive = (this.position * rtlDelta) > 0 && this.scrollContainerOverflowSize > 0;
852
- const calculatedNextButtonActive = (this.position * rtlDelta) < this.scrollContainerOverflowSize - defaultOffset && this.scrollContainerOverflowSize > 0;
853
- if (calculatedPrevButtonActive !== currentPrevButtonActive) {
854
- this.ngZone.run(() => this.toggleButtonActiveState('prev', calculatedPrevButtonActive));
855
- }
856
- if (calculatedNextButtonActive !== currentNextButtonActive) {
857
- this.ngZone.run(() => this.toggleButtonActiveState('next', calculatedNextButtonActive));
858
- }
859
- }
860
- onScroll(e) {
861
- this.position = e.target.scrollLeft;
862
- this.toggleScrollButtonsState();
863
- }
864
- scrollTools(direction) {
865
- this.calculateListPosition(direction, DEFAULT_SCROLL_SPEED);
866
- if (this.scrollElement) {
867
- this.scrollElement.scrollTo({ left: this.position, behavior: DEFAULT_SCROLL_BEHAVIOR });
868
- }
869
- this.toggleScrollButtonsState();
870
- }
871
- calculateListPosition(direction, scrollSpeed) {
872
- if (direction === 'prev') {
873
- if (!this.localization.rtl) {
874
- this.position = this.position - scrollSpeed <= 0 ? 0 : this.position - scrollSpeed;
875
- }
876
- else {
877
- this.position = this.position + scrollSpeed >= 0 ? 0 : this.position + scrollSpeed;
878
- }
879
- }
880
- else if (direction === 'next' && this.position < this.scrollContainerOverflowSize) {
881
- if (this.position + scrollSpeed > this.scrollContainerOverflowSize) {
882
- this.position = this.scrollContainerOverflowSize;
883
- return;
884
- }
885
- if (this.localization.rtl) {
886
- this.position -= scrollSpeed;
887
- }
888
- else {
889
- this.position += scrollSpeed;
890
- }
891
- }
892
- }
893
- toggleButtonActiveState(buttonType, active) {
894
- this.scrollButtonActiveStateChange.next({ buttonType, active });
895
- }
896
- isDisabled = (buttonType) => this.owner[`${buttonType}ScrollButton`]?.nativeElement.classList.contains('k-disabled');
897
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScrollService, deps: [{ token: i0.NgZone }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
898
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScrollService });
899
- }
900
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScrollService, decorators: [{
901
- type: Injectable
902
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.LocalizationService }]; } });
903
-
904
- const DIRECTION_CLASSES = {
905
- left: 'caret-alt-left',
906
- right: 'caret-alt-right'
907
- };
908
- /**
909
- * @hidden
910
- */
911
- class ToolbarScrollableButtonComponent {
912
- host;
913
- renderer;
914
- ngZone;
915
- localization;
916
- get prevClass() {
917
- return this.prev;
918
- }
919
- get nextClass() {
920
- return !this.prev;
921
- }
922
- /**
923
- * @hidden
924
- */
925
- onMouseDown(ev) {
926
- ev.preventDefault();
927
- ev.stopImmediatePropagation();
928
- }
929
- role = 'button';
930
- prev = false;
931
- overflow;
932
- onClick = new EventEmitter();
933
- get iconClass() {
934
- return this.scrollButtonIconClass;
935
- }
936
- get customIconClass() {
937
- return this.customScrollButtonIconClass;
938
- }
939
- get svgIcon() {
940
- return this.scrollButtonSVGIcon;
941
- }
942
- caretAltLeftIcon = caretAltLeftIcon;
943
- caretAltRightIcon = caretAltRightIcon;
944
- subs = new Subscription();
945
- constructor(host, renderer, ngZone, localization) {
946
- this.host = host;
947
- this.renderer = renderer;
948
- this.ngZone = ngZone;
949
- this.localization = localization;
950
- }
951
- ngAfterViewInit() {
952
- this.ngZone.runOutsideAngular(() => {
953
- this.subs.add(this.renderer.listen(this.host.nativeElement, 'click', this.clickHandler));
954
- });
955
- }
956
- ngOnDestroy() {
957
- this.subs.unsubscribe();
958
- }
959
- clickHandler = () => {
960
- const buttonType = this.prev ? 'prev' : 'next';
961
- this.onClick.emit(buttonType);
962
- };
963
- get scrollButtonIconClass() {
964
- const defaultPrevIcon = !this.localization.rtl ?
965
- DIRECTION_CLASSES.left :
966
- DIRECTION_CLASSES.right;
967
- const defaultNextIcon = !this.localization.rtl ?
968
- DIRECTION_CLASSES.right :
969
- DIRECTION_CLASSES.left;
970
- if (typeof this.overflow === 'object') {
971
- const prevIcon = typeof this.overflow.prevButtonIcon === 'undefined' ? defaultPrevIcon : '';
972
- const nextIcon = typeof this.overflow.nextButtonIcon === 'undefined' ? defaultNextIcon : '';
973
- if (prevIcon && this.prev) {
974
- return prevIcon;
975
- }
976
- else if (nextIcon && !this.prev) {
977
- return nextIcon;
978
- }
979
- }
980
- }
981
- get customScrollButtonIconClass() {
982
- if (typeof this.overflow === 'object') {
983
- const prevIcon = this.overflow.prevButtonIcon;
984
- const nextIcon = this.overflow.nextButtonIcon;
985
- if (prevIcon && this.prev) {
986
- return `k-icon ${prevIcon}`;
987
- }
988
- if (nextIcon && !this.prev) {
989
- return `k-icon ${nextIcon}`;
990
- }
991
- }
992
- }
993
- get scrollButtonSVGIcon() {
994
- const defaultPrevSVGIcon = !this.localization.rtl ?
995
- this.caretAltLeftIcon :
996
- this.caretAltRightIcon;
997
- const defaultNextSVGIcon = !this.localization.rtl ?
998
- this.caretAltRightIcon :
999
- this.caretAltLeftIcon;
1000
- if (typeof this.overflow === 'object') {
1001
- const prevIcon = this.overflow.prevSVGButtonIcon !== undefined ? this.overflow.prevSVGButtonIcon : defaultPrevSVGIcon;
1002
- const nextIcon = this.overflow.nextSVGButtonIcon !== undefined ? this.overflow.nextSVGButtonIcon : defaultNextSVGIcon;
1003
- if (prevIcon || nextIcon) {
1004
- return this.prev ? prevIcon : nextIcon;
1005
- }
1006
- }
1007
- }
1008
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarScrollableButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
1009
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolbarScrollableButtonComponent, isStandalone: true, selector: "[kendoToolbarScrollableButton]", inputs: { prev: "prev", overflow: "overflow" }, outputs: { onClick: "onClick" }, host: { listeners: { "mousedown": "onMouseDown($event)" }, properties: { "class.k-toolbar-prev": "this.prevClass", "class.k-toolbar-next": "this.nextClass", "attr.role": "this.role" } }, ngImport: i0, template: `
1010
- <kendo-icon-wrapper
1011
- [name]="iconClass"
1012
- [customFontClass]="customIconClass"
1013
- [svgIcon]="svgIcon"
1014
- innerCssClass="k-button-icon"
1015
- >
1016
- </kendo-icon-wrapper>
1017
- `, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
1018
- }
1019
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarScrollableButtonComponent, decorators: [{
1020
- type: Component,
1021
- args: [{
1022
- template: `
1023
- <kendo-icon-wrapper
1024
- [name]="iconClass"
1025
- [customFontClass]="customIconClass"
1026
- [svgIcon]="svgIcon"
1027
- innerCssClass="k-button-icon"
1028
- >
1029
- </kendo-icon-wrapper>
1030
- `,
1031
- // eslint-disable-next-line @angular-eslint/component-selector
1032
- selector: '[kendoToolbarScrollableButton]',
1033
- standalone: true,
1034
- imports: [IconWrapperComponent]
1035
- }]
1036
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i1.LocalizationService }]; }, propDecorators: { prevClass: [{
1037
- type: HostBinding,
1038
- args: ['class.k-toolbar-prev']
1039
- }], nextClass: [{
1040
- type: HostBinding,
1041
- args: ['class.k-toolbar-next']
1042
- }], onMouseDown: [{
1043
- type: HostListener,
1044
- args: ['mousedown', ['$event']]
1045
- }], role: [{
1046
- type: HostBinding,
1047
- args: ['attr.role']
1048
- }], prev: [{
1049
- type: Input
1050
- }], overflow: [{
1051
- type: Input
1052
- }], onClick: [{
1053
- type: Output
1054
- }] } });
1055
-
1056
761
  /* eslint-disable no-case-declarations */
1057
762
  const DEFAULT_SIZE = 'medium';
1058
763
  const DEFAULT_FILL_MODE = 'solid';
@@ -1075,27 +780,13 @@ class ToolBarComponent {
1075
780
  renderer;
1076
781
  _cdr;
1077
782
  toolsService;
1078
- scrollService;
1079
783
  get overflowClass() {
1080
784
  return `k-button-${SIZES[this.size]}`;
1081
785
  }
1082
786
  /**
1083
- * Configures the overflow mode. Used to specify how tools will be rendered when the total size of all tools is greater than the size of the Toolbar container.
1084
- * @default false
787
+ * Hides the overflowing tools in a popup.
1085
788
  */
1086
- set overflow(overflow) {
1087
- this._overflow = overflow;
1088
- this.zone.onStable.pipe(take(1)).subscribe(() => this.onResize());
1089
- }
1090
- get overflow() {
1091
- return this._overflow;
1092
- }
1093
- get show() {
1094
- const buttonsVisibility = this.normalizedOverflow.scrollButtons;
1095
- const showAuto = buttonsVisibility === 'auto' && this.showAutoButtons;
1096
- const showAlways = buttonsVisibility === 'visible';
1097
- return this.isScrollMode && (showAuto || showAlways);
1098
- }
789
+ overflow = false;
1099
790
  /**
1100
791
  * @hidden
1101
792
  */
@@ -1103,39 +794,10 @@ class ToolBarComponent {
1103
794
  this.overflow = value;
1104
795
  }
1105
796
  get resizable() {
1106
- return this.showMenu;
797
+ return this.overflow;
1107
798
  }
1108
799
  /**
1109
- * @hidden
1110
- */
1111
- get hasScrollButtons() {
1112
- const visible = this.normalizedOverflow.mode === 'scroll' && this.normalizedOverflow.scrollButtons !== 'hidden';
1113
- const position = this.normalizedOverflow.scrollButtonsPosition;
1114
- return {
1115
- visible,
1116
- position
1117
- };
1118
- }
1119
- /**
1120
- * @hidden
1121
- */
1122
- get isScrollMode() {
1123
- return this.normalizedOverflow.mode === 'scroll';
1124
- }
1125
- /**
1126
- * @hidden
1127
- */
1128
- get showMenu() {
1129
- return this.normalizedOverflow.mode === 'menu' || this.normalizedOverflow.mode === 'section';
1130
- }
1131
- /**
1132
- * @hidden
1133
- */
1134
- get overflowEnabled() {
1135
- return this.normalizedOverflow.mode !== 'none';
1136
- }
1137
- /**
1138
- * Configures the popup of the ToolBar overflow button ([see example](slug:responsive_toolbar#customizing-the-popup)).
800
+ * Configures the popup of the ToolBar overflow button ([see example]({% slug responsive_toolbar %}#toc-popup-customization)).
1139
801
  *
1140
802
  * The available options are:
1141
803
  * - `animate: Boolean`&mdash;Controls the popup animation. By default, the open and close animations are enabled.
@@ -1202,15 +864,8 @@ class ToolBarComponent {
1202
864
  allTools;
1203
865
  overflowButton;
1204
866
  popupTemplate;
1205
- popupSectionTemplate;
1206
- scrollContainer;
1207
867
  resizeSensor;
1208
868
  container;
1209
- prevScrollButton;
1210
- nextScrollButton;
1211
- startButtonGroup;
1212
- endButtonGroup;
1213
- scrollSeparator;
1214
869
  popupRef;
1215
870
  direction;
1216
871
  get appendTo() {
@@ -1239,40 +894,17 @@ class ToolBarComponent {
1239
894
  get popupOpen() {
1240
895
  return this._open;
1241
896
  }
1242
- /**
1243
- * @hidden
1244
- */
1245
- prevButtonIcon = caretAltLeftIcon;
1246
- /**
1247
- * @hidden
1248
- */
1249
- nextButtonIcon = caretAltRightIcon;
1250
897
  hostClass = true;
1251
- get scrollableClass() {
1252
- return this.isScrollMode;
1253
- }
1254
- get sectionClass() {
1255
- return this.normalizedOverflow.mode === 'section';
1256
- }
1257
- _overflow = false;
1258
898
  _popupSettings;
1259
899
  cachedOverflowAnchorWidth;
1260
900
  _open;
1261
901
  toolbarKeydownListener;
1262
902
  overflowKeydownListener;
1263
- sectionKeydownListener;
1264
903
  cancelRenderedToolsSubscription$ = new Subject();
1265
904
  cachedGap;
1266
905
  _size = DEFAULT_SIZE;
1267
906
  _fillMode = DEFAULT_FILL_MODE;
1268
907
  overflowButtonClickedTime = null;
1269
- showAutoButtons = false;
1270
- /**
1271
- * @hidden
1272
- */
1273
- get normalizedOverflow() {
1274
- return normalizeOverflowSettings(this.overflow);
1275
- }
1276
908
  subscriptions = new Subscription();
1277
909
  popupSubs = new Subscription();
1278
910
  /**
@@ -1300,11 +932,12 @@ class ToolBarComponent {
1300
932
  return this.direction;
1301
933
  }
1302
934
  get resizableClass() {
1303
- return this.resizable;
935
+ return this.overflow;
1304
936
  }
937
+ moreVerticalIcon = moreVerticalIcon;
1305
938
  constructor(localization, popupService, refreshService, navigationService,
1306
939
  // Needs to be public as it is being accessed in the Editor component
1307
- element, zone, renderer, _cdr, toolsService, scrollService) {
940
+ element, zone, renderer, _cdr, toolsService) {
1308
941
  this.localization = localization;
1309
942
  this.popupService = popupService;
1310
943
  this.refreshService = refreshService;
@@ -1314,19 +947,13 @@ class ToolBarComponent {
1314
947
  this.renderer = renderer;
1315
948
  this._cdr = _cdr;
1316
949
  this.toolsService = toolsService;
1317
- this.scrollService = scrollService;
1318
950
  validatePackage(packageMetadata);
1319
951
  this.direction = localization.rtl ? 'rtl' : 'ltr';
1320
- this.scrollService.owner = this;
1321
952
  }
1322
953
  ngAfterContentInit() {
1323
954
  this.toolsService.allTools = this.allTools.toArray();
1324
955
  this.subscriptions.add(this.allTools.changes.subscribe(() => {
1325
- this.toolsService.reset();
1326
956
  this.toolsService.allTools = this.allTools.toArray();
1327
- this.allTools.forEach((tool) => {
1328
- this.refreshService.refresh(tool);
1329
- });
1330
957
  this.zone.onStable.pipe(take(1)).subscribe(() => this.onResize());
1331
958
  }));
1332
959
  }
@@ -1383,11 +1010,9 @@ class ToolBarComponent {
1383
1010
  }
1384
1011
  });
1385
1012
  });
1386
- if (this.overflowEnabled) {
1013
+ if (this.overflow) {
1387
1014
  this.subscriptions.add(merge(this.resizeSensor.resize, this.toolsService.renderedToolsChange).subscribe(() => this.onResize()));
1388
- if (this.showMenu) {
1389
- this.navigationService.overflowButton = this.overflowButton;
1390
- }
1015
+ this.navigationService.overflowButton = this.overflowButton;
1391
1016
  // because of https://github.com/telerik/kendo-angular-buttons/pull/276
1392
1017
  // button icons are not rendered until onResize() is called
1393
1018
  this.zone.runOutsideAngular(() => {
@@ -1398,38 +1023,6 @@ class ToolBarComponent {
1398
1023
  });
1399
1024
  });
1400
1025
  }
1401
- if (this.isScrollMode) {
1402
- if (this.show) {
1403
- if (this.normalizedOverflow.scrollButtons === 'visible' && !this.scrollService.toolsOverflow) {
1404
- this.renderer.addClass(this.nextScrollButton.nativeElement, 'k-disabled');
1405
- this.renderer.addClass(this.prevScrollButton.nativeElement, 'k-disabled');
1406
- }
1407
- else {
1408
- const buttonToDisable = this.direction === 'rtl' ? this.nextScrollButton : this.prevScrollButton;
1409
- this.renderer.addClass(buttonToDisable.nativeElement, 'k-disabled');
1410
- }
1411
- }
1412
- if (this.hasScrollButtons.visible) {
1413
- this.subscriptions.add(this.scrollService.scrollButtonActiveStateChange.subscribe((activeButtonSettings) => {
1414
- if (this.show) {
1415
- const action = activeButtonSettings.active ? 'remove' : 'add';
1416
- const scrollButton = this[`${activeButtonSettings.buttonType}ScrollButton`].nativeElement;
1417
- this.renderer[`${action}Class`](scrollButton, 'k-disabled');
1418
- action === 'add' && this[`${activeButtonSettings.buttonType}ScrollButton`].nativeElement.blur();
1419
- }
1420
- }));
1421
- }
1422
- this.zone.runOutsideAngular(() => {
1423
- this.subscriptions.add(this.renderer.listen(this.scrollContainer.nativeElement, 'scroll', (e) => {
1424
- if (!this.hasScrollButtons.visible) {
1425
- this.setScrollableOverlayClasses();
1426
- }
1427
- else {
1428
- this.scrollService.onScroll(e);
1429
- }
1430
- }));
1431
- });
1432
- }
1433
1026
  this.navigationService.setRenderedTools(this.toolsService.renderedTools);
1434
1027
  const stylingOptions = ['size', 'fillMode'];
1435
1028
  stylingOptions.forEach(option => {
@@ -1463,10 +1056,6 @@ class ToolBarComponent {
1463
1056
  this.cancelRenderedToolsSubscription$.next();
1464
1057
  this.subscriptions.unsubscribe();
1465
1058
  }
1466
- /**
1467
- * @hidden
1468
- */
1469
- showOverflowSeparator = false;
1470
1059
  /**
1471
1060
  * @hidden
1472
1061
  */
@@ -1479,31 +1068,6 @@ class ToolBarComponent {
1479
1068
  get cdr() {
1480
1069
  return this._cdr;
1481
1070
  }
1482
- /**
1483
- * @hidden
1484
- */
1485
- get sectionSizeClass() {
1486
- return this.size === 'none' ? '' : `k-toolbar-items-list-${SIZES[this.size]}`;
1487
- }
1488
- /**
1489
- * @hidden
1490
- */
1491
- getScrollButtonTitle(buttonType) {
1492
- let currentButton;
1493
- if (this.localization.rtl) {
1494
- currentButton = buttonType === 'prev' ? 'nextToolButton' : 'previousToolButton';
1495
- }
1496
- else {
1497
- currentButton = buttonType === 'prev' ? 'previousToolButton' : 'nextToolButton';
1498
- }
1499
- return this.localization.get(currentButton);
1500
- }
1501
- /**
1502
- * @hidden
1503
- */
1504
- scrollTools(dir) {
1505
- this.scrollService.scrollTools(dir);
1506
- }
1507
1071
  /**
1508
1072
  * @hidden
1509
1073
  */
@@ -1511,17 +1075,6 @@ class ToolBarComponent {
1511
1075
  this.navigationService.click(data);
1512
1076
  this.element.nativeElement.setAttribute('tabindex', '-1');
1513
1077
  }
1514
- /**
1515
- * @hidden
1516
- */
1517
- overflowButtonIcon(iconType) {
1518
- if (iconType === 'svg') {
1519
- return this.normalizedOverflow.mode === 'section' ? moreHorizontalIcon : moreVerticalIcon;
1520
- }
1521
- else {
1522
- return this.normalizedOverflow.mode === 'section' ? 'more-horizontal' : 'more-vertical';
1523
- }
1524
- }
1525
1078
  /**
1526
1079
  * @hidden
1527
1080
  */
@@ -1540,30 +1093,17 @@ class ToolBarComponent {
1540
1093
  this.popupRef = null;
1541
1094
  }
1542
1095
  if (this.popupOpen) {
1543
- let settings;
1544
- const isSection = this.normalizedOverflow.mode === 'section';
1545
- if (isSection) {
1546
- settings = {
1547
- anchor: this.element.nativeElement,
1548
- content: this.popupSectionTemplate,
1549
- popupClass: this.normalizePopupClasses(),
1550
- positionMode: 'absolute'
1551
- };
1552
- }
1553
- else {
1554
- settings = {
1555
- anchor: this.overflowButton,
1556
- anchorAlign: this.popupSettings.anchorAlign,
1557
- popupAlign: this.popupSettings.popupAlign,
1558
- content: this.popupTemplate,
1559
- appendTo: this.appendTo,
1560
- animate: this.popupSettings.animate,
1561
- popupClass: this.normalizePopupClasses(this.popupSettings.popupClass),
1562
- positionMode: 'absolute'
1563
- };
1564
- }
1565
- this.popupRef = this.popupService.open(settings);
1566
- this.setPopupContentDimensions(isSection);
1096
+ this.popupRef = this.popupService.open({
1097
+ anchor: this.overflowButton,
1098
+ anchorAlign: this.popupSettings.anchorAlign,
1099
+ popupAlign: this.popupSettings.popupAlign,
1100
+ content: this.popupTemplate,
1101
+ appendTo: this.appendTo,
1102
+ animate: this.popupSettings.animate,
1103
+ popupClass: this.normalizePopupClasses(this.popupSettings.popupClass),
1104
+ positionMode: 'absolute'
1105
+ });
1106
+ this.setPopupContentDimensions();
1567
1107
  this.popupSubs.add(this.popupRef.popupOpen.subscribe(this.onPopupOpen.bind(this)));
1568
1108
  this.popupSubs.add(this.popupRef.popupClose.subscribe(this.onPopupClose.bind(this)));
1569
1109
  }
@@ -1573,51 +1113,15 @@ class ToolBarComponent {
1573
1113
  */
1574
1114
  onResize() {
1575
1115
  if (isDocumentAvailable()) {
1576
- if (this.showMenu) {
1577
- const containerWidth = innerWidth(this.element.nativeElement) - this.overflowAnchorWidth;
1578
- this.shrink(containerWidth, this.childrenWidth);
1579
- this.stretch(containerWidth, this.childrenWidth);
1580
- this.displayAnchor();
1581
- const isImmediateResize = (Date.now() - this.overflowButtonClickedTime) < immediateResizeThreshold;
1582
- if (this.popupOpen && !isImmediateResize) {
1583
- this.toggle();
1584
- }
1585
- }
1586
- else if (this.isScrollMode) {
1587
- if (this.normalizedOverflow.scrollButtons === 'auto') {
1588
- const containerWidth = innerWidth(this.element.nativeElement);
1589
- let scrollButtonsWidth = 0;
1590
- if (this.showAutoButtons) {
1591
- const separatorWidth = this.scrollSeparator.nativeElement.getBoundingClientRect().width + 2 * this.gap;
1592
- if (this.hasScrollButtons.position === 'split') {
1593
- scrollButtonsWidth = innerWidth(this.prevScrollButton.nativeElement) + innerWidth(this.nextScrollButton.nativeElement) + 2 * separatorWidth;
1594
- }
1595
- else if (this.hasScrollButtons.position === 'end') {
1596
- scrollButtonsWidth = innerWidth(this.endButtonGroup.nativeElement) + separatorWidth;
1597
- }
1598
- else {
1599
- scrollButtonsWidth = innerWidth(this.startButtonGroup.nativeElement) + separatorWidth;
1600
- }
1601
- }
1602
- const shouldShowButtons = (this.childrenWidth + scrollButtonsWidth) > containerWidth;
1603
- if (shouldShowButtons !== this.showAutoButtons) {
1604
- this.showAutoButtons = shouldShowButtons;
1605
- this.cdr.detectChanges();
1606
- }
1607
- this.scrollService.toggleScrollButtonsState();
1608
- }
1609
- else if (!this.hasScrollButtons.visible) {
1610
- this.setScrollableOverlayClasses();
1611
- }
1612
- else if (!this.scrollService.toolsOverflow) {
1613
- this.renderer.addClass(this.nextScrollButton.nativeElement, 'k-disabled');
1614
- this.renderer.addClass(this.prevScrollButton.nativeElement, 'k-disabled');
1615
- }
1616
- else {
1617
- this.scrollService.toggleScrollButtonsState();
1618
- }
1619
- }
1116
+ const containerWidth = innerWidth(this.element.nativeElement) - this.overflowAnchorWidth;
1117
+ this.shrink(containerWidth, this.childrenWidth);
1118
+ this.stretch(containerWidth, this.childrenWidth);
1119
+ this.displayAnchor();
1620
1120
  this.resizeSensor?.acceptSize();
1121
+ const isImmediateResize = (Date.now() - this.overflowButtonClickedTime) < immediateResizeThreshold;
1122
+ if (this.popupOpen && !isImmediateResize) {
1123
+ this.toggle();
1124
+ }
1621
1125
  }
1622
1126
  }
1623
1127
  /**
@@ -1625,94 +1129,45 @@ class ToolBarComponent {
1625
1129
  */
1626
1130
  onPopupOpen() {
1627
1131
  this.zone.runOutsideAngular(() => {
1628
- if (this.normalizedOverflow.mode === 'section') {
1629
- this.sectionKeydownListener = this.renderer.listen(this.popupRef.popupElement, 'keydown', (ev) => {
1630
- switch (ev.keyCode) {
1631
- case Keys.ArrowLeft:
1632
- this.zone.run(() => {
1633
- ev.preventDefault();
1634
- if (this.direction === 'ltr') {
1635
- this.navigationService.focusPrev(ev);
1636
- }
1637
- else {
1638
- this.navigationService.focusNext(ev);
1639
- }
1640
- // prevents ExpressionChangedAfterItHasBeenCheckedError when tools with popup are opened/closed asynchronously
1641
- this.element.nativeElement.setAttribute('tabindex', '-1');
1642
- });
1643
- break;
1644
- case Keys.ArrowRight:
1645
- this.zone.run(() => {
1646
- ev.preventDefault();
1647
- if (this.direction === 'ltr') {
1648
- this.navigationService.focusNext(ev);
1649
- }
1650
- else {
1651
- this.navigationService.focusPrev(ev);
1652
- }
1653
- // prevents ExpressionChangedAfterItHasBeenCheckedError when tools with popup are opened/closed asynchronously
1654
- this.element.nativeElement.setAttribute('tabindex', '-1');
1655
- });
1656
- break;
1657
- case Keys.Escape: {
1658
- this.zone.run(() => this.toggle(false));
1659
- const eventArgs = new PreventableEvent();
1660
- this.close.emit(eventArgs);
1661
- break;
1662
- }
1663
- case Keys.Tab:
1664
- this.zone.run(() => {
1665
- this.toggle(false);
1666
- this.navigationService.resetNavigation();
1667
- });
1668
- break;
1669
- default:
1670
- break;
1671
- }
1672
- });
1673
- }
1674
- else {
1675
- this.overflowKeydownListener = this.renderer.listen(this.popupRef.popupElement, 'keydown', (ev) => {
1676
- switch (ev.keyCode) {
1677
- case Keys.ArrowUp:
1678
- this.zone.run(() => {
1679
- ev.preventDefault();
1680
- this.navigationService.focusPrev(ev);
1681
- });
1682
- break;
1683
- case Keys.ArrowDown:
1684
- this.zone.run(() => {
1132
+ this.overflowKeydownListener = this.renderer.listen(this.popupRef.popupElement, 'keydown', (ev) => {
1133
+ switch (ev.keyCode) {
1134
+ case Keys.ArrowUp:
1135
+ this.zone.run(() => {
1136
+ ev.preventDefault();
1137
+ this.navigationService.focusPrev(ev);
1138
+ });
1139
+ break;
1140
+ case Keys.ArrowDown:
1141
+ this.zone.run(() => {
1142
+ ev.preventDefault();
1143
+ this.navigationService.focusNext(ev);
1144
+ });
1145
+ break;
1146
+ case Keys.Escape:
1147
+ this.zone.run(() => this.toggle(false));
1148
+ const eventArgs = new PreventableEvent();
1149
+ this.close.emit(eventArgs);
1150
+ break;
1151
+ case Keys.Tab:
1152
+ this.zone.run(() => {
1153
+ this.toggle(false);
1154
+ this.navigationService.resetNavigation();
1155
+ });
1156
+ break;
1157
+ case Keys.Enter:
1158
+ case Keys.Space:
1159
+ this.zone.run(() => {
1160
+ if (ev.target.closest('.k-menu-item')) {
1685
1161
  ev.preventDefault();
1686
- this.navigationService.focusNext(ev);
1687
- });
1688
- break;
1689
- case Keys.Escape: {
1690
- this.zone.run(() => this.toggle(false));
1691
- const eventArgs = new PreventableEvent();
1692
- this.close.emit(eventArgs);
1693
- break;
1694
- }
1695
- case Keys.Tab:
1696
- this.zone.run(() => {
1697
- this.toggle(false);
1698
- this.navigationService.resetNavigation();
1699
- });
1700
- break;
1701
- case Keys.Enter:
1702
- case Keys.Space:
1703
- this.zone.run(() => {
1704
- if (ev.target.closest('.k-menu-item')) {
1705
- ev.preventDefault();
1706
- ev.target.click();
1707
- ev.target.focus();
1708
- }
1709
- });
1710
- break;
1711
- default:
1712
- break;
1713
- }
1714
- });
1715
- }
1162
+ ev.target.click();
1163
+ ev.target.focus();
1164
+ }
1165
+ });
1166
+ break;
1167
+ default:
1168
+ break;
1169
+ }
1170
+ });
1716
1171
  });
1717
1172
  this.cancelRenderedToolsSubscription$.next();
1718
1173
  this.navigationService.setRenderedTools(this.toolsService.overflowTools);
@@ -1735,9 +1190,6 @@ class ToolBarComponent {
1735
1190
  if (this.overflowKeydownListener) {
1736
1191
  this.overflowKeydownListener();
1737
1192
  }
1738
- if (this.sectionKeydownListener) {
1739
- this.sectionKeydownListener();
1740
- }
1741
1193
  this.renderer.removeAttribute(this.overflowButton.nativeElement, 'aria-controls');
1742
1194
  }
1743
1195
  /**
@@ -1751,11 +1203,6 @@ class ToolBarComponent {
1751
1203
  displayAnchor() {
1752
1204
  const visibility = this.allTools.filter(t => t.overflows && t.responsive).length > 0 ? 'visible' : 'hidden';
1753
1205
  this.overflowButton && this.renderer.setStyle(this.overflowButton.nativeElement, 'visibility', visibility);
1754
- const isVisible = visibility === 'visible';
1755
- if (isVisible !== this.showOverflowSeparator) {
1756
- this.showOverflowSeparator = isVisible;
1757
- this.cdr.detectChanges();
1758
- }
1759
1206
  }
1760
1207
  get popupWidth() {
1761
1208
  if (!this.popupSettings || !this.popupSettings.width) {
@@ -1770,7 +1217,7 @@ class ToolBarComponent {
1770
1217
  return isNaN(this.popupSettings.height) ? this.popupSettings.height : `${this.popupSettings.height}px`;
1771
1218
  }
1772
1219
  get overflowAnchorWidth() {
1773
- if (!this.showMenu) {
1220
+ if (!this.overflow) {
1774
1221
  return 0;
1775
1222
  }
1776
1223
  if (!this.cachedOverflowAnchorWidth) {
@@ -1837,7 +1284,7 @@ class ToolBarComponent {
1837
1284
  return r.tool === tool;
1838
1285
  });
1839
1286
  const width = renderedElement.width;
1840
- tool.overflows = this.showMenu;
1287
+ tool.overflows = this.overflow;
1841
1288
  this.refreshService.refresh(tool);
1842
1289
  return width;
1843
1290
  }
@@ -1859,17 +1306,11 @@ class ToolBarComponent {
1859
1306
  this.refreshService.refresh(tool);
1860
1307
  return renderedElement.width; // returns 0 if `overflows` is true
1861
1308
  }
1862
- setPopupContentDimensions(isSection) {
1309
+ setPopupContentDimensions() {
1863
1310
  const popupContentContainer = this.popupRef.popup.instance.contentContainer.nativeElement;
1864
- if (isSection) {
1865
- const toolbarWidth = this.element.nativeElement.getBoundingClientRect().width;
1866
- popupContentContainer.style.width = `${toolbarWidth}px`;
1867
- }
1868
- else {
1869
- popupContentContainer.style.width = this.popupWidth;
1870
- popupContentContainer.style.height = this.popupHeight;
1871
- popupContentContainer.style.overflow = 'auto';
1872
- }
1311
+ popupContentContainer.style.width = this.popupWidth;
1312
+ popupContentContainer.style.height = this.popupHeight;
1313
+ popupContentContainer.style.overflow = 'auto';
1873
1314
  }
1874
1315
  destroyPopup() {
1875
1316
  if (this.popupRef) {
@@ -1889,10 +1330,7 @@ class ToolBarComponent {
1889
1330
  }
1890
1331
  }
1891
1332
  normalizePopupClasses(classList) {
1892
- let classes = ['k-toolbar-popup'];
1893
- if (this.normalizedOverflow.mode === 'menu') {
1894
- classes.push('k-menu-popup');
1895
- }
1333
+ let classes = ['k-menu-popup', 'k-toolbar-popup'];
1896
1334
  if (!classList) {
1897
1335
  return classes;
1898
1336
  }
@@ -1909,204 +1347,62 @@ class ToolBarComponent {
1909
1347
  }
1910
1348
  return classes;
1911
1349
  }
1912
- setScrollableOverlayClasses() {
1913
- const wrapper = this.element.nativeElement;
1914
- const container = this.scrollContainer?.nativeElement;
1915
- if (!container) {
1916
- return;
1917
- }
1918
- const scrollOffset = container.scrollLeft;
1919
- const defaultOffset = 1;
1920
- if (this.scrollService.toolsOverflow) {
1921
- this.renderer.addClass(wrapper, 'k-toolbar-scrollable-overlay');
1922
- if (scrollOffset === 0) {
1923
- this.renderer.removeClass(wrapper, 'k-toolbar-scrollable-end');
1924
- this.renderer.addClass(wrapper, 'k-toolbar-scrollable-start');
1925
- }
1926
- else if ((scrollOffset > 0 && scrollOffset < this.scrollService.scrollContainerOverflowSize - defaultOffset) || (scrollOffset < 0 && Math.abs(scrollOffset) < this.scrollService.scrollContainerOverflowSize - defaultOffset)) {
1927
- this.renderer.removeClass(wrapper, 'k-toolbar-scrollable-end');
1928
- this.renderer.removeClass(wrapper, 'k-toolbar-scrollable-start');
1929
- }
1930
- else {
1931
- this.renderer.removeClass(wrapper, 'k-toolbar-scrollable-start');
1932
- this.renderer.addClass(wrapper, 'k-toolbar-scrollable-end');
1933
- }
1934
- }
1935
- else {
1936
- this.renderer.removeClass(wrapper, 'k-toolbar-scrollable-overlay');
1937
- this.renderer.removeClass(wrapper, 'k-toolbar-scrollable-end');
1938
- this.renderer.removeClass(wrapper, 'k-toolbar-scrollable-start');
1939
- }
1940
- }
1941
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PopupService }, { token: RefreshService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: ToolbarToolsService }, { token: ScrollService }], target: i0.ɵɵFactoryTarget.Component });
1942
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarComponent, isStandalone: true, selector: "kendo-toolbar", inputs: { overflow: "overflow", resizable: "resizable", popupSettings: "popupSettings", fillMode: "fillMode", tabindex: "tabindex", size: "size", tabIndex: "tabIndex" }, outputs: { open: "open", close: "close" }, host: { listeners: { "focus": "onFocus($event)", "focusout": "onFocusOut($event)" }, properties: { "class.k-toolbar": "this.hostClass", "class.k-toolbar-scrollable": "this.scrollableClass", "class.k-toolbar-section": "this.sectionClass", "attr.role": "this.role", "attr.dir": "this.getDir", "class.k-toolbar-resizable": "this.resizableClass" } }, providers: [
1350
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PopupService }, { token: RefreshService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: ToolbarToolsService }], target: i0.ɵɵFactoryTarget.Component });
1351
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarComponent, isStandalone: true, selector: "kendo-toolbar", inputs: { overflow: "overflow", resizable: "resizable", popupSettings: "popupSettings", fillMode: "fillMode", tabindex: "tabindex", size: "size", tabIndex: "tabIndex" }, outputs: { open: "open", close: "close" }, host: { listeners: { "focus": "onFocus($event)", "focusout": "onFocusOut($event)" }, properties: { "class.k-toolbar": "this.hostClass", "attr.role": "this.role", "attr.dir": "this.getDir", "class.k-toolbar-resizable": "this.resizableClass" } }, providers: [
1943
1352
  RefreshService,
1944
1353
  NavigationService,
1945
1354
  LocalizationService,
1946
1355
  ToolbarToolsService,
1947
- ScrollService,
1948
1356
  {
1949
1357
  provide: L10N_PREFIX,
1950
1358
  useValue: 'kendo.toolbar'
1951
1359
  }
1952
- ], queries: [{ propertyName: "allTools", predicate: ToolBarToolComponent }], viewQueries: [{ propertyName: "overflowButton", first: true, predicate: ["overflowButton"], descendants: true, read: ElementRef }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "popupSectionTemplate", first: true, predicate: ["popupSectionTemplate"], descendants: true, static: true }, { propertyName: "scrollContainer", first: true, predicate: ["scrollContainer"], descendants: true, read: ElementRef }, { propertyName: "resizeSensor", first: true, predicate: ["resizeSensor"], descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "prevScrollButton", first: true, predicate: ["prevScrollButton"], descendants: true, read: ElementRef }, { propertyName: "nextScrollButton", first: true, predicate: ["nextScrollButton"], descendants: true, read: ElementRef }, { propertyName: "startButtonGroup", first: true, predicate: ["startButtonGroup"], descendants: true, read: ElementRef }, { propertyName: "endButtonGroup", first: true, predicate: ["endButtonGroup"], descendants: true, read: ElementRef }, { propertyName: "scrollSeparator", first: true, predicate: ["scrollSeparator"], descendants: true, read: ElementRef }], exportAs: ["kendoToolBar"], usesOnChanges: true, ngImport: i0, template: `
1360
+ ], queries: [{ propertyName: "allTools", predicate: ToolBarToolComponent }], viewQueries: [{ propertyName: "overflowButton", first: true, predicate: ["overflowButton"], descendants: true, read: ElementRef }, { propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, static: true }, { propertyName: "resizeSensor", first: true, predicate: ["resizeSensor"], descendants: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], exportAs: ["kendoToolBar"], usesOnChanges: true, ngImport: i0, template: `
1953
1361
  <ng-container kendoToolbarLocalizedMessages
1954
- i18n-moreToolsTitle="kendo.toolbar.moreToolsTitle|The title of the **more tools** button in a responsive ToolBar"
1955
- moreToolsTitle="More tools"
1956
-
1957
- i18n-previousToolButton="kendo.toolbar.previousToolButton|The title for the **Previous Tool** button when the Toolbar is scrollable."
1958
- previousToolButton="Scroll left"
1959
-
1960
- i18n-nextToolButton="kendo.toolbar.nextToolButton|The title for the **Next Tool** button when the Toolbar is scrollable."
1961
- nextToolButton="Scroll right"
1362
+ i18n-moreToolsTitle="kendo.toolbar.moreToolsTitle|The title of the **more tools** button in a responsive ToolBar"
1363
+ moreToolsTitle="More tools"
1962
1364
  >
1963
1365
  </ng-container>
1964
- <ng-container *ngIf="show && (hasScrollButtons.position === 'split' || hasScrollButtons.position === 'start')">
1965
- <span *ngIf="hasScrollButtons.position === 'split'" #prevScrollButton
1966
- kendoToolbarScrollableButton
1967
- [prev]="true"
1968
- [overflow]="normalizedOverflow"
1969
- [title]="getScrollButtonTitle('prev')"
1970
- class="k-toolbar-prev k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
1971
- [ngClass]="{
1972
- 'k-button-sm': size === 'small',
1973
- 'k-button-md': size === 'medium' || !size,
1974
- 'k-button-lg': size === 'large'
1975
- }"
1976
- (onClick)="scrollTools($event)">
1977
- </span>
1978
- <div class="k-button-group k-button-group-solid" *ngIf="hasScrollButtons.position === 'start'" #startButtonGroup>
1979
- <span #prevScrollButton
1980
- kendoToolbarScrollableButton
1981
- [prev]="true"
1982
- [overflow]="normalizedOverflow"
1983
- [title]="getScrollButtonTitle('prev')"
1984
- class="k-toolbar-prev k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
1985
- [ngClass]="{
1986
- 'k-button-sm': size === 'small',
1987
- 'k-button-md': size === 'medium' || !size,
1988
- 'k-button-lg': size === 'large'
1989
- }"
1990
- (onClick)="scrollTools($event)">
1991
- </span>
1992
- <span #nextScrollButton
1993
- kendoToolbarScrollableButton
1994
- [prev]="false"
1995
- [overflow]="normalizedOverflow"
1996
- [title]="getScrollButtonTitle('next')"
1997
- class="k-toolbar-next k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
1998
- [ngClass]="{
1999
- 'k-button-sm': size === 'small',
2000
- 'k-button-md': size === 'medium' || !size,
2001
- 'k-button-lg': size === 'large'
2002
- }"
2003
- (onClick)="scrollTools($event)">
2004
- </span>
2005
- </div>
2006
- <div class="k-toolbar-separator k-toolbar-button-separator k-separator" #scrollSeparator></div>
1366
+ <ng-container *ngFor="let tool of allTools; let index = index"
1367
+ kendoToolbarRenderer
1368
+ [tool]="tool"
1369
+ location="toolbar"
1370
+ [resizable]="overflow"
1371
+ (rendererClick)="onRendererClick($event)"
1372
+ [ngTemplateOutlet]="tool.isBuiltInTool ? tool.toolbarTemplate : wrapper">
1373
+ <ng-template #wrapper>
1374
+ <div class="k-toolbar-item">
1375
+ <ng-container [ngTemplateOutlet]="tool.toolbarTemplate"></ng-container>
1376
+ </div>
1377
+ </ng-template>
2007
1378
  </ng-container>
2008
- <div class="k-toolbar-items k-toolbar-items-scroll" *ngIf="isScrollMode; else noScroll" #scrollContainer>
2009
- <ng-container *ngFor="let tool of allTools; let index = index"
2010
- kendoToolbarRenderer
2011
- [tool]="tool"
2012
- location="toolbar"
2013
- [resizable]="resizable"
2014
- (rendererClick)="onRendererClick($event)"
2015
- [ngTemplateOutlet]="tool.isBuiltInTool ? tool.toolbarTemplate : wrapper">
2016
- <ng-template #wrapper>
2017
- <div class="k-toolbar-item">
2018
- <ng-container [ngTemplateOutlet]="tool.toolbarTemplate"></ng-container>
2019
- </div>
2020
- </ng-template>
2021
- </ng-container>
2022
- </div>
2023
- <ng-template #noScroll>
2024
- <ng-container *ngFor="let tool of allTools; let index = index"
2025
- kendoToolbarRenderer
2026
- [tool]="tool"
2027
- location="toolbar"
2028
- [resizable]="resizable"
2029
- (rendererClick)="onRendererClick($event)"
2030
- [ngTemplateOutlet]="tool.isBuiltInTool ? tool.toolbarTemplate : wrapper">
2031
- <ng-template #wrapper>
2032
- <div class="k-toolbar-item">
2033
- <ng-container [ngTemplateOutlet]="tool.toolbarTemplate"></ng-container>
2034
- </div>
2035
- </ng-template>
2036
- </ng-container>
2037
- </ng-template>
2038
- <div class="k-toolbar-separator k-toolbar-button-separator k-separator" *ngIf="showOverflowSeparator"></div>
2039
1379
  <button
2040
1380
  kendoButton
2041
1381
  fillMode="flat"
2042
1382
  #overflowButton
2043
1383
  type="button"
2044
- [icon]="overflowButtonIcon('font')"
2045
- [svgIcon]="overflowButtonIcon('svg')"
1384
+ icon="more-vertical"
1385
+ [svgIcon]="moreVerticalIcon"
2046
1386
  tabindex="-1"
2047
1387
  [title]="moreToolsTitle"
2048
1388
  [attr.aria-label]="moreToolsTitle"
2049
1389
  [attr.aria-expanded]="popupOpen"
2050
1390
  [id]="overflowBtnId"
2051
- [attr.aria-haspopup]="normalizedOverflow.mode === 'section' ? null : 'menu'"
2052
- *ngIf="showMenu"
1391
+ aria-haspopup="menu"
1392
+ *ngIf="overflow"
2053
1393
  [style.visibility]="'hidden'"
2054
1394
  [style.position]="'relative'"
1395
+ [style.margin-inline-start]="'auto'"
2055
1396
  class="k-toolbar-overflow-button"
2056
1397
  [ngClass]="overflowClass"
2057
1398
  (click)="showPopup()"
2058
1399
  >
2059
1400
  </button>
2060
- <ng-container *ngIf="show && (hasScrollButtons.position === 'split' || hasScrollButtons.position === 'end')">
2061
- <div class="k-toolbar-separator k-toolbar-button-separator k-separator"></div>
2062
- <span *ngIf="hasScrollButtons.position === 'split'" #nextScrollButton
2063
- kendoToolbarScrollableButton
2064
- [prev]="false"
2065
- [overflow]="normalizedOverflow"
2066
- [title]="getScrollButtonTitle('next')"
2067
- class="k-toolbar-next k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
2068
- [ngClass]="{
2069
- 'k-button-sm': size === 'small',
2070
- 'k-button-md': size === 'medium' || !size,
2071
- 'k-button-lg': size === 'large'
2072
- }"
2073
- (onClick)="scrollTools($event)">
2074
- </span>
2075
- <div class="k-button-group k-button-group-solid" *ngIf="hasScrollButtons.position === 'end'" #endButtonGroup>
2076
- <span #prevScrollButton
2077
- kendoToolbarScrollableButton
2078
- [prev]="true"
2079
- [overflow]="normalizedOverflow"
2080
- [title]="getScrollButtonTitle('prev')"
2081
- class="k-toolbar-prev k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
2082
- [ngClass]="{
2083
- 'k-button-sm': size === 'small',
2084
- 'k-button-md': size === 'medium' || !size,
2085
- 'k-button-lg': size === 'large'
2086
- }"
2087
- (onClick)="scrollTools($event)">
2088
- </span>
2089
- <span #nextScrollButton
2090
- kendoToolbarScrollableButton
2091
- [prev]="false"
2092
- [overflow]="normalizedOverflow"
2093
- [title]="getScrollButtonTitle('next')"
2094
- class="k-toolbar-next k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
2095
- [ngClass]="{
2096
- 'k-button-sm': size === 'small',
2097
- 'k-button-md': size === 'medium' || !size,
2098
- 'k-button-lg': size === 'large'
2099
- }"
2100
- (onClick)="scrollTools($event)">
2101
- </span>
2102
- </div>
2103
- </ng-container>
2104
1401
  <ng-template #popupTemplate>
2105
1402
  <div
2106
1403
  class="k-menu-group k-menu-group-md"
2107
1404
  role="menu"
2108
1405
  [id]="popupId"
2109
- [attr.dir]="direction === 'rtl' ? 'rtl' : null"
2110
1406
  [attr.aria-labelledby]="overflowBtnId">
2111
1407
  <ng-container *ngFor="let tool of overflowTools; let index = index">
2112
1408
  <ng-template
@@ -2114,7 +1410,7 @@ class ToolBarComponent {
2114
1410
  kendoToolbarRenderer
2115
1411
  [tool]="tool"
2116
1412
  location="overflow"
2117
- [resizable]="resizable"
1413
+ [resizable]="overflow"
2118
1414
  (rendererClick)="onRendererClick($event)"
2119
1415
  [ngTemplateOutlet]="tool.isBuiltInTool ? tool.popupTemplate : popupWrapper"></ng-template>
2120
1416
  <ng-template #popupWrapper>
@@ -2125,29 +1421,9 @@ class ToolBarComponent {
2125
1421
  </ng-container>
2126
1422
  </div>
2127
1423
  </ng-template>
2128
- <ng-template #popupSectionTemplate>
2129
- <span class="k-toolbar-items-list k-toolbar-items-list-solid"
2130
- [ngClass]="sectionSizeClass"
2131
- role="toolbar"
2132
- [id]="popupId"
2133
- [attr.dir]="direction === 'rtl' ? 'rtl' : null"
2134
- [attr.aria-labelledby]="overflowBtnId">
2135
- <ng-container *ngFor="let tool of overflowTools; let index = index"
2136
- kendoToolbarRenderer
2137
- [tool]="tool"
2138
- location="section"
2139
- [resizable]="resizable"
2140
- (rendererClick)="onRendererClick($event)"
2141
- [ngTemplateOutlet]="tool.isBuiltInTool ? tool.sectionTemplate : wrapper">
2142
- <ng-template #wrapper>
2143
- <ng-container [ngTemplateOutlet]="tool.sectionTemplate"></ng-container>
2144
- </ng-template>
2145
- </ng-container>
2146
- </span>
2147
- </ng-template>
2148
1424
  <ng-container #container></ng-container>
2149
- <kendo-resize-sensor *ngIf="overflowEnabled" #resizeSensor></kendo-resize-sensor>
2150
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: LocalizedToolbarMessagesDirective, selector: "[kendoToolbarLocalizedMessages]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ToolBarRendererComponent, selector: "[kendoToolbarRenderer]", inputs: ["tool", "location", "resizable"], outputs: ["rendererClick"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ToolbarScrollableButtonComponent, selector: "[kendoToolbarScrollableButton]", inputs: ["prev", "overflow"], outputs: ["onClick"] }] });
1425
+ <kendo-resize-sensor *ngIf="overflow" #resizeSensor></kendo-resize-sensor>
1426
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: LocalizedToolbarMessagesDirective, selector: "[kendoToolbarLocalizedMessages]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ToolBarRendererComponent, selector: "[kendoToolbarRenderer]", inputs: ["tool", "location", "resizable"], outputs: ["rendererClick"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
2151
1427
  }
2152
1428
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarComponent, decorators: [{
2153
1429
  type: Component,
@@ -2158,7 +1434,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2158
1434
  NavigationService,
2159
1435
  LocalizationService,
2160
1436
  ToolbarToolsService,
2161
- ScrollService,
2162
1437
  {
2163
1438
  provide: L10N_PREFIX,
2164
1439
  useValue: 'kendo.toolbar'
@@ -2167,162 +1442,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2167
1442
  selector: 'kendo-toolbar',
2168
1443
  template: `
2169
1444
  <ng-container kendoToolbarLocalizedMessages
2170
- i18n-moreToolsTitle="kendo.toolbar.moreToolsTitle|The title of the **more tools** button in a responsive ToolBar"
2171
- moreToolsTitle="More tools"
2172
-
2173
- i18n-previousToolButton="kendo.toolbar.previousToolButton|The title for the **Previous Tool** button when the Toolbar is scrollable."
2174
- previousToolButton="Scroll left"
2175
-
2176
- i18n-nextToolButton="kendo.toolbar.nextToolButton|The title for the **Next Tool** button when the Toolbar is scrollable."
2177
- nextToolButton="Scroll right"
1445
+ i18n-moreToolsTitle="kendo.toolbar.moreToolsTitle|The title of the **more tools** button in a responsive ToolBar"
1446
+ moreToolsTitle="More tools"
2178
1447
  >
2179
1448
  </ng-container>
2180
- <ng-container *ngIf="show && (hasScrollButtons.position === 'split' || hasScrollButtons.position === 'start')">
2181
- <span *ngIf="hasScrollButtons.position === 'split'" #prevScrollButton
2182
- kendoToolbarScrollableButton
2183
- [prev]="true"
2184
- [overflow]="normalizedOverflow"
2185
- [title]="getScrollButtonTitle('prev')"
2186
- class="k-toolbar-prev k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
2187
- [ngClass]="{
2188
- 'k-button-sm': size === 'small',
2189
- 'k-button-md': size === 'medium' || !size,
2190
- 'k-button-lg': size === 'large'
2191
- }"
2192
- (onClick)="scrollTools($event)">
2193
- </span>
2194
- <div class="k-button-group k-button-group-solid" *ngIf="hasScrollButtons.position === 'start'" #startButtonGroup>
2195
- <span #prevScrollButton
2196
- kendoToolbarScrollableButton
2197
- [prev]="true"
2198
- [overflow]="normalizedOverflow"
2199
- [title]="getScrollButtonTitle('prev')"
2200
- class="k-toolbar-prev k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
2201
- [ngClass]="{
2202
- 'k-button-sm': size === 'small',
2203
- 'k-button-md': size === 'medium' || !size,
2204
- 'k-button-lg': size === 'large'
2205
- }"
2206
- (onClick)="scrollTools($event)">
2207
- </span>
2208
- <span #nextScrollButton
2209
- kendoToolbarScrollableButton
2210
- [prev]="false"
2211
- [overflow]="normalizedOverflow"
2212
- [title]="getScrollButtonTitle('next')"
2213
- class="k-toolbar-next k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
2214
- [ngClass]="{
2215
- 'k-button-sm': size === 'small',
2216
- 'k-button-md': size === 'medium' || !size,
2217
- 'k-button-lg': size === 'large'
2218
- }"
2219
- (onClick)="scrollTools($event)">
2220
- </span>
2221
- </div>
2222
- <div class="k-toolbar-separator k-toolbar-button-separator k-separator" #scrollSeparator></div>
1449
+ <ng-container *ngFor="let tool of allTools; let index = index"
1450
+ kendoToolbarRenderer
1451
+ [tool]="tool"
1452
+ location="toolbar"
1453
+ [resizable]="overflow"
1454
+ (rendererClick)="onRendererClick($event)"
1455
+ [ngTemplateOutlet]="tool.isBuiltInTool ? tool.toolbarTemplate : wrapper">
1456
+ <ng-template #wrapper>
1457
+ <div class="k-toolbar-item">
1458
+ <ng-container [ngTemplateOutlet]="tool.toolbarTemplate"></ng-container>
1459
+ </div>
1460
+ </ng-template>
2223
1461
  </ng-container>
2224
- <div class="k-toolbar-items k-toolbar-items-scroll" *ngIf="isScrollMode; else noScroll" #scrollContainer>
2225
- <ng-container *ngFor="let tool of allTools; let index = index"
2226
- kendoToolbarRenderer
2227
- [tool]="tool"
2228
- location="toolbar"
2229
- [resizable]="resizable"
2230
- (rendererClick)="onRendererClick($event)"
2231
- [ngTemplateOutlet]="tool.isBuiltInTool ? tool.toolbarTemplate : wrapper">
2232
- <ng-template #wrapper>
2233
- <div class="k-toolbar-item">
2234
- <ng-container [ngTemplateOutlet]="tool.toolbarTemplate"></ng-container>
2235
- </div>
2236
- </ng-template>
2237
- </ng-container>
2238
- </div>
2239
- <ng-template #noScroll>
2240
- <ng-container *ngFor="let tool of allTools; let index = index"
2241
- kendoToolbarRenderer
2242
- [tool]="tool"
2243
- location="toolbar"
2244
- [resizable]="resizable"
2245
- (rendererClick)="onRendererClick($event)"
2246
- [ngTemplateOutlet]="tool.isBuiltInTool ? tool.toolbarTemplate : wrapper">
2247
- <ng-template #wrapper>
2248
- <div class="k-toolbar-item">
2249
- <ng-container [ngTemplateOutlet]="tool.toolbarTemplate"></ng-container>
2250
- </div>
2251
- </ng-template>
2252
- </ng-container>
2253
- </ng-template>
2254
- <div class="k-toolbar-separator k-toolbar-button-separator k-separator" *ngIf="showOverflowSeparator"></div>
2255
1462
  <button
2256
1463
  kendoButton
2257
1464
  fillMode="flat"
2258
1465
  #overflowButton
2259
1466
  type="button"
2260
- [icon]="overflowButtonIcon('font')"
2261
- [svgIcon]="overflowButtonIcon('svg')"
1467
+ icon="more-vertical"
1468
+ [svgIcon]="moreVerticalIcon"
2262
1469
  tabindex="-1"
2263
1470
  [title]="moreToolsTitle"
2264
1471
  [attr.aria-label]="moreToolsTitle"
2265
1472
  [attr.aria-expanded]="popupOpen"
2266
1473
  [id]="overflowBtnId"
2267
- [attr.aria-haspopup]="normalizedOverflow.mode === 'section' ? null : 'menu'"
2268
- *ngIf="showMenu"
1474
+ aria-haspopup="menu"
1475
+ *ngIf="overflow"
2269
1476
  [style.visibility]="'hidden'"
2270
1477
  [style.position]="'relative'"
1478
+ [style.margin-inline-start]="'auto'"
2271
1479
  class="k-toolbar-overflow-button"
2272
1480
  [ngClass]="overflowClass"
2273
1481
  (click)="showPopup()"
2274
1482
  >
2275
1483
  </button>
2276
- <ng-container *ngIf="show && (hasScrollButtons.position === 'split' || hasScrollButtons.position === 'end')">
2277
- <div class="k-toolbar-separator k-toolbar-button-separator k-separator"></div>
2278
- <span *ngIf="hasScrollButtons.position === 'split'" #nextScrollButton
2279
- kendoToolbarScrollableButton
2280
- [prev]="false"
2281
- [overflow]="normalizedOverflow"
2282
- [title]="getScrollButtonTitle('next')"
2283
- class="k-toolbar-next k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
2284
- [ngClass]="{
2285
- 'k-button-sm': size === 'small',
2286
- 'k-button-md': size === 'medium' || !size,
2287
- 'k-button-lg': size === 'large'
2288
- }"
2289
- (onClick)="scrollTools($event)">
2290
- </span>
2291
- <div class="k-button-group k-button-group-solid" *ngIf="hasScrollButtons.position === 'end'" #endButtonGroup>
2292
- <span #prevScrollButton
2293
- kendoToolbarScrollableButton
2294
- [prev]="true"
2295
- [overflow]="normalizedOverflow"
2296
- [title]="getScrollButtonTitle('prev')"
2297
- class="k-toolbar-prev k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
2298
- [ngClass]="{
2299
- 'k-button-sm': size === 'small',
2300
- 'k-button-md': size === 'medium' || !size,
2301
- 'k-button-lg': size === 'large'
2302
- }"
2303
- (onClick)="scrollTools($event)">
2304
- </span>
2305
- <span #nextScrollButton
2306
- kendoToolbarScrollableButton
2307
- [prev]="false"
2308
- [overflow]="normalizedOverflow"
2309
- [title]="getScrollButtonTitle('next')"
2310
- class="k-toolbar-next k-icon-button k-button k-button-solid k-button-solid-base k-rounded-md"
2311
- [ngClass]="{
2312
- 'k-button-sm': size === 'small',
2313
- 'k-button-md': size === 'medium' || !size,
2314
- 'k-button-lg': size === 'large'
2315
- }"
2316
- (onClick)="scrollTools($event)">
2317
- </span>
2318
- </div>
2319
- </ng-container>
2320
1484
  <ng-template #popupTemplate>
2321
1485
  <div
2322
1486
  class="k-menu-group k-menu-group-md"
2323
1487
  role="menu"
2324
1488
  [id]="popupId"
2325
- [attr.dir]="direction === 'rtl' ? 'rtl' : null"
2326
1489
  [attr.aria-labelledby]="overflowBtnId">
2327
1490
  <ng-container *ngFor="let tool of overflowTools; let index = index">
2328
1491
  <ng-template
@@ -2330,7 +1493,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2330
1493
  kendoToolbarRenderer
2331
1494
  [tool]="tool"
2332
1495
  location="overflow"
2333
- [resizable]="resizable"
1496
+ [resizable]="overflow"
2334
1497
  (rendererClick)="onRendererClick($event)"
2335
1498
  [ngTemplateOutlet]="tool.isBuiltInTool ? tool.popupTemplate : popupWrapper"></ng-template>
2336
1499
  <ng-template #popupWrapper>
@@ -2341,33 +1504,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2341
1504
  </ng-container>
2342
1505
  </div>
2343
1506
  </ng-template>
2344
- <ng-template #popupSectionTemplate>
2345
- <span class="k-toolbar-items-list k-toolbar-items-list-solid"
2346
- [ngClass]="sectionSizeClass"
2347
- role="toolbar"
2348
- [id]="popupId"
2349
- [attr.dir]="direction === 'rtl' ? 'rtl' : null"
2350
- [attr.aria-labelledby]="overflowBtnId">
2351
- <ng-container *ngFor="let tool of overflowTools; let index = index"
2352
- kendoToolbarRenderer
2353
- [tool]="tool"
2354
- location="section"
2355
- [resizable]="resizable"
2356
- (rendererClick)="onRendererClick($event)"
2357
- [ngTemplateOutlet]="tool.isBuiltInTool ? tool.sectionTemplate : wrapper">
2358
- <ng-template #wrapper>
2359
- <ng-container [ngTemplateOutlet]="tool.sectionTemplate"></ng-container>
2360
- </ng-template>
2361
- </ng-container>
2362
- </span>
2363
- </ng-template>
2364
1507
  <ng-container #container></ng-container>
2365
- <kendo-resize-sensor *ngIf="overflowEnabled" #resizeSensor></kendo-resize-sensor>
1508
+ <kendo-resize-sensor *ngIf="overflow" #resizeSensor></kendo-resize-sensor>
2366
1509
  `,
2367
1510
  standalone: true,
2368
- imports: [NgTemplateOutlet, LocalizedToolbarMessagesDirective, NgFor, ToolBarRendererComponent, NgIf, ButtonComponent, NgClass, ResizeSensorComponent, ButtonGroupComponent, ToolbarScrollableButtonComponent]
1511
+ imports: [NgTemplateOutlet, LocalizedToolbarMessagesDirective, NgFor, ToolBarRendererComponent, NgIf, ButtonComponent, NgClass, ResizeSensorComponent]
2369
1512
  }]
2370
- }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.PopupService }, { type: RefreshService }, { type: NavigationService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: ToolbarToolsService }, { type: ScrollService }]; }, propDecorators: { overflow: [{
1513
+ }], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i2.PopupService }, { type: RefreshService }, { type: NavigationService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: ToolbarToolsService }]; }, propDecorators: { overflow: [{
2371
1514
  type: Input
2372
1515
  }], resizable: [{
2373
1516
  type: Input
@@ -2395,42 +1538,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2395
1538
  }], popupTemplate: [{
2396
1539
  type: ViewChild,
2397
1540
  args: ['popupTemplate', { static: true }]
2398
- }], popupSectionTemplate: [{
2399
- type: ViewChild,
2400
- args: ['popupSectionTemplate', { static: true }]
2401
- }], scrollContainer: [{
2402
- type: ViewChild,
2403
- args: ['scrollContainer', { read: ElementRef, static: false }]
2404
1541
  }], resizeSensor: [{
2405
1542
  type: ViewChild,
2406
1543
  args: ['resizeSensor', { static: false }]
2407
1544
  }], container: [{
2408
1545
  type: ViewChild,
2409
1546
  args: ['container', { read: ViewContainerRef, static: true }]
2410
- }], prevScrollButton: [{
2411
- type: ViewChild,
2412
- args: ['prevScrollButton', { read: ElementRef }]
2413
- }], nextScrollButton: [{
2414
- type: ViewChild,
2415
- args: ['nextScrollButton', { read: ElementRef }]
2416
- }], startButtonGroup: [{
2417
- type: ViewChild,
2418
- args: ['startButtonGroup', { read: ElementRef }]
2419
- }], endButtonGroup: [{
2420
- type: ViewChild,
2421
- args: ['endButtonGroup', { read: ElementRef }]
2422
- }], scrollSeparator: [{
2423
- type: ViewChild,
2424
- args: ['scrollSeparator', { read: ElementRef }]
2425
1547
  }], hostClass: [{
2426
1548
  type: HostBinding,
2427
1549
  args: ['class.k-toolbar']
2428
- }], scrollableClass: [{
2429
- type: HostBinding,
2430
- args: ['class.k-toolbar-scrollable']
2431
- }], sectionClass: [{
2432
- type: HostBinding,
2433
- args: ['class.k-toolbar-section']
2434
1550
  }], onFocus: [{
2435
1551
  type: HostListener,
2436
1552
  args: ['focus', ['$event']]
@@ -2623,7 +1739,6 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
2623
1739
  imageUrl: ''
2624
1740
  };
2625
1741
  toolbarButtonElement;
2626
- sectionButtonElement;
2627
1742
  overflowButtonElement;
2628
1743
  _showText = 'both';
2629
1744
  _text;
@@ -2683,7 +1798,7 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
2683
1798
  this.selectedChange.emit(state);
2684
1799
  }
2685
1800
  getButton() {
2686
- return this[`${this.location}ButtonElement`]?.nativeElement;
1801
+ return (this.overflowButtonElement || this.toolbarButtonElement).nativeElement;
2687
1802
  }
2688
1803
  setTextDisplayMode() {
2689
1804
  this.toolbarOptions.text = this.showText === 'overflow' ? undefined : this.text;
@@ -2692,7 +1807,7 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
2692
1807
  });
2693
1808
  }
2694
1809
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2695
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarButtonComponent, isStandalone: true, selector: "kendo-toolbar-button", inputs: { showText: "showText", showIcon: "showIcon", text: "text", style: "style", className: "className", title: "title", disabled: "disabled", toggleable: "toggleable", look: "look", togglable: "togglable", selected: "selected", fillMode: "fillMode", themeColor: "themeColor", icon: "icon", iconClass: "iconClass", svgIcon: "svgIcon", imageUrl: "imageUrl" }, outputs: { click: "click", pointerdown: "pointerdown", selectedChange: "selectedChange" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarButtonComponent) }], viewQueries: [{ propertyName: "toolbarButtonElement", first: true, predicate: ["toolbarButton"], descendants: true, read: ElementRef }, { propertyName: "sectionButtonElement", first: true, predicate: ["sectionButton"], descendants: true, read: ElementRef }, { propertyName: "overflowButtonElement", first: true, predicate: ["overflowButton"], descendants: true, read: ElementRef }], exportAs: ["kendoToolBarButton"], usesInheritance: true, ngImport: i0, template: `
1810
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarButtonComponent, isStandalone: true, selector: "kendo-toolbar-button", inputs: { showText: "showText", showIcon: "showIcon", text: "text", style: "style", className: "className", title: "title", disabled: "disabled", toggleable: "toggleable", look: "look", togglable: "togglable", selected: "selected", fillMode: "fillMode", themeColor: "themeColor", icon: "icon", iconClass: "iconClass", svgIcon: "svgIcon", imageUrl: "imageUrl" }, outputs: { click: "click", pointerdown: "pointerdown", selectedChange: "selectedChange" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarButtonComponent) }], viewQueries: [{ propertyName: "toolbarButtonElement", first: true, predicate: ["toolbarButton"], descendants: true, read: ElementRef }, { propertyName: "overflowButtonElement", first: true, predicate: ["overflowButton"], descendants: true, read: ElementRef }], exportAs: ["kendoToolBarButton"], usesInheritance: true, ngImport: i0, template: `
2696
1811
  <ng-template #toolbarTemplate>
2697
1812
  <button
2698
1813
  #toolbarButton
@@ -2745,34 +1860,6 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
2745
1860
  </span>
2746
1861
  </div>
2747
1862
  </ng-template>
2748
- <ng-template #sectionTemplate>
2749
- <button
2750
- #sectionButton
2751
- [class.k-toolbar-button]="!toggleable"
2752
- [class.k-toolbar-toggle-button]="toggleable"
2753
- [tabindex]="tabIndex"
2754
- type="button"
2755
- kendoButton
2756
- [ngStyle]="style"
2757
- [ngClass]="className"
2758
- [attr.title]="title"
2759
- [disabled]="disabled"
2760
- [toggleable]="toggleable"
2761
- [fillMode]="fillMode"
2762
- [themeColor]="fillMode ? themeColor : null"
2763
- [selected]="selected"
2764
- [icon]="toolbarOptions.icon"
2765
- [iconClass]="toolbarOptions.iconClass"
2766
- [svgIcon]="toolbarOptions.svgIcon"
2767
- [imageUrl]="toolbarOptions.imageUrl"
2768
- (click)="click.emit($event)"
2769
- (pointerdown)="pointerdown.emit($event)"
2770
- (selectedChange)="selectedChangeHandler($event)"
2771
- (blur)="onBlur()"
2772
- >
2773
- {{ toolbarOptions.text }}
2774
- </button>
2775
- </ng-template>
2776
1863
  `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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"] }] });
2777
1864
  }
2778
1865
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarButtonComponent, decorators: [{
@@ -2834,34 +1921,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2834
1921
  </span>
2835
1922
  </div>
2836
1923
  </ng-template>
2837
- <ng-template #sectionTemplate>
2838
- <button
2839
- #sectionButton
2840
- [class.k-toolbar-button]="!toggleable"
2841
- [class.k-toolbar-toggle-button]="toggleable"
2842
- [tabindex]="tabIndex"
2843
- type="button"
2844
- kendoButton
2845
- [ngStyle]="style"
2846
- [ngClass]="className"
2847
- [attr.title]="title"
2848
- [disabled]="disabled"
2849
- [toggleable]="toggleable"
2850
- [fillMode]="fillMode"
2851
- [themeColor]="fillMode ? themeColor : null"
2852
- [selected]="selected"
2853
- [icon]="toolbarOptions.icon"
2854
- [iconClass]="toolbarOptions.iconClass"
2855
- [svgIcon]="toolbarOptions.svgIcon"
2856
- [imageUrl]="toolbarOptions.imageUrl"
2857
- (click)="click.emit($event)"
2858
- (pointerdown)="pointerdown.emit($event)"
2859
- (selectedChange)="selectedChangeHandler($event)"
2860
- (blur)="onBlur()"
2861
- >
2862
- {{ toolbarOptions.text }}
2863
- </button>
2864
- </ng-template>
2865
1924
  `,
2866
1925
  standalone: true,
2867
1926
  imports: [ButtonComponent, NgStyle, NgClass, NgIf, IconWrapperComponent]
@@ -2909,9 +1968,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2909
1968
  }], toolbarButtonElement: [{
2910
1969
  type: ViewChild,
2911
1970
  args: ['toolbarButton', { read: ElementRef }]
2912
- }], sectionButtonElement: [{
2913
- type: ViewChild,
2914
- args: ['sectionButton', { read: ElementRef }]
2915
1971
  }], overflowButtonElement: [{
2916
1972
  type: ViewChild,
2917
1973
  args: ['overflowButton', { read: ElementRef }]
@@ -2957,18 +2013,12 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
2957
2013
  }
2958
2014
  }
2959
2015
  toolbarButtonGroup;
2960
- sectionButtonGroup;
2961
2016
  overflowListItems;
2962
2017
  buttonComponents;
2963
2018
  get buttonElements() {
2964
- if (this.overflows && this.location === 'overflow') {
2019
+ if (this.overflows) {
2965
2020
  return [...this.overflowListItems.toArray().filter(el => !el.nativeElement.classList.contains('k-disabled'))].map(el => el.nativeElement);
2966
2021
  }
2967
- else if (this.overflows && this.location === 'section') {
2968
- return this.sectionButtonGroup
2969
- .buttons.filter(b => !b.isDisabled)
2970
- .map(b => b.element);
2971
- }
2972
2022
  else {
2973
2023
  return this.toolbarButtonGroup
2974
2024
  .buttons.filter(b => !b.isDisabled)
@@ -3036,8 +2086,8 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
3036
2086
  * @hidden
3037
2087
  */
3038
2088
  focus(ev = {}) {
3039
- const nextKey = this.getNextKey((this.overflows && this.location === 'overflow'));
3040
- const prevKey = this.getPrevKey((this.overflows && this.location === 'overflow'));
2089
+ const nextKey = this.getNextKey(this.overflows);
2090
+ const prevKey = this.getPrevKey(this.overflows);
3041
2091
  this.focusedIndex = getIndexOfFocused(prevKey, nextKey, this.buttonElements)(ev);
3042
2092
  this.focusButton(this.focusedIndex, ev);
3043
2093
  }
@@ -3045,8 +2095,8 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
3045
2095
  * @hidden
3046
2096
  */
3047
2097
  handleKey(ev) {
3048
- const nextKey = this.getNextKey((this.overflows && this.location === 'overflow'));
3049
- const prevKey = this.getPrevKey((this.overflows && this.location === 'overflow'));
2098
+ const nextKey = this.getNextKey(this.overflows);
2099
+ const prevKey = this.getPrevKey(this.overflows);
3050
2100
  const peekAtIndex = makePeeker(this.buttonElements);
3051
2101
  const isUnmodified = areEqual(this.focusedIndex);
3052
2102
  this.focusedIndex = seekFocusedIndex(prevKey, nextKey, peekAtIndex)(this.focusedIndex, ev);
@@ -3082,7 +2132,7 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
3082
2132
  }
3083
2133
  }
3084
2134
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarButtonGroupComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
3085
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarButtonGroupComponent, isStandalone: true, selector: "kendo-toolbar-buttongroup", inputs: { disabled: "disabled", fillMode: "fillMode", selection: "selection", width: "width", look: "look" }, providers: [LocalizationService, { provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarButtonGroupComponent) }], queries: [{ propertyName: "buttonComponents", predicate: i0.forwardRef(function () { return ToolBarButtonComponent; }) }], viewQueries: [{ propertyName: "toolbarButtonGroup", first: true, predicate: ["toolbarButtonGroup"], descendants: true }, { propertyName: "sectionButtonGroup", first: true, predicate: ["sectionButtonGroup"], descendants: true }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarButtonGroup"], usesInheritance: true, ngImport: i0, template: `
2135
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarButtonGroupComponent, isStandalone: true, selector: "kendo-toolbar-buttongroup", inputs: { disabled: "disabled", fillMode: "fillMode", selection: "selection", width: "width", look: "look" }, providers: [LocalizationService, { provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarButtonGroupComponent) }], queries: [{ propertyName: "buttonComponents", predicate: i0.forwardRef(function () { return ToolBarButtonComponent; }) }], viewQueries: [{ propertyName: "toolbarButtonGroup", first: true, predicate: ["toolbarButtonGroup"], descendants: true }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarButtonGroup"], usesInheritance: true, ngImport: i0, template: `
3086
2136
  <ng-template #toolbarTemplate>
3087
2137
  <kendo-buttongroup
3088
2138
  class="k-toolbar-button-group k-button-group-{{fillMode}}"
@@ -3144,42 +2194,6 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
3144
2194
  </span>
3145
2195
  </div>
3146
2196
  </ng-template>
3147
- <ng-template #sectionTemplate>
3148
- <kendo-buttongroup
3149
- class="k-toolbar-button-group k-button-group-{{fillMode}}"
3150
- #sectionButtonGroup
3151
- [tabIndex]="-1"
3152
- [selection]="selection"
3153
- [disabled]="disabled"
3154
- [width]="width"
3155
- (navigate)="onNavigate($event)"
3156
- (focus)="onFocus()"
3157
- >
3158
- <button
3159
- kendoButton
3160
- type="button"
3161
- *ngFor="let button of buttonComponents"
3162
- [ngStyle]="button.style"
3163
- [ngClass]="button.className"
3164
- [attr.title]="button.title"
3165
- [disabled]="button.disabled"
3166
- [togglable]="button.togglable"
3167
- [selected]="button.selected"
3168
- [attr.aria-pressed]="button.selected ? true : false"
3169
- [fillMode]="button.fillMode"
3170
- [themeColor]="button.fillMode ? button.themeColor : null"
3171
- [icon]="button.toolbarOptions.icon"
3172
- [iconClass]="button.toolbarOptions.iconClass"
3173
- [svgIcon]="button.toolbarOptions.svgIcon"
3174
- [imageUrl]="button.toolbarOptions.imageUrl"
3175
- (click)="button.click.emit($event); onButtonClick($event)"
3176
- (pointerdown)="button.pointerdown.emit($event)"
3177
- (selectedChange)="selectedChangeHandler($event, button)"
3178
- >
3179
- {{ button.toolbarOptions.text }}
3180
- </button>
3181
- </kendo-buttongroup>
3182
- </ng-template>
3183
2197
  `, isInline: true, dependencies: [{ kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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"] }] });
3184
2198
  }
3185
2199
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarButtonGroupComponent, decorators: [{
@@ -3250,42 +2264,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3250
2264
  </span>
3251
2265
  </div>
3252
2266
  </ng-template>
3253
- <ng-template #sectionTemplate>
3254
- <kendo-buttongroup
3255
- class="k-toolbar-button-group k-button-group-{{fillMode}}"
3256
- #sectionButtonGroup
3257
- [tabIndex]="-1"
3258
- [selection]="selection"
3259
- [disabled]="disabled"
3260
- [width]="width"
3261
- (navigate)="onNavigate($event)"
3262
- (focus)="onFocus()"
3263
- >
3264
- <button
3265
- kendoButton
3266
- type="button"
3267
- *ngFor="let button of buttonComponents"
3268
- [ngStyle]="button.style"
3269
- [ngClass]="button.className"
3270
- [attr.title]="button.title"
3271
- [disabled]="button.disabled"
3272
- [togglable]="button.togglable"
3273
- [selected]="button.selected"
3274
- [attr.aria-pressed]="button.selected ? true : false"
3275
- [fillMode]="button.fillMode"
3276
- [themeColor]="button.fillMode ? button.themeColor : null"
3277
- [icon]="button.toolbarOptions.icon"
3278
- [iconClass]="button.toolbarOptions.iconClass"
3279
- [svgIcon]="button.toolbarOptions.svgIcon"
3280
- [imageUrl]="button.toolbarOptions.imageUrl"
3281
- (click)="button.click.emit($event); onButtonClick($event)"
3282
- (pointerdown)="button.pointerdown.emit($event)"
3283
- (selectedChange)="selectedChangeHandler($event, button)"
3284
- >
3285
- {{ button.toolbarOptions.text }}
3286
- </button>
3287
- </kendo-buttongroup>
3288
- </ng-template>
3289
2267
  `,
3290
2268
  standalone: true,
3291
2269
  imports: [ButtonGroupComponent, NgFor, ButtonComponent, NgStyle, NgClass, NgIf, IconWrapperComponent]
@@ -3303,9 +2281,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3303
2281
  }], toolbarButtonGroup: [{
3304
2282
  type: ViewChild,
3305
2283
  args: ['toolbarButtonGroup', { static: false }]
3306
- }], sectionButtonGroup: [{
3307
- type: ViewChild,
3308
- args: ['sectionButtonGroup', { static: false }]
3309
2284
  }], overflowListItems: [{
3310
2285
  type: ViewChildren,
3311
2286
  args: ['listItem']
@@ -3496,8 +2471,7 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
3496
2471
  */
3497
2472
  close = new EventEmitter();
3498
2473
  dropdownButton;
3499
- toolbarDropDownButton;
3500
- sectionDropDownButton;
2474
+ dropDownButtonComponent;
3501
2475
  overflowListItems;
3502
2476
  toolbarOptions = {
3503
2477
  text: '',
@@ -3535,9 +2509,7 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
3535
2509
  this.setTextDisplayMode();
3536
2510
  }
3537
2511
  ngAfterViewInit() {
3538
- this.zone.onStable.pipe(take(1)).subscribe(() => {
3539
- this.renderer.addClass(this[`${this.location}DropDownButton`].button.nativeElement, 'k-toolbar-menu-button');
3540
- });
2512
+ this.zone.onStable.pipe(take(1)).subscribe(() => (this.renderer.addClass(this.dropDownButtonComponent.button.nativeElement, 'k-toolbar-menu-button')));
3541
2513
  }
3542
2514
  /**
3543
2515
  * @hidden
@@ -3557,9 +2529,9 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
3557
2529
  * @hidden
3558
2530
  */
3559
2531
  focus(ev = {}) {
3560
- if (!this.overflows || this.location === 'section') {
3561
- if (!ev.type || ev.type === 'focus' || ev.type === 'keydown') {
3562
- this[`${this.location}DropDownButton`]?.focus();
2532
+ if (!this.overflows) {
2533
+ if (ev.type === 'focus' || ev.type === 'keydown') {
2534
+ this.dropDownButtonComponent?.focus();
3563
2535
  }
3564
2536
  }
3565
2537
  else if (this.overflowButtons.length > 0) {
@@ -3574,7 +2546,7 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
3574
2546
  if (!this.overflows && (ev.keyCode === this.getPrevKey(this.overflows) || ev.keyCode === this.getNextKey(this.overflows))) {
3575
2547
  return false;
3576
2548
  }
3577
- if (this.overflows && this.location !== 'section') {
2549
+ if (this.overflows) {
3578
2550
  const peekAtIndex = makePeeker(this.overflowButtons);
3579
2551
  const isUnmodified = areEqual(this.focusedIndex);
3580
2552
  this.focusedIndex = seekFocusedIndex(this.getPrevKey(), this.getNextKey(), peekAtIndex)(this.focusedIndex, ev);
@@ -3612,9 +2584,9 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
3612
2584
  this.overflowOptions.text = this.showText === 'toolbar' ? undefined : this.text;
3613
2585
  }
3614
2586
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarDropDownButtonComponent, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
3615
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarDropDownButtonComponent, isStandalone: true, selector: "kendo-toolbar-dropdownbutton", inputs: { arrowIcon: "arrowIcon", title: "title", showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", popupSettings: "popupSettings", look: "look", primary: "primary", fillMode: "fillMode", themeColor: "themeColor", buttonClass: "buttonClass", textField: "textField", disabled: "disabled", data: "data" }, outputs: { itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarDropDownButtonComponent) }], viewQueries: [{ propertyName: "dropdownButton", first: true, predicate: ["dropdownButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "toolbarDropDownButton", first: true, predicate: ["toolbarDropDownButton"], descendants: true }, { propertyName: "sectionDropDownButton", first: true, predicate: ["sectionDropDownButton"], descendants: true }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarDropDownButton"], usesInheritance: true, ngImport: i0, template: `
2587
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarDropDownButtonComponent, isStandalone: true, selector: "kendo-toolbar-dropdownbutton", inputs: { arrowIcon: "arrowIcon", title: "title", showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", popupSettings: "popupSettings", look: "look", primary: "primary", fillMode: "fillMode", themeColor: "themeColor", buttonClass: "buttonClass", textField: "textField", disabled: "disabled", data: "data" }, outputs: { itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarDropDownButtonComponent) }], viewQueries: [{ propertyName: "dropdownButton", first: true, predicate: ["dropdownButton"], descendants: true, read: ElementRef, static: true }, { propertyName: "dropDownButtonComponent", first: true, predicate: DropDownButtonComponent, descendants: true }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarDropDownButton"], usesInheritance: true, ngImport: i0, template: `
3616
2588
  <ng-template #toolbarTemplate>
3617
- <kendo-dropdownbutton #toolbarDropDownButton
2589
+ <kendo-dropdownbutton
3618
2590
  [icon]="toolbarOptions.icon"
3619
2591
  [iconClass]="toolbarOptions.iconClass"
3620
2592
  [svgIcon]="toolbarOptions.svgIcon"
@@ -3636,7 +2608,6 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
3636
2608
  {{ toolbarOptions.text }}
3637
2609
  </kendo-dropdownbutton>
3638
2610
  </ng-template>
3639
-
3640
2611
  <ng-template #popupTemplate>
3641
2612
  <div
3642
2613
  tabindex="-1"
@@ -3677,30 +2648,6 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
3677
2648
  </div>
3678
2649
  </ng-container>
3679
2650
  </ng-template>
3680
-
3681
- <ng-template #sectionTemplate>
3682
- <kendo-dropdownbutton #sectionDropDownButton
3683
- [icon]="toolbarOptions.icon"
3684
- [iconClass]="toolbarOptions.iconClass"
3685
- [svgIcon]="toolbarOptions.svgIcon"
3686
- [imageUrl]="toolbarOptions.imageUrl"
3687
- [arrowIcon]="arrowIcon"
3688
- [buttonClass]="buttonClass"
3689
- [disabled]="disabled"
3690
- [tabIndex]="-1"
3691
- [data]="data"
3692
- [buttonAttributes]="{'title': title}"
3693
- [textField]="textField"
3694
- [popupSettings]="popupSettings"
3695
- [fillMode]="fillMode"
3696
- [themeColor]="fillMode ? themeColor : null"
3697
- (open)="open.emit($event)"
3698
- (close)="close.emit($event)"
3699
- (itemClick)="itemClick.emit($event)"
3700
- >
3701
- {{ toolbarOptions.text }}
3702
- </kendo-dropdownbutton>
3703
- </ng-template>
3704
2651
  `, isInline: true, dependencies: [{ kind: "component", type: DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3705
2652
  }
3706
2653
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarDropDownButtonComponent, decorators: [{
@@ -3711,7 +2658,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3711
2658
  selector: 'kendo-toolbar-dropdownbutton',
3712
2659
  template: `
3713
2660
  <ng-template #toolbarTemplate>
3714
- <kendo-dropdownbutton #toolbarDropDownButton
2661
+ <kendo-dropdownbutton
3715
2662
  [icon]="toolbarOptions.icon"
3716
2663
  [iconClass]="toolbarOptions.iconClass"
3717
2664
  [svgIcon]="toolbarOptions.svgIcon"
@@ -3733,7 +2680,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3733
2680
  {{ toolbarOptions.text }}
3734
2681
  </kendo-dropdownbutton>
3735
2682
  </ng-template>
3736
-
3737
2683
  <ng-template #popupTemplate>
3738
2684
  <div
3739
2685
  tabindex="-1"
@@ -3774,30 +2720,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3774
2720
  </div>
3775
2721
  </ng-container>
3776
2722
  </ng-template>
3777
-
3778
- <ng-template #sectionTemplate>
3779
- <kendo-dropdownbutton #sectionDropDownButton
3780
- [icon]="toolbarOptions.icon"
3781
- [iconClass]="toolbarOptions.iconClass"
3782
- [svgIcon]="toolbarOptions.svgIcon"
3783
- [imageUrl]="toolbarOptions.imageUrl"
3784
- [arrowIcon]="arrowIcon"
3785
- [buttonClass]="buttonClass"
3786
- [disabled]="disabled"
3787
- [tabIndex]="-1"
3788
- [data]="data"
3789
- [buttonAttributes]="{'title': title}"
3790
- [textField]="textField"
3791
- [popupSettings]="popupSettings"
3792
- [fillMode]="fillMode"
3793
- [themeColor]="fillMode ? themeColor : null"
3794
- (open)="open.emit($event)"
3795
- (close)="close.emit($event)"
3796
- (itemClick)="itemClick.emit($event)"
3797
- >
3798
- {{ toolbarOptions.text }}
3799
- </kendo-dropdownbutton>
3800
- </ng-template>
3801
2723
  `,
3802
2724
  standalone: true,
3803
2725
  imports: [DropDownButtonComponent, NgClass, NgIf, IconWrapperComponent, NgFor]
@@ -3847,12 +2769,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3847
2769
  }], dropdownButton: [{
3848
2770
  type: ViewChild,
3849
2771
  args: ['dropdownButton', { read: ElementRef, static: true }]
3850
- }], toolbarDropDownButton: [{
2772
+ }], dropDownButtonComponent: [{
3851
2773
  type: ViewChild,
3852
- args: ['toolbarDropDownButton', { static: false }]
3853
- }], sectionDropDownButton: [{
3854
- type: ViewChild,
3855
- args: ['sectionDropDownButton', { static: false }]
2774
+ args: [DropDownButtonComponent, { static: false }]
3856
2775
  }], overflowListItems: [{
3857
2776
  type: ViewChildren,
3858
2777
  args: ['listItem']
@@ -4068,7 +2987,6 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
4068
2987
  getNextKey;
4069
2988
  getPrevKey;
4070
2989
  toolbarSplitButton;
4071
- sectionSplitButton;
4072
2990
  overflowMainButton;
4073
2991
  overflowListItems;
4074
2992
  constructor() {
@@ -4100,9 +3018,9 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
4100
3018
  * @hidden
4101
3019
  */
4102
3020
  focus(ev = {}) {
4103
- if (!this.overflows || this.location === 'section') {
4104
- if (!ev.type || ev.type === 'focus' || ev.type === 'keydown') {
4105
- this[`${this.location}SplitButton`].focus();
3021
+ if (!this.overflows) {
3022
+ if (ev.type === 'focus' || ev.type === 'keydown') {
3023
+ this.toolbarSplitButton.focus();
4106
3024
  }
4107
3025
  }
4108
3026
  else if (this.overflowButtons.length > 0) {
@@ -4146,7 +3064,7 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
4146
3064
  this.itemClick.emit(dataItem);
4147
3065
  }
4148
3066
  focusButton(index, ev) {
4149
- if ((!ev.type || ev.type === 'focus' || ev.type === 'keydown' || ev.type === 'click') && this.location !== 'section') {
3067
+ if (!ev.type || ev.type === 'focus' || ev.type === 'keydown' || ev.type === 'click') {
4150
3068
  this.overflowButtons[index].nativeElement.focus();
4151
3069
  }
4152
3070
  }
@@ -4155,7 +3073,7 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
4155
3073
  this.overflowOptions.text = this.showText === 'toolbar' ? undefined : this.text;
4156
3074
  }
4157
3075
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarSplitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4158
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarSplitButtonComponent, isStandalone: true, selector: "kendo-toolbar-splitbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", disabled: "disabled", popupSettings: "popupSettings", fillMode: "fillMode", themeColor: "themeColor", look: "look", buttonClass: "buttonClass", arrowButtonClass: "arrowButtonClass", arrowButtonIcon: "arrowButtonIcon", arrowButtonSvgIcon: "arrowButtonSvgIcon", textField: "textField", data: "data" }, outputs: { buttonClick: "buttonClick", itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent) }], viewQueries: [{ propertyName: "toolbarSplitButton", first: true, predicate: ["toolbarSplitButton"], descendants: true }, { propertyName: "sectionSplitButton", first: true, predicate: ["sectionSplitButton"], descendants: true }, { propertyName: "overflowMainButton", first: true, predicate: ["overflowMainButton"], descendants: true, read: ElementRef }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarSplitButton"], usesInheritance: true, ngImport: i0, template: `
3076
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolBarSplitButtonComponent, isStandalone: true, selector: "kendo-toolbar-splitbutton", inputs: { showText: "showText", showIcon: "showIcon", text: "text", icon: "icon", svgIcon: "svgIcon", iconClass: "iconClass", imageUrl: "imageUrl", disabled: "disabled", popupSettings: "popupSettings", fillMode: "fillMode", themeColor: "themeColor", look: "look", buttonClass: "buttonClass", arrowButtonClass: "arrowButtonClass", arrowButtonIcon: "arrowButtonIcon", arrowButtonSvgIcon: "arrowButtonSvgIcon", textField: "textField", data: "data" }, outputs: { buttonClick: "buttonClick", itemClick: "itemClick", open: "open", close: "close" }, providers: [{ provide: ToolBarToolComponent, useExisting: forwardRef(() => ToolBarSplitButtonComponent) }], viewQueries: [{ propertyName: "toolbarSplitButton", first: true, predicate: ["toolbarSplitButton"], descendants: true }, { propertyName: "overflowMainButton", first: true, predicate: ["overflowMainButton"], descendants: true, read: ElementRef }, { propertyName: "overflowListItems", predicate: ["listItem"], descendants: true }], exportAs: ["kendoToolBarSplitButton"], usesInheritance: true, ngImport: i0, template: `
4159
3077
  <ng-template #toolbarTemplate>
4160
3078
  <kendo-splitbutton
4161
3079
  #toolbarSplitButton
@@ -4225,32 +3143,6 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
4225
3143
  </div>
4226
3144
  </ng-container>
4227
3145
  </ng-template>
4228
- <ng-template #sectionTemplate>
4229
- <kendo-splitbutton
4230
- #sectionSplitButton
4231
- class="k-toolbar-split-button"
4232
- [data]="data"
4233
- [text]="toolbarOptions.text"
4234
- [icon]="toolbarOptions.icon"
4235
- [iconClass]="toolbarOptions.iconClass"
4236
- [svgIcon]="toolbarOptions.svgIcon"
4237
- [imageUrl]="toolbarOptions.imageUrl"
4238
- [buttonClass]="buttonClass"
4239
- [arrowButtonClass]="arrowButtonClass"
4240
- [arrowButtonIcon]="arrowButtonIcon"
4241
- [arrowButtonSvgIcon]="arrowButtonSvgIcon"
4242
- [disabled]="disabled"
4243
- [tabIndex]="-1"
4244
- [textField]="textField"
4245
- [popupSettings]="popupSettings"
4246
- [fillMode]="fillMode"
4247
- [themeColor]="fillMode ? themeColor : null"
4248
- (buttonClick)="buttonClick.emit($event)"
4249
- (open)="open.emit($event)"
4250
- (close)="close.emit($event)"
4251
- (itemClick)="itemClick.emit($event)"
4252
- ></kendo-splitbutton>
4253
- </ng-template>
4254
3146
  `, isInline: true, dependencies: [{ kind: "component", type: SplitButtonComponent, selector: "kendo-splitbutton", inputs: ["text", "icon", "svgIcon", "iconClass", "type", "imageUrl", "size", "rounded", "fillMode", "themeColor", "disabled", "popupSettings", "tabIndex", "textField", "data", "arrowButtonClass", "arrowButtonIcon", "arrowButtonSvgIcon", "buttonAttributes"], outputs: ["buttonClick", "itemClick", "focus", "blur", "open", "close"], exportAs: ["kendoSplitButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
4255
3147
  }
4256
3148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolBarSplitButtonComponent, decorators: [{
@@ -4329,32 +3221,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4329
3221
  </div>
4330
3222
  </ng-container>
4331
3223
  </ng-template>
4332
- <ng-template #sectionTemplate>
4333
- <kendo-splitbutton
4334
- #sectionSplitButton
4335
- class="k-toolbar-split-button"
4336
- [data]="data"
4337
- [text]="toolbarOptions.text"
4338
- [icon]="toolbarOptions.icon"
4339
- [iconClass]="toolbarOptions.iconClass"
4340
- [svgIcon]="toolbarOptions.svgIcon"
4341
- [imageUrl]="toolbarOptions.imageUrl"
4342
- [buttonClass]="buttonClass"
4343
- [arrowButtonClass]="arrowButtonClass"
4344
- [arrowButtonIcon]="arrowButtonIcon"
4345
- [arrowButtonSvgIcon]="arrowButtonSvgIcon"
4346
- [disabled]="disabled"
4347
- [tabIndex]="-1"
4348
- [textField]="textField"
4349
- [popupSettings]="popupSettings"
4350
- [fillMode]="fillMode"
4351
- [themeColor]="fillMode ? themeColor : null"
4352
- (buttonClick)="buttonClick.emit($event)"
4353
- (open)="open.emit($event)"
4354
- (close)="close.emit($event)"
4355
- (itemClick)="itemClick.emit($event)"
4356
- ></kendo-splitbutton>
4357
- </ng-template>
4358
3224
  `,
4359
3225
  standalone: true,
4360
3226
  imports: [SplitButtonComponent, NgClass, NgIf, IconWrapperComponent, NgFor]
@@ -4406,9 +3272,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4406
3272
  }], toolbarSplitButton: [{
4407
3273
  type: ViewChild,
4408
3274
  args: ['toolbarSplitButton', { static: false }]
4409
- }], sectionSplitButton: [{
4410
- type: ViewChild,
4411
- args: ['sectionSplitButton', { static: false }]
4412
3275
  }], overflowMainButton: [{
4413
3276
  type: ViewChild,
4414
3277
  args: ['overflowMainButton', { read: ElementRef }]
@@ -4457,10 +3320,6 @@ class ToolBarSeparatorComponent extends ToolBarToolComponent {
4457
3320
  <div class="k-separator k-toolbar-separator"></div>
4458
3321
  </ng-template>
4459
3322
 
4460
- <ng-template #sectionTemplate>
4461
- <div class="k-separator k-toolbar-separator"></div>
4462
- </ng-template>
4463
-
4464
3323
  <ng-template #popupTemplate>
4465
3324
  <div class="k-item k-menu-item">
4466
3325
  <div class="k-separator k-separator-horizontal"></div>
@@ -4479,10 +3338,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4479
3338
  <div class="k-separator k-toolbar-separator"></div>
4480
3339
  </ng-template>
4481
3340
 
4482
- <ng-template #sectionTemplate>
4483
- <div class="k-separator k-toolbar-separator"></div>
4484
- </ng-template>
4485
-
4486
3341
  <ng-template #popupTemplate>
4487
3342
  <div class="k-item k-menu-item">
4488
3343
  <div class="k-separator k-separator-horizontal"></div>