@progress/kendo-angular-toolbar 18.1.0-develop.3 → 18.1.0-develop.31

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/common/overflow-mode.d.ts +8 -0
  2. package/common/overflow-settings.d.ts +53 -0
  3. package/common/scroll-buttons.d.ts +12 -0
  4. package/esm2022/common/overflow-mode.mjs +5 -0
  5. package/esm2022/common/overflow-settings.mjs +5 -0
  6. package/esm2022/common/scroll-buttons.mjs +5 -0
  7. package/esm2022/localization/messages.mjs +14 -2
  8. package/esm2022/navigation.service.mjs +5 -3
  9. package/esm2022/package-metadata.mjs +2 -2
  10. package/esm2022/renderer.component.mjs +8 -0
  11. package/esm2022/scroll.service.mjs +102 -0
  12. package/esm2022/scrollable-button.component.mjs +162 -0
  13. package/esm2022/toolbar.component.mjs +716 -124
  14. package/esm2022/tools/toolbar-button.component.mjs +62 -2
  15. package/esm2022/tools/toolbar-buttongroup.component.mjs +87 -6
  16. package/esm2022/tools/toolbar-dropdownbutton.component.mjs +67 -11
  17. package/esm2022/tools/toolbar-separator.component.mjs +8 -0
  18. package/esm2022/tools/toolbar-splitbutton.component.mjs +61 -5
  19. package/esm2022/tools/toolbar-tool.component.mjs +9 -1
  20. package/esm2022/tools/tools.service.mjs +3 -0
  21. package/esm2022/util.mjs +17 -0
  22. package/fesm2022/progress-kendo-angular-toolbar.mjs +1300 -155
  23. package/index.d.ts +3 -0
  24. package/localization/messages.d.ts +10 -2
  25. package/package.json +9 -9
  26. package/render-location.d.ts +1 -1
  27. package/scroll.service.d.ts +42 -0
  28. package/scrollable-button.component.d.ts +44 -0
  29. package/toolbar.component.d.ts +77 -6
  30. package/tools/toolbar-button.component.d.ts +1 -0
  31. package/tools/toolbar-buttongroup.component.d.ts +1 -0
  32. package/tools/toolbar-dropdownbutton.component.d.ts +2 -1
  33. package/tools/toolbar-splitbutton.component.d.ts +1 -0
  34. package/tools/toolbar-tool.component.d.ts +6 -0
  35. package/tools/tools.service.d.ts +1 -0
  36. package/util.d.ts +5 -0
package/index.d.ts CHANGED
@@ -19,4 +19,7 @@ export { ToolbarCustomMessagesComponent } from './localization/custom-messages.c
19
19
  export { RefreshService } from './refresh.service';
20
20
  export { ToolbarSize } from './common/size';
21
21
  export { ToolbarFillMode } from './common/fillmode';
22
+ export { OverflowMode } from './common/overflow-mode';
23
+ export { ToolbarOverflowSettings } from './common/overflow-settings';
24
+ export { ToolbarScrollButtonsPosition, ToolbarScrollButtonsVisibility } from './common/scroll-buttons';
22
25
  export * from './directives';
@@ -9,9 +9,17 @@ import * as i0 from "@angular/core";
9
9
  */
10
10
  export declare class ToolbarMessages extends ComponentMessages {
11
11
  /**
12
- * The title of the **more tools** button in a responsive ToolBar
12
+ * The title of the **More Tools** button in a responsive ToolBar
13
13
  */
14
14
  moreToolsTitle: string;
15
+ /**
16
+ * The title for the **Previous Tool** button when the Toolbar is scrollable.
17
+ */
18
+ previousToolButton: string;
19
+ /**
20
+ * The title for the **Next Tool** button when the Toolbar is scrollable.
21
+ */
22
+ nextToolButton: string;
15
23
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarMessages, never>;
16
- static ɵdir: i0.ɵɵDirectiveDeclaration<ToolbarMessages, "kendo-toolbar-messages-base", never, { "moreToolsTitle": { "alias": "moreToolsTitle"; "required": false; }; }, {}, never, never, false, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ToolbarMessages, "kendo-toolbar-messages-base", never, { "moreToolsTitle": { "alias": "moreToolsTitle"; "required": false; }; "previousToolButton": { "alias": "previousToolButton"; "required": false; }; "nextToolButton": { "alias": "nextToolButton"; "required": false; }; }, {}, never, never, false, never>;
17
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-toolbar",
3
- "version": "18.1.0-develop.3",
3
+ "version": "18.1.0-develop.31",
4
4
  "description": "Kendo UI Angular Toolbar component - a single UI element that organizes buttons and other navigation elements",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -25,7 +25,7 @@
25
25
  "package": {
26
26
  "productName": "Kendo UI for Angular",
27
27
  "productCode": "KENDOUIANGULAR",
28
- "publishDate": 1738245757,
28
+ "publishDate": 1739264198,
29
29
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
30
30
  }
31
31
  },
@@ -34,17 +34,17 @@
34
34
  "@angular/common": "16 - 19",
35
35
  "@angular/core": "16 - 19",
36
36
  "@angular/platform-browser": "16 - 19",
37
- "@progress/kendo-licensing": "^1.0.2",
38
- "@progress/kendo-angular-buttons": "18.1.0-develop.3",
39
- "@progress/kendo-angular-common": "18.1.0-develop.3",
40
- "@progress/kendo-angular-l10n": "18.1.0-develop.3",
41
- "@progress/kendo-angular-icons": "18.1.0-develop.3",
42
- "@progress/kendo-angular-popup": "18.1.0-develop.3",
37
+ "@progress/kendo-licensing": "^1.4.0",
38
+ "@progress/kendo-angular-buttons": "18.1.0-develop.31",
39
+ "@progress/kendo-angular-common": "18.1.0-develop.31",
40
+ "@progress/kendo-angular-l10n": "18.1.0-develop.31",
41
+ "@progress/kendo-angular-icons": "18.1.0-develop.31",
42
+ "@progress/kendo-angular-popup": "18.1.0-develop.31",
43
43
  "rxjs": "^6.5.3 || ^7.0.0"
44
44
  },
45
45
  "dependencies": {
46
46
  "tslib": "^2.3.1",
47
- "@progress/kendo-angular-schematics": "18.1.0-develop.3"
47
+ "@progress/kendo-angular-schematics": "18.1.0-develop.31"
48
48
  },
49
49
  "schematics": "./schematics/collection.json",
50
50
  "module": "fesm2022/progress-kendo-angular-toolbar.mjs",
@@ -5,4 +5,4 @@
5
5
  /**
6
6
  * @hidden
7
7
  */
8
- export type RenderLocation = "toolbar" | "overflow";
8
+ export type RenderLocation = 'toolbar' | 'overflow' | 'section';
@@ -0,0 +1,42 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { NgZone } from '@angular/core';
6
+ import { Subject } from 'rxjs';
7
+ import { ToolBarComponent } from './toolbar.component';
8
+ import { LocalizationService } from '@progress/kendo-angular-l10n';
9
+ import * as i0 from "@angular/core";
10
+ /**
11
+ * @hidden
12
+ */
13
+ export type ScrollButtonActiveStateChange = {
14
+ buttonType: string;
15
+ active: boolean;
16
+ };
17
+ /**
18
+ * @hidden
19
+ */
20
+ export type ScrollButtonType = 'prev' | 'next';
21
+ /**
22
+ * @hidden
23
+ */
24
+ export declare class ScrollService {
25
+ private ngZone;
26
+ private localization;
27
+ owner: ToolBarComponent;
28
+ position: number;
29
+ scrollButtonActiveStateChange: Subject<ScrollButtonActiveStateChange>;
30
+ get scrollElement(): HTMLElement;
31
+ get scrollContainerOverflowSize(): number;
32
+ get toolsOverflow(): boolean;
33
+ constructor(ngZone: NgZone, localization: LocalizationService);
34
+ toggleScrollButtonsState(): void;
35
+ onScroll(e: Event): void;
36
+ scrollTools(direction: string): void;
37
+ calculateListPosition(direction: string, scrollSpeed: number): void;
38
+ private toggleButtonActiveState;
39
+ private isDisabled;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScrollService, never>;
41
+ static ɵprov: i0.ɵɵInjectableDeclaration<ScrollService>;
42
+ }
@@ -0,0 +1,44 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the project root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ import { ElementRef, Renderer2, NgZone, AfterViewInit, OnDestroy, EventEmitter } from '@angular/core';
6
+ import { SVGIcon } from '@progress/kendo-svg-icons';
7
+ import { LocalizationService } from '@progress/kendo-angular-l10n';
8
+ import { ToolbarOverflowSettings } from './common/overflow-settings';
9
+ import { ScrollButtonType } from './scroll.service';
10
+ import * as i0 from "@angular/core";
11
+ /**
12
+ * @hidden
13
+ */
14
+ export declare class ToolbarScrollableButtonComponent implements AfterViewInit, OnDestroy {
15
+ host: ElementRef;
16
+ private renderer;
17
+ private ngZone;
18
+ private localization;
19
+ get prevClass(): boolean;
20
+ get nextClass(): boolean;
21
+ /**
22
+ * @hidden
23
+ */
24
+ onMouseDown(ev: any): void;
25
+ role: string;
26
+ prev: boolean;
27
+ overflow: ToolbarOverflowSettings;
28
+ onClick: EventEmitter<ScrollButtonType>;
29
+ get iconClass(): string;
30
+ get customIconClass(): string;
31
+ get svgIcon(): SVGIcon;
32
+ caretAltLeftIcon: SVGIcon;
33
+ caretAltRightIcon: SVGIcon;
34
+ private subs;
35
+ constructor(host: ElementRef, renderer: Renderer2, ngZone: NgZone, localization: LocalizationService);
36
+ ngAfterViewInit(): void;
37
+ ngOnDestroy(): void;
38
+ private clickHandler;
39
+ private get scrollButtonIconClass();
40
+ private get customScrollButtonIconClass();
41
+ private get scrollButtonSVGIcon();
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarScrollableButtonComponent, never>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToolbarScrollableButtonComponent, "[kendoToolbarScrollableButton]", never, { "prev": { "alias": "prev"; "required": false; }; "overflow": { "alias": "overflow"; "required": false; }; }, { "onClick": "onClick"; }, never, never, true, never>;
44
+ }
@@ -17,12 +17,16 @@ import { RendererClickPayload } from './common/renderer-click';
17
17
  import { SVGIcon } from '@progress/kendo-svg-icons';
18
18
  import { ToolbarToolsService } from './tools/tools.service';
19
19
  import { ToolbarFillMode } from './common/fillmode';
20
+ import { OverflowMode } from './common/overflow-mode';
21
+ import { ToolbarOverflowSettings } from './common/overflow-settings';
22
+ import { ToolbarScrollButtonsPosition } from './common/scroll-buttons';
23
+ import { ScrollService } from './scroll.service';
20
24
  import * as i0 from "@angular/core";
21
25
  /**
22
26
  * Represents the [Kendo UI ToolBar component for Angular]({% slug overview_toolbar %}).
23
27
  */
24
28
  export declare class ToolBarComponent {
25
- private localization;
29
+ localization: LocalizationService;
26
30
  private popupService;
27
31
  private refreshService;
28
32
  private navigationService;
@@ -31,18 +35,41 @@ export declare class ToolBarComponent {
31
35
  private renderer;
32
36
  private _cdr;
33
37
  private toolsService;
38
+ private scrollService;
34
39
  get overflowClass(): string;
35
40
  /**
36
- * Hides the overflowing tools in a popup.
41
+ * 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.
42
+ * @default false
37
43
  */
38
- overflow: boolean;
44
+ set overflow(overflow: boolean | OverflowMode | ToolbarOverflowSettings);
45
+ get overflow(): boolean | OverflowMode | ToolbarOverflowSettings;
46
+ get show(): boolean;
39
47
  /**
40
48
  * @hidden
41
49
  */
42
50
  set resizable(value: boolean);
43
51
  get resizable(): boolean;
44
52
  /**
45
- * Configures the popup of the ToolBar overflow button ([see example]({% slug responsive_toolbar %}#toc-popup-customization)).
53
+ * @hidden
54
+ */
55
+ get hasScrollButtons(): {
56
+ visible: boolean;
57
+ position: ToolbarScrollButtonsPosition;
58
+ };
59
+ /**
60
+ * @hidden
61
+ */
62
+ get isScrollMode(): boolean;
63
+ /**
64
+ * @hidden
65
+ */
66
+ get showMenu(): boolean;
67
+ /**
68
+ * @hidden
69
+ */
70
+ get overflowEnabled(): boolean;
71
+ /**
72
+ * Configures the popup of the ToolBar overflow button ([see example](slug:responsive_toolbar#customizing-the-popup)).
46
73
  *
47
74
  * The available options are:
48
75
  * - `animate: Boolean`&mdash;Controls the popup animation. By default, the open and close animations are enabled.
@@ -89,24 +116,48 @@ export declare class ToolBarComponent {
89
116
  allTools: QueryList<ToolBarToolComponent>;
90
117
  overflowButton: ElementRef;
91
118
  popupTemplate: TemplateRef<any>;
119
+ popupSectionTemplate: TemplateRef<any>;
120
+ scrollContainer: ElementRef;
92
121
  resizeSensor: ResizeSensorComponent;
93
122
  container: ViewContainerRef;
123
+ prevScrollButton: ElementRef;
124
+ nextScrollButton: ElementRef;
125
+ startButtonGroup: ElementRef;
126
+ endButtonGroup: ElementRef;
127
+ scrollSeparator: ElementRef;
94
128
  popupRef: PopupRef;
95
129
  direction: Direction;
96
130
  get appendTo(): ViewContainerRef;
97
131
  set popupOpen(open: boolean);
98
132
  get popupOpen(): boolean;
133
+ /**
134
+ * @hidden
135
+ */
136
+ prevButtonIcon: SVGIcon;
137
+ /**
138
+ * @hidden
139
+ */
140
+ nextButtonIcon: SVGIcon;
99
141
  hostClass: boolean;
142
+ get scrollableClass(): boolean;
143
+ get sectionClass(): boolean;
144
+ private _overflow;
100
145
  private _popupSettings;
101
146
  private cachedOverflowAnchorWidth;
102
147
  private _open;
103
148
  private toolbarKeydownListener;
104
149
  private overflowKeydownListener;
150
+ private sectionKeydownListener;
105
151
  private cancelRenderedToolsSubscription$;
106
152
  private cachedGap;
107
153
  private _size;
108
154
  private _fillMode;
109
155
  private overflowButtonClickedTime;
156
+ private showAutoButtons;
157
+ /**
158
+ * @hidden
159
+ */
160
+ get normalizedOverflow(): ToolbarOverflowSettings;
110
161
  private subscriptions;
111
162
  private popupSubs;
112
163
  /**
@@ -120,13 +171,16 @@ export declare class ToolBarComponent {
120
171
  role: string;
121
172
  get getDir(): string;
122
173
  get resizableClass(): boolean;
123
- moreVerticalIcon: SVGIcon;
124
- constructor(localization: LocalizationService, popupService: PopupService, refreshService: RefreshService, navigationService: NavigationService, element: ElementRef, zone: NgZone, renderer: Renderer2, _cdr: ChangeDetectorRef, toolsService: ToolbarToolsService);
174
+ constructor(localization: LocalizationService, popupService: PopupService, refreshService: RefreshService, navigationService: NavigationService, element: ElementRef, zone: NgZone, renderer: Renderer2, _cdr: ChangeDetectorRef, toolsService: ToolbarToolsService, scrollService: ScrollService);
125
175
  ngAfterContentInit(): void;
126
176
  ngAfterViewInit(): void;
127
177
  ngOnInit(): void;
128
178
  ngOnChanges(changes: SimpleChanges): void;
129
179
  ngOnDestroy(): void;
180
+ /**
181
+ * @hidden
182
+ */
183
+ showOverflowSeparator: boolean;
130
184
  /**
131
185
  * @hidden
132
186
  */
@@ -135,10 +189,26 @@ export declare class ToolBarComponent {
135
189
  * @hidden
136
190
  */
137
191
  get cdr(): ChangeDetectorRef;
192
+ /**
193
+ * @hidden
194
+ */
195
+ get sectionSizeClass(): string;
196
+ /**
197
+ * @hidden
198
+ */
199
+ getScrollButtonTitle(buttonType: string): string;
200
+ /**
201
+ * @hidden
202
+ */
203
+ scrollTools(dir: string): void;
138
204
  /**
139
205
  * @hidden
140
206
  */
141
207
  onRendererClick(data: RendererClickPayload): void;
208
+ /**
209
+ * @hidden
210
+ */
211
+ overflowButtonIcon(iconType: string): any;
142
212
  /**
143
213
  * @hidden
144
214
  */
@@ -183,6 +253,7 @@ export declare class ToolBarComponent {
183
253
  private destroyPopup;
184
254
  private handleClasses;
185
255
  private normalizePopupClasses;
256
+ private setScrollableOverlayClasses;
186
257
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolBarComponent, never>;
187
258
  static ɵcmp: i0.ɵɵComponentDeclaration<ToolBarComponent, "kendo-toolbar", ["kendoToolBar"], { "overflow": { "alias": "overflow"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "popupSettings": { "alias": "popupSettings"; "required": false; }; "fillMode": { "alias": "fillMode"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "size": { "alias": "size"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "open": "open"; "close": "close"; }, ["allTools"], never, true, never>;
188
259
  }
@@ -137,6 +137,7 @@ export declare class ToolBarButtonComponent extends ToolBarToolComponent {
137
137
  toolbarOptions: ToolOptions;
138
138
  overflowOptions: ToolOptions;
139
139
  toolbarButtonElement: ElementRef;
140
+ sectionButtonElement: ElementRef;
140
141
  private overflowButtonElement;
141
142
  private _showText;
142
143
  private _text;
@@ -45,6 +45,7 @@ export declare class ToolBarButtonGroupComponent extends ToolBarToolComponent {
45
45
  */
46
46
  set look(look: 'default' | 'flat' | 'outline');
47
47
  private toolbarButtonGroup;
48
+ private sectionButtonGroup;
48
49
  overflowListItems: QueryList<ElementRef>;
49
50
  buttonComponents: QueryList<ToolBarButtonComponent>;
50
51
  private get buttonElements();
@@ -145,7 +145,8 @@ export declare class ToolBarDropDownButtonComponent extends ToolBarToolComponent
145
145
  */
146
146
  close: EventEmitter<PreventableEvent>;
147
147
  dropdownButton: ElementRef;
148
- dropDownButtonComponent: DropDownButtonComponent;
148
+ toolbarDropDownButton: DropDownButtonComponent;
149
+ sectionDropDownButton: DropDownButtonComponent;
149
150
  overflowListItems: QueryList<ElementRef>;
150
151
  toolbarOptions: ToolOptions;
151
152
  overflowOptions: ToolOptions;
@@ -156,6 +156,7 @@ export declare class ToolBarSplitButtonComponent extends ToolBarToolComponent im
156
156
  private getNextKey;
157
157
  private getPrevKey;
158
158
  private toolbarSplitButton;
159
+ private sectionSplitButton;
159
160
  private overflowMainButton;
160
161
  overflowListItems: QueryList<ElementRef>;
161
162
  constructor();
@@ -3,6 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { TemplateRef, ElementRef } from '@angular/core';
6
+ import { RenderLocation } from '../render-location';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * Represents the Base ToolBar Tool component for Angular.
@@ -10,12 +11,17 @@ import * as i0 from "@angular/core";
10
11
  */
11
12
  export declare class ToolBarToolComponent {
12
13
  toolbarTemplate: TemplateRef<any>;
14
+ sectionTemplate: TemplateRef<any>;
13
15
  popupTemplate: TemplateRef<any>;
14
16
  tabIndex: number;
15
17
  overflows: boolean;
16
18
  visibility: string;
17
19
  element: ElementRef;
18
20
  isBuiltInTool: boolean;
21
+ /**
22
+ * @hidden
23
+ */
24
+ location: RenderLocation;
19
25
  constructor();
20
26
  /**
21
27
  * @hidden
@@ -15,6 +15,7 @@ export declare class ToolbarToolsService {
15
15
  renderedTools: ToolBarRendererComponent[];
16
16
  overflowTools: ToolBarRendererComponent[];
17
17
  allTools: ToolBarToolComponent[];
18
+ reset(): void;
18
19
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarToolsService, never>;
19
20
  static ɵprov: i0.ɵɵInjectableDeclaration<ToolbarToolsService>;
20
21
  }
package/util.d.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Keys } from '@progress/kendo-angular-common';
6
6
  import { DisplayMode } from './display-mode';
7
+ import { ToolbarOverflowSettings } from './common/overflow-settings';
7
8
  /**
8
9
  * @hidden
9
10
  */
@@ -104,3 +105,7 @@ export declare const getStylingClasses: (componentType: any, stylingOption: stri
104
105
  * nodeType 1 is Element, nodeType 3 is Text
105
106
  */
106
107
  export declare const isElementOrTextNode: (n: Node) => boolean;
108
+ /**
109
+ * @hidden
110
+ */
111
+ export declare const normalizeOverflowSettings: (overflow: any) => ToolbarOverflowSettings;