@progress/kendo-angular-layout 7.1.6 → 7.2.0-dev.202211241203
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.
- package/bundles/kendo-angular-layout.umd.js +1 -1
- package/common/util.d.ts +4 -0
- package/esm2015/avatar/avatar.component.js +3 -3
- package/esm2015/avatar.module.js +4 -4
- package/esm2015/card/card-actions.component.js +3 -3
- package/esm2015/card/card-body.component.js +3 -3
- package/esm2015/card/card-footer.component.js +3 -3
- package/esm2015/card/card-header.component.js +3 -3
- package/esm2015/card/card.component.js +3 -3
- package/esm2015/card/directives/card-media.directive.js +3 -3
- package/esm2015/card/directives/card-separator.directive.js +3 -3
- package/esm2015/card/directives/card-subtitle.directive.js +3 -3
- package/esm2015/card/directives/card-title.directive.js +3 -3
- package/esm2015/card.module.js +4 -4
- package/esm2015/common/util.js +16 -0
- package/esm2015/drawer/drawer-container.component.js +3 -3
- package/esm2015/drawer/drawer-content.component.js +3 -3
- package/esm2015/drawer/drawer.component.js +3 -3
- package/esm2015/drawer/drawer.service.js +3 -3
- package/esm2015/drawer/item.component.js +3 -3
- package/esm2015/drawer/list.component.js +3 -3
- package/esm2015/drawer/template-directives/drawer-template.directive.js +3 -3
- package/esm2015/drawer/template-directives/footer-template.directive.js +3 -3
- package/esm2015/drawer/template-directives/header-template.directive.js +3 -3
- package/esm2015/drawer/template-directives/item-template.directive.js +3 -3
- package/esm2015/drawer.module.js +4 -4
- package/esm2015/expansionpanel/expansionpanel-title.directive.js +3 -3
- package/esm2015/expansionpanel/expansionpanel.component.js +3 -3
- package/esm2015/expansionpanel.module.js +4 -4
- package/esm2015/gridlayout.module.js +4 -4
- package/esm2015/layout.module.js +4 -4
- package/esm2015/layouts/grid-layout.component.js +3 -3
- package/esm2015/layouts/gridlayout-item.component.js +3 -3
- package/esm2015/layouts/stack-layout.component.js +3 -3
- package/esm2015/package-metadata.js +1 -1
- package/esm2015/panelbar/panelbar-content.directive.js +3 -3
- package/esm2015/panelbar/panelbar-item-template.directive.js +3 -3
- package/esm2015/panelbar/panelbar-item-title.directive.js +3 -3
- package/esm2015/panelbar/panelbar-item.component.js +3 -3
- package/esm2015/panelbar/panelbar.component.js +3 -3
- package/esm2015/panelbar/panelbar.service.js +3 -3
- package/esm2015/panelbar.module.js +4 -4
- package/esm2015/splitter/splitter-bar.component.js +3 -3
- package/esm2015/splitter/splitter-pane.component.js +3 -3
- package/esm2015/splitter/splitter.component.js +3 -3
- package/esm2015/splitter/splitter.service.js +3 -3
- package/esm2015/splitter.module.js +4 -4
- package/esm2015/stacklayout.module.js +4 -4
- package/esm2015/stepper/list.component.js +3 -3
- package/esm2015/stepper/localization/custom-messages.component.js +3 -3
- package/esm2015/stepper/localization/localized-messages.directive.js +3 -3
- package/esm2015/stepper/localization/messages.js +3 -3
- package/esm2015/stepper/step.component.js +3 -3
- package/esm2015/stepper/stepper.component.js +3 -3
- package/esm2015/stepper/stepper.service.js +3 -3
- package/esm2015/stepper/template-directives/indicator-template.directive.js +3 -3
- package/esm2015/stepper/template-directives/label-template.directive.js +3 -3
- package/esm2015/stepper/template-directives/step-template.directive.js +3 -3
- package/esm2015/stepper.module.js +4 -4
- package/esm2015/tabstrip/directives/tab-content.directive.js +3 -3
- package/esm2015/tabstrip/directives/tab-title.directive.js +3 -3
- package/esm2015/tabstrip/localization/custom-messages.component.js +3 -3
- package/esm2015/tabstrip/localization/localized-messages.directive.js +3 -3
- package/esm2015/tabstrip/localization/messages.js +3 -3
- package/esm2015/tabstrip/models/tabstrip-tab.component.js +3 -3
- package/esm2015/tabstrip/rendering/tab.component.js +3 -3
- package/esm2015/tabstrip/scrollable-button.component.js +3 -3
- package/esm2015/tabstrip/tabstrip-scroll.service.js +3 -3
- package/esm2015/tabstrip/tabstrip.component.js +3 -3
- package/esm2015/tabstrip/tabstrip.service.js +3 -3
- package/esm2015/tabstrip.module.js +4 -4
- package/esm2015/tilelayout/dragging-service.js +3 -3
- package/esm2015/tilelayout/keyboard-navigation.service.js +148 -0
- package/esm2015/tilelayout/models/navigation.interface.js +5 -0
- package/esm2015/tilelayout/tilelayout-item-body.component.js +3 -3
- package/esm2015/tilelayout/tilelayout-item-header.component.js +3 -3
- package/esm2015/tilelayout/tilelayout-item.component.js +92 -14
- package/esm2015/tilelayout/tilelayout-resize-handle.directive.js +3 -3
- package/esm2015/tilelayout/tilelayout.component.js +31 -9
- package/esm2015/tilelayout/util.js +51 -1
- package/esm2015/tilelayout.module.js +4 -4
- package/fesm2015/kendo-angular-layout.js +548 -248
- package/package.json +1 -1
- package/tilelayout/keyboard-navigation.service.d.ts +34 -0
- package/tilelayout/models/navigation.interface.d.ts +17 -0
- package/tilelayout/tilelayout-item.component.d.ts +26 -3
- package/tilelayout/tilelayout.component.d.ts +13 -3
- package/tilelayout/util.d.ts +18 -0
|
@@ -19,14 +19,14 @@ export class TabStripCustomMessagesComponent extends TabStripMessages {
|
|
|
19
19
|
return true;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
TabStripCustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
23
|
-
TabStripCustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
22
|
+
TabStripCustomMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripCustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
TabStripCustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TabStripCustomMessagesComponent, selector: "kendo-tabstrip-messages", providers: [
|
|
24
24
|
{
|
|
25
25
|
provide: TabStripMessages,
|
|
26
26
|
useExisting: forwardRef(() => TabStripCustomMessagesComponent)
|
|
27
27
|
}
|
|
28
28
|
], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripCustomMessagesComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{
|
|
32
32
|
providers: [
|
|
@@ -15,14 +15,14 @@ export class LocalizedTabStripMessagesDirective extends TabStripMessages {
|
|
|
15
15
|
this.service = service;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
LocalizedTabStripMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
19
|
-
LocalizedTabStripMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
18
|
+
LocalizedTabStripMessagesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LocalizedTabStripMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
+
LocalizedTabStripMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: LocalizedTabStripMessagesDirective, selector: "[kendoTabStripLocalizedMessages]", providers: [
|
|
20
20
|
{
|
|
21
21
|
provide: TabStripMessages,
|
|
22
22
|
useExisting: forwardRef(() => LocalizedTabStripMessagesDirective)
|
|
23
23
|
}
|
|
24
24
|
], usesInheritance: true, ngImport: i0 });
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: LocalizedTabStripMessagesDirective, decorators: [{
|
|
26
26
|
type: Directive,
|
|
27
27
|
args: [{
|
|
28
28
|
providers: [
|
|
@@ -10,9 +10,9 @@ import * as i0 from "@angular/core";
|
|
|
10
10
|
*/
|
|
11
11
|
export class TabStripMessages extends ComponentMessages {
|
|
12
12
|
}
|
|
13
|
-
TabStripMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
14
|
-
TabStripMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
13
|
+
TabStripMessages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
+
TabStripMessages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TabStripMessages, selector: "kendo-tabstrip-messages-base", inputs: { closeTitle: "closeTitle", previousTabButton: "previousTabButton", nextTabButton: "nextTabButton" }, usesInheritance: true, ngImport: i0 });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripMessages, decorators: [{
|
|
16
16
|
type: Directive,
|
|
17
17
|
args: [{
|
|
18
18
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -33,9 +33,9 @@ export class TabStripTabComponent {
|
|
|
33
33
|
return this._tabTitleDirective.first;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
TabStripTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
37
|
-
TabStripTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
36
|
+
TabStripTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
TabStripTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: { title: "title", disabled: "disabled", cssClass: "cssClass", cssStyle: "cssStyle", selected: "selected", closable: "closable", closeIcon: "closeIcon" }, queries: [{ propertyName: "_tabContent", predicate: TabContentDirective }, { propertyName: "_tabTitleDirective", predicate: TabTitleDirective }], exportAs: ["kendoTabStripTab"], ngImport: i0, template: ``, isInline: true });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripTabComponent, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
40
|
args: [{
|
|
41
41
|
exportAs: 'kendoTabStripTab',
|
|
@@ -49,8 +49,8 @@ export class TabComponent {
|
|
|
49
49
|
this.tabClose.emit(closeArgs);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
TabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
53
|
-
TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
52
|
+
TabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TabComponent, selector: "[kendoTabStripTab]", inputs: { tab: "tab", index: "index", tabStripClosable: "tabStripClosable", tabStripCloseIcon: "tabStripCloseIcon" }, outputs: { tabClose: "tabClose" }, host: { properties: { "class.k-item": "this.hostClasses", "class.k-state-default": "this.hostClasses", "attr.aria-selected": "this.activeClass", "class.k-active": "this.activeClass", "attr.aria-disabled]": "this.disabledClass", "class.k-disabled": "this.disabledClass", "class.k-focus": "this.focusedClass", "attr.tabindex": "this.tabIndex" } }, ngImport: i0, template: `
|
|
54
54
|
<span class="k-link" *ngIf="!tab.tabTitle">{{ tab.title }}</span>
|
|
55
55
|
<span class="k-link" *ngIf="tab.tabTitle">
|
|
56
56
|
<ng-template [ngTemplateOutlet]="tab.tabTitle?.templateRef">
|
|
@@ -65,7 +65,7 @@ TabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
65
65
|
<span [ngClass]="closeButtonClasses"></span>
|
|
66
66
|
</span>
|
|
67
67
|
`, isInline: true, directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabComponent, decorators: [{
|
|
69
69
|
type: Component,
|
|
70
70
|
args: [{
|
|
71
71
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
@@ -73,11 +73,11 @@ export class TabStripScrollableButtonComponent {
|
|
|
73
73
|
return scrollEvent;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
TabStripScrollableButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
77
|
-
TabStripScrollableButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
76
|
+
TabStripScrollableButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripScrollableButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
77
|
+
TabStripScrollableButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TabStripScrollableButtonComponent, selector: "[kendoTabStripScrollableButton]", inputs: { prev: "prev", tabPosition: "tabPosition", scrollable: "scrollable" }, outputs: { tabScroll: "tabScroll", onClick: "onClick" }, host: { properties: { "class.k-button": "this.btnClasses", "class.k-button-md": "this.btnClasses", "class.k-icon-button": "this.btnClasses", "class.k-rounded-md": "this.btnClasses", "class.k-button-flat": "this.btnClasses", "class.k-button-flat-base": "this.btnClasses", "class.k-tabstrip-prev": "this.prevClass", "class.k-tabstrip-next": "this.nextClass" } }, ngImport: i0, template: `
|
|
78
78
|
<span class="k-icon k-button-icon" [ngClass]="iconClass"></span>
|
|
79
79
|
`, isInline: true, directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripScrollableButtonComponent, decorators: [{
|
|
81
81
|
type: Component,
|
|
82
82
|
args: [{
|
|
83
83
|
template: `
|
|
@@ -172,8 +172,8 @@ export class ScrollService {
|
|
|
172
172
|
this.scrollButtonActiveStateChange.next({ buttonType, active });
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
ScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
176
|
-
ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
175
|
+
ScrollService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ScrollService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
176
|
+
ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ScrollService });
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ScrollService, decorators: [{
|
|
178
178
|
type: Injectable
|
|
179
179
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
|
@@ -350,8 +350,8 @@ export class TabStripComponent {
|
|
|
350
350
|
});
|
|
351
351
|
}
|
|
352
352
|
}
|
|
353
|
-
TabStripComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
354
|
-
TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
353
|
+
TabStripComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripComponent, deps: [{ token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.TabStripService }, { token: i3.ScrollService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
354
|
+
TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TabStripComponent, selector: "kendo-tabstrip", inputs: { height: "height", animate: "animate", tabAlignment: "tabAlignment", tabPosition: "tabPosition", keepTabContent: "keepTabContent", closable: "closable", scrollable: "scrollable", closeIcon: "closeIcon" }, outputs: { tabSelect: "tabSelect", tabClose: "tabClose", tabScroll: "tabScroll" }, host: { properties: { "class.k-tabstrip": "this.hostClass", "class.k-tabstrip-top": "this.tabsAtTop", "class.k-tabstrip-right": "this.tabsAtRight", "class.k-tabstrip-bottom": "this.tabsAtBottom", "class.k-tabstrip-left": "this.tabsAtLeft", "attr.dir": "this.dir", "class.k-tabstrip-scrollable": "this.tabStripScrollable" } }, providers: [
|
|
355
355
|
TabStripService,
|
|
356
356
|
ScrollService,
|
|
357
357
|
LocalizationService,
|
|
@@ -464,7 +464,7 @@ TabStripComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
464
464
|
])
|
|
465
465
|
])
|
|
466
466
|
] });
|
|
467
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripComponent, decorators: [{
|
|
468
468
|
type: Component,
|
|
469
469
|
args: [{
|
|
470
470
|
animations: [
|
|
@@ -143,8 +143,8 @@ export class TabStripService {
|
|
|
143
143
|
return selectedIndex + 1;
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
|
-
TabStripService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
147
|
-
TabStripService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
146
|
+
TabStripService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripService, deps: [{ token: i1.LocalizationService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
147
|
+
TabStripService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripService });
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripService, decorators: [{
|
|
149
149
|
type: Injectable
|
|
150
150
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.NgZone }]; } });
|
|
@@ -39,8 +39,8 @@ const declarations = [
|
|
|
39
39
|
*/
|
|
40
40
|
export class TabStripModule {
|
|
41
41
|
}
|
|
42
|
-
TabStripModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
43
|
-
TabStripModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
42
|
+
TabStripModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
43
|
+
TabStripModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripModule, declarations: [TabStripComponent,
|
|
44
44
|
TabStripTabComponent,
|
|
45
45
|
TabContentDirective,
|
|
46
46
|
TabTitleDirective,
|
|
@@ -53,8 +53,8 @@ TabStripModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
53
53
|
TabComponent,
|
|
54
54
|
TabStripCustomMessagesComponent,
|
|
55
55
|
LocalizedTabStripMessagesDirective] });
|
|
56
|
-
TabStripModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
56
|
+
TabStripModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripModule, imports: [[CommonModule, ResizeSensorModule]] });
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TabStripModule, decorators: [{
|
|
58
58
|
type: NgModule,
|
|
59
59
|
args: [{
|
|
60
60
|
declarations: [declarations],
|
|
@@ -391,8 +391,8 @@ export class TileLayoutDraggingService {
|
|
|
391
391
|
return hintHeight;
|
|
392
392
|
}
|
|
393
393
|
}
|
|
394
|
-
TileLayoutDraggingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
395
|
-
TileLayoutDraggingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
|
396
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
394
|
+
TileLayoutDraggingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutDraggingService, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
395
|
+
TileLayoutDraggingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutDraggingService });
|
|
396
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutDraggingService, decorators: [{
|
|
397
397
|
type: Injectable
|
|
398
398
|
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }]; } });
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
/* eslint-disable no-unused-expressions */
|
|
6
|
+
import { Injectable } from '@angular/core';
|
|
7
|
+
import { Keys } from '@progress/kendo-angular-common';
|
|
8
|
+
import { BehaviorSubject } from 'rxjs';
|
|
9
|
+
import { focusableSelector } from '../common/util';
|
|
10
|
+
import { getCurrentCol, shouldReorder, shouldResize } from './util';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@progress/kendo-angular-l10n";
|
|
13
|
+
/**
|
|
14
|
+
* @hidden
|
|
15
|
+
*/
|
|
16
|
+
export class TileLayoutKeyboardNavigationService {
|
|
17
|
+
constructor(zone, renderer, localization) {
|
|
18
|
+
this.zone = zone;
|
|
19
|
+
this.renderer = renderer;
|
|
20
|
+
this.localization = localization;
|
|
21
|
+
this.navigable = new BehaviorSubject(false);
|
|
22
|
+
this.localizationSubscription = this.localization.changes.subscribe(({ rtl }) => this.rtl = rtl);
|
|
23
|
+
}
|
|
24
|
+
ngOnDestroy() {
|
|
25
|
+
this.localizationSubscription.unsubscribe();
|
|
26
|
+
}
|
|
27
|
+
onKeyDown(event, elem, focusableItems, settings) {
|
|
28
|
+
const keyCode = event.keyCode;
|
|
29
|
+
const isTileFocused = document.activeElement === elem;
|
|
30
|
+
const focusedTile = settings.items.find(item => item.elem.nativeElement === elem);
|
|
31
|
+
const col = getCurrentCol(focusedTile, settings, this.rtl);
|
|
32
|
+
if (keyCode === Keys.Enter && isTileFocused && focusableItems.length > 0) {
|
|
33
|
+
this.changeTabIndex('0', elem, focusableItems);
|
|
34
|
+
focusableItems[0].focus();
|
|
35
|
+
}
|
|
36
|
+
else if (keyCode === Keys.Escape) {
|
|
37
|
+
this.changeTabIndex('-1', elem, focusableItems);
|
|
38
|
+
elem.focus();
|
|
39
|
+
}
|
|
40
|
+
else if ((event.ctrlKey || event.metaKey) && isTileFocused && focusedTile.isResizable) {
|
|
41
|
+
event.preventDefault();
|
|
42
|
+
this.zone.run(() => {
|
|
43
|
+
this.resizeItem(keyCode, focusedTile, settings, col);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else if (event.shiftKey && isTileFocused && focusedTile.isReorderable) {
|
|
47
|
+
this.zone.run(() => {
|
|
48
|
+
this.reorderItem(keyCode, focusedTile, settings, col);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else if (keyCode === Keys.Tab && !isTileFocused) {
|
|
52
|
+
this.keepFocusWithinComponent(event, elem);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
onFocusOut(event, elem, focusableItems) {
|
|
56
|
+
var _a;
|
|
57
|
+
const isTargetFocusable = focusableItems.includes(event.target);
|
|
58
|
+
const isRelatedTargetFocusable = focusableItems.includes(event.relatedTarget);
|
|
59
|
+
if (isTargetFocusable && !isRelatedTargetFocusable) {
|
|
60
|
+
this.changeTabIndex('-1', elem, focusableItems);
|
|
61
|
+
(_a = event.relatedTarget) === null || _a === void 0 ? void 0 : _a.focus();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
onClick(event, elem, focusableItems) {
|
|
65
|
+
const isTargetFocusable = focusableItems.includes(event.target);
|
|
66
|
+
if (isTargetFocusable) {
|
|
67
|
+
this.changeTabIndex('0', elem, focusableItems);
|
|
68
|
+
event.target.focus();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
changeTabIndex(tabIndex, elem, focusableItems) {
|
|
72
|
+
this.renderer.setAttribute(elem, 'tabindex', tabIndex === '0' ? '-1' : '0');
|
|
73
|
+
focusableItems.forEach((focusItem) => {
|
|
74
|
+
this.renderer.setAttribute(focusItem, 'tabindex', tabIndex);
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
getAllFocusableChildren(parent) {
|
|
78
|
+
return Array.from(parent.querySelectorAll(focusableSelector)).filter((element) => element.offsetParent !== null);
|
|
79
|
+
}
|
|
80
|
+
;
|
|
81
|
+
resizeItem(keyCode, focusedTile, settings, col) {
|
|
82
|
+
const { resizeRight, resizeLeft, resizeDown, resizeUp } = shouldResize(keyCode, col, focusedTile, settings);
|
|
83
|
+
const resizeHorizontal = resizeLeft || resizeRight;
|
|
84
|
+
const resizeVertical = resizeDown || resizeUp;
|
|
85
|
+
const resizeDir = resizeLeft || resizeUp ? -1 : 1;
|
|
86
|
+
if (resizeHorizontal) {
|
|
87
|
+
focusedTile.colSpan += resizeDir;
|
|
88
|
+
}
|
|
89
|
+
else if (resizeVertical) {
|
|
90
|
+
focusedTile.rowSpan += resizeDir;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
reorderItem(keyCode, focusedTile, settings, col) {
|
|
94
|
+
const { reorderLeft, reorderRight } = shouldReorder(keyCode, col, focusedTile, settings);
|
|
95
|
+
const onReorderRight = () => {
|
|
96
|
+
const nextTile = this.targetTile(focusedTile, settings.items, 1);
|
|
97
|
+
if (nextTile) {
|
|
98
|
+
focusedTile.order += 1;
|
|
99
|
+
nextTile.order -= 1;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
const onReorderLeft = () => {
|
|
103
|
+
const prevTile = this.targetTile(focusedTile, settings.items, -1);
|
|
104
|
+
if (prevTile) {
|
|
105
|
+
focusedTile.order -= 1;
|
|
106
|
+
prevTile.order += 1;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
if (reorderRight || reorderLeft) {
|
|
110
|
+
const reorderDir = reorderRight ? 1 : -1;
|
|
111
|
+
if (focusedTile.col) {
|
|
112
|
+
focusedTile.col += reorderDir;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
reorderRight ? onReorderRight() : onReorderLeft();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
keepFocusWithinComponent(event, wrapper) {
|
|
120
|
+
const [firstFocusable, lastFocusable] = this.getFirstAndLastFocusable(wrapper);
|
|
121
|
+
const tabAfterLastFocusable = !event.shiftKey && event.target === lastFocusable;
|
|
122
|
+
const shiftTabAfterFirstFocusable = event.shiftKey && event.target === firstFocusable;
|
|
123
|
+
if (tabAfterLastFocusable) {
|
|
124
|
+
event.preventDefault();
|
|
125
|
+
firstFocusable.focus();
|
|
126
|
+
wrapper.blur();
|
|
127
|
+
}
|
|
128
|
+
if (shiftTabAfterFirstFocusable) {
|
|
129
|
+
event.preventDefault();
|
|
130
|
+
lastFocusable.focus();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
getFirstAndLastFocusable(parent) {
|
|
134
|
+
const all = this.getAllFocusableChildren(parent);
|
|
135
|
+
const firstFocusable = all.length > 0 ? all[0] : parent;
|
|
136
|
+
const lastFocusable = all.length > 0 ? all[all.length - 1] : parent;
|
|
137
|
+
return [firstFocusable, lastFocusable];
|
|
138
|
+
}
|
|
139
|
+
;
|
|
140
|
+
targetTile(focusedTile, items, offset) {
|
|
141
|
+
return items.find(item => item.order === focusedTile.order + offset);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
TileLayoutKeyboardNavigationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutKeyboardNavigationService, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
145
|
+
TileLayoutKeyboardNavigationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutKeyboardNavigationService });
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutKeyboardNavigationService, decorators: [{
|
|
147
|
+
type: Injectable
|
|
148
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }]; } });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
export {};
|
|
@@ -13,11 +13,11 @@ export class TileLayoutItemBodyComponent {
|
|
|
13
13
|
this.minHeight = 0;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
TileLayoutItemBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
17
|
-
TileLayoutItemBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
16
|
+
TileLayoutItemBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutItemBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
TileLayoutItemBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TileLayoutItemBodyComponent, selector: "kendo-tilelayout-item-body", host: { properties: { "class.k-tilelayout-item-body": "this.hostClass", "class.k-card-body": "this.hostClass", "style.min-height": "this.minHeight" } }, ngImport: i0, template: `
|
|
18
18
|
<ng-content></ng-content>
|
|
19
19
|
`, isInline: true });
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutItemBodyComponent, decorators: [{
|
|
21
21
|
type: Component,
|
|
22
22
|
args: [{
|
|
23
23
|
selector: 'kendo-tilelayout-item-body',
|
|
@@ -29,11 +29,11 @@ export class TileLayoutItemHeaderComponent {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
TileLayoutItemHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
33
|
-
TileLayoutItemHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
32
|
+
TileLayoutItemHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutItemHeaderComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
TileLayoutItemHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TileLayoutItemHeaderComponent, selector: "kendo-tilelayout-item-header", inputs: { reorderable: "reorderable" }, host: { properties: { "class.k-tilelayout-item-header": "this.hostClass", "class.k-card-header": "this.hostClass" } }, ngImport: i0, template: `
|
|
34
34
|
<ng-content></ng-content>
|
|
35
35
|
`, isInline: true });
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutItemHeaderComponent, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
38
|
args: [{
|
|
39
39
|
selector: 'kendo-tilelayout-item-header',
|
|
@@ -7,21 +7,25 @@ import { Subscription } from 'rxjs';
|
|
|
7
7
|
import { isPresent } from './../common/util';
|
|
8
8
|
import { RESIZE_DIRECTIONS, RTL_RESIZE_DIRECTIONS } from './constants';
|
|
9
9
|
import { TileLayoutItemHeaderComponent } from './tilelayout-item-header.component';
|
|
10
|
+
import { getId } from './util';
|
|
10
11
|
import * as i0 from "@angular/core";
|
|
11
12
|
import * as i1 from "@progress/kendo-angular-l10n";
|
|
12
13
|
import * as i2 from "./dragging-service";
|
|
13
|
-
import * as i3 from "./
|
|
14
|
-
import * as i4 from "
|
|
15
|
-
import * as i5 from "
|
|
14
|
+
import * as i3 from "./keyboard-navigation.service";
|
|
15
|
+
import * as i4 from "./tilelayout-item-header.component";
|
|
16
|
+
import * as i5 from "@angular/common";
|
|
17
|
+
import * as i6 from "./tilelayout-resize-handle.directive";
|
|
16
18
|
/**
|
|
17
19
|
* Represents a tile item within the TileLayoutComponent.
|
|
18
20
|
*/
|
|
19
21
|
export class TileLayoutItemComponent {
|
|
20
|
-
constructor(elem, renderer, localization, draggingService) {
|
|
22
|
+
constructor(elem, zone, renderer, localization, draggingService, keyboardNavigationService) {
|
|
21
23
|
this.elem = elem;
|
|
24
|
+
this.zone = zone;
|
|
22
25
|
this.renderer = renderer;
|
|
23
26
|
this.localization = localization;
|
|
24
27
|
this.draggingService = draggingService;
|
|
28
|
+
this.keyboardNavigationService = keyboardNavigationService;
|
|
25
29
|
/**
|
|
26
30
|
* Determines how many rows will the tile item span ([see example]({% slug tiles_tilelayout %}#toc-tile-size-and-position)).
|
|
27
31
|
* @default 1
|
|
@@ -44,6 +48,11 @@ export class TileLayoutItemComponent {
|
|
|
44
48
|
*/
|
|
45
49
|
this.resizable = true;
|
|
46
50
|
this.itemClass = true;
|
|
51
|
+
this.hostRole = 'listitem';
|
|
52
|
+
/**
|
|
53
|
+
* @hidden
|
|
54
|
+
*/
|
|
55
|
+
this.titleId = '';
|
|
47
56
|
this.subs = new Subscription();
|
|
48
57
|
this.subs.add(this.localization.changes.subscribe(({ rtl }) => {
|
|
49
58
|
this.rtl = rtl;
|
|
@@ -52,6 +61,7 @@ export class TileLayoutItemComponent {
|
|
|
52
61
|
this.resizeDirections = resizable && this.resizable ?
|
|
53
62
|
this.rtl ? RTL_RESIZE_DIRECTIONS : RESIZE_DIRECTIONS : undefined;
|
|
54
63
|
}));
|
|
64
|
+
this.titleId = getId('k-tilelayout-title');
|
|
55
65
|
}
|
|
56
66
|
/**
|
|
57
67
|
* Determines the order of the tile items within the TileLayout.
|
|
@@ -65,6 +75,21 @@ export class TileLayoutItemComponent {
|
|
|
65
75
|
get order() {
|
|
66
76
|
return this._order;
|
|
67
77
|
}
|
|
78
|
+
get hostDropEffect() {
|
|
79
|
+
return this.isResizable || this.isReorderable ? 'execute' : undefined;
|
|
80
|
+
}
|
|
81
|
+
get hostTabindex() {
|
|
82
|
+
return this.isNavigable ? '0' : undefined;
|
|
83
|
+
}
|
|
84
|
+
get ariaKeyShortcuts() {
|
|
85
|
+
return this.isNavigable ? 'Enter' : undefined;
|
|
86
|
+
}
|
|
87
|
+
get hostGrabbed() {
|
|
88
|
+
return this.isResizable || this.isReorderable;
|
|
89
|
+
}
|
|
90
|
+
get hostLabelledBy() {
|
|
91
|
+
return this.title ? this.titleId : undefined;
|
|
92
|
+
}
|
|
68
93
|
get colEnd() {
|
|
69
94
|
return `span ${this.colSpan}`;
|
|
70
95
|
}
|
|
@@ -80,10 +105,24 @@ export class TileLayoutItemComponent {
|
|
|
80
105
|
/**
|
|
81
106
|
* @hidden
|
|
82
107
|
*/
|
|
83
|
-
get
|
|
108
|
+
get isReorderable() {
|
|
84
109
|
return this.reorderable && this.draggingService.reorderable.getValue();
|
|
85
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* @hidden
|
|
113
|
+
*/
|
|
114
|
+
get isNavigable() {
|
|
115
|
+
return this.keyboardNavigationService.navigable.getValue();
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* @hidden
|
|
119
|
+
*/
|
|
120
|
+
get isResizable() {
|
|
121
|
+
return this.resizable && this.draggingService.resizable.getValue();
|
|
122
|
+
}
|
|
86
123
|
ngAfterViewInit() {
|
|
124
|
+
const elem = this.elem.nativeElement;
|
|
125
|
+
const keyboardNavigation = this.keyboardNavigationService;
|
|
87
126
|
this.subs.add(this.draggingService.reorderable.subscribe(reorderable => {
|
|
88
127
|
var _a;
|
|
89
128
|
this.toggleCursorClass(reorderable && this.reorderable);
|
|
@@ -91,6 +130,24 @@ export class TileLayoutItemComponent {
|
|
|
91
130
|
this.headers.first.reorderable = reorderable && this.reorderable;
|
|
92
131
|
}
|
|
93
132
|
}));
|
|
133
|
+
this.subs.add(keyboardNavigation.navigable.subscribe(isNavigable => {
|
|
134
|
+
if (isNavigable) {
|
|
135
|
+
this.keyboardNavigationSubs = new Subscription();
|
|
136
|
+
this.focusableItems = keyboardNavigation.getAllFocusableChildren(elem);
|
|
137
|
+
this.zone.runOutsideAngular(() => {
|
|
138
|
+
keyboardNavigation.changeTabIndex('-1', elem, this.focusableItems);
|
|
139
|
+
this.keyboardNavigationSubs.add(this.renderer.listen(elem, 'keydown', event => keyboardNavigation.onKeyDown(event, elem, this.focusableItems, this.draggingService.tileLayoutSettings)));
|
|
140
|
+
this.keyboardNavigationSubs.add(this.renderer.listen(elem, 'click', event => keyboardNavigation.onClick(event, elem, this.focusableItems)));
|
|
141
|
+
this.keyboardNavigationSubs.add(this.renderer.listen(elem, 'focusout', event => keyboardNavigation.onFocusOut(event, elem, this.focusableItems)));
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
else if (this.focusableItems) {
|
|
145
|
+
this.focusableItems.forEach((focusItem) => {
|
|
146
|
+
this.renderer.setAttribute(focusItem, 'tabindex', '0');
|
|
147
|
+
});
|
|
148
|
+
this.keyboardNavigationSubs.unsubscribe();
|
|
149
|
+
}
|
|
150
|
+
}));
|
|
94
151
|
}
|
|
95
152
|
ngOnChanges(changes) {
|
|
96
153
|
if (changes.reorderable && !changes.reorderable.firstChange) {
|
|
@@ -103,6 +160,9 @@ export class TileLayoutItemComponent {
|
|
|
103
160
|
}
|
|
104
161
|
ngOnDestroy() {
|
|
105
162
|
this.subs.unsubscribe();
|
|
163
|
+
if (this.keyboardNavigationSubs) {
|
|
164
|
+
this.keyboardNavigationSubs.unsubscribe();
|
|
165
|
+
}
|
|
106
166
|
}
|
|
107
167
|
toggleCursorClass(isReorderable) {
|
|
108
168
|
const headerEl = this.elem.nativeElement.querySelector('.k-tilelayout-item-header');
|
|
@@ -117,10 +177,10 @@ export class TileLayoutItemComponent {
|
|
|
117
177
|
}
|
|
118
178
|
}
|
|
119
179
|
}
|
|
120
|
-
TileLayoutItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
121
|
-
TileLayoutItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
122
|
-
<kendo-tilelayout-item-header [reorderable]="
|
|
123
|
-
<h5 class="k-card-title">{{ title }}</h5>
|
|
180
|
+
TileLayoutItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i1.LocalizationService }, { token: i2.TileLayoutDraggingService }, { token: i3.TileLayoutKeyboardNavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
181
|
+
TileLayoutItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TileLayoutItemComponent, selector: "kendo-tilelayout-item", inputs: { title: "title", rowSpan: "rowSpan", colSpan: "colSpan", order: "order", col: "col", row: "row", reorderable: "reorderable", resizable: "resizable" }, host: { properties: { "class.k-tilelayout-item": "this.itemClass", "class.k-card": "this.itemClass", "attr.role": "this.hostRole", "attr.aria-dropeffect": "this.hostDropEffect", "attr.tabindex": "this.hostTabindex", "attr.aria-keyshortcuts": "this.ariaKeyShortcuts", "attr.aria-grabbed": "this.hostGrabbed", "attr.aria-labelledby": "this.hostLabelledBy", "style.grid-column-end": "this.colEnd", "style.grid-row-end": "this.rowEnd", "style.grid-column-start": "this.colStart", "style.grid-row-start": "this.rowStart" } }, queries: [{ propertyName: "headers", predicate: TileLayoutItemHeaderComponent }], usesOnChanges: true, ngImport: i0, template: `
|
|
182
|
+
<kendo-tilelayout-item-header [reorderable]="isReorderable" *ngIf="title">
|
|
183
|
+
<h5 [id]="titleId" class="k-card-title">{{ title }}</h5>
|
|
124
184
|
</kendo-tilelayout-item-header>
|
|
125
185
|
<ng-content></ng-content>
|
|
126
186
|
<ng-container *ngIf="resizable">
|
|
@@ -132,14 +192,14 @@ TileLayoutItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
132
192
|
[resizeDirection]="dir">
|
|
133
193
|
</div>
|
|
134
194
|
</ng-container>
|
|
135
|
-
`, isInline: true, components: [{ type:
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
195
|
+
`, isInline: true, components: [{ type: i4.TileLayoutItemHeaderComponent, selector: "kendo-tilelayout-item-header", inputs: ["reorderable"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.TileLayoutResizeHandleDirective, selector: "[kendoTileLayoutResizeHandle]", inputs: ["resizeDirection", "rtl"] }] });
|
|
196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutItemComponent, decorators: [{
|
|
137
197
|
type: Component,
|
|
138
198
|
args: [{
|
|
139
199
|
selector: 'kendo-tilelayout-item',
|
|
140
200
|
template: `
|
|
141
|
-
<kendo-tilelayout-item-header [reorderable]="
|
|
142
|
-
<h5 class="k-card-title">{{ title }}</h5>
|
|
201
|
+
<kendo-tilelayout-item-header [reorderable]="isReorderable" *ngIf="title">
|
|
202
|
+
<h5 [id]="titleId" class="k-card-title">{{ title }}</h5>
|
|
143
203
|
</kendo-tilelayout-item-header>
|
|
144
204
|
<ng-content></ng-content>
|
|
145
205
|
<ng-container *ngIf="resizable">
|
|
@@ -153,7 +213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
153
213
|
</ng-container>
|
|
154
214
|
`
|
|
155
215
|
}]
|
|
156
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i2.TileLayoutDraggingService }]; }, propDecorators: { title: [{
|
|
216
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i1.LocalizationService }, { type: i2.TileLayoutDraggingService }, { type: i3.TileLayoutKeyboardNavigationService }]; }, propDecorators: { title: [{
|
|
157
217
|
type: Input
|
|
158
218
|
}], rowSpan: [{
|
|
159
219
|
type: Input
|
|
@@ -175,6 +235,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
175
235
|
}, {
|
|
176
236
|
type: HostBinding,
|
|
177
237
|
args: ['class.k-card']
|
|
238
|
+
}], hostRole: [{
|
|
239
|
+
type: HostBinding,
|
|
240
|
+
args: ['attr.role']
|
|
241
|
+
}], hostDropEffect: [{
|
|
242
|
+
type: HostBinding,
|
|
243
|
+
args: ['attr.aria-dropeffect']
|
|
244
|
+
}], hostTabindex: [{
|
|
245
|
+
type: HostBinding,
|
|
246
|
+
args: ['attr.tabindex']
|
|
247
|
+
}], ariaKeyShortcuts: [{
|
|
248
|
+
type: HostBinding,
|
|
249
|
+
args: ['attr.aria-keyshortcuts']
|
|
250
|
+
}], hostGrabbed: [{
|
|
251
|
+
type: HostBinding,
|
|
252
|
+
args: ['attr.aria-grabbed']
|
|
253
|
+
}], hostLabelledBy: [{
|
|
254
|
+
type: HostBinding,
|
|
255
|
+
args: ['attr.aria-labelledby']
|
|
178
256
|
}], colEnd: [{
|
|
179
257
|
type: HostBinding,
|
|
180
258
|
args: ['style.grid-column-end']
|
|
@@ -42,9 +42,9 @@ export class TileLayoutResizeHandleDirective {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
TileLayoutResizeHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
46
|
-
TileLayoutResizeHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
45
|
+
TileLayoutResizeHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutResizeHandleDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
46
|
+
TileLayoutResizeHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TileLayoutResizeHandleDirective, selector: "[kendoTileLayoutResizeHandle]", inputs: { resizeDirection: "resizeDirection", rtl: "rtl" }, ngImport: i0 });
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TileLayoutResizeHandleDirective, decorators: [{
|
|
48
48
|
type: Directive,
|
|
49
49
|
args: [{
|
|
50
50
|
selector: '[kendoTileLayoutResizeHandle]'
|