@progress/kendo-angular-toolbar 25.3.1-develop.2 → 25.4.0-develop.1
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.
|
@@ -3,15 +3,15 @@
|
|
|
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, Input, ViewChild, Directive, Output, forwardRef, HostBinding, Component, ViewContainerRef, HostListener, ContentChildren, isDevMode, ViewChildren,
|
|
6
|
+
import { EventEmitter, Injectable, signal, afterNextRender, inject, ElementRef, Input, ViewChild, Directive, Output, forwardRef, HostBinding, ChangeDetectionStrategy, Component, computed, ViewContainerRef, HostListener, ContentChildren, isDevMode, ViewChildren, NgModule } from '@angular/core';
|
|
7
7
|
import * as i2 from '@progress/kendo-angular-popup';
|
|
8
8
|
import { PopupComponent, PopupService } from '@progress/kendo-angular-popup';
|
|
9
9
|
import { isDocumentAvailable, normalizeKeys, Keys, isPresent as isPresent$1, getLicenseMessage, shouldShowValidationUI, guid, parseCSSClassNames, ResizeSensorComponent, WatermarkOverlayComponent, provideComponentName, hasObservers, DraggableDirective, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
10
10
|
import * as i1 from '@progress/kendo-angular-l10n';
|
|
11
11
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
12
12
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
13
|
-
import { take, filter, takeUntil } from 'rxjs/operators';
|
|
14
13
|
import { Subject, Subscription, merge, fromEvent } from 'rxjs';
|
|
14
|
+
import { filter, takeUntil } from 'rxjs/operators';
|
|
15
15
|
import { chevronLeftIcon, chevronRightIcon, moreHorizontalIcon, moreVerticalIcon, chevronDownIcon, handleDragDotsIcon } from '@progress/kendo-svg-icons';
|
|
16
16
|
import { ButtonComponent, ButtonGroupComponent, DropDownButtonComponent, SplitButtonComponent } from '@progress/kendo-angular-buttons';
|
|
17
17
|
import { NgTemplateOutlet, NgClass, NgStyle } from '@angular/common';
|
|
@@ -26,8 +26,8 @@ const packageMetadata = {
|
|
|
26
26
|
productName: 'Kendo UI for Angular',
|
|
27
27
|
productCode: 'KENDOUIANGULAR',
|
|
28
28
|
productCodes: ['KENDOUIANGULAR'],
|
|
29
|
-
publishDate:
|
|
30
|
-
version: '25.
|
|
29
|
+
publishDate: 1791873159,
|
|
30
|
+
version: '25.4.0-develop.1',
|
|
31
31
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
32
32
|
};
|
|
33
33
|
|
|
@@ -52,8 +52,8 @@ const DEFAULT_SCROLL_SPEED = 100;
|
|
|
52
52
|
* @hidden
|
|
53
53
|
*/
|
|
54
54
|
class ScrollService {
|
|
55
|
-
ngZone;
|
|
56
55
|
localization;
|
|
56
|
+
ngZone;
|
|
57
57
|
owner;
|
|
58
58
|
position = 0;
|
|
59
59
|
scrollButtonActiveStateChange = new Subject();
|
|
@@ -73,9 +73,9 @@ class ScrollService {
|
|
|
73
73
|
get toolsOverflow() {
|
|
74
74
|
return this.scrollContainerOverflowSize > 0;
|
|
75
75
|
}
|
|
76
|
-
constructor(
|
|
77
|
-
this.ngZone = ngZone;
|
|
76
|
+
constructor(localization, ngZone) {
|
|
78
77
|
this.localization = localization;
|
|
78
|
+
this.ngZone = ngZone;
|
|
79
79
|
}
|
|
80
80
|
toggleScrollButtonsState() {
|
|
81
81
|
const toolbar = this.owner;
|
|
@@ -89,7 +89,7 @@ class ScrollService {
|
|
|
89
89
|
const calculatedPrevButtonActive = (this.position * rtlDelta) > 0 && this.scrollContainerOverflowSize > 0;
|
|
90
90
|
const calculatedNextButtonActive = (this.position * rtlDelta) < this.scrollContainerOverflowSize - defaultOffset && this.scrollContainerOverflowSize > 0;
|
|
91
91
|
if (calculatedPrevButtonActive !== currentPrevButtonActive) {
|
|
92
|
-
this.
|
|
92
|
+
this.toggleButtonActiveState('prev', calculatedPrevButtonActive);
|
|
93
93
|
}
|
|
94
94
|
if (calculatedNextButtonActive !== currentNextButtonActive) {
|
|
95
95
|
this.ngZone.run(() => this.toggleButtonActiveState('next', calculatedNextButtonActive));
|
|
@@ -154,12 +154,12 @@ class ScrollService {
|
|
|
154
154
|
this.scrollButtonActiveStateChange.next({ buttonType, active });
|
|
155
155
|
}
|
|
156
156
|
isDisabled = (buttonType) => this.owner[`${buttonType}ScrollButton`]?.nativeElement.classList.contains('k-disabled');
|
|
157
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ScrollService, deps: [{ token:
|
|
157
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ScrollService, deps: [{ token: i1.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
158
158
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ScrollService });
|
|
159
159
|
}
|
|
160
160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ScrollService, decorators: [{
|
|
161
161
|
type: Injectable
|
|
162
|
-
}], ctorParameters: () => [{ type:
|
|
162
|
+
}], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.NgZone }] });
|
|
163
163
|
|
|
164
164
|
/**
|
|
165
165
|
* @hidden
|
|
@@ -416,19 +416,19 @@ const normalizeOverflowSettings = (overflow) => {
|
|
|
416
416
|
* @hidden
|
|
417
417
|
*/
|
|
418
418
|
class NavigationService {
|
|
419
|
-
zone;
|
|
420
419
|
scrollService;
|
|
420
|
+
injector;
|
|
421
421
|
overflowButton;
|
|
422
422
|
focused = { renderedTool: null, index: -1 };
|
|
423
|
-
renderedTools = [];
|
|
423
|
+
renderedTools = signal([], ...(ngDevMode ? [{ debugName: "renderedTools" }] : /* istanbul ignore next */ []));
|
|
424
424
|
isPopupFocused = false;
|
|
425
425
|
isOverflowButtonFocused = false;
|
|
426
|
-
constructor(
|
|
427
|
-
this.zone = zone;
|
|
426
|
+
constructor(scrollService, injector) {
|
|
428
427
|
this.scrollService = scrollService;
|
|
428
|
+
this.injector = injector;
|
|
429
429
|
}
|
|
430
430
|
setRenderedTools(rts) {
|
|
431
|
-
this.renderedTools
|
|
431
|
+
this.renderedTools.set(rts);
|
|
432
432
|
}
|
|
433
433
|
click({ context, event: ev }) {
|
|
434
434
|
if (this.focused.renderedTool !== context && ev) {
|
|
@@ -518,11 +518,11 @@ class NavigationService {
|
|
|
518
518
|
}
|
|
519
519
|
}
|
|
520
520
|
getFocusableTools() {
|
|
521
|
-
return this.renderedTools.filter(rt => (rt.tool.overflows === this.isPopupFocused) && rt.tool.canFocus());
|
|
521
|
+
return this.renderedTools().filter(rt => (rt.tool.overflows === this.isPopupFocused) && rt.tool.canFocus());
|
|
522
522
|
}
|
|
523
523
|
focus(renderedTool, ev) {
|
|
524
|
-
// running the code below in
|
|
525
|
-
|
|
524
|
+
// running the code below in afterNextRender fixes issue #2939
|
|
525
|
+
afterNextRender(() => {
|
|
526
526
|
if (!renderedTool) {
|
|
527
527
|
const focusableRTs = this.getFocusableTools();
|
|
528
528
|
const lastFocusedRT = focusableRTs.find(rt => rt === this.focused.renderedTool) || focusableRTs[0];
|
|
@@ -544,7 +544,7 @@ class NavigationService {
|
|
|
544
544
|
}
|
|
545
545
|
this.blurOverflowButton();
|
|
546
546
|
}
|
|
547
|
-
});
|
|
547
|
+
}, { injector: this.injector });
|
|
548
548
|
}
|
|
549
549
|
blurOverflowButton() {
|
|
550
550
|
if (this.overflowButton) {
|
|
@@ -563,12 +563,12 @@ class NavigationService {
|
|
|
563
563
|
return (isPresent(this.overflowButton) &&
|
|
564
564
|
window.getComputedStyle(this.overflowButton.nativeElement).getPropertyValue('visibility') === 'visible');
|
|
565
565
|
}
|
|
566
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: NavigationService, deps: [{ token:
|
|
566
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: NavigationService, deps: [{ token: ScrollService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
567
567
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: NavigationService });
|
|
568
568
|
}
|
|
569
569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: NavigationService, decorators: [{
|
|
570
570
|
type: Injectable
|
|
571
|
-
}], ctorParameters: () => [{ type:
|
|
571
|
+
}], ctorParameters: () => [{ type: ScrollService }, { type: i0.Injector }] });
|
|
572
572
|
|
|
573
573
|
/**
|
|
574
574
|
* Represents the base ToolBar Tool component for Angular.
|
|
@@ -597,11 +597,36 @@ class ToolBarToolComponent {
|
|
|
597
597
|
toolbarTemplate;
|
|
598
598
|
sectionTemplate;
|
|
599
599
|
popupTemplate;
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
600
|
+
//Focus movement inside the toolbar is managed using roving tabindex.
|
|
601
|
+
set tabIndex(value) {
|
|
602
|
+
this._tabIndex.set(value);
|
|
603
|
+
}
|
|
604
|
+
get tabIndex() {
|
|
605
|
+
return this._tabIndex();
|
|
606
|
+
}
|
|
603
607
|
element;
|
|
604
|
-
|
|
608
|
+
set overflows(value) {
|
|
609
|
+
this._overflows.set(value);
|
|
610
|
+
}
|
|
611
|
+
get overflows() {
|
|
612
|
+
return this._overflows();
|
|
613
|
+
}
|
|
614
|
+
set visibility(value) {
|
|
615
|
+
this._visibility.set(value);
|
|
616
|
+
}
|
|
617
|
+
get visibility() {
|
|
618
|
+
return this._visibility();
|
|
619
|
+
}
|
|
620
|
+
set isBuiltInTool(value) {
|
|
621
|
+
this._isBuiltInTool.set(value);
|
|
622
|
+
}
|
|
623
|
+
get isBuiltInTool() {
|
|
624
|
+
return this._isBuiltInTool();
|
|
625
|
+
}
|
|
626
|
+
_isBuiltInTool = signal(false, ...(ngDevMode ? [{ debugName: "_isBuiltInTool" }] : /* istanbul ignore next */ []));
|
|
627
|
+
_location = signal(null, ...(ngDevMode ? [{ debugName: "_location" }] : /* istanbul ignore next */ []));
|
|
628
|
+
_overflows = signal(true, ...(ngDevMode ? [{ debugName: "_overflows" }] : /* istanbul ignore next */ []));
|
|
629
|
+
_visibility = signal(null, ...(ngDevMode ? [{ debugName: "_visibility" }] : /* istanbul ignore next */ []));
|
|
605
630
|
/**
|
|
606
631
|
* @hidden
|
|
607
632
|
*/
|
|
@@ -609,7 +634,12 @@ class ToolBarToolComponent {
|
|
|
609
634
|
/**
|
|
610
635
|
* @hidden
|
|
611
636
|
*/
|
|
612
|
-
location
|
|
637
|
+
set location(value) {
|
|
638
|
+
this._location.set(value);
|
|
639
|
+
}
|
|
640
|
+
get location() {
|
|
641
|
+
return this._location();
|
|
642
|
+
}
|
|
613
643
|
constructor() {
|
|
614
644
|
this.element = inject(ElementRef);
|
|
615
645
|
}
|
|
@@ -650,6 +680,7 @@ class ToolBarToolComponent {
|
|
|
650
680
|
handleKey(_ev) {
|
|
651
681
|
return false;
|
|
652
682
|
}
|
|
683
|
+
_tabIndex = signal(-1, ...(ngDevMode ? [{ debugName: "_tabIndex" }] : /* istanbul ignore next */ []));
|
|
653
684
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarToolComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
654
685
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.23", 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 });
|
|
655
686
|
}
|
|
@@ -745,11 +776,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
745
776
|
class ToolbarToolsService {
|
|
746
777
|
renderedToolsChange = new Subject();
|
|
747
778
|
overflowToolsChange = new Subject();
|
|
748
|
-
renderedTools = [];
|
|
749
|
-
overflowTools = [];
|
|
750
|
-
allTools = [];
|
|
779
|
+
renderedTools = signal([], ...(ngDevMode ? [{ debugName: "renderedTools" }] : /* istanbul ignore next */ []));
|
|
780
|
+
overflowTools = signal([], ...(ngDevMode ? [{ debugName: "overflowTools" }] : /* istanbul ignore next */ []));
|
|
781
|
+
allTools = signal([], ...(ngDevMode ? [{ debugName: "allTools" }] : /* istanbul ignore next */ []));
|
|
751
782
|
reset() {
|
|
752
|
-
this.renderedTools
|
|
783
|
+
this.renderedTools.set([]);
|
|
784
|
+
this.overflowTools.set([]);
|
|
785
|
+
this.allTools.set([]);
|
|
753
786
|
}
|
|
754
787
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolbarToolsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
755
788
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolbarToolsService });
|
|
@@ -768,9 +801,24 @@ class ToolBarRendererComponent {
|
|
|
768
801
|
refreshService;
|
|
769
802
|
toolsService;
|
|
770
803
|
viewContainer;
|
|
771
|
-
tool
|
|
772
|
-
|
|
773
|
-
|
|
804
|
+
set tool(value) {
|
|
805
|
+
this._tool.set(value);
|
|
806
|
+
}
|
|
807
|
+
get tool() {
|
|
808
|
+
return this._tool();
|
|
809
|
+
}
|
|
810
|
+
set location(value) {
|
|
811
|
+
this._location.set(value);
|
|
812
|
+
}
|
|
813
|
+
get location() {
|
|
814
|
+
return this._location();
|
|
815
|
+
}
|
|
816
|
+
set resizable(value) {
|
|
817
|
+
this._resizable.set(value);
|
|
818
|
+
}
|
|
819
|
+
get resizable() {
|
|
820
|
+
return this._resizable();
|
|
821
|
+
}
|
|
774
822
|
rendererClick = new EventEmitter();
|
|
775
823
|
template;
|
|
776
824
|
element;
|
|
@@ -779,6 +827,9 @@ class ToolBarRendererComponent {
|
|
|
779
827
|
}
|
|
780
828
|
refreshSubscription;
|
|
781
829
|
internalComponentRef;
|
|
830
|
+
_tool = signal(null, ...(ngDevMode ? [{ debugName: "_tool" }] : /* istanbul ignore next */ []));
|
|
831
|
+
_location = signal(null, ...(ngDevMode ? [{ debugName: "_location" }] : /* istanbul ignore next */ []));
|
|
832
|
+
_resizable = signal(false, ...(ngDevMode ? [{ debugName: "_resizable" }] : /* istanbul ignore next */ []));
|
|
782
833
|
constructor(renderer, rendererService, refreshService, toolsService, viewContainer) {
|
|
783
834
|
this.renderer = renderer;
|
|
784
835
|
this.rendererService = rendererService;
|
|
@@ -800,6 +851,13 @@ class ToolBarRendererComponent {
|
|
|
800
851
|
ngOnDestroy() {
|
|
801
852
|
this.refreshSubscription?.unsubscribe();
|
|
802
853
|
this.internalComponentRef?.removeEventListener('click', this.onClick);
|
|
854
|
+
if (this.location === 'toolbar') {
|
|
855
|
+
this.toolsService.renderedTools.set(this.toolsService.renderedTools().filter(t => t !== this));
|
|
856
|
+
this.toolsService.renderedToolsChange.next(this.toolsService.renderedTools());
|
|
857
|
+
}
|
|
858
|
+
else {
|
|
859
|
+
this.toolsService.overflowTools.set(this.toolsService.overflowTools().filter(t => t !== this));
|
|
860
|
+
}
|
|
803
861
|
}
|
|
804
862
|
ngAfterViewInit() {
|
|
805
863
|
const viewContainerRootNodes = this.viewContainer.get(0)?.rootNodes?.filter(isElementOrTextNode);
|
|
@@ -899,19 +957,22 @@ class ToolBarRendererComponent {
|
|
|
899
957
|
};
|
|
900
958
|
updateTools() {
|
|
901
959
|
this.tool.location = this.location;
|
|
902
|
-
const isInToolbar = this.toolsService.renderedTools.some(t => t.tool === this.tool);
|
|
903
|
-
const isInPopup = this.toolsService.overflowTools.some(t => t.tool === this.tool);
|
|
960
|
+
const isInToolbar = this.toolsService.renderedTools().some(t => t.tool === this.tool);
|
|
961
|
+
const isInPopup = this.toolsService.overflowTools().some(t => t.tool === this.tool);
|
|
904
962
|
if (this.location === 'toolbar') {
|
|
905
|
-
|
|
906
|
-
|
|
963
|
+
if (isInPopup) {
|
|
964
|
+
this.toolsService.overflowTools.set(this.toolsService.overflowTools().filter(t => t.tool !== this.tool));
|
|
965
|
+
}
|
|
966
|
+
if (!isInToolbar) {
|
|
967
|
+
this.toolsService.renderedTools.update(tools => [...tools, this]);
|
|
968
|
+
this.toolsService.renderedToolsChange.next(this.toolsService.renderedTools());
|
|
969
|
+
}
|
|
907
970
|
}
|
|
908
971
|
else {
|
|
909
972
|
if (!isInPopup) {
|
|
910
|
-
this.toolsService.overflowTools.
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
return this.toolsService.allTools.indexOf(t1.tool) - this.toolsService.allTools.indexOf(t2.tool);
|
|
914
|
-
});
|
|
973
|
+
this.toolsService.overflowTools.update(tools =>
|
|
974
|
+
// ensures correct navigation order in Popup
|
|
975
|
+
[...tools, this].sort((t1, t2) => this.toolsService.allTools().indexOf(t1.tool) - this.toolsService.allTools().indexOf(t2.tool)));
|
|
915
976
|
}
|
|
916
977
|
}
|
|
917
978
|
}
|
|
@@ -946,15 +1007,33 @@ class ToolbarMessages extends ComponentMessages {
|
|
|
946
1007
|
/**
|
|
947
1008
|
* Sets the title of the **More Tools** button in a responsive ToolBar.
|
|
948
1009
|
*/
|
|
949
|
-
moreToolsTitle
|
|
1010
|
+
set moreToolsTitle(value) {
|
|
1011
|
+
this._moreToolsTitle.set(value);
|
|
1012
|
+
}
|
|
1013
|
+
get moreToolsTitle() {
|
|
1014
|
+
return this._moreToolsTitle();
|
|
1015
|
+
}
|
|
950
1016
|
/**
|
|
951
1017
|
* Sets the title for the **Previous Tool** button when the ToolBar is scrollable.
|
|
952
1018
|
*/
|
|
953
|
-
previousToolButton
|
|
1019
|
+
set previousToolButton(value) {
|
|
1020
|
+
this._previousToolButton.set(value);
|
|
1021
|
+
}
|
|
1022
|
+
get previousToolButton() {
|
|
1023
|
+
return this._previousToolButton();
|
|
1024
|
+
}
|
|
954
1025
|
/**
|
|
955
1026
|
* Sets the title for the **Next Tool** button when the ToolBar is scrollable.
|
|
956
1027
|
*/
|
|
957
|
-
nextToolButton
|
|
1028
|
+
set nextToolButton(value) {
|
|
1029
|
+
this._nextToolButton.set(value);
|
|
1030
|
+
}
|
|
1031
|
+
get nextToolButton() {
|
|
1032
|
+
return this._nextToolButton();
|
|
1033
|
+
}
|
|
1034
|
+
_moreToolsTitle = signal(null, ...(ngDevMode ? [{ debugName: "_moreToolsTitle" }] : /* istanbul ignore next */ []));
|
|
1035
|
+
_previousToolButton = signal(null, ...(ngDevMode ? [{ debugName: "_previousToolButton" }] : /* istanbul ignore next */ []));
|
|
1036
|
+
_nextToolButton = signal(null, ...(ngDevMode ? [{ debugName: "_nextToolButton" }] : /* istanbul ignore next */ []));
|
|
958
1037
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolbarMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
959
1038
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.23", type: ToolbarMessages, isStandalone: true, selector: "kendo-toolbar-messages-base", inputs: { moreToolsTitle: "moreToolsTitle", previousToolButton: "previousToolButton", nextToolButton: "nextToolButton" }, usesInheritance: true, ngImport: i0 });
|
|
960
1039
|
}
|
|
@@ -1012,8 +1091,8 @@ const DIRECTION_CLASSES = {
|
|
|
1012
1091
|
class ToolbarScrollableButtonComponent {
|
|
1013
1092
|
host;
|
|
1014
1093
|
renderer;
|
|
1015
|
-
ngZone;
|
|
1016
1094
|
localization;
|
|
1095
|
+
ngZone;
|
|
1017
1096
|
get prevClass() {
|
|
1018
1097
|
return this.prev;
|
|
1019
1098
|
}
|
|
@@ -1036,11 +1115,11 @@ class ToolbarScrollableButtonComponent {
|
|
|
1036
1115
|
chevronLeftIcon = chevronLeftIcon;
|
|
1037
1116
|
chevronRightIcon = chevronRightIcon;
|
|
1038
1117
|
subs = new Subscription();
|
|
1039
|
-
constructor(host, renderer,
|
|
1118
|
+
constructor(host, renderer, localization, ngZone) {
|
|
1040
1119
|
this.host = host;
|
|
1041
1120
|
this.renderer = renderer;
|
|
1042
|
-
this.ngZone = ngZone;
|
|
1043
1121
|
this.localization = localization;
|
|
1122
|
+
this.ngZone = ngZone;
|
|
1044
1123
|
}
|
|
1045
1124
|
ngAfterViewInit() {
|
|
1046
1125
|
this.ngZone.runOutsideAngular(() => {
|
|
@@ -1099,7 +1178,7 @@ class ToolbarScrollableButtonComponent {
|
|
|
1099
1178
|
}
|
|
1100
1179
|
}
|
|
1101
1180
|
}
|
|
1102
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolbarScrollableButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token:
|
|
1181
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolbarScrollableButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
1103
1182
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.23", type: ToolbarScrollableButtonComponent, isStandalone: true, selector: "[kendoToolbarScrollableButton]", inputs: { prev: "prev", overflow: "overflow" }, outputs: { onClick: "onClick" }, host: { properties: { "class.k-toolbar-prev": "this.prevClass", "class.k-toolbar-next": "this.nextClass", "attr.role": "this.role" } }, ngImport: i0, template: `
|
|
1104
1183
|
<kendo-icon-wrapper
|
|
1105
1184
|
[name]="iconClass"
|
|
@@ -1108,7 +1187,7 @@ class ToolbarScrollableButtonComponent {
|
|
|
1108
1187
|
innerCssClass="k-button-icon"
|
|
1109
1188
|
>
|
|
1110
1189
|
</kendo-icon-wrapper>
|
|
1111
|
-
`, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
1190
|
+
`, isInline: true, dependencies: [{ kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1112
1191
|
}
|
|
1113
1192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolbarScrollableButtonComponent, decorators: [{
|
|
1114
1193
|
type: Component,
|
|
@@ -1124,9 +1203,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
1124
1203
|
`,
|
|
1125
1204
|
selector: '[kendoToolbarScrollableButton]',
|
|
1126
1205
|
standalone: true,
|
|
1206
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1127
1207
|
imports: [IconWrapperComponent]
|
|
1128
1208
|
}]
|
|
1129
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type:
|
|
1209
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i0.NgZone }], propDecorators: { prevClass: [{
|
|
1130
1210
|
type: HostBinding,
|
|
1131
1211
|
args: ['class.k-toolbar-prev']
|
|
1132
1212
|
}], nextClass: [{
|
|
@@ -1182,11 +1262,12 @@ class ToolBarComponent {
|
|
|
1182
1262
|
refreshService;
|
|
1183
1263
|
navigationService;
|
|
1184
1264
|
element;
|
|
1185
|
-
zone;
|
|
1186
1265
|
renderer;
|
|
1187
1266
|
_cdr;
|
|
1188
1267
|
toolsService;
|
|
1189
1268
|
scrollService;
|
|
1269
|
+
injector;
|
|
1270
|
+
zone;
|
|
1190
1271
|
get overflowClass() {
|
|
1191
1272
|
return this.size ? `k-button-${SIZES[this.size]}` : '';
|
|
1192
1273
|
}
|
|
@@ -1199,19 +1280,19 @@ class ToolBarComponent {
|
|
|
1199
1280
|
if (this.isScrollMode) {
|
|
1200
1281
|
this.removeSubscriptions(['scrollButtonStateChangeSub', 'scrollContainerScrollSub']);
|
|
1201
1282
|
}
|
|
1202
|
-
this._overflow
|
|
1283
|
+
this._overflow.set(overflow);
|
|
1203
1284
|
if (this.isScrollMode) {
|
|
1204
1285
|
this.handleScrollModeUpdates();
|
|
1205
1286
|
}
|
|
1206
1287
|
this.setScrollableOverlayClasses();
|
|
1207
|
-
|
|
1288
|
+
afterNextRender(() => this.onResize(), { injector: this.injector });
|
|
1208
1289
|
}
|
|
1209
1290
|
get overflow() {
|
|
1210
|
-
return this._overflow;
|
|
1291
|
+
return this._overflow();
|
|
1211
1292
|
}
|
|
1212
1293
|
get showScrollButtons() {
|
|
1213
1294
|
const buttonsVisibility = this.normalizedOverflow.scrollButtons;
|
|
1214
|
-
const showAuto = buttonsVisibility === 'auto' && this.
|
|
1295
|
+
const showAuto = buttonsVisibility === 'auto' && this._showAutoButtons();
|
|
1215
1296
|
const showAlways = buttonsVisibility === 'visible';
|
|
1216
1297
|
return this.isScrollMode && (showAuto || showAlways);
|
|
1217
1298
|
}
|
|
@@ -1244,7 +1325,9 @@ class ToolBarComponent {
|
|
|
1244
1325
|
/**
|
|
1245
1326
|
* @hidden
|
|
1246
1327
|
*/
|
|
1247
|
-
scrollButtonClasses
|
|
1328
|
+
get scrollButtonClasses() {
|
|
1329
|
+
return this._scrollButtonClasses();
|
|
1330
|
+
}
|
|
1248
1331
|
/**
|
|
1249
1332
|
* @hidden
|
|
1250
1333
|
*/
|
|
@@ -1263,10 +1346,10 @@ class ToolBarComponent {
|
|
|
1263
1346
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/toolbar/responsive-toolbar#customizing-the-popup)).
|
|
1264
1347
|
*/
|
|
1265
1348
|
set popupSettings(settings) {
|
|
1266
|
-
this._popupSettings
|
|
1349
|
+
this._popupSettings.set(Object.assign({}, getInitialPopupSettings(this.localization.rtl), settings));
|
|
1267
1350
|
}
|
|
1268
1351
|
get popupSettings() {
|
|
1269
|
-
return this._popupSettings || getInitialPopupSettings(this.localization.rtl);
|
|
1352
|
+
return this._popupSettings() || getInitialPopupSettings(this.localization.rtl);
|
|
1270
1353
|
}
|
|
1271
1354
|
/**
|
|
1272
1355
|
* Sets the fill mode for the ToolBar.
|
|
@@ -1275,11 +1358,10 @@ class ToolBarComponent {
|
|
|
1275
1358
|
*/
|
|
1276
1359
|
set fillMode(fillMode) {
|
|
1277
1360
|
this.handleClasses(fillMode, 'fillMode');
|
|
1278
|
-
this._fillMode
|
|
1279
|
-
this.updateScrollButtonClasses();
|
|
1361
|
+
this._fillMode.set(fillMode);
|
|
1280
1362
|
}
|
|
1281
1363
|
get fillMode() {
|
|
1282
|
-
return this._fillMode;
|
|
1364
|
+
return this._fillMode();
|
|
1283
1365
|
}
|
|
1284
1366
|
/**
|
|
1285
1367
|
* Sets the `tabindex` attribute of the ToolBar.
|
|
@@ -1287,18 +1369,23 @@ class ToolBarComponent {
|
|
|
1287
1369
|
*
|
|
1288
1370
|
* @default 0
|
|
1289
1371
|
*/
|
|
1290
|
-
tabindex
|
|
1372
|
+
set tabindex(value) {
|
|
1373
|
+
this._tabindex.set(value);
|
|
1374
|
+
this.element.nativeElement.setAttribute('tabindex', value.toString());
|
|
1375
|
+
}
|
|
1376
|
+
get tabindex() {
|
|
1377
|
+
return this._tabindex();
|
|
1378
|
+
}
|
|
1291
1379
|
/**
|
|
1292
1380
|
* Sets the size for all ToolBar elements.
|
|
1293
1381
|
* Use this property to control the padding of the ToolBar elements. The default value is set by the Kendo theme.
|
|
1294
1382
|
*/
|
|
1295
1383
|
set size(size) {
|
|
1296
1384
|
this.handleClasses(size, 'size');
|
|
1297
|
-
this._size
|
|
1298
|
-
this.updateScrollButtonClasses();
|
|
1385
|
+
this._size.set(size);
|
|
1299
1386
|
}
|
|
1300
1387
|
get size() {
|
|
1301
|
-
return this._size;
|
|
1388
|
+
return this._size();
|
|
1302
1389
|
}
|
|
1303
1390
|
/**
|
|
1304
1391
|
* @hidden
|
|
@@ -1315,11 +1402,11 @@ class ToolBarComponent {
|
|
|
1315
1402
|
* @default 'always'
|
|
1316
1403
|
*/
|
|
1317
1404
|
set showIcon(value) {
|
|
1318
|
-
if (this._showIcon === value) {
|
|
1405
|
+
if (this._showIcon() === value) {
|
|
1319
1406
|
return;
|
|
1320
1407
|
}
|
|
1321
1408
|
const normalizedValue = this.normalizeDisplayValue(value);
|
|
1322
|
-
this._showIcon
|
|
1409
|
+
this._showIcon.set(value);
|
|
1323
1410
|
this.propertyChange.emit({
|
|
1324
1411
|
property: 'showIcon',
|
|
1325
1412
|
value: normalizedValue
|
|
@@ -1331,11 +1418,11 @@ class ToolBarComponent {
|
|
|
1331
1418
|
* @default 'always'
|
|
1332
1419
|
*/
|
|
1333
1420
|
set showText(value) {
|
|
1334
|
-
if (this._showText === value) {
|
|
1421
|
+
if (this._showText() === value) {
|
|
1335
1422
|
return;
|
|
1336
1423
|
}
|
|
1337
1424
|
const normalizedValue = this.normalizeDisplayValue(value);
|
|
1338
|
-
this._showText
|
|
1425
|
+
this._showText.set(value);
|
|
1339
1426
|
this.propertyChange.emit({
|
|
1340
1427
|
property: 'showText',
|
|
1341
1428
|
value: normalizedValue
|
|
@@ -1371,8 +1458,16 @@ class ToolBarComponent {
|
|
|
1371
1458
|
startButtonGroup;
|
|
1372
1459
|
endButtonGroup;
|
|
1373
1460
|
scrollSeparator;
|
|
1374
|
-
popupRef
|
|
1375
|
-
|
|
1461
|
+
set popupRef(value) {
|
|
1462
|
+
this._popupRef.set(value);
|
|
1463
|
+
}
|
|
1464
|
+
get popupRef() {
|
|
1465
|
+
return this._popupRef();
|
|
1466
|
+
}
|
|
1467
|
+
_popupRef = signal(null, ...(ngDevMode ? [{ debugName: "_popupRef" }] : /* istanbul ignore next */ []));
|
|
1468
|
+
get direction() {
|
|
1469
|
+
return this._direction();
|
|
1470
|
+
}
|
|
1376
1471
|
get appendTo() {
|
|
1377
1472
|
const { appendTo } = this.popupSettings;
|
|
1378
1473
|
if (!appendTo || appendTo === 'root') {
|
|
@@ -1397,7 +1492,7 @@ class ToolBarComponent {
|
|
|
1397
1492
|
this.toggle(open);
|
|
1398
1493
|
}
|
|
1399
1494
|
get popupOpen() {
|
|
1400
|
-
return this._open;
|
|
1495
|
+
return this._open();
|
|
1401
1496
|
}
|
|
1402
1497
|
/**
|
|
1403
1498
|
* @hidden
|
|
@@ -1418,21 +1513,32 @@ class ToolBarComponent {
|
|
|
1418
1513
|
get sectionClass() {
|
|
1419
1514
|
return this.normalizedOverflow.mode === 'section';
|
|
1420
1515
|
}
|
|
1421
|
-
_overflow = false;
|
|
1422
|
-
_popupSettings;
|
|
1423
|
-
cachedOverflowAnchorWidth;
|
|
1424
|
-
_open;
|
|
1516
|
+
_overflow = signal(false, ...(ngDevMode ? [{ debugName: "_overflow" }] : /* istanbul ignore next */ []));
|
|
1517
|
+
_popupSettings = signal(undefined, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : /* istanbul ignore next */ []));
|
|
1518
|
+
cachedOverflowAnchorWidth = signal(null, ...(ngDevMode ? [{ debugName: "cachedOverflowAnchorWidth" }] : /* istanbul ignore next */ []));
|
|
1519
|
+
_open = signal(false, ...(ngDevMode ? [{ debugName: "_open" }] : /* istanbul ignore next */ []));
|
|
1520
|
+
_direction = signal('ltr', ...(ngDevMode ? [{ debugName: "_direction" }] : /* istanbul ignore next */ []));
|
|
1521
|
+
_tabindex = signal(0, ...(ngDevMode ? [{ debugName: "_tabindex" }] : /* istanbul ignore next */ []));
|
|
1425
1522
|
toolbarKeydownListener;
|
|
1426
1523
|
overflowKeydownListener;
|
|
1427
1524
|
sectionKeydownListener;
|
|
1428
1525
|
cancelRenderedToolsSubscription$ = new Subject();
|
|
1429
|
-
cachedGap;
|
|
1430
|
-
_size = undefined;
|
|
1431
|
-
_fillMode = undefined;
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1526
|
+
cachedGap = signal(null, ...(ngDevMode ? [{ debugName: "cachedGap" }] : /* istanbul ignore next */ []));
|
|
1527
|
+
_size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : /* istanbul ignore next */ []));
|
|
1528
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : /* istanbul ignore next */ []));
|
|
1529
|
+
_scrollButtonClasses = computed(() => {
|
|
1530
|
+
const size = SIZES[this._size()];
|
|
1531
|
+
const fillMode = this._fillMode();
|
|
1532
|
+
return [
|
|
1533
|
+
size && `k-button-${size}`,
|
|
1534
|
+
fillMode && `k-button-${fillMode}`
|
|
1535
|
+
].filter(Boolean);
|
|
1536
|
+
}, ...(ngDevMode ? [{ debugName: "_scrollButtonClasses" }] : /* istanbul ignore next */ []));
|
|
1537
|
+
_showText = signal('always', ...(ngDevMode ? [{ debugName: "_showText" }] : /* istanbul ignore next */ []));
|
|
1538
|
+
_showIcon = signal('always', ...(ngDevMode ? [{ debugName: "_showIcon" }] : /* istanbul ignore next */ []));
|
|
1539
|
+
overflowButtonClickedTime = signal(null, ...(ngDevMode ? [{ debugName: "overflowButtonClickedTime" }] : /* istanbul ignore next */ []));
|
|
1540
|
+
_showAutoButtons = signal(false, ...(ngDevMode ? [{ debugName: "_showAutoButtons" }] : /* istanbul ignore next */ []));
|
|
1541
|
+
_showOverflowSeparator = signal(false, ...(ngDevMode ? [{ debugName: "_showOverflowSeparator" }] : /* istanbul ignore next */ []));
|
|
1436
1542
|
scrollButtonStateChangeSub;
|
|
1437
1543
|
scrollContainerScrollSub;
|
|
1438
1544
|
/**
|
|
@@ -1485,37 +1591,38 @@ class ToolBarComponent {
|
|
|
1485
1591
|
licenseMessage;
|
|
1486
1592
|
constructor(localization, popupService, refreshService, navigationService,
|
|
1487
1593
|
// Needs to be public as it is being accessed in the Editor component
|
|
1488
|
-
element,
|
|
1594
|
+
element, renderer, _cdr, toolsService, scrollService, injector, zone) {
|
|
1489
1595
|
this.localization = localization;
|
|
1490
1596
|
this.popupService = popupService;
|
|
1491
1597
|
this.refreshService = refreshService;
|
|
1492
1598
|
this.navigationService = navigationService;
|
|
1493
1599
|
this.element = element;
|
|
1494
|
-
this.zone = zone;
|
|
1495
1600
|
this.renderer = renderer;
|
|
1496
1601
|
this._cdr = _cdr;
|
|
1497
1602
|
this.toolsService = toolsService;
|
|
1498
1603
|
this.scrollService = scrollService;
|
|
1604
|
+
this.injector = injector;
|
|
1605
|
+
this.zone = zone;
|
|
1499
1606
|
const isValid = validatePackage(packageMetadata);
|
|
1500
1607
|
this.licenseMessage = getLicenseMessage(packageMetadata);
|
|
1501
1608
|
this.showLicenseWatermark = shouldShowValidationUI(isValid);
|
|
1502
|
-
this.
|
|
1609
|
+
this._direction.set(localization.rtl ? 'rtl' : 'ltr');
|
|
1503
1610
|
this.scrollService.owner = this;
|
|
1504
1611
|
}
|
|
1505
1612
|
ngAfterContentInit() {
|
|
1506
|
-
this.toolsService.allTools
|
|
1613
|
+
this.toolsService.allTools.set(this.allTools.toArray());
|
|
1507
1614
|
this.subscriptions.add(this.allTools.changes.subscribe(() => {
|
|
1508
1615
|
this.toolsService.reset();
|
|
1509
|
-
this.toolsService.allTools
|
|
1616
|
+
this.toolsService.allTools.set(this.allTools.toArray());
|
|
1510
1617
|
this.allTools.forEach((tool) => {
|
|
1511
1618
|
this.refreshService.refresh(tool);
|
|
1512
1619
|
});
|
|
1513
|
-
|
|
1620
|
+
afterNextRender(() => this.onResize(), { injector: this.injector });
|
|
1514
1621
|
}));
|
|
1515
1622
|
}
|
|
1516
1623
|
ngAfterViewInit() {
|
|
1517
|
-
this.toolsService.renderedToolsChange.next(this.toolsService.renderedTools);
|
|
1518
|
-
this.toolsService.overflowToolsChange.next(this.toolsService.overflowTools);
|
|
1624
|
+
this.toolsService.renderedToolsChange.next(this.toolsService.renderedTools());
|
|
1625
|
+
this.toolsService.overflowToolsChange.next(this.toolsService.overflowTools());
|
|
1519
1626
|
const element = this.element.nativeElement;
|
|
1520
1627
|
if (!element.getAttribute('tabindex')) {
|
|
1521
1628
|
this.element.nativeElement.setAttribute('tabindex', '0');
|
|
@@ -1579,13 +1686,19 @@ class ToolBarComponent {
|
|
|
1579
1686
|
}
|
|
1580
1687
|
// because of https://github.com/telerik/kendo-angular-buttons/pull/276
|
|
1581
1688
|
// button icons are not rendered until onResize() is called
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
this.
|
|
1585
|
-
|
|
1689
|
+
afterNextRender(() => {
|
|
1690
|
+
this.zone.run(() => {
|
|
1691
|
+
this.onResize();
|
|
1692
|
+
});
|
|
1693
|
+
// check if still needed after the Editor migration
|
|
1694
|
+
this.zone.runOutsideAngular(() => {
|
|
1695
|
+
setTimeout(() => {
|
|
1696
|
+
this.zone.run(() => {
|
|
1697
|
+
this.onResize();
|
|
1698
|
+
});
|
|
1586
1699
|
});
|
|
1587
1700
|
});
|
|
1588
|
-
});
|
|
1701
|
+
}, { injector: this.injector });
|
|
1589
1702
|
}
|
|
1590
1703
|
if (this.isScrollMode) {
|
|
1591
1704
|
this.handleScrollModeUpdates();
|
|
@@ -1595,11 +1708,11 @@ class ToolBarComponent {
|
|
|
1595
1708
|
this.focusedByPointer = true;
|
|
1596
1709
|
}
|
|
1597
1710
|
}));
|
|
1598
|
-
this.navigationService.setRenderedTools(this.toolsService.renderedTools);
|
|
1711
|
+
this.navigationService.setRenderedTools(this.toolsService.renderedTools());
|
|
1599
1712
|
}
|
|
1600
1713
|
ngOnInit() {
|
|
1601
|
-
this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) =>
|
|
1602
|
-
|
|
1714
|
+
this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => this._direction.set(rtl ? 'rtl' : 'ltr')));
|
|
1715
|
+
afterNextRender(() => this.onResize(), { injector: this.injector });
|
|
1603
1716
|
if (isDocumentAvailable()) {
|
|
1604
1717
|
this.zone.runOutsideAngular(() => this.subscriptions.add(fromEvent(document, 'click')
|
|
1605
1718
|
.pipe(filter(() => !!this.popupRef), filter((ev) => !this.popupRef.popup.instance.container.nativeElement.contains(ev.target)), filter((ev) => !this.overflowButton.nativeElement.contains(ev.target)))
|
|
@@ -1610,12 +1723,6 @@ class ToolBarComponent {
|
|
|
1610
1723
|
})));
|
|
1611
1724
|
}
|
|
1612
1725
|
}
|
|
1613
|
-
ngOnChanges(changes) {
|
|
1614
|
-
if (changes['tabindex']) {
|
|
1615
|
-
// prevents ExpressionChangedAfterItHasBeenCheckedError when tools with popup are opened/closed asynchronously
|
|
1616
|
-
this.element.nativeElement.setAttribute('tabindex', changes['tabindex'].currentValue.toString());
|
|
1617
|
-
}
|
|
1618
|
-
}
|
|
1619
1726
|
ngOnDestroy() {
|
|
1620
1727
|
this.destroyPopup();
|
|
1621
1728
|
if (this.toolbarKeydownListener) {
|
|
@@ -1627,7 +1734,9 @@ class ToolBarComponent {
|
|
|
1627
1734
|
/**
|
|
1628
1735
|
* @hidden
|
|
1629
1736
|
*/
|
|
1630
|
-
showOverflowSeparator
|
|
1737
|
+
get showOverflowSeparator() {
|
|
1738
|
+
return this._showOverflowSeparator();
|
|
1739
|
+
}
|
|
1631
1740
|
/**
|
|
1632
1741
|
* @hidden
|
|
1633
1742
|
*/
|
|
@@ -1689,13 +1798,13 @@ class ToolBarComponent {
|
|
|
1689
1798
|
showPopup() {
|
|
1690
1799
|
this.popupOpen = !this.popupOpen;
|
|
1691
1800
|
this.navigationService.click({ context: undefined, event: undefined });
|
|
1692
|
-
this.overflowButtonClickedTime
|
|
1801
|
+
this.overflowButtonClickedTime.set(Date.now());
|
|
1693
1802
|
}
|
|
1694
1803
|
/**
|
|
1695
1804
|
* Toggles the visibility of the overflow popup.
|
|
1696
1805
|
*/
|
|
1697
1806
|
toggle(popupOpen) {
|
|
1698
|
-
this._open
|
|
1807
|
+
this._open.set(popupOpen !== undefined ? popupOpen : !this.popupOpen);
|
|
1699
1808
|
if (this.popupRef) {
|
|
1700
1809
|
this.popupRef.close();
|
|
1701
1810
|
this.popupRef = null;
|
|
@@ -1739,7 +1848,7 @@ class ToolBarComponent {
|
|
|
1739
1848
|
this.shrink(containerWidth, this.childrenWidth);
|
|
1740
1849
|
this.stretch(containerWidth, this.childrenWidth);
|
|
1741
1850
|
this.displayAnchor();
|
|
1742
|
-
const isImmediateResize = (Date.now() - this.overflowButtonClickedTime) < immediateResizeThreshold;
|
|
1851
|
+
const isImmediateResize = (Date.now() - this.overflowButtonClickedTime()) < immediateResizeThreshold;
|
|
1743
1852
|
if (this.popupOpen && !isImmediateResize) {
|
|
1744
1853
|
const eventArgs = new PreventableEvent();
|
|
1745
1854
|
this.close.emit(eventArgs);
|
|
@@ -1753,7 +1862,7 @@ class ToolBarComponent {
|
|
|
1753
1862
|
if (this.normalizedOverflow.scrollButtons === 'auto') {
|
|
1754
1863
|
const containerWidth = innerWidth(this.element.nativeElement);
|
|
1755
1864
|
let scrollButtonsWidth = 0;
|
|
1756
|
-
if (this.
|
|
1865
|
+
if (this._showAutoButtons()) {
|
|
1757
1866
|
const separatorWidth = this.scrollSeparator.nativeElement.getBoundingClientRect().width + 2 * this.gap;
|
|
1758
1867
|
if (this.hasScrollButtons.position === 'split') {
|
|
1759
1868
|
scrollButtonsWidth = innerWidth(this.prevScrollButton.nativeElement) + innerWidth(this.nextScrollButton.nativeElement) + 2 * separatorWidth;
|
|
@@ -1766,8 +1875,8 @@ class ToolBarComponent {
|
|
|
1766
1875
|
}
|
|
1767
1876
|
}
|
|
1768
1877
|
const shouldShowButtons = (this.childrenWidth + scrollButtonsWidth) > containerWidth;
|
|
1769
|
-
if (shouldShowButtons !== this.
|
|
1770
|
-
this.
|
|
1878
|
+
if (shouldShowButtons !== this._showAutoButtons()) {
|
|
1879
|
+
this._showAutoButtons.set(shouldShowButtons);
|
|
1771
1880
|
this.cdr.detectChanges();
|
|
1772
1881
|
}
|
|
1773
1882
|
this.scrollService.toggleScrollButtonsState();
|
|
@@ -1884,11 +1993,13 @@ class ToolBarComponent {
|
|
|
1884
1993
|
}
|
|
1885
1994
|
});
|
|
1886
1995
|
this.cancelRenderedToolsSubscription$.next(undefined);
|
|
1887
|
-
this.navigationService.setRenderedTools(this.toolsService.overflowTools);
|
|
1996
|
+
this.navigationService.setRenderedTools(this.toolsService.overflowTools());
|
|
1888
1997
|
this.navigationService.moveFocusToPopup();
|
|
1889
1998
|
this.toolsService.overflowToolsChange
|
|
1890
1999
|
.pipe(takeUntil(this.cancelRenderedToolsSubscription$))
|
|
1891
|
-
.subscribe((rts) =>
|
|
2000
|
+
.subscribe((rts) => {
|
|
2001
|
+
this.navigationService.setRenderedTools(rts);
|
|
2002
|
+
});
|
|
1892
2003
|
this.renderer.setAttribute(this.overflowButton.nativeElement, 'aria-controls', this.popupId);
|
|
1893
2004
|
}
|
|
1894
2005
|
/**
|
|
@@ -1896,7 +2007,7 @@ class ToolBarComponent {
|
|
|
1896
2007
|
*/
|
|
1897
2008
|
onPopupClose() {
|
|
1898
2009
|
this.cancelRenderedToolsSubscription$.next(undefined);
|
|
1899
|
-
this.navigationService.setRenderedTools(this.toolsService.renderedTools);
|
|
2010
|
+
this.navigationService.setRenderedTools(this.toolsService.renderedTools());
|
|
1900
2011
|
this.toolsService.renderedToolsChange
|
|
1901
2012
|
.pipe(takeUntil(this.cancelRenderedToolsSubscription$))
|
|
1902
2013
|
.subscribe((rts) => this.navigationService.setRenderedTools(rts));
|
|
@@ -1921,22 +2032,21 @@ class ToolBarComponent {
|
|
|
1921
2032
|
const visibility = this.allTools.filter(t => t.overflows && t.responsive).length > 0 ? 'visible' : 'hidden';
|
|
1922
2033
|
this.overflowButton && this.renderer.setStyle(this.overflowButton.nativeElement, 'visibility', visibility);
|
|
1923
2034
|
const isVisible = visibility === 'visible';
|
|
1924
|
-
if (isVisible !== this.
|
|
1925
|
-
this.
|
|
1926
|
-
this.cdr.detectChanges();
|
|
2035
|
+
if (isVisible !== this._showOverflowSeparator()) {
|
|
2036
|
+
this._showOverflowSeparator.set(isVisible);
|
|
1927
2037
|
}
|
|
1928
2038
|
if (!isVisible) {
|
|
1929
2039
|
this.destroyPopup();
|
|
1930
2040
|
}
|
|
1931
2041
|
}
|
|
1932
2042
|
get popupWidth() {
|
|
1933
|
-
if (!this.popupSettings
|
|
2043
|
+
if (!this.popupSettings?.width) {
|
|
1934
2044
|
return 'auto';
|
|
1935
2045
|
}
|
|
1936
2046
|
return isNaN(this.popupSettings.width) ? this.popupSettings.width : `${this.popupSettings.width}px`;
|
|
1937
2047
|
}
|
|
1938
2048
|
get popupHeight() {
|
|
1939
|
-
if (!this.popupSettings
|
|
2049
|
+
if (!this.popupSettings?.height) {
|
|
1940
2050
|
return;
|
|
1941
2051
|
}
|
|
1942
2052
|
return isNaN(this.popupSettings.height) ? this.popupSettings.height : `${this.popupSettings.height}px`;
|
|
@@ -1945,21 +2055,21 @@ class ToolBarComponent {
|
|
|
1945
2055
|
if (!this.showMenu) {
|
|
1946
2056
|
return 0;
|
|
1947
2057
|
}
|
|
1948
|
-
if (!this.cachedOverflowAnchorWidth) {
|
|
1949
|
-
this.cachedOverflowAnchorWidth
|
|
2058
|
+
if (!this.cachedOverflowAnchorWidth()) {
|
|
2059
|
+
this.cachedOverflowAnchorWidth.set(this.overflowButton.nativeElement.offsetWidth);
|
|
1950
2060
|
}
|
|
1951
|
-
return this.cachedOverflowAnchorWidth;
|
|
2061
|
+
return this.cachedOverflowAnchorWidth();
|
|
1952
2062
|
}
|
|
1953
2063
|
get gap() {
|
|
1954
|
-
if (isPresent(this.cachedGap)) {
|
|
1955
|
-
return this.cachedGap;
|
|
2064
|
+
if (isPresent(this.cachedGap())) {
|
|
2065
|
+
return this.cachedGap();
|
|
1956
2066
|
}
|
|
1957
2067
|
const computedGap = getComputedStyle(this.element.nativeElement).gap;
|
|
1958
|
-
this.cachedGap
|
|
1959
|
-
return this.cachedGap;
|
|
2068
|
+
this.cachedGap.set(isPresent(computedGap) ? parseInt(computedGap, 10) : 0);
|
|
2069
|
+
return this.cachedGap();
|
|
1960
2070
|
}
|
|
1961
2071
|
get childrenWidth() {
|
|
1962
|
-
const width = this.toolsService.renderedTools.reduce((totalWidth, tool) => tool.width + totalWidth + (tool.isDisplayed() ? this.gap : 0), 0);
|
|
2072
|
+
const width = this.toolsService.renderedTools().reduce((totalWidth, tool) => tool.width + totalWidth + (tool.isDisplayed() ? this.gap : 0), 0);
|
|
1963
2073
|
return Math.ceil(width);
|
|
1964
2074
|
}
|
|
1965
2075
|
get visibleTools() {
|
|
@@ -2005,7 +2115,7 @@ class ToolBarComponent {
|
|
|
2005
2115
|
if (!tool) {
|
|
2006
2116
|
return null;
|
|
2007
2117
|
}
|
|
2008
|
-
const renderedElement = this.toolsService.renderedTools.find((r) => {
|
|
2118
|
+
const renderedElement = this.toolsService.renderedTools().find((r) => {
|
|
2009
2119
|
return r.tool === tool;
|
|
2010
2120
|
});
|
|
2011
2121
|
if (!isPresent(renderedElement)) {
|
|
@@ -2021,8 +2131,8 @@ class ToolBarComponent {
|
|
|
2021
2131
|
if (!tool) {
|
|
2022
2132
|
return null;
|
|
2023
2133
|
}
|
|
2024
|
-
const renderedElement = this.toolsService.renderedTools.find((r) => r.tool === tool);
|
|
2025
|
-
if (!
|
|
2134
|
+
const renderedElement = this.toolsService.renderedTools().find((r) => r.tool === tool);
|
|
2135
|
+
if (!renderedElement) {
|
|
2026
2136
|
return 0;
|
|
2027
2137
|
}
|
|
2028
2138
|
tool.overflows = false;
|
|
@@ -2054,16 +2164,9 @@ class ToolBarComponent {
|
|
|
2054
2164
|
this.popupSubs.unsubscribe();
|
|
2055
2165
|
this.popupRef.close();
|
|
2056
2166
|
this.popupRef = null;
|
|
2057
|
-
this._open
|
|
2167
|
+
this._open.set(false);
|
|
2058
2168
|
}
|
|
2059
2169
|
}
|
|
2060
|
-
updateScrollButtonClasses() {
|
|
2061
|
-
const size = SIZES[this._size];
|
|
2062
|
-
this.scrollButtonClasses = [
|
|
2063
|
-
size && `k-button-${size}`,
|
|
2064
|
-
this._fillMode && `k-button-${this._fillMode}`
|
|
2065
|
-
].filter(Boolean);
|
|
2066
|
-
}
|
|
2067
2170
|
handleClasses(value, input) {
|
|
2068
2171
|
const elem = this.element.nativeElement;
|
|
2069
2172
|
const classes = getStylingClasses('toolbar', input, this[input], value);
|
|
@@ -2168,7 +2271,7 @@ class ToolBarComponent {
|
|
|
2168
2271
|
}
|
|
2169
2272
|
return value;
|
|
2170
2273
|
}
|
|
2171
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PopupService }, { token: RefreshService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.
|
|
2274
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PopupService }, { token: RefreshService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: ToolbarToolsService }, { token: ScrollService }, { token: i0.Injector }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
2172
2275
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.23", type: ToolBarComponent, isStandalone: true, selector: "kendo-toolbar", inputs: { overflow: "overflow", resizable: "resizable", popupSettings: "popupSettings", fillMode: "fillMode", tabindex: "tabindex", size: "size", tabIndex: "tabIndex", showIcon: "showIcon", showText: "showText", toolsSource: "toolsSource" }, 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: [
|
|
2173
2276
|
RefreshService,
|
|
2174
2277
|
NavigationService,
|
|
@@ -2180,7 +2283,7 @@ class ToolBarComponent {
|
|
|
2180
2283
|
useValue: 'kendo.toolbar'
|
|
2181
2284
|
},
|
|
2182
2285
|
provideComponentName('toolbar')
|
|
2183
|
-
], queries: [{ propertyName: "contentTools", 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"],
|
|
2286
|
+
], queries: [{ propertyName: "contentTools", 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"], ngImport: i0, template: `
|
|
2184
2287
|
<ng-container kendoToolbarLocalizedMessages
|
|
2185
2288
|
i18n-moreToolsTitle="kendo.toolbar.moreToolsTitle|The title of the **more tools** button in a responsive ToolBar"
|
|
2186
2289
|
moreToolsTitle="More tools"
|
|
@@ -2378,7 +2481,7 @@ class ToolBarComponent {
|
|
|
2378
2481
|
@if (showLicenseWatermark) {
|
|
2379
2482
|
<div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
|
|
2380
2483
|
}
|
|
2381
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: LocalizedToolbarMessagesDirective, selector: "[kendoToolbarLocalizedMessages]" }, { kind: "directive", type: ToolBarRendererComponent, selector: "[kendoToolbarRenderer]", inputs: ["tool", "location", "resizable"], outputs: ["rendererClick"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], 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"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: ["licenseMessage"] }] });
|
|
2484
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: LocalizedToolbarMessagesDirective, selector: "[kendoToolbarLocalizedMessages]" }, { kind: "directive", type: ToolBarRendererComponent, selector: "[kendoToolbarRenderer]", inputs: ["tool", "location", "resizable"], outputs: ["rendererClick"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], 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"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2382
2485
|
}
|
|
2383
2486
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarComponent, decorators: [{
|
|
2384
2487
|
type: Component,
|
|
@@ -2597,9 +2700,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
2597
2700
|
}
|
|
2598
2701
|
`,
|
|
2599
2702
|
standalone: true,
|
|
2703
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2600
2704
|
imports: [NgTemplateOutlet, LocalizedToolbarMessagesDirective, ToolBarRendererComponent, ButtonComponent, NgClass, ResizeSensorComponent, ToolbarScrollableButtonComponent, WatermarkOverlayComponent]
|
|
2601
2705
|
}]
|
|
2602
|
-
}], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i2.PopupService }, { type: RefreshService }, { type: NavigationService }, { type: i0.ElementRef }, { type: i0.
|
|
2706
|
+
}], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i2.PopupService }, { type: RefreshService }, { type: NavigationService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: ToolbarToolsService }, { type: ScrollService }, { type: i0.Injector }, { type: i0.NgZone }], propDecorators: { overflow: [{
|
|
2603
2707
|
type: Input
|
|
2604
2708
|
}], resizable: [{
|
|
2605
2709
|
type: Input
|
|
@@ -2701,8 +2805,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
2701
2805
|
*/
|
|
2702
2806
|
class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
2703
2807
|
element;
|
|
2704
|
-
|
|
2808
|
+
injector;
|
|
2705
2809
|
host;
|
|
2810
|
+
cdr;
|
|
2706
2811
|
// showText and showIcon showIcon should be declared first
|
|
2707
2812
|
/**
|
|
2708
2813
|
* Specifies the button text visibility.
|
|
@@ -2710,11 +2815,11 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2710
2815
|
* @default 'always'
|
|
2711
2816
|
*/
|
|
2712
2817
|
set showText(value) {
|
|
2713
|
-
this._showText
|
|
2818
|
+
this._showText.set(value);
|
|
2714
2819
|
this.setTextDisplayMode();
|
|
2715
2820
|
}
|
|
2716
2821
|
get showText() {
|
|
2717
|
-
return this._showText;
|
|
2822
|
+
return this._showText();
|
|
2718
2823
|
}
|
|
2719
2824
|
/**
|
|
2720
2825
|
* Specifies the button icon visibility.
|
|
@@ -2722,22 +2827,22 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2722
2827
|
* @default 'always'
|
|
2723
2828
|
*/
|
|
2724
2829
|
set showIcon(value) {
|
|
2725
|
-
this._showIcon
|
|
2830
|
+
this._showIcon.set(value);
|
|
2726
2831
|
this.setIconDisplayMode();
|
|
2727
2832
|
}
|
|
2728
2833
|
get showIcon() {
|
|
2729
|
-
return this._showIcon;
|
|
2834
|
+
return this._showIcon();
|
|
2730
2835
|
}
|
|
2731
2836
|
/**
|
|
2732
2837
|
* Specifies the text of the Button
|
|
2733
2838
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/toolbar/control-types#buttons)).
|
|
2734
2839
|
*/
|
|
2735
2840
|
set text(text) {
|
|
2736
|
-
this._text
|
|
2841
|
+
this._text.set(text);
|
|
2737
2842
|
this.setTextDisplayMode();
|
|
2738
2843
|
}
|
|
2739
2844
|
get text() {
|
|
2740
|
-
return this._text;
|
|
2845
|
+
return this._text();
|
|
2741
2846
|
}
|
|
2742
2847
|
/**
|
|
2743
2848
|
* @hidden
|
|
@@ -2748,30 +2853,55 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2748
2853
|
/**
|
|
2749
2854
|
* Specifies custom inline CSS styles for the Button.
|
|
2750
2855
|
*/
|
|
2751
|
-
style
|
|
2856
|
+
set style(value) {
|
|
2857
|
+
this._style.set(value);
|
|
2858
|
+
}
|
|
2859
|
+
get style() {
|
|
2860
|
+
return this._style();
|
|
2861
|
+
}
|
|
2752
2862
|
/**
|
|
2753
2863
|
* Specifies custom CSS class names to be added to the Button.
|
|
2754
2864
|
*/
|
|
2755
|
-
className
|
|
2865
|
+
set className(value) {
|
|
2866
|
+
this._className.set(value);
|
|
2867
|
+
}
|
|
2868
|
+
get className() {
|
|
2869
|
+
return this._className();
|
|
2870
|
+
}
|
|
2756
2871
|
/**
|
|
2757
2872
|
* Specifies the `title` attribute of the Button.
|
|
2758
2873
|
*
|
|
2759
2874
|
* @remarks
|
|
2760
2875
|
* This property is related to accessibility.
|
|
2761
2876
|
*/
|
|
2762
|
-
title
|
|
2877
|
+
set title(value) {
|
|
2878
|
+
this._title.set(value);
|
|
2879
|
+
}
|
|
2880
|
+
get title() {
|
|
2881
|
+
return this._title();
|
|
2882
|
+
}
|
|
2763
2883
|
/**
|
|
2764
2884
|
* Disables the Button when set to `true`
|
|
2765
2885
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/toolbar/control-types#buttons)).
|
|
2766
2886
|
*/
|
|
2767
|
-
disabled
|
|
2887
|
+
set disabled(value) {
|
|
2888
|
+
this._disabled.set(value);
|
|
2889
|
+
}
|
|
2890
|
+
get disabled() {
|
|
2891
|
+
return this._disabled();
|
|
2892
|
+
}
|
|
2768
2893
|
/**
|
|
2769
2894
|
* Provides visual styling to indicate if the Button is active
|
|
2770
2895
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/toolbar/control-types#toggle-buttons)).
|
|
2771
2896
|
* For toggleable buttons, set this to `true`.
|
|
2772
2897
|
* @default false
|
|
2773
2898
|
*/
|
|
2774
|
-
toggleable
|
|
2899
|
+
set toggleable(value) {
|
|
2900
|
+
this._toggleable.set(value);
|
|
2901
|
+
}
|
|
2902
|
+
get toggleable() {
|
|
2903
|
+
return this._toggleable();
|
|
2904
|
+
}
|
|
2775
2905
|
/**
|
|
2776
2906
|
* @hidden
|
|
2777
2907
|
*/
|
|
@@ -2794,26 +2924,46 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2794
2924
|
* Use with the `toggleable` property.
|
|
2795
2925
|
* @default false
|
|
2796
2926
|
*/
|
|
2797
|
-
selected
|
|
2927
|
+
set selected(value) {
|
|
2928
|
+
this._selected.set(value);
|
|
2929
|
+
}
|
|
2930
|
+
get selected() {
|
|
2931
|
+
return this._selected();
|
|
2932
|
+
}
|
|
2798
2933
|
/**
|
|
2799
2934
|
* Specifies the background and border styles of the Button. The default value is set by the Kendo theme.
|
|
2800
2935
|
*/
|
|
2801
|
-
fillMode
|
|
2936
|
+
set fillMode(value) {
|
|
2937
|
+
this._fillMode.set(value);
|
|
2938
|
+
}
|
|
2939
|
+
get fillMode() {
|
|
2940
|
+
return this._fillMode();
|
|
2941
|
+
}
|
|
2802
2942
|
/**
|
|
2803
2943
|
* Specifies the border radius of the Button. The default value is set by the Kendo theme.
|
|
2804
2944
|
*/
|
|
2805
|
-
rounded
|
|
2945
|
+
set rounded(value) {
|
|
2946
|
+
this._rounded.set(value);
|
|
2947
|
+
}
|
|
2948
|
+
get rounded() {
|
|
2949
|
+
return this._rounded();
|
|
2950
|
+
}
|
|
2806
2951
|
/**
|
|
2807
2952
|
* Specifies the predefined theme color of the Button. The default value is set by the Kendo theme.
|
|
2808
2953
|
*/
|
|
2809
|
-
themeColor
|
|
2954
|
+
set themeColor(value) {
|
|
2955
|
+
this._themeColor.set(value);
|
|
2956
|
+
}
|
|
2957
|
+
get themeColor() {
|
|
2958
|
+
return this._themeColor();
|
|
2959
|
+
}
|
|
2810
2960
|
/**
|
|
2811
2961
|
* Defines the name for an existing icon in a Kendo UI theme
|
|
2812
2962
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/toolbar/control-types#buttons)).
|
|
2813
2963
|
* The icon is rendered inside the Button by a `span.k-icon` element.
|
|
2814
2964
|
*/
|
|
2815
2965
|
set icon(icon) {
|
|
2816
|
-
this._icon
|
|
2966
|
+
this._icon.set(icon);
|
|
2817
2967
|
this.setIconDisplayMode();
|
|
2818
2968
|
}
|
|
2819
2969
|
/**
|
|
@@ -2821,7 +2971,7 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2821
2971
|
* Allows the usage of custom icons.
|
|
2822
2972
|
*/
|
|
2823
2973
|
set iconClass(iconClass) {
|
|
2824
|
-
this._iconClass
|
|
2974
|
+
this._iconClass.set(iconClass);
|
|
2825
2975
|
this.setIconDisplayMode();
|
|
2826
2976
|
}
|
|
2827
2977
|
/**
|
|
@@ -2829,12 +2979,12 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2829
2979
|
* Accepts either an [existing Kendo SVG icon](https://www.telerik.com/kendo-angular-ui/components/icons/svgicon/svgicon-list) or a custom one.
|
|
2830
2980
|
*/
|
|
2831
2981
|
set svgIcon(icon) {
|
|
2832
|
-
const isIconSet = this._icon;
|
|
2833
|
-
const isIconClassSet = this._iconClass;
|
|
2982
|
+
const isIconSet = this._icon();
|
|
2983
|
+
const isIconClassSet = this._iconClass();
|
|
2834
2984
|
if (isDevMode() && icon && isIconSet && isIconClassSet) {
|
|
2835
2985
|
throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
|
|
2836
2986
|
}
|
|
2837
|
-
this._svgIcon
|
|
2987
|
+
this._svgIcon.set(icon);
|
|
2838
2988
|
this.setIconDisplayMode();
|
|
2839
2989
|
}
|
|
2840
2990
|
/**
|
|
@@ -2842,7 +2992,7 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2842
2992
|
* The URL can be relative or absolute.
|
|
2843
2993
|
*/
|
|
2844
2994
|
set imageUrl(imageUrl) {
|
|
2845
|
-
this._imageUrl
|
|
2995
|
+
this._imageUrl.set(imageUrl);
|
|
2846
2996
|
this.setIconDisplayMode();
|
|
2847
2997
|
}
|
|
2848
2998
|
/**
|
|
@@ -2858,20 +3008,18 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2858
3008
|
* The event argument is the new selected state (Boolean).
|
|
2859
3009
|
*/
|
|
2860
3010
|
selectedChange = new EventEmitter();
|
|
2861
|
-
toolbarOptions
|
|
2862
|
-
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
imageUrl: '',
|
|
2874
|
-
};
|
|
3011
|
+
set toolbarOptions(value) {
|
|
3012
|
+
this._toolbarOptions.set(value);
|
|
3013
|
+
}
|
|
3014
|
+
get toolbarOptions() {
|
|
3015
|
+
return this._toolbarOptions();
|
|
3016
|
+
}
|
|
3017
|
+
set overflowOptions(value) {
|
|
3018
|
+
this._overflowOptions.set(value);
|
|
3019
|
+
}
|
|
3020
|
+
get overflowOptions() {
|
|
3021
|
+
return this._overflowOptions();
|
|
3022
|
+
}
|
|
2875
3023
|
/**
|
|
2876
3024
|
* @hidden
|
|
2877
3025
|
*/
|
|
@@ -2880,22 +3028,59 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2880
3028
|
* @hidden
|
|
2881
3029
|
*/
|
|
2882
3030
|
showBadge = false;
|
|
3031
|
+
/**
|
|
3032
|
+
* @hidden
|
|
3033
|
+
*/
|
|
3034
|
+
set location(value) {
|
|
3035
|
+
super.location = value;
|
|
3036
|
+
this.cdr.markForCheck();
|
|
3037
|
+
}
|
|
3038
|
+
/**
|
|
3039
|
+
* @hidden
|
|
3040
|
+
*/
|
|
3041
|
+
get location() {
|
|
3042
|
+
return super.location;
|
|
3043
|
+
}
|
|
2883
3044
|
toolbarButtonElement;
|
|
2884
3045
|
sectionButtonElement;
|
|
2885
3046
|
overflowButtonElement;
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
3047
|
+
_icon = signal(null, ...(ngDevMode ? [{ debugName: "_icon" }] : /* istanbul ignore next */ []));
|
|
3048
|
+
_iconClass = signal(null, ...(ngDevMode ? [{ debugName: "_iconClass" }] : /* istanbul ignore next */ []));
|
|
3049
|
+
_svgIcon = signal(null, ...(ngDevMode ? [{ debugName: "_svgIcon" }] : /* istanbul ignore next */ []));
|
|
3050
|
+
_imageUrl = signal(null, ...(ngDevMode ? [{ debugName: "_imageUrl" }] : /* istanbul ignore next */ []));
|
|
3051
|
+
_showText = signal(null, ...(ngDevMode ? [{ debugName: "_showText" }] : /* istanbul ignore next */ []));
|
|
3052
|
+
_showIcon = signal(null, ...(ngDevMode ? [{ debugName: "_showIcon" }] : /* istanbul ignore next */ []));
|
|
3053
|
+
_text = signal(null, ...(ngDevMode ? [{ debugName: "_text" }] : /* istanbul ignore next */ []));
|
|
3054
|
+
_style = signal(null, ...(ngDevMode ? [{ debugName: "_style" }] : /* istanbul ignore next */ []));
|
|
3055
|
+
_className = signal(null, ...(ngDevMode ? [{ debugName: "_className" }] : /* istanbul ignore next */ []));
|
|
3056
|
+
_title = signal(null, ...(ngDevMode ? [{ debugName: "_title" }] : /* istanbul ignore next */ []));
|
|
3057
|
+
_disabled = signal(false, ...(ngDevMode ? [{ debugName: "_disabled" }] : /* istanbul ignore next */ []));
|
|
3058
|
+
_toggleable = signal(false, ...(ngDevMode ? [{ debugName: "_toggleable" }] : /* istanbul ignore next */ []));
|
|
3059
|
+
_selected = signal(false, ...(ngDevMode ? [{ debugName: "_selected" }] : /* istanbul ignore next */ []));
|
|
3060
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : /* istanbul ignore next */ []));
|
|
3061
|
+
_rounded = signal(undefined, ...(ngDevMode ? [{ debugName: "_rounded" }] : /* istanbul ignore next */ []));
|
|
3062
|
+
_themeColor = signal(undefined, ...(ngDevMode ? [{ debugName: "_themeColor" }] : /* istanbul ignore next */ []));
|
|
2893
3063
|
propertyChangeSub;
|
|
2894
|
-
|
|
3064
|
+
_overflowOptions = signal({
|
|
3065
|
+
text: '',
|
|
3066
|
+
icon: '',
|
|
3067
|
+
iconClass: '',
|
|
3068
|
+
svgIcon: null,
|
|
3069
|
+
imageUrl: ''
|
|
3070
|
+
}, ...(ngDevMode ? [{ debugName: "_overflowOptions" }] : /* istanbul ignore next */ []));
|
|
3071
|
+
_toolbarOptions = signal({
|
|
3072
|
+
text: '',
|
|
3073
|
+
icon: '',
|
|
3074
|
+
iconClass: '',
|
|
3075
|
+
svgIcon: null,
|
|
3076
|
+
imageUrl: ''
|
|
3077
|
+
}, ...(ngDevMode ? [{ debugName: "_toolbarOptions" }] : /* istanbul ignore next */ []));
|
|
3078
|
+
constructor(element, injector, host, cdr) {
|
|
2895
3079
|
super();
|
|
2896
3080
|
this.element = element;
|
|
2897
|
-
this.
|
|
3081
|
+
this.injector = injector;
|
|
2898
3082
|
this.host = host;
|
|
3083
|
+
this.cdr = cdr;
|
|
2899
3084
|
this.isBuiltInTool = true;
|
|
2900
3085
|
this.propertyChangeSub = this.host.propertyChange.subscribe(change => {
|
|
2901
3086
|
if (change.property === 'showText' || change.property === 'showIcon') {
|
|
@@ -2910,17 +3095,6 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2910
3095
|
this.propertyChangeSub.unsubscribe();
|
|
2911
3096
|
this.propertyChangeSub = null;
|
|
2912
3097
|
}
|
|
2913
|
-
ngOnChanges(changes) {
|
|
2914
|
-
if (changes['rounded']) {
|
|
2915
|
-
this.rounded = changes['rounded'].currentValue;
|
|
2916
|
-
}
|
|
2917
|
-
if (changes['themeColor']) {
|
|
2918
|
-
this.themeColor = changes['themeColor'].currentValue;
|
|
2919
|
-
}
|
|
2920
|
-
if (changes['showText']) {
|
|
2921
|
-
this.showText = changes['showText'].currentValue;
|
|
2922
|
-
}
|
|
2923
|
-
}
|
|
2924
3098
|
/**
|
|
2925
3099
|
* @hidden
|
|
2926
3100
|
*/
|
|
@@ -2975,22 +3149,22 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
2975
3149
|
}
|
|
2976
3150
|
setTextDisplayMode() {
|
|
2977
3151
|
this.toolbarOptions.text = this.showText === 'menu' || this.showText === 'never' ? undefined : this.text;
|
|
2978
|
-
|
|
3152
|
+
afterNextRender(() => {
|
|
2979
3153
|
this.overflowOptions.text = this.showText === 'toolbar' || this.showText === 'never' ? undefined : this.text;
|
|
2980
|
-
});
|
|
3154
|
+
}, { injector: this.injector });
|
|
2981
3155
|
}
|
|
2982
3156
|
setIconDisplayMode() {
|
|
2983
|
-
this.toolbarOptions.icon = getValueForLocation(this._icon, this.showIcon, false);
|
|
2984
|
-
this.overflowOptions.icon = getValueForLocation(this._icon, this.showIcon, true);
|
|
2985
|
-
this.toolbarOptions.iconClass = getValueForLocation(this._iconClass, this.showIcon, false);
|
|
2986
|
-
this.overflowOptions.iconClass = getValueForLocation(this._iconClass, this.showIcon, true);
|
|
2987
|
-
this.toolbarOptions.svgIcon = getValueForLocation(this._svgIcon, this.showIcon, false);
|
|
2988
|
-
this.overflowOptions.svgIcon = getValueForLocation(this._svgIcon, this.showIcon, true);
|
|
2989
|
-
this.toolbarOptions.imageUrl = getValueForLocation(this._imageUrl, this.showIcon, false);
|
|
2990
|
-
this.overflowOptions.imageUrl = getValueForLocation(this._imageUrl, this.showIcon, true);
|
|
2991
|
-
}
|
|
2992
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.
|
|
2993
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.23", 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", rounded: "rounded", 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,
|
|
3157
|
+
this.toolbarOptions.icon = getValueForLocation(this._icon(), this.showIcon, false);
|
|
3158
|
+
this.overflowOptions.icon = getValueForLocation(this._icon(), this.showIcon, true);
|
|
3159
|
+
this.toolbarOptions.iconClass = getValueForLocation(this._iconClass(), this.showIcon, false);
|
|
3160
|
+
this.overflowOptions.iconClass = getValueForLocation(this._iconClass(), this.showIcon, true);
|
|
3161
|
+
this.toolbarOptions.svgIcon = getValueForLocation(this._svgIcon(), this.showIcon, false);
|
|
3162
|
+
this.overflowOptions.svgIcon = getValueForLocation(this._svgIcon(), this.showIcon, true);
|
|
3163
|
+
this.toolbarOptions.imageUrl = getValueForLocation(this._imageUrl(), this.showIcon, false);
|
|
3164
|
+
this.overflowOptions.imageUrl = getValueForLocation(this._imageUrl(), this.showIcon, true);
|
|
3165
|
+
}
|
|
3166
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: ToolBarComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3167
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.23", 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", rounded: "rounded", 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: `
|
|
2994
3168
|
<ng-template #toolbarTemplate>
|
|
2995
3169
|
@if (hasBadgeContainer) {
|
|
2996
3170
|
<kendo-badge-container>
|
|
@@ -3162,7 +3336,7 @@ class ToolBarButtonComponent extends ToolBarToolComponent {
|
|
|
3162
3336
|
</button>
|
|
3163
3337
|
}
|
|
3164
3338
|
</ng-template>
|
|
3165
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: BadgeComponent, selector: "kendo-badge", inputs: ["align", "size", "fill", "themeColor", "rounded", "position", "cutoutBorder"] }, { kind: "component", type: BadgeContainerComponent, selector: "kendo-badge-container" }] });
|
|
3339
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "component", type: BadgeComponent, selector: "kendo-badge", inputs: ["align", "size", "fill", "themeColor", "rounded", "position", "cutoutBorder"] }, { kind: "component", type: BadgeContainerComponent, selector: "kendo-badge-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3166
3340
|
}
|
|
3167
3341
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarButtonComponent, decorators: [{
|
|
3168
3342
|
type: Component,
|
|
@@ -3344,9 +3518,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
3344
3518
|
</ng-template>
|
|
3345
3519
|
`,
|
|
3346
3520
|
standalone: true,
|
|
3521
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3347
3522
|
imports: [ButtonComponent, NgStyle, NgClass, IconWrapperComponent, BadgeComponent, BadgeContainerComponent],
|
|
3348
3523
|
}]
|
|
3349
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.
|
|
3524
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Injector }, { type: ToolBarComponent }, { type: i0.ChangeDetectorRef }], propDecorators: { showText: [{
|
|
3350
3525
|
type: Input
|
|
3351
3526
|
}], showIcon: [{
|
|
3352
3527
|
type: Input
|
|
@@ -3421,28 +3596,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
3421
3596
|
class ToolBarButtonGroupComponent extends ToolBarToolComponent {
|
|
3422
3597
|
localization;
|
|
3423
3598
|
host;
|
|
3599
|
+
cdr;
|
|
3424
3600
|
/**
|
|
3425
3601
|
* When `true`, disables the whole group of buttons.
|
|
3426
3602
|
* If you set the `disabled` property of the group, it overrides the `disabled` property of individual buttons.
|
|
3427
3603
|
*/
|
|
3428
|
-
disabled
|
|
3604
|
+
set disabled(value) {
|
|
3605
|
+
this._disabled.set(value);
|
|
3606
|
+
}
|
|
3607
|
+
get disabled() {
|
|
3608
|
+
return this._disabled();
|
|
3609
|
+
}
|
|
3429
3610
|
/**
|
|
3430
3611
|
* @hidden
|
|
3431
3612
|
*
|
|
3432
3613
|
* Used to set different fillmode in Spreadsheet and Toolbar to comply with referent rendering.
|
|
3433
3614
|
* @default undefined
|
|
3434
3615
|
*/
|
|
3435
|
-
fillMode
|
|
3616
|
+
set fillMode(value) {
|
|
3617
|
+
this._fillMode.set(value);
|
|
3618
|
+
}
|
|
3619
|
+
get fillMode() {
|
|
3620
|
+
return this._fillMode();
|
|
3621
|
+
}
|
|
3436
3622
|
/**
|
|
3437
3623
|
* Sets the selection mode of the ButtonGroup.
|
|
3438
3624
|
* @default 'multiple'
|
|
3439
3625
|
*/
|
|
3440
|
-
selection
|
|
3626
|
+
set selection(value) {
|
|
3627
|
+
this._selection.set(value);
|
|
3628
|
+
}
|
|
3629
|
+
get selection() {
|
|
3630
|
+
return this._selection();
|
|
3631
|
+
}
|
|
3441
3632
|
/**
|
|
3442
3633
|
* Sets the width of the ButtonGroup.
|
|
3443
3634
|
* When you set the width of the ButtonGroup, the buttons have the same width and resize to fill the group wrapper.
|
|
3444
3635
|
*/
|
|
3445
|
-
width
|
|
3636
|
+
set width(value) {
|
|
3637
|
+
this._width.set(value);
|
|
3638
|
+
}
|
|
3639
|
+
get width() {
|
|
3640
|
+
return this._width();
|
|
3641
|
+
}
|
|
3446
3642
|
/**
|
|
3447
3643
|
* @hidden
|
|
3448
3644
|
*/
|
|
@@ -3455,6 +3651,19 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
|
|
|
3455
3651
|
sectionButtonGroup;
|
|
3456
3652
|
overflowListItems;
|
|
3457
3653
|
buttonComponents;
|
|
3654
|
+
/**
|
|
3655
|
+
* @hidden
|
|
3656
|
+
*/
|
|
3657
|
+
set location(value) {
|
|
3658
|
+
super.location = value;
|
|
3659
|
+
this.cdr.markForCheck();
|
|
3660
|
+
}
|
|
3661
|
+
/**
|
|
3662
|
+
* @hidden
|
|
3663
|
+
*/
|
|
3664
|
+
get location() {
|
|
3665
|
+
return super.location;
|
|
3666
|
+
}
|
|
3458
3667
|
get buttonElements() {
|
|
3459
3668
|
if (this.overflows && this.location === 'overflow') {
|
|
3460
3669
|
return [...this.overflowListItems.toArray().filter(el => !el.nativeElement.classList.contains('k-disabled'))].map(el => el.nativeElement);
|
|
@@ -3470,13 +3679,18 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
|
|
|
3470
3679
|
.map(b => b.element);
|
|
3471
3680
|
}
|
|
3472
3681
|
}
|
|
3473
|
-
|
|
3682
|
+
_disabled = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabled" }] : /* istanbul ignore next */ []));
|
|
3683
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : /* istanbul ignore next */ []));
|
|
3684
|
+
_selection = signal('multiple', ...(ngDevMode ? [{ debugName: "_selection" }] : /* istanbul ignore next */ []));
|
|
3685
|
+
_width = signal(undefined, ...(ngDevMode ? [{ debugName: "_width" }] : /* istanbul ignore next */ []));
|
|
3686
|
+
focusedIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedIndex" }] : /* istanbul ignore next */ []));
|
|
3474
3687
|
getNextKey;
|
|
3475
3688
|
getPrevKey;
|
|
3476
|
-
constructor(localization, host) {
|
|
3689
|
+
constructor(localization, host, cdr) {
|
|
3477
3690
|
super();
|
|
3478
3691
|
this.localization = localization;
|
|
3479
3692
|
this.host = host;
|
|
3693
|
+
this.cdr = cdr;
|
|
3480
3694
|
this.getNextKey = getNextKey(this.localization.rtl);
|
|
3481
3695
|
this.getPrevKey = getPrevKey(this.localization.rtl);
|
|
3482
3696
|
this.isBuiltInTool = true;
|
|
@@ -3486,7 +3700,7 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
|
|
|
3486
3700
|
*/
|
|
3487
3701
|
onFocus() {
|
|
3488
3702
|
// triggered on tabin
|
|
3489
|
-
this.focusedIndex
|
|
3703
|
+
this.focusedIndex.set(0);
|
|
3490
3704
|
}
|
|
3491
3705
|
/**
|
|
3492
3706
|
* @hidden
|
|
@@ -3522,8 +3736,8 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
|
|
|
3522
3736
|
* @hidden
|
|
3523
3737
|
*/
|
|
3524
3738
|
onButtonClick(ev) {
|
|
3525
|
-
this.focusedIndex
|
|
3526
|
-
this.focusButton(this.focusedIndex, ev);
|
|
3739
|
+
this.focusedIndex.set(this.buttonElements.findIndex(be => be === ev.target || be.contains(ev.target)));
|
|
3740
|
+
this.focusButton(this.focusedIndex(), ev);
|
|
3527
3741
|
}
|
|
3528
3742
|
/**
|
|
3529
3743
|
* @hidden
|
|
@@ -3537,8 +3751,8 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
|
|
|
3537
3751
|
focus(ev = {}) {
|
|
3538
3752
|
const nextKey = this.getNextKey((this.overflows && this.location === 'overflow'));
|
|
3539
3753
|
const prevKey = this.getPrevKey((this.overflows && this.location === 'overflow'));
|
|
3540
|
-
this.focusedIndex
|
|
3541
|
-
this.focusButton(this.focusedIndex, ev);
|
|
3754
|
+
this.focusedIndex.set(getIndexOfFocused(prevKey, nextKey, this.buttonElements)(ev));
|
|
3755
|
+
this.focusButton(this.focusedIndex(), ev);
|
|
3542
3756
|
}
|
|
3543
3757
|
/**
|
|
3544
3758
|
* @hidden
|
|
@@ -3547,10 +3761,10 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
|
|
|
3547
3761
|
const nextKey = this.getNextKey((this.overflows && this.location === 'overflow'));
|
|
3548
3762
|
const prevKey = this.getPrevKey((this.overflows && this.location === 'overflow'));
|
|
3549
3763
|
const peekAtIndex = makePeeker(this.buttonElements);
|
|
3550
|
-
const isUnmodified = areEqual(this.focusedIndex);
|
|
3551
|
-
this.focusedIndex
|
|
3552
|
-
this.focusButton(this.focusedIndex, ev);
|
|
3553
|
-
return !isUnmodified(this.focusedIndex);
|
|
3764
|
+
const isUnmodified = areEqual(this.focusedIndex());
|
|
3765
|
+
this.focusedIndex.set(seekFocusedIndex(prevKey, nextKey, peekAtIndex)(this.focusedIndex(), ev));
|
|
3766
|
+
this.focusButton(this.focusedIndex(), ev);
|
|
3767
|
+
return !isUnmodified(this.focusedIndex());
|
|
3554
3768
|
}
|
|
3555
3769
|
/**
|
|
3556
3770
|
* @hidden
|
|
@@ -3586,7 +3800,7 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
|
|
|
3586
3800
|
this.buttonElements[index]?.focus();
|
|
3587
3801
|
}
|
|
3588
3802
|
}
|
|
3589
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarButtonGroupComponent, deps: [{ token: i1.LocalizationService }, { token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
3803
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarButtonGroupComponent, deps: [{ token: i1.LocalizationService }, { token: ToolBarComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3590
3804
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.23", 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(() => 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: `
|
|
3591
3805
|
<ng-template #toolbarTemplate>
|
|
3592
3806
|
<kendo-buttongroup
|
|
@@ -3697,7 +3911,7 @@ class ToolBarButtonGroupComponent extends ToolBarToolComponent {
|
|
|
3697
3911
|
}
|
|
3698
3912
|
</kendo-buttongroup>
|
|
3699
3913
|
</ng-template>
|
|
3700
|
-
`, isInline: true, dependencies: [{ kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
3914
|
+
`, isInline: true, dependencies: [{ kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3701
3915
|
}
|
|
3702
3916
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarButtonGroupComponent, decorators: [{
|
|
3703
3917
|
type: Component,
|
|
@@ -3817,9 +4031,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
3817
4031
|
</ng-template>
|
|
3818
4032
|
`,
|
|
3819
4033
|
standalone: true,
|
|
4034
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3820
4035
|
imports: [ButtonGroupComponent, ButtonComponent, NgStyle, NgClass, IconWrapperComponent]
|
|
3821
4036
|
}]
|
|
3822
|
-
}], ctorParameters: () => [{ type: i1.LocalizationService }, { type: ToolBarComponent }], propDecorators: { disabled: [{
|
|
4037
|
+
}], ctorParameters: () => [{ type: i1.LocalizationService }, { type: ToolBarComponent }, { type: i0.ChangeDetectorRef }], propDecorators: { disabled: [{
|
|
3823
4038
|
type: Input
|
|
3824
4039
|
}], fillMode: [{
|
|
3825
4040
|
type: Input
|
|
@@ -3858,14 +4073,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
3858
4073
|
*
|
|
3859
4074
|
*/
|
|
3860
4075
|
class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
3861
|
-
zone;
|
|
3862
|
-
renderer;
|
|
3863
4076
|
host;
|
|
4077
|
+
cdr;
|
|
3864
4078
|
/**
|
|
3865
4079
|
* Shows the default arrow icon or lets you provide a custom one.
|
|
3866
4080
|
* @default false
|
|
3867
4081
|
*/
|
|
3868
|
-
arrowIcon
|
|
4082
|
+
set arrowIcon(value) {
|
|
4083
|
+
this._arrowIcon.set(value);
|
|
4084
|
+
}
|
|
4085
|
+
get arrowIcon() {
|
|
4086
|
+
return this._arrowIcon();
|
|
4087
|
+
}
|
|
3869
4088
|
/**
|
|
3870
4089
|
* Sets the `title` attribute of the underlying button element.
|
|
3871
4090
|
* @default ''
|
|
@@ -3873,46 +4092,51 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
3873
4092
|
* @remarks
|
|
3874
4093
|
* This property is related to accessibility.
|
|
3875
4094
|
*/
|
|
3876
|
-
title
|
|
4095
|
+
set title(value) {
|
|
4096
|
+
this._title.set(value);
|
|
4097
|
+
}
|
|
4098
|
+
get title() {
|
|
4099
|
+
return this._title();
|
|
4100
|
+
}
|
|
3877
4101
|
// showText and showIcon showIcon should be declared first
|
|
3878
4102
|
/**
|
|
3879
4103
|
* Controls the button text visibility.
|
|
3880
4104
|
* @default 'always'
|
|
3881
4105
|
*/
|
|
3882
4106
|
set showText(value) {
|
|
3883
|
-
this._showText
|
|
4107
|
+
this._showText.set(value);
|
|
3884
4108
|
this.setTextDisplayMode();
|
|
3885
4109
|
}
|
|
3886
4110
|
get showText() {
|
|
3887
|
-
return this._showText;
|
|
4111
|
+
return this._showText();
|
|
3888
4112
|
}
|
|
3889
4113
|
/**
|
|
3890
4114
|
* Controls the button icon visibility.
|
|
3891
4115
|
* @default 'always'
|
|
3892
4116
|
*/
|
|
3893
4117
|
set showIcon(value) {
|
|
3894
|
-
this._showIcon
|
|
4118
|
+
this._showIcon.set(value);
|
|
3895
4119
|
this.setIconDisplayMode();
|
|
3896
4120
|
}
|
|
3897
4121
|
get showIcon() {
|
|
3898
|
-
return this._showIcon;
|
|
4122
|
+
return this._showIcon();
|
|
3899
4123
|
}
|
|
3900
4124
|
/**
|
|
3901
4125
|
* Sets the text of the DropDownButton
|
|
3902
4126
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/toolbar/control-types#drop-down-buttons)).
|
|
3903
4127
|
*/
|
|
3904
4128
|
set text(text) {
|
|
3905
|
-
this._text
|
|
4129
|
+
this._text.set(text);
|
|
3906
4130
|
this.setTextDisplayMode();
|
|
3907
4131
|
}
|
|
3908
4132
|
get text() {
|
|
3909
|
-
return this._text;
|
|
4133
|
+
return this._text();
|
|
3910
4134
|
}
|
|
3911
4135
|
/**
|
|
3912
4136
|
* Sets the icon rendered next to the button text.
|
|
3913
4137
|
*/
|
|
3914
4138
|
set icon(icon) {
|
|
3915
|
-
this._icon
|
|
4139
|
+
this._icon.set(icon);
|
|
3916
4140
|
this.setIconDisplayMode();
|
|
3917
4141
|
}
|
|
3918
4142
|
/**
|
|
@@ -3920,29 +4144,29 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
3920
4144
|
* Accepts an [existing Kendo SVG icon](https://www.telerik.com/kendo-angular-ui/components/icons/svgicon/svgicon-list) or a custom one.
|
|
3921
4145
|
*/
|
|
3922
4146
|
set svgIcon(icon) {
|
|
3923
|
-
const isIconSet = this._icon;
|
|
3924
|
-
const isIconClassSet = this._iconClass;
|
|
4147
|
+
const isIconSet = this._icon();
|
|
4148
|
+
const isIconClassSet = this._iconClass();
|
|
3925
4149
|
if (isDevMode() &&
|
|
3926
4150
|
icon &&
|
|
3927
4151
|
isIconSet &&
|
|
3928
4152
|
isIconClassSet) {
|
|
3929
4153
|
throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
|
|
3930
4154
|
}
|
|
3931
|
-
this._svgIcon
|
|
4155
|
+
this._svgIcon.set(icon);
|
|
3932
4156
|
this.setIconDisplayMode();
|
|
3933
4157
|
}
|
|
3934
4158
|
/**
|
|
3935
4159
|
* Sets a custom CSS class icon rendered next to the button text.
|
|
3936
4160
|
*/
|
|
3937
4161
|
set iconClass(iconClass) {
|
|
3938
|
-
this._iconClass
|
|
4162
|
+
this._iconClass.set(iconClass);
|
|
3939
4163
|
this.setIconDisplayMode();
|
|
3940
4164
|
}
|
|
3941
4165
|
/**
|
|
3942
4166
|
* Sets a URL for the image displayed next to the button text.
|
|
3943
4167
|
*/
|
|
3944
4168
|
set imageUrl(imageUrl) {
|
|
3945
|
-
this._imageUrl
|
|
4169
|
+
this._imageUrl.set(imageUrl);
|
|
3946
4170
|
this.setIconDisplayMode();
|
|
3947
4171
|
}
|
|
3948
4172
|
/**
|
|
@@ -3950,10 +4174,10 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
3950
4174
|
* Accepts a `PopupSettings` object that allows you to customize the popup behavior and appearance.
|
|
3951
4175
|
*/
|
|
3952
4176
|
set popupSettings(settings) {
|
|
3953
|
-
this._popupSettings
|
|
4177
|
+
this._popupSettings.set(Object.assign({ animate: true, popupClass: '' }, settings));
|
|
3954
4178
|
}
|
|
3955
4179
|
get popupSettings() {
|
|
3956
|
-
return this._popupSettings;
|
|
4180
|
+
return this._popupSettings();
|
|
3957
4181
|
}
|
|
3958
4182
|
/**
|
|
3959
4183
|
* @hidden
|
|
@@ -3973,27 +4197,52 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
3973
4197
|
* Sets the fill mode for the button.
|
|
3974
4198
|
* The fill mode represents the background and border styles. The default value is set by the Kendo theme.
|
|
3975
4199
|
*/
|
|
3976
|
-
fillMode
|
|
4200
|
+
set fillMode(value) {
|
|
4201
|
+
this._fillMode.set(value);
|
|
4202
|
+
}
|
|
4203
|
+
get fillMode() {
|
|
4204
|
+
return this._fillMode();
|
|
4205
|
+
}
|
|
3977
4206
|
/**
|
|
3978
4207
|
* Sets the predefined theme color for the button.
|
|
3979
4208
|
* The theme color applies to the background, border, and text
|
|
3980
4209
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/dropdownbuttoncomponent#themecolor)). The default value is set by the Kendo theme.
|
|
3981
4210
|
*/
|
|
3982
|
-
themeColor
|
|
4211
|
+
set themeColor(value) {
|
|
4212
|
+
this._themeColor.set(value);
|
|
4213
|
+
}
|
|
4214
|
+
get themeColor() {
|
|
4215
|
+
return this._themeColor();
|
|
4216
|
+
}
|
|
3983
4217
|
/**
|
|
3984
4218
|
* Sets the CSS classes for the main button.
|
|
3985
4219
|
* Accepts values supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
3986
4220
|
*/
|
|
3987
|
-
buttonClass
|
|
4221
|
+
set buttonClass(value) {
|
|
4222
|
+
this._buttonClass.set(value);
|
|
4223
|
+
}
|
|
4224
|
+
get buttonClass() {
|
|
4225
|
+
return this._buttonClass();
|
|
4226
|
+
}
|
|
3988
4227
|
/**
|
|
3989
4228
|
* Sets the data item field that repesents the item text.
|
|
3990
4229
|
* If the data contains only primitive values, do not set this property.
|
|
3991
4230
|
*/
|
|
3992
|
-
textField
|
|
4231
|
+
set textField(value) {
|
|
4232
|
+
this._textField.set(value);
|
|
4233
|
+
}
|
|
4234
|
+
get textField() {
|
|
4235
|
+
return this._textField();
|
|
4236
|
+
}
|
|
3993
4237
|
/**
|
|
3994
4238
|
* When `true`, disables the DropDownButton.
|
|
3995
4239
|
*/
|
|
3996
|
-
disabled
|
|
4240
|
+
set disabled(value) {
|
|
4241
|
+
this._disabled.set(value);
|
|
4242
|
+
}
|
|
4243
|
+
get disabled() {
|
|
4244
|
+
return this._disabled();
|
|
4245
|
+
}
|
|
3997
4246
|
/**
|
|
3998
4247
|
* Sets the data of the DropDownButton
|
|
3999
4248
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/toolbar/control-types#drop-down-buttons)).
|
|
@@ -4001,13 +4250,10 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
4001
4250
|
* > Provide the data as an array-like list.
|
|
4002
4251
|
*/
|
|
4003
4252
|
set data(data) {
|
|
4004
|
-
this._data
|
|
4253
|
+
this._data.set(data || []);
|
|
4005
4254
|
}
|
|
4006
4255
|
get data() {
|
|
4007
|
-
|
|
4008
|
-
this.data = [];
|
|
4009
|
-
}
|
|
4010
|
-
return this._data;
|
|
4256
|
+
return this._data();
|
|
4011
4257
|
}
|
|
4012
4258
|
/**
|
|
4013
4259
|
* Fires each time the user clicks a DropDownButton item.
|
|
@@ -4045,24 +4291,43 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
4045
4291
|
get overflowButtons() {
|
|
4046
4292
|
return [...this.overflowListItems.toArray().filter(el => !el.nativeElement.classList.contains('k-disabled'))];
|
|
4047
4293
|
}
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4052
|
-
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
|
|
4294
|
+
/**
|
|
4295
|
+
* @hidden
|
|
4296
|
+
*/
|
|
4297
|
+
set location(value) {
|
|
4298
|
+
super.location = value;
|
|
4299
|
+
this.cdr.markForCheck();
|
|
4300
|
+
}
|
|
4301
|
+
/**
|
|
4302
|
+
* @hidden
|
|
4303
|
+
*/
|
|
4304
|
+
get location() {
|
|
4305
|
+
return super.location;
|
|
4306
|
+
}
|
|
4307
|
+
_data = signal([], ...(ngDevMode ? [{ debugName: "_data" }] : /* istanbul ignore next */ []));
|
|
4308
|
+
_popupSettings = signal({ animate: true, popupClass: '' }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : /* istanbul ignore next */ []));
|
|
4309
|
+
focusedIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedIndex" }] : /* istanbul ignore next */ []));
|
|
4310
|
+
_showText = signal(null, ...(ngDevMode ? [{ debugName: "_showText" }] : /* istanbul ignore next */ []));
|
|
4311
|
+
_showIcon = signal(null, ...(ngDevMode ? [{ debugName: "_showIcon" }] : /* istanbul ignore next */ []));
|
|
4312
|
+
_text = signal(null, ...(ngDevMode ? [{ debugName: "_text" }] : /* istanbul ignore next */ []));
|
|
4313
|
+
_arrowIcon = signal(false, ...(ngDevMode ? [{ debugName: "_arrowIcon" }] : /* istanbul ignore next */ []));
|
|
4314
|
+
_title = signal('', ...(ngDevMode ? [{ debugName: "_title" }] : /* istanbul ignore next */ []));
|
|
4315
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : /* istanbul ignore next */ []));
|
|
4316
|
+
_themeColor = signal(undefined, ...(ngDevMode ? [{ debugName: "_themeColor" }] : /* istanbul ignore next */ []));
|
|
4317
|
+
_buttonClass = signal(undefined, ...(ngDevMode ? [{ debugName: "_buttonClass" }] : /* istanbul ignore next */ []));
|
|
4318
|
+
_textField = signal(undefined, ...(ngDevMode ? [{ debugName: "_textField" }] : /* istanbul ignore next */ []));
|
|
4319
|
+
_disabled = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabled" }] : /* istanbul ignore next */ []));
|
|
4320
|
+
_icon = signal(null, ...(ngDevMode ? [{ debugName: "_icon" }] : /* istanbul ignore next */ []));
|
|
4321
|
+
_iconClass = signal(null, ...(ngDevMode ? [{ debugName: "_iconClass" }] : /* istanbul ignore next */ []));
|
|
4322
|
+
_svgIcon = signal(null, ...(ngDevMode ? [{ debugName: "_svgIcon" }] : /* istanbul ignore next */ []));
|
|
4323
|
+
_imageUrl = signal(null, ...(ngDevMode ? [{ debugName: "_imageUrl" }] : /* istanbul ignore next */ []));
|
|
4058
4324
|
propertyChangeSub;
|
|
4059
4325
|
getNextKey;
|
|
4060
4326
|
getPrevKey;
|
|
4061
|
-
constructor(
|
|
4327
|
+
constructor(host, cdr) {
|
|
4062
4328
|
super();
|
|
4063
|
-
this.zone = zone;
|
|
4064
|
-
this.renderer = renderer;
|
|
4065
4329
|
this.host = host;
|
|
4330
|
+
this.cdr = cdr;
|
|
4066
4331
|
this.getNextKey = getNextKey();
|
|
4067
4332
|
this.getPrevKey = getPrevKey();
|
|
4068
4333
|
this.isBuiltInTool = true;
|
|
@@ -4081,21 +4346,16 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
4081
4346
|
this.propertyChangeSub = null;
|
|
4082
4347
|
}
|
|
4083
4348
|
}
|
|
4084
|
-
|
|
4085
|
-
this.
|
|
4086
|
-
const dropdownButton = this[`${this.location}DropDownButton`];
|
|
4087
|
-
if (dropdownButton?.button) {
|
|
4088
|
-
this.renderer.addClass(dropdownButton.button.nativeElement, 'k-toolbar-menu-button');
|
|
4089
|
-
}
|
|
4090
|
-
});
|
|
4349
|
+
get toolbarMenuButtonClass() {
|
|
4350
|
+
return this.buttonClass ? `k-toolbar-menu-button ${this.buttonClass}` : 'k-toolbar-menu-button';
|
|
4091
4351
|
}
|
|
4092
4352
|
/**
|
|
4093
4353
|
* @hidden
|
|
4094
4354
|
*/
|
|
4095
4355
|
onButtonListClick(ev) {
|
|
4096
|
-
this.focusedIndex
|
|
4356
|
+
this.focusedIndex.set(this.overflowListItems
|
|
4097
4357
|
.toArray()
|
|
4098
|
-
.findIndex(b => b.nativeElement.contains(ev.target));
|
|
4358
|
+
.findIndex(b => b.nativeElement.contains(ev.target)));
|
|
4099
4359
|
}
|
|
4100
4360
|
/**
|
|
4101
4361
|
* @hidden
|
|
@@ -4119,8 +4379,8 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
4119
4379
|
}
|
|
4120
4380
|
}
|
|
4121
4381
|
else if (this.overflowButtons.length > 0) {
|
|
4122
|
-
this.focusedIndex
|
|
4123
|
-
this.focusButton(this.focusedIndex, ev);
|
|
4382
|
+
this.focusedIndex.set(getIndexOfFocused(this.getPrevKey(), this.getNextKey(), this.overflowButtons.map(ob => ob.nativeElement))(ev));
|
|
4383
|
+
this.focusButton(this.focusedIndex(), ev);
|
|
4124
4384
|
}
|
|
4125
4385
|
}
|
|
4126
4386
|
/**
|
|
@@ -4133,10 +4393,10 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
4133
4393
|
}
|
|
4134
4394
|
if (this.overflows && this.location !== 'section') {
|
|
4135
4395
|
const peekAtIndex = makePeeker(this.overflowButtons);
|
|
4136
|
-
const isUnmodified = areEqual(this.focusedIndex);
|
|
4137
|
-
this.focusedIndex
|
|
4138
|
-
this.focusButton(this.focusedIndex, ev);
|
|
4139
|
-
return !isUnmodified(this.focusedIndex);
|
|
4396
|
+
const isUnmodified = areEqual(this.focusedIndex());
|
|
4397
|
+
this.focusedIndex.set(seekFocusedIndex(this.getPrevKey(), this.getNextKey(), peekAtIndex)(this.focusedIndex(), ev));
|
|
4398
|
+
this.focusButton(this.focusedIndex(), ev);
|
|
4399
|
+
return !isUnmodified(this.focusedIndex());
|
|
4140
4400
|
}
|
|
4141
4401
|
}
|
|
4142
4402
|
/**
|
|
@@ -4168,16 +4428,16 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
4168
4428
|
this.overflowOptions.text = this.showText === 'toolbar' || this.showText === 'never' ? undefined : this.text;
|
|
4169
4429
|
}
|
|
4170
4430
|
setIconDisplayMode() {
|
|
4171
|
-
this.toolbarOptions.icon = getValueForLocation(this._icon, this.showIcon, false);
|
|
4172
|
-
this.overflowOptions.icon = getValueForLocation(this._icon, this.showIcon, true);
|
|
4173
|
-
this.toolbarOptions.iconClass = getValueForLocation(this._iconClass, this.showIcon, false);
|
|
4174
|
-
this.overflowOptions.iconClass = getValueForLocation(this._iconClass, this.showIcon, true);
|
|
4175
|
-
this.toolbarOptions.svgIcon = getValueForLocation(this._svgIcon, this.showIcon, false);
|
|
4176
|
-
this.overflowOptions.svgIcon = getValueForLocation(this._svgIcon, this.showIcon, true);
|
|
4177
|
-
this.toolbarOptions.imageUrl = getValueForLocation(this._imageUrl, this.showIcon, false);
|
|
4178
|
-
this.overflowOptions.imageUrl = getValueForLocation(this._imageUrl, this.showIcon, true);
|
|
4179
|
-
}
|
|
4180
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarDropDownButtonComponent, deps: [{ token:
|
|
4431
|
+
this.toolbarOptions.icon = getValueForLocation(this._icon(), this.showIcon, false);
|
|
4432
|
+
this.overflowOptions.icon = getValueForLocation(this._icon(), this.showIcon, true);
|
|
4433
|
+
this.toolbarOptions.iconClass = getValueForLocation(this._iconClass(), this.showIcon, false);
|
|
4434
|
+
this.overflowOptions.iconClass = getValueForLocation(this._iconClass(), this.showIcon, true);
|
|
4435
|
+
this.toolbarOptions.svgIcon = getValueForLocation(this._svgIcon(), this.showIcon, false);
|
|
4436
|
+
this.overflowOptions.svgIcon = getValueForLocation(this._svgIcon(), this.showIcon, true);
|
|
4437
|
+
this.toolbarOptions.imageUrl = getValueForLocation(this._imageUrl(), this.showIcon, false);
|
|
4438
|
+
this.overflowOptions.imageUrl = getValueForLocation(this._imageUrl(), this.showIcon, true);
|
|
4439
|
+
}
|
|
4440
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarDropDownButtonComponent, deps: [{ token: ToolBarComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4181
4441
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.23", 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: `
|
|
4182
4442
|
<ng-template #toolbarTemplate>
|
|
4183
4443
|
<kendo-dropdownbutton #toolbarDropDownButton
|
|
@@ -4186,7 +4446,7 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
4186
4446
|
[svgIcon]="toolbarOptions.svgIcon"
|
|
4187
4447
|
[imageUrl]="toolbarOptions.imageUrl"
|
|
4188
4448
|
[arrowIcon]="arrowIcon"
|
|
4189
|
-
[buttonClass]="
|
|
4449
|
+
[buttonClass]="toolbarMenuButtonClass"
|
|
4190
4450
|
[disabled]="disabled"
|
|
4191
4451
|
[size]="size"
|
|
4192
4452
|
[tabIndex]="-1"
|
|
@@ -4258,7 +4518,7 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
4258
4518
|
[svgIcon]="toolbarOptions.svgIcon"
|
|
4259
4519
|
[imageUrl]="toolbarOptions.imageUrl"
|
|
4260
4520
|
[arrowIcon]="arrowIcon"
|
|
4261
|
-
[buttonClass]="
|
|
4521
|
+
[buttonClass]="toolbarMenuButtonClass"
|
|
4262
4522
|
[disabled]="disabled"
|
|
4263
4523
|
[size]="size"
|
|
4264
4524
|
[tabIndex]="-1"
|
|
@@ -4275,7 +4535,7 @@ class ToolBarDropDownButtonComponent extends ToolBarToolComponent {
|
|
|
4275
4535
|
{{ toolbarOptions.text }}
|
|
4276
4536
|
</kendo-dropdownbutton>
|
|
4277
4537
|
</ng-template>
|
|
4278
|
-
`, 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: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
4538
|
+
`, 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: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4279
4539
|
}
|
|
4280
4540
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarDropDownButtonComponent, decorators: [{
|
|
4281
4541
|
type: Component,
|
|
@@ -4291,7 +4551,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
4291
4551
|
[svgIcon]="toolbarOptions.svgIcon"
|
|
4292
4552
|
[imageUrl]="toolbarOptions.imageUrl"
|
|
4293
4553
|
[arrowIcon]="arrowIcon"
|
|
4294
|
-
[buttonClass]="
|
|
4554
|
+
[buttonClass]="toolbarMenuButtonClass"
|
|
4295
4555
|
[disabled]="disabled"
|
|
4296
4556
|
[size]="size"
|
|
4297
4557
|
[tabIndex]="-1"
|
|
@@ -4363,7 +4623,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
4363
4623
|
[svgIcon]="toolbarOptions.svgIcon"
|
|
4364
4624
|
[imageUrl]="toolbarOptions.imageUrl"
|
|
4365
4625
|
[arrowIcon]="arrowIcon"
|
|
4366
|
-
[buttonClass]="
|
|
4626
|
+
[buttonClass]="toolbarMenuButtonClass"
|
|
4367
4627
|
[disabled]="disabled"
|
|
4368
4628
|
[size]="size"
|
|
4369
4629
|
[tabIndex]="-1"
|
|
@@ -4382,9 +4642,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
4382
4642
|
</ng-template>
|
|
4383
4643
|
`,
|
|
4384
4644
|
standalone: true,
|
|
4645
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4385
4646
|
imports: [DropDownButtonComponent, NgClass, IconWrapperComponent]
|
|
4386
4647
|
}]
|
|
4387
|
-
}], ctorParameters: () => [{ type:
|
|
4648
|
+
}], ctorParameters: () => [{ type: ToolBarComponent }, { type: i0.ChangeDetectorRef }], propDecorators: { arrowIcon: [{
|
|
4388
4649
|
type: Input
|
|
4389
4650
|
}], title: [{
|
|
4390
4651
|
type: Input
|
|
@@ -4455,45 +4716,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
4455
4716
|
*/
|
|
4456
4717
|
class ToolBarSplitButtonComponent extends ToolBarToolComponent {
|
|
4457
4718
|
host;
|
|
4719
|
+
cdr;
|
|
4458
4720
|
// showText and showIcon showIcon should be declared first
|
|
4459
4721
|
/**
|
|
4460
4722
|
* Controls the button text visibility.
|
|
4461
4723
|
* @default 'always'
|
|
4462
4724
|
*/
|
|
4463
4725
|
set showText(value) {
|
|
4464
|
-
this._showText
|
|
4726
|
+
this._showText.set(value);
|
|
4465
4727
|
this.setTextDisplayMode();
|
|
4466
4728
|
}
|
|
4467
4729
|
get showText() {
|
|
4468
|
-
return this._showText;
|
|
4730
|
+
return this._showText();
|
|
4469
4731
|
}
|
|
4470
4732
|
/**
|
|
4471
4733
|
* Controls the button icon visibility.
|
|
4472
4734
|
* @default 'always'
|
|
4473
4735
|
*/
|
|
4474
4736
|
set showIcon(value) {
|
|
4475
|
-
this._showIcon
|
|
4737
|
+
this._showIcon.set(value);
|
|
4476
4738
|
this.setIconDisplayMode();
|
|
4477
4739
|
}
|
|
4478
4740
|
get showIcon() {
|
|
4479
|
-
return this._showIcon;
|
|
4741
|
+
return this._showIcon();
|
|
4480
4742
|
}
|
|
4481
4743
|
/**
|
|
4482
4744
|
* Sets the text of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/toolbar/control-types#split-buttons)).
|
|
4483
4745
|
*/
|
|
4484
4746
|
set text(text) {
|
|
4485
|
-
this._text
|
|
4747
|
+
this._text.set(text);
|
|
4486
4748
|
this.setTextDisplayMode();
|
|
4487
4749
|
}
|
|
4488
4750
|
get text() {
|
|
4489
|
-
return this._text;
|
|
4751
|
+
return this._text();
|
|
4490
4752
|
}
|
|
4491
4753
|
/**
|
|
4492
4754
|
* Sets the icon rendered next to the button text
|
|
4493
4755
|
* ([see example](https://www.telerik.com/kendo-angular-ui/components/toolbar/control-types#split-buttons)).
|
|
4494
4756
|
*/
|
|
4495
4757
|
set icon(icon) {
|
|
4496
|
-
this._icon
|
|
4758
|
+
this._icon.set(icon);
|
|
4497
4759
|
this.setIconDisplayMode();
|
|
4498
4760
|
}
|
|
4499
4761
|
/**
|
|
@@ -4501,59 +4763,74 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
|
|
|
4501
4763
|
* Accepts an [existing Kendo SVG icon](https://www.telerik.com/kendo-angular-ui/components/icons/svgicon/svgicon-list) or a custom one.
|
|
4502
4764
|
*/
|
|
4503
4765
|
set svgIcon(icon) {
|
|
4504
|
-
const isIconSet = this._icon;
|
|
4505
|
-
const isIconClassSet = this._iconClass;
|
|
4766
|
+
const isIconSet = this._icon();
|
|
4767
|
+
const isIconClassSet = this._iconClass();
|
|
4506
4768
|
if (isDevMode() &&
|
|
4507
4769
|
icon &&
|
|
4508
4770
|
isIconSet &&
|
|
4509
4771
|
isIconClassSet) {
|
|
4510
4772
|
throw new Error('Setting both icon/svgIcon and iconClass options at the same time is not supported.');
|
|
4511
4773
|
}
|
|
4512
|
-
this._svgIcon
|
|
4774
|
+
this._svgIcon.set(icon);
|
|
4513
4775
|
this.setIconDisplayMode();
|
|
4514
4776
|
}
|
|
4515
4777
|
/**
|
|
4516
4778
|
* Sets a custom CSS class icon rendered next to the button text.
|
|
4517
4779
|
*/
|
|
4518
4780
|
set iconClass(iconClass) {
|
|
4519
|
-
this._iconClass
|
|
4781
|
+
this._iconClass.set(iconClass);
|
|
4520
4782
|
this.setIconDisplayMode();
|
|
4521
4783
|
}
|
|
4522
4784
|
/**
|
|
4523
4785
|
* Sets a URL for the image displayed next to the button text.
|
|
4524
4786
|
*/
|
|
4525
4787
|
set imageUrl(imageUrl) {
|
|
4526
|
-
this._imageUrl
|
|
4788
|
+
this._imageUrl.set(imageUrl);
|
|
4527
4789
|
this.setIconDisplayMode();
|
|
4528
4790
|
}
|
|
4529
4791
|
/**
|
|
4530
4792
|
* When `true`, disables a SplitButton item.
|
|
4531
4793
|
*/
|
|
4532
|
-
disabled
|
|
4794
|
+
set disabled(value) {
|
|
4795
|
+
this._disabled.set(value);
|
|
4796
|
+
}
|
|
4797
|
+
get disabled() {
|
|
4798
|
+
return this._disabled();
|
|
4799
|
+
}
|
|
4533
4800
|
/**
|
|
4534
4801
|
* Configures the popup of the SplitButton.
|
|
4535
4802
|
* Accepts a `PopupSettings` object that allows you to customize the popup behavior and appearance.
|
|
4536
4803
|
|
|
4537
4804
|
*/
|
|
4538
4805
|
set popupSettings(value) {
|
|
4539
|
-
this._popupSettings
|
|
4806
|
+
this._popupSettings.set(value);
|
|
4540
4807
|
}
|
|
4541
4808
|
get popupSettings() {
|
|
4542
|
-
if (!this._popupSettings) {
|
|
4543
|
-
this._popupSettings
|
|
4809
|
+
if (!this._popupSettings()) {
|
|
4810
|
+
this._popupSettings.set({ animate: true, popupClass: '' });
|
|
4544
4811
|
}
|
|
4545
|
-
return this._popupSettings;
|
|
4812
|
+
return this._popupSettings();
|
|
4546
4813
|
}
|
|
4547
4814
|
/**
|
|
4548
4815
|
* Sets the fill mode for the button.
|
|
4549
4816
|
* The fill mode represents the background and border styles. The default value is set by the Kendo theme.
|
|
4550
4817
|
*/
|
|
4551
|
-
fillMode
|
|
4818
|
+
set fillMode(value) {
|
|
4819
|
+
this._fillMode.set(value);
|
|
4820
|
+
}
|
|
4821
|
+
get fillMode() {
|
|
4822
|
+
return this._fillMode();
|
|
4823
|
+
}
|
|
4552
4824
|
/**
|
|
4553
4825
|
* Sets the predefined theme color for the button.
|
|
4554
4826
|
* The theme color applies to the background, border, and text. The default value is set by the Kendo theme.
|
|
4555
4827
|
*/
|
|
4556
|
-
themeColor
|
|
4828
|
+
set themeColor(value) {
|
|
4829
|
+
this._themeColor.set(value);
|
|
4830
|
+
}
|
|
4831
|
+
get themeColor() {
|
|
4832
|
+
return this._themeColor();
|
|
4833
|
+
}
|
|
4557
4834
|
/**
|
|
4558
4835
|
* @hidden
|
|
4559
4836
|
*/
|
|
@@ -4566,38 +4843,63 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
|
|
|
4566
4843
|
* Sets the CSS classes for the main button.
|
|
4567
4844
|
* Accepts values supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
4568
4845
|
*/
|
|
4569
|
-
buttonClass
|
|
4846
|
+
set buttonClass(value) {
|
|
4847
|
+
this._buttonClass.set(value);
|
|
4848
|
+
}
|
|
4849
|
+
get buttonClass() {
|
|
4850
|
+
return this._buttonClass();
|
|
4851
|
+
}
|
|
4570
4852
|
/**
|
|
4571
4853
|
* Sets the CSS classes for the arrow button that opens the popup.
|
|
4572
4854
|
* Accepts values supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
4573
4855
|
*/
|
|
4574
|
-
arrowButtonClass
|
|
4856
|
+
set arrowButtonClass(value) {
|
|
4857
|
+
this._arrowButtonClass.set(value);
|
|
4858
|
+
}
|
|
4859
|
+
get arrowButtonClass() {
|
|
4860
|
+
return this._arrowButtonClass();
|
|
4861
|
+
}
|
|
4575
4862
|
/**
|
|
4576
4863
|
* Sets the name of the [font icon](https://www.telerik.com/kendo-angular-ui/components/styling/icons#icons-list) for the arrow button.
|
|
4577
4864
|
*/
|
|
4578
|
-
arrowButtonIcon
|
|
4865
|
+
set arrowButtonIcon(value) {
|
|
4866
|
+
this._arrowButtonIcon.set(value);
|
|
4867
|
+
}
|
|
4868
|
+
get arrowButtonIcon() {
|
|
4869
|
+
return this._arrowButtonIcon();
|
|
4870
|
+
}
|
|
4579
4871
|
/**
|
|
4580
4872
|
* Sets the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgicon) for the arrow button.
|
|
4581
4873
|
*/
|
|
4582
|
-
arrowButtonSvgIcon
|
|
4874
|
+
set arrowButtonSvgIcon(value) {
|
|
4875
|
+
this._arrowButtonSvgIcon.set(value);
|
|
4876
|
+
}
|
|
4877
|
+
get arrowButtonSvgIcon() {
|
|
4878
|
+
return this._arrowButtonSvgIcon();
|
|
4879
|
+
}
|
|
4583
4880
|
/**
|
|
4584
4881
|
* Sets the text field for the button-list popup.
|
|
4585
4882
|
* @default 'text'
|
|
4586
4883
|
*/
|
|
4587
|
-
textField
|
|
4884
|
+
set textField(value) {
|
|
4885
|
+
this._textField.set(value);
|
|
4886
|
+
}
|
|
4887
|
+
get textField() {
|
|
4888
|
+
return this._textField();
|
|
4889
|
+
}
|
|
4588
4890
|
/**
|
|
4589
4891
|
* Sets the data of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/toolbar/control-types#split-buttons)).
|
|
4590
4892
|
*
|
|
4591
4893
|
* > Provide the data as an array-like list.
|
|
4592
4894
|
*/
|
|
4593
4895
|
set data(data) {
|
|
4594
|
-
this._data
|
|
4896
|
+
this._data.set(data || []);
|
|
4595
4897
|
}
|
|
4596
4898
|
get data() {
|
|
4597
|
-
if (!this._data) {
|
|
4598
|
-
this.
|
|
4899
|
+
if (!this._data()) {
|
|
4900
|
+
this._data.set([]);
|
|
4599
4901
|
}
|
|
4600
|
-
return this._data;
|
|
4902
|
+
return this._data();
|
|
4601
4903
|
}
|
|
4602
4904
|
/**
|
|
4603
4905
|
* Fires when the user clicks the main button.
|
|
@@ -4644,16 +4946,24 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
|
|
|
4644
4946
|
get overflowButtons() {
|
|
4645
4947
|
return [this.overflowMainButton, ...this.overflowListItems.toArray().filter(el => !el.nativeElement.classList.contains('k-disabled'))];
|
|
4646
4948
|
}
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4949
|
+
_icon = signal(null, ...(ngDevMode ? [{ debugName: "_icon" }] : /* istanbul ignore next */ []));
|
|
4950
|
+
_iconClass = signal(null, ...(ngDevMode ? [{ debugName: "_iconClass" }] : /* istanbul ignore next */ []));
|
|
4951
|
+
_svgIcon = signal(null, ...(ngDevMode ? [{ debugName: "_svgIcon" }] : /* istanbul ignore next */ []));
|
|
4952
|
+
_imageUrl = signal(null, ...(ngDevMode ? [{ debugName: "_imageUrl" }] : /* istanbul ignore next */ []));
|
|
4953
|
+
_data = signal([], ...(ngDevMode ? [{ debugName: "_data" }] : /* istanbul ignore next */ []));
|
|
4954
|
+
_popupSettings = signal({ animate: true, popupClass: '' }, ...(ngDevMode ? [{ debugName: "_popupSettings" }] : /* istanbul ignore next */ []));
|
|
4955
|
+
focusedIndex = signal(-1, ...(ngDevMode ? [{ debugName: "focusedIndex" }] : /* istanbul ignore next */ []));
|
|
4956
|
+
_showText = signal(null, ...(ngDevMode ? [{ debugName: "_showText" }] : /* istanbul ignore next */ []));
|
|
4957
|
+
_showIcon = signal(null, ...(ngDevMode ? [{ debugName: "_showIcon" }] : /* istanbul ignore next */ []));
|
|
4958
|
+
_text = signal(null, ...(ngDevMode ? [{ debugName: "_text" }] : /* istanbul ignore next */ []));
|
|
4959
|
+
_disabled = signal(undefined, ...(ngDevMode ? [{ debugName: "_disabled" }] : /* istanbul ignore next */ []));
|
|
4960
|
+
_fillMode = signal(undefined, ...(ngDevMode ? [{ debugName: "_fillMode" }] : /* istanbul ignore next */ []));
|
|
4961
|
+
_themeColor = signal(undefined, ...(ngDevMode ? [{ debugName: "_themeColor" }] : /* istanbul ignore next */ []));
|
|
4962
|
+
_buttonClass = signal(undefined, ...(ngDevMode ? [{ debugName: "_buttonClass" }] : /* istanbul ignore next */ []));
|
|
4963
|
+
_arrowButtonClass = signal(undefined, ...(ngDevMode ? [{ debugName: "_arrowButtonClass" }] : /* istanbul ignore next */ []));
|
|
4964
|
+
_arrowButtonIcon = signal('chevron-down', ...(ngDevMode ? [{ debugName: "_arrowButtonIcon" }] : /* istanbul ignore next */ []));
|
|
4965
|
+
_arrowButtonSvgIcon = signal(chevronDownIcon, ...(ngDevMode ? [{ debugName: "_arrowButtonSvgIcon" }] : /* istanbul ignore next */ []));
|
|
4966
|
+
_textField = signal('text', ...(ngDevMode ? [{ debugName: "_textField" }] : /* istanbul ignore next */ []));
|
|
4657
4967
|
propertyChangeSub;
|
|
4658
4968
|
getNextKey;
|
|
4659
4969
|
getPrevKey;
|
|
@@ -4661,9 +4971,23 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
|
|
|
4661
4971
|
sectionSplitButton;
|
|
4662
4972
|
overflowMainButton;
|
|
4663
4973
|
overflowListItems;
|
|
4664
|
-
|
|
4974
|
+
/**
|
|
4975
|
+
* @hidden
|
|
4976
|
+
*/
|
|
4977
|
+
set location(value) {
|
|
4978
|
+
super.location = value;
|
|
4979
|
+
this.cdr.markForCheck();
|
|
4980
|
+
}
|
|
4981
|
+
/**
|
|
4982
|
+
* @hidden
|
|
4983
|
+
*/
|
|
4984
|
+
get location() {
|
|
4985
|
+
return super.location;
|
|
4986
|
+
}
|
|
4987
|
+
constructor(host, cdr) {
|
|
4665
4988
|
super();
|
|
4666
4989
|
this.host = host;
|
|
4990
|
+
this.cdr = cdr;
|
|
4667
4991
|
this.getNextKey = getNextKey();
|
|
4668
4992
|
this.getPrevKey = getPrevKey();
|
|
4669
4993
|
this.isBuiltInTool = true;
|
|
@@ -4677,14 +5001,14 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
|
|
|
4677
5001
|
* @hidden
|
|
4678
5002
|
*/
|
|
4679
5003
|
onButtonListClick(ev) {
|
|
4680
|
-
this.focusedIndex
|
|
5004
|
+
this.focusedIndex.set(this.overflowButtons.findIndex(b => b.nativeElement.contains(ev.target)));
|
|
4681
5005
|
}
|
|
4682
5006
|
/**
|
|
4683
5007
|
* @hidden
|
|
4684
5008
|
*/
|
|
4685
5009
|
onMainButtonClick(ev) {
|
|
4686
5010
|
this.buttonClick.emit(ev);
|
|
4687
|
-
this.focusedIndex
|
|
5011
|
+
this.focusedIndex.set(0);
|
|
4688
5012
|
}
|
|
4689
5013
|
/**
|
|
4690
5014
|
* @hidden
|
|
@@ -4704,12 +5028,12 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
|
|
|
4704
5028
|
focus(ev = {}) {
|
|
4705
5029
|
if (!this.overflows || this.location === 'section') {
|
|
4706
5030
|
if (!ev.type || ev.type === 'focus' || ev.type === 'keydown') {
|
|
4707
|
-
this[`${this.location}SplitButton`]
|
|
5031
|
+
this[`${this.location}SplitButton`]?.focus();
|
|
4708
5032
|
}
|
|
4709
5033
|
}
|
|
4710
5034
|
else if (this.overflowButtons.length > 0) {
|
|
4711
|
-
this.focusedIndex
|
|
4712
|
-
this.focusButton(this.focusedIndex, ev);
|
|
5035
|
+
this.focusedIndex.set(getIndexOfFocused(this.getPrevKey(), this.getNextKey(), this.overflowButtons.map(ob => ob.nativeElement))(ev));
|
|
5036
|
+
this.focusButton(this.focusedIndex(), ev);
|
|
4713
5037
|
}
|
|
4714
5038
|
}
|
|
4715
5039
|
/**
|
|
@@ -4722,10 +5046,10 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
|
|
|
4722
5046
|
}
|
|
4723
5047
|
if (this.overflows) {
|
|
4724
5048
|
const peekAtIndex = makePeeker(this.overflowButtons);
|
|
4725
|
-
const isUnmodified = areEqual(this.focusedIndex);
|
|
4726
|
-
this.focusedIndex
|
|
4727
|
-
this.focusButton(this.focusedIndex, ev);
|
|
4728
|
-
return !isUnmodified(this.focusedIndex);
|
|
5049
|
+
const isUnmodified = areEqual(this.focusedIndex());
|
|
5050
|
+
this.focusedIndex.set(seekFocusedIndex(this.getPrevKey(), this.getNextKey(), peekAtIndex)(this.focusedIndex(), ev));
|
|
5051
|
+
this.focusButton(this.focusedIndex(), ev);
|
|
5052
|
+
return !isUnmodified(this.focusedIndex());
|
|
4729
5053
|
}
|
|
4730
5054
|
}
|
|
4731
5055
|
/**
|
|
@@ -4757,16 +5081,16 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
|
|
|
4757
5081
|
this.overflowOptions.text = this.showText === 'toolbar' || this.showText === 'never' ? undefined : this.text;
|
|
4758
5082
|
}
|
|
4759
5083
|
setIconDisplayMode() {
|
|
4760
|
-
this.toolbarOptions.icon = getValueForLocation(this._icon, this.showIcon, false);
|
|
4761
|
-
this.overflowOptions.icon = getValueForLocation(this._icon, this.showIcon, true);
|
|
4762
|
-
this.toolbarOptions.iconClass = getValueForLocation(this._iconClass, this.showIcon, false);
|
|
4763
|
-
this.overflowOptions.iconClass = getValueForLocation(this._iconClass, this.showIcon, true);
|
|
4764
|
-
this.toolbarOptions.svgIcon = getValueForLocation(this._svgIcon, this.showIcon, false);
|
|
4765
|
-
this.overflowOptions.svgIcon = getValueForLocation(this._svgIcon, this.showIcon, true);
|
|
4766
|
-
this.toolbarOptions.imageUrl = getValueForLocation(this._imageUrl, this.showIcon, false);
|
|
4767
|
-
this.overflowOptions.imageUrl = getValueForLocation(this._imageUrl, this.showIcon, true);
|
|
4768
|
-
}
|
|
4769
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarSplitButtonComponent, deps: [{ token: ToolBarComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
5084
|
+
this.toolbarOptions.icon = getValueForLocation(this._icon(), this.showIcon, false);
|
|
5085
|
+
this.overflowOptions.icon = getValueForLocation(this._icon(), this.showIcon, true);
|
|
5086
|
+
this.toolbarOptions.iconClass = getValueForLocation(this._iconClass(), this.showIcon, false);
|
|
5087
|
+
this.overflowOptions.iconClass = getValueForLocation(this._iconClass(), this.showIcon, true);
|
|
5088
|
+
this.toolbarOptions.svgIcon = getValueForLocation(this._svgIcon(), this.showIcon, false);
|
|
5089
|
+
this.overflowOptions.svgIcon = getValueForLocation(this._svgIcon(), this.showIcon, true);
|
|
5090
|
+
this.toolbarOptions.imageUrl = getValueForLocation(this._imageUrl(), this.showIcon, false);
|
|
5091
|
+
this.overflowOptions.imageUrl = getValueForLocation(this._imageUrl(), this.showIcon, true);
|
|
5092
|
+
}
|
|
5093
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarSplitButtonComponent, deps: [{ token: ToolBarComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4770
5094
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.23", 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: `
|
|
4771
5095
|
<ng-template #toolbarTemplate>
|
|
4772
5096
|
<kendo-splitbutton
|
|
@@ -4871,7 +5195,7 @@ class ToolBarSplitButtonComponent extends ToolBarToolComponent {
|
|
|
4871
5195
|
(itemClick)="itemClick.emit($event)"
|
|
4872
5196
|
></kendo-splitbutton>
|
|
4873
5197
|
</ng-template>
|
|
4874
|
-
`, 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: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
5198
|
+
`, 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: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4875
5199
|
}
|
|
4876
5200
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarSplitButtonComponent, decorators: [{
|
|
4877
5201
|
type: Component,
|
|
@@ -4985,9 +5309,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
4985
5309
|
</ng-template>
|
|
4986
5310
|
`,
|
|
4987
5311
|
standalone: true,
|
|
5312
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4988
5313
|
imports: [SplitButtonComponent, NgClass, IconWrapperComponent]
|
|
4989
5314
|
}]
|
|
4990
|
-
}], ctorParameters: () => [{ type: ToolBarComponent }], propDecorators: { showText: [{
|
|
5315
|
+
}], ctorParameters: () => [{ type: ToolBarComponent }, { type: i0.ChangeDetectorRef }], propDecorators: { showText: [{
|
|
4991
5316
|
type: Input
|
|
4992
5317
|
}], showIcon: [{
|
|
4993
5318
|
type: Input
|
|
@@ -5105,7 +5430,7 @@ class ToolBarSeparatorComponent extends ToolBarToolComponent {
|
|
|
5105
5430
|
<div class="k-separator k-separator-horizontal"></div>
|
|
5106
5431
|
</div>
|
|
5107
5432
|
</ng-template>
|
|
5108
|
-
`, isInline: true });
|
|
5433
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5109
5434
|
}
|
|
5110
5435
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarSeparatorComponent, decorators: [{
|
|
5111
5436
|
type: Component,
|
|
@@ -5128,7 +5453,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
5128
5453
|
</div>
|
|
5129
5454
|
</ng-template>
|
|
5130
5455
|
`,
|
|
5131
|
-
standalone: true
|
|
5456
|
+
standalone: true,
|
|
5457
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
5132
5458
|
}]
|
|
5133
5459
|
}], ctorParameters: () => [], propDecorators: { separator: [{
|
|
5134
5460
|
type: ViewChild,
|
|
@@ -5188,7 +5514,7 @@ class ToolBarSpacerComponent extends ToolBarToolComponent {
|
|
|
5188
5514
|
<ng-template #toolbarTemplate>
|
|
5189
5515
|
<div class="k-spacer"></div>
|
|
5190
5516
|
</ng-template>
|
|
5191
|
-
`, isInline: true });
|
|
5517
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5192
5518
|
}
|
|
5193
5519
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: ToolBarSpacerComponent, decorators: [{
|
|
5194
5520
|
type: Component,
|
|
@@ -5201,7 +5527,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImpo
|
|
|
5201
5527
|
<div class="k-spacer"></div>
|
|
5202
5528
|
</ng-template>
|
|
5203
5529
|
`,
|
|
5204
|
-
standalone: true
|
|
5530
|
+
standalone: true,
|
|
5531
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
5205
5532
|
}]
|
|
5206
5533
|
}], ctorParameters: () => [] });
|
|
5207
5534
|
|
|
@@ -5647,7 +5974,9 @@ class FloatingToolBarComponent {
|
|
|
5647
5974
|
*/
|
|
5648
5975
|
propertyChange = new EventEmitter();
|
|
5649
5976
|
dragHandleIcon = handleDragDotsIcon;
|
|
5650
|
-
direction
|
|
5977
|
+
get direction() {
|
|
5978
|
+
return this._direction();
|
|
5979
|
+
}
|
|
5651
5980
|
moveMode = computed(() => this.keyboardMoveOrigin() !== null, ...(ngDevMode ? [{ debugName: "moveMode" }] : /* istanbul ignore next */ []));
|
|
5652
5981
|
popupClass = computed(() => {
|
|
5653
5982
|
const size = SIZES[this._size()];
|
|
@@ -5671,6 +6000,7 @@ class FloatingToolBarComponent {
|
|
|
5671
6000
|
get dragHandleTitle() {
|
|
5672
6001
|
return this.localization.get('dragHandleTitle');
|
|
5673
6002
|
}
|
|
6003
|
+
_direction = signal('ltr', ...(ngDevMode ? [{ debugName: "_direction" }] : /* istanbul ignore next */ []));
|
|
5674
6004
|
_anchor = signal(undefined, ...(ngDevMode ? [{ debugName: "_anchor" }] : /* istanbul ignore next */ []));
|
|
5675
6005
|
_position = signal('top', ...(ngDevMode ? [{ debugName: "_position" }] : /* istanbul ignore next */ []));
|
|
5676
6006
|
_containerAlign = signal({ horizontal: 'center', vertical: 'top' }, ...(ngDevMode ? [{ debugName: "_containerAlign" }] : /* istanbul ignore next */ []));
|
|
@@ -5698,14 +6028,14 @@ class FloatingToolBarComponent {
|
|
|
5698
6028
|
this.localization = localization;
|
|
5699
6029
|
this.changeDetectorRef = changeDetectorRef;
|
|
5700
6030
|
validatePackage(packageMetadata);
|
|
5701
|
-
this.
|
|
6031
|
+
this._direction.set(localization.rtl ? 'rtl' : 'ltr');
|
|
5702
6032
|
if (isDocumentAvailable()) {
|
|
5703
6033
|
this.focusReturnTarget = document.activeElement;
|
|
5704
6034
|
}
|
|
5705
6035
|
}
|
|
5706
6036
|
ngOnInit() {
|
|
5707
6037
|
this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => {
|
|
5708
|
-
this.
|
|
6038
|
+
this._direction.set(rtl ? 'rtl' : 'ltr');
|
|
5709
6039
|
this.changeDetectorRef.markForCheck();
|
|
5710
6040
|
}));
|
|
5711
6041
|
}
|
|
@@ -5736,7 +6066,7 @@ class FloatingToolBarComponent {
|
|
|
5736
6066
|
* Moves the focus into the FloatingToolBar at its current roving tabindex position.
|
|
5737
6067
|
*/
|
|
5738
6068
|
focus() {
|
|
5739
|
-
this.
|
|
6069
|
+
this.toolbarComponent?.element.nativeElement.focus();
|
|
5740
6070
|
}
|
|
5741
6071
|
/**
|
|
5742
6072
|
* Sets the FloatingToolBar position using the provided `top` and `left` coordinates.
|