@progress/kendo-angular-layout 17.0.0-develop.4 → 17.0.0-develop.40
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/README.md +42 -27
- package/avatar/avatar.component.d.ts +1 -1
- package/avatar/l10n/messages.d.ts +1 -1
- package/avatar/models/fill.d.ts +1 -1
- package/avatar/models/rounded.d.ts +1 -1
- package/avatar/models/shape.d.ts +2 -2
- package/avatar/models/size.d.ts +1 -1
- package/avatar/models/theme-color.d.ts +1 -1
- package/card/card-actions.component.d.ts +1 -1
- package/card/card.component.d.ts +1 -1
- package/card/directives/card-separator.directive.d.ts +1 -1
- package/card/models/actions-layout.d.ts +1 -1
- package/common/direction.d.ts +1 -1
- package/common/orientation.d.ts +1 -1
- package/drawer/drawer.component.d.ts +1 -1
- package/drawer/item.component.d.ts +1 -1
- package/drawer/list.component.d.ts +1 -1
- package/drawer/models/drawer-item-expand.interface.d.ts +1 -1
- package/drawer/models/mode.d.ts +1 -1
- package/drawer/models/position.d.ts +1 -1
- package/{esm2020 → esm2022}/avatar/avatar.component.mjs +61 -25
- package/{esm2020 → esm2022}/avatar/l10n/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/avatar/l10n/localized-messages.directive.mjs +9 -8
- package/{esm2020 → esm2022}/avatar/l10n/messages.mjs +7 -3
- package/{esm2020 → esm2022}/avatar.module.mjs +4 -4
- package/{esm2020 → esm2022}/card/card-actions.component.mjs +37 -31
- package/{esm2020 → esm2022}/card/card-body.component.mjs +5 -7
- package/{esm2020 → esm2022}/card/card-footer.component.mjs +5 -7
- package/{esm2020 → esm2022}/card/card-header.component.mjs +5 -7
- package/{esm2020 → esm2022}/card/card.component.mjs +40 -34
- package/{esm2020 → esm2022}/card/directives/card-media.directive.mjs +4 -6
- package/{esm2020 → esm2022}/card/directives/card-separator.directive.mjs +16 -14
- package/{esm2020 → esm2022}/card/directives/card-subtitle.directive.mjs +4 -6
- package/{esm2020 → esm2022}/card/directives/card-title.directive.mjs +4 -6
- package/{esm2020 → esm2022}/card/models/card-action.mjs +12 -0
- package/{esm2020 → esm2022}/card.module.mjs +4 -4
- package/{esm2020 → esm2022}/common/preventable-event.mjs +7 -7
- package/{esm2020 → esm2022}/drawer/drawer-container.component.mjs +28 -18
- package/{esm2020 → esm2022}/drawer/drawer-content.component.mjs +6 -7
- package/{esm2020 → esm2022}/drawer/drawer.component.mjs +132 -106
- package/{esm2020 → esm2022}/drawer/drawer.service.mjs +10 -10
- package/{esm2020 → esm2022}/drawer/events/drawer-list-select.event.mjs +12 -0
- package/{esm2020 → esm2022}/drawer/events/select-event.mjs +16 -0
- package/{esm2020 → esm2022}/drawer/item.component.mjs +22 -11
- package/{esm2020 → esm2022}/drawer/list.component.mjs +14 -6
- package/{esm2020 → esm2022}/drawer/template-directives/drawer-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/drawer/template-directives/footer-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/drawer/template-directives/header-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/drawer/template-directives/item-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/drawer.module.mjs +4 -4
- package/{esm2020 → esm2022}/expansionpanel/events/action-event.mjs +4 -0
- package/{esm2020 → esm2022}/expansionpanel/expansionpanel-title.directive.mjs +4 -3
- package/{esm2020 → esm2022}/expansionpanel/expansionpanel.component.mjs +103 -81
- package/{esm2020 → esm2022}/expansionpanel.module.mjs +4 -4
- package/{esm2020 → esm2022}/gridlayout.module.mjs +4 -4
- package/{esm2020 → esm2022}/layout.module.mjs +4 -4
- package/{esm2020 → esm2022}/layouts/grid-layout.component.mjs +57 -26
- package/{esm2020 → esm2022}/layouts/gridlayout-item.component.mjs +26 -4
- package/{esm2020 → esm2022}/layouts/stack-layout.component.mjs +40 -35
- package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
- package/{esm2020 → esm2022}/panelbar/events/collapse-event.mjs +4 -0
- package/{esm2020 → esm2022}/panelbar/events/expand-event.mjs +4 -0
- package/{esm2020 → esm2022}/panelbar/events/item-click-event.mjs +8 -0
- package/{esm2020 → esm2022}/panelbar/events/select-event.mjs +4 -0
- package/{esm2020 → esm2022}/panelbar/events/state-change-event.mjs +4 -0
- package/{esm2020 → esm2022}/panelbar/panelbar-content.directive.mjs +4 -3
- package/{esm2020 → esm2022}/panelbar/panelbar-item-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/panelbar/panelbar-item-title.directive.mjs +4 -3
- package/{esm2020 → esm2022}/panelbar/panelbar-item.component.mjs +101 -66
- package/{esm2020 → esm2022}/panelbar/panelbar.component.mjs +109 -98
- package/{esm2020 → esm2022}/panelbar/panelbar.service.mjs +23 -13
- package/{esm2020 → esm2022}/panelbar.module.mjs +4 -4
- package/{esm2020 → esm2022}/splitter/splitter-bar.component.mjs +68 -28
- package/esm2022/splitter/splitter-pane.component.mjs +267 -0
- package/{esm2020 → esm2022}/splitter/splitter.component.mjs +98 -40
- package/{esm2020 → esm2022}/splitter/splitter.service.mjs +69 -28
- package/{esm2020 → esm2022}/splitter.module.mjs +4 -4
- package/{esm2020 → esm2022}/stacklayout.module.mjs +4 -4
- package/{esm2020 → esm2022}/stepper/events/activate-event.mjs +16 -0
- package/{esm2020 → esm2022}/stepper/list.component.mjs +23 -5
- package/{esm2020 → esm2022}/stepper/localization/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/stepper/localization/localized-messages.directive.mjs +9 -8
- package/{esm2020 → esm2022}/stepper/localization/messages.mjs +7 -3
- package/{esm2020 → esm2022}/stepper/step.component.mjs +25 -8
- package/{esm2020 → esm2022}/stepper/stepper.component.mjs +111 -70
- package/{esm2020 → esm2022}/stepper/stepper.service.mjs +30 -9
- package/{esm2020 → esm2022}/stepper/template-directives/indicator-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/stepper/template-directives/label-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/stepper/template-directives/step-template.directive.mjs +4 -3
- package/{esm2020 → esm2022}/stepper.module.mjs +4 -4
- package/{esm2020 → esm2022}/tabstrip/directives/tab-content.directive.mjs +4 -3
- package/{esm2020 → esm2022}/tabstrip/directives/tab-title.directive.mjs +4 -3
- package/{esm2020 → esm2022}/tabstrip/directives/tab.directive.mjs +4 -3
- package/{esm2020 → esm2022}/tabstrip/events/select-event.mjs +2 -0
- package/{esm2020 → esm2022}/tabstrip/events/tabclose-event.mjs +2 -0
- package/{esm2020 → esm2022}/tabstrip/events/tabscroll-event.mjs +4 -0
- package/{esm2020 → esm2022}/tabstrip/localization/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/tabstrip/localization/localized-messages.directive.mjs +9 -8
- package/{esm2020 → esm2022}/tabstrip/localization/messages.mjs +15 -3
- package/esm2022/tabstrip/models/tabstrip-tab.component.mjs +117 -0
- package/{esm2020 → esm2022}/tabstrip/rendering/tab.component.mjs +25 -17
- package/{esm2020 → esm2022}/tabstrip/scrollable-button.component.mjs +33 -27
- package/{esm2020 → esm2022}/tabstrip/tabstrip-scroll.service.mjs +11 -9
- package/{esm2020 → esm2022}/tabstrip/tabstrip.component.mjs +150 -106
- package/{esm2020 → esm2022}/tabstrip/tabstrip.service.mjs +6 -3
- package/{esm2020 → esm2022}/tabstrip.module.mjs +4 -4
- package/{esm2020 → esm2022}/tilelayout/dragging-service.mjs +39 -24
- package/{esm2020 → esm2022}/tilelayout/keyboard-navigation.service.mjs +9 -4
- package/{esm2020 → esm2022}/tilelayout/reorder-event.mjs +8 -0
- package/{esm2020 → esm2022}/tilelayout/resize-event.mjs +6 -0
- package/{esm2020 → esm2022}/tilelayout/tilelayout-item-body.component.mjs +6 -8
- package/esm2022/tilelayout/tilelayout-item-header.component.mjs +33 -0
- package/{esm2020 → esm2022}/tilelayout/tilelayout-item.component.mjs +85 -58
- package/{esm2020 → esm2022}/tilelayout/tilelayout-resize-handle.directive.mjs +7 -3
- package/{esm2020 → esm2022}/tilelayout/tilelayout.component.mjs +103 -93
- package/{esm2020 → esm2022}/tilelayout.module.mjs +4 -4
- package/{esm2020 → esm2022}/timeline/localization/custom-messages.component.mjs +9 -8
- package/{esm2020 → esm2022}/timeline/localization/localized-messages.directive.mjs +9 -8
- package/{esm2020 → esm2022}/timeline/localization/messages.mjs +11 -3
- package/{esm2020 → esm2022}/timeline/templates/timeline-card-actions.directive.mjs +4 -3
- package/{esm2020 → esm2022}/timeline/templates/timeline-card-body.directive.mjs +4 -3
- package/{esm2020 → esm2022}/timeline/templates/timeline-card-header.directive.mjs +4 -3
- package/{esm2020 → esm2022}/timeline/timeline-card.component.mjs +49 -34
- package/{esm2020 → esm2022}/timeline/timeline-horizontal.component.mjs +85 -55
- package/{esm2020 → esm2022}/timeline/timeline-vertical.component.mjs +20 -6
- package/{esm2020 → esm2022}/timeline/timeline.component.mjs +108 -68
- package/{esm2020 → esm2022}/timeline/timeline.service.mjs +4 -3
- package/{esm2020 → esm2022}/timeline.module.mjs +4 -4
- package/expansionpanel/events/action-event.d.ts +1 -1
- package/expansionpanel/expansionpanel.component.d.ts +1 -1
- package/{fesm2020 → fesm2022}/progress-kendo-angular-layout.mjs +2687 -1781
- package/layouts/grid-layout.component.d.ts +1 -1
- package/layouts/gridlayout-item.component.d.ts +1 -1
- package/layouts/models/layout-horizontal-align.d.ts +1 -1
- package/layouts/models/layout-vertical-align.d.ts +1 -1
- package/layouts/stack-layout.component.d.ts +1 -1
- package/package.json +16 -22
- package/panelbar/panelbar-item.component.d.ts +1 -1
- package/panelbar/panelbar.component.d.ts +1 -1
- package/splitter/splitter-bar.component.d.ts +13 -1
- package/splitter/splitter-pane.component.d.ts +26 -6
- package/splitter/splitter.component.d.ts +12 -4
- package/splitter/splitter.service.d.ts +7 -2
- package/stepper/list.component.d.ts +1 -1
- package/stepper/localization/messages.d.ts +1 -1
- package/stepper/models/orientation.d.ts +1 -1
- package/stepper/models/step-predicate.d.ts +1 -1
- package/stepper/models/step-type.d.ts +1 -1
- package/stepper/step.component.d.ts +1 -1
- package/stepper/stepper.component.d.ts +1 -1
- package/tabstrip/localization/messages.d.ts +1 -1
- package/tabstrip/models/button-state-change.d.ts +1 -1
- package/tabstrip/models/scroll-button-type.d.ts +1 -1
- package/tabstrip/models/scroll-buttons-visibility.d.ts +1 -1
- package/tabstrip/models/tab-alignment.d.ts +1 -1
- package/tabstrip/models/tab-position.d.ts +1 -1
- package/tabstrip/models/tabstrip-tab.component.d.ts +1 -1
- package/tabstrip/rendering/tab.component.d.ts +1 -1
- package/tabstrip/scrollable-button.component.d.ts +1 -1
- package/tabstrip/tabstrip.component.d.ts +3 -1
- package/tilelayout/models/flowmode.type.d.ts +1 -1
- package/tilelayout/tilelayout-item-header.component.d.ts +1 -9
- package/tilelayout/tilelayout-item.component.d.ts +1 -1
- package/tilelayout/tilelayout-resize-handle.directive.d.ts +1 -1
- package/tilelayout/tilelayout.component.d.ts +1 -1
- package/timeline/events/navigation-direction.d.ts +1 -1
- package/timeline/localization/messages.d.ts +1 -1
- package/timeline/models/anchor-target.d.ts +1 -1
- package/timeline/timeline-card.component.d.ts +1 -1
- package/timeline/timeline-horizontal.component.d.ts +2 -2
- package/timeline/timeline-vertical.component.d.ts +1 -1
- package/timeline/timeline.component.d.ts +1 -1
- package/esm2020/splitter/splitter-pane.component.mjs +0 -222
- package/esm2020/tabstrip/models/tabstrip-tab.component.mjs +0 -78
- package/esm2020/tilelayout/tilelayout-item-header.component.mjs +0 -53
- package/fesm2015/progress-kendo-angular-layout.mjs +0 -12374
- /package/{esm2020 → esm2022}/avatar/models/fill.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/models/models.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/models/rounded.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/models/shape.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/models/size.mjs +0 -0
- /package/{esm2020 → esm2022}/avatar/models/theme-color.mjs +0 -0
- /package/{esm2020 → esm2022}/card/models/actions-layout.mjs +0 -0
- /package/{esm2020 → esm2022}/common/direction.mjs +0 -0
- /package/{esm2020 → esm2022}/common/dom-queries.mjs +0 -0
- /package/{esm2020 → esm2022}/common/orientation.mjs +0 -0
- /package/{esm2020 → esm2022}/common/styling-classes.mjs +0 -0
- /package/{esm2020 → esm2022}/common/util.mjs +0 -0
- /package/{esm2020 → esm2022}/directives.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/animations.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/drawer-animation.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/drawer-item-expand.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/drawer-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/drawer-view-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/mode.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/models/position.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/template-directives.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/types.mjs +0 -0
- /package/{esm2020 → esm2022}/drawer/util.mjs +0 -0
- /package/{esm2020 → esm2022}/expansionpanel/animations.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models/gridlayout-gap-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models/gridlayout-row-col-size.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models/layout-align-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models/layout-horizontal-align.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models/layout-vertical-align.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/models.mjs +0 -0
- /package/{esm2020 → esm2022}/layouts/util.mjs +0 -0
- /package/{esm2020 → esm2022}/panelbar/events.mjs +0 -0
- /package/{esm2020 → esm2022}/panelbar/panelbar-expand-mode.mjs +0 -0
- /package/{esm2020 → esm2022}/panelbar/panelbar-item-model.mjs +0 -0
- /package/{esm2020 → esm2022}/progress-kendo-angular-layout.mjs +0 -0
- /package/{esm2020 → esm2022}/splitter/util.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/models/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/models/orientation.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/models/step-predicate.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/models/step-type.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/models/stepper-step.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/template-directives.mjs +0 -0
- /package/{esm2020 → esm2022}/stepper/types.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/events.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/button-state-change.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/scroll-button-type.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/scroll-buttons-visibility.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/scrollable-settings.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/tab-alignment.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/models/tab-position.mjs +0 -0
- /package/{esm2020 → esm2022}/tabstrip/util.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/models/dragging-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/models/flowmode.type.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/models/gap.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/models/navigation.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/tilelayout/util.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/events/navigation-direction.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/models/anchor-target.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/models/default-model-fields.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/models/model-fields.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/models/timeline-event.mjs +0 -0
- /package/{esm2020 → esm2022}/timeline/util.mjs +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
6
|
import { ChangeDetectorRef, Component, ElementRef, Host, HostBinding, Input, Renderer2 } from '@angular/core';
|
|
7
7
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
8
|
-
import { DraggableDirective, Keys } from '@progress/kendo-angular-common';
|
|
8
|
+
import { DraggableDirective, Keys, isObjectPresent, parseAttributes, removeHTMLAttributes, setHTMLAttributes } from '@progress/kendo-angular-common';
|
|
9
9
|
import { SplitterService } from './splitter.service';
|
|
10
10
|
import { Subscription, of } from 'rxjs';
|
|
11
11
|
import { delay, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
@@ -34,19 +34,15 @@ const createMoveStream = (draggable) => mouseDown => draggable.kendoDrag
|
|
|
34
34
|
* @hidden
|
|
35
35
|
*/
|
|
36
36
|
export class SplitterBarComponent {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
this.orientation = 'horizontal';
|
|
47
|
-
this.index = 0;
|
|
48
|
-
this.subscriptions = new Subscription();
|
|
49
|
-
}
|
|
37
|
+
draggable;
|
|
38
|
+
localization;
|
|
39
|
+
splitterService;
|
|
40
|
+
element;
|
|
41
|
+
renderer;
|
|
42
|
+
cdr;
|
|
43
|
+
ariaRole = 'separator';
|
|
44
|
+
ariaLabel = 'Splitter pane';
|
|
45
|
+
focused = false;
|
|
50
46
|
get hostOrientation() {
|
|
51
47
|
return this.orientation === 'horizontal' ? 'vertical' : 'horizontal';
|
|
52
48
|
}
|
|
@@ -72,6 +68,41 @@ export class SplitterBarComponent {
|
|
|
72
68
|
get order() {
|
|
73
69
|
return 2 * this.index + 1;
|
|
74
70
|
}
|
|
71
|
+
orientation = 'horizontal';
|
|
72
|
+
index = 0;
|
|
73
|
+
set htmlAttributes(attributes) {
|
|
74
|
+
if (isObjectPresent(this.parsedAttributes)) {
|
|
75
|
+
removeHTMLAttributes(this.parsedAttributes, this.renderer, this.element.nativeElement);
|
|
76
|
+
}
|
|
77
|
+
this._htmlAttributes = attributes;
|
|
78
|
+
this.parsedAttributes = this.htmlAttributes ?
|
|
79
|
+
parseAttributes(this.htmlAttributes, this.defaultAttributes) :
|
|
80
|
+
this.htmlAttributes;
|
|
81
|
+
this.setHtmlAttributes();
|
|
82
|
+
}
|
|
83
|
+
get htmlAttributes() {
|
|
84
|
+
return this._htmlAttributes;
|
|
85
|
+
}
|
|
86
|
+
subscriptions = new Subscription();
|
|
87
|
+
_htmlAttributes;
|
|
88
|
+
parsedAttributes = {};
|
|
89
|
+
get defaultAttributes() {
|
|
90
|
+
return {
|
|
91
|
+
'aria-orientation': this.hostOrientation,
|
|
92
|
+
role: this.ariaRole
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
get mutableAttributes() {
|
|
96
|
+
return { 'tabindex': this.tabIndex };
|
|
97
|
+
}
|
|
98
|
+
constructor(draggable, localization, splitterService, element, renderer, cdr) {
|
|
99
|
+
this.draggable = draggable;
|
|
100
|
+
this.localization = localization;
|
|
101
|
+
this.splitterService = splitterService;
|
|
102
|
+
this.element = element;
|
|
103
|
+
this.renderer = renderer;
|
|
104
|
+
this.cdr = cdr;
|
|
105
|
+
}
|
|
75
106
|
ngOnInit() {
|
|
76
107
|
let state;
|
|
77
108
|
const listener = this.draggable.kendoPress.pipe(tap(stopPropagation), filter(() => this.splitterService.isDraggable(this.index)), tap(() => state = this.splitterService.dragState(this.index)), tap(() => this.splitterService.toggleContentOverlay(this.index, true)), switchMap(preventOnDblClick(this.draggable.kendoRelease)), switchMap(createMoveStream(this.draggable))).subscribe(({ pageX, pageY, originalX, originalY }) => {
|
|
@@ -114,13 +145,13 @@ export class SplitterBarComponent {
|
|
|
114
145
|
const relatedPaneIndex = iconName === 'prev' ? this.index + 1 : this.index;
|
|
115
146
|
const pane = this.splitterService.pane(paneIndex);
|
|
116
147
|
const relatedPane = this.splitterService.pane(relatedPaneIndex);
|
|
117
|
-
const isCollapsible = pane
|
|
118
|
-
return isCollapsible && !relatedPane
|
|
148
|
+
const isCollapsible = pane?.collapsible;
|
|
149
|
+
return isCollapsible && !relatedPane?.isHidden;
|
|
119
150
|
}
|
|
120
151
|
previousArrowClass() {
|
|
121
152
|
const pane = this.splitterService.pane(this.index);
|
|
122
|
-
const isCollapsible = pane
|
|
123
|
-
const isCollapsed = pane
|
|
153
|
+
const isCollapsible = pane?.collapsible;
|
|
154
|
+
const isCollapsed = pane?.collapsed;
|
|
124
155
|
const isHorizontal = this.orientation === 'horizontal';
|
|
125
156
|
const isRTL = this.direction === 'rtl';
|
|
126
157
|
return classFromObject({
|
|
@@ -132,8 +163,8 @@ export class SplitterBarComponent {
|
|
|
132
163
|
}
|
|
133
164
|
previousSVGArrowClass() {
|
|
134
165
|
const pane = this.splitterService.pane(this.index);
|
|
135
|
-
const isCollapsible = pane
|
|
136
|
-
const isCollapsed = pane
|
|
166
|
+
const isCollapsible = pane?.collapsible;
|
|
167
|
+
const isCollapsed = pane?.collapsed;
|
|
137
168
|
const isHorizontal = this.orientation === 'horizontal';
|
|
138
169
|
const isRTL = this.direction === 'rtl';
|
|
139
170
|
if (isCollapsible && isHorizontal && ((!isCollapsed && !isRTL) || (isCollapsed && isRTL))) {
|
|
@@ -151,8 +182,8 @@ export class SplitterBarComponent {
|
|
|
151
182
|
}
|
|
152
183
|
nextArrowClass() {
|
|
153
184
|
const pane = this.splitterService.pane(this.index + 1);
|
|
154
|
-
const isCollapsible = pane
|
|
155
|
-
const isCollapsed = pane
|
|
185
|
+
const isCollapsible = pane?.collapsible;
|
|
186
|
+
const isCollapsed = pane?.collapsed;
|
|
156
187
|
const isHorizontal = this.orientation === 'horizontal';
|
|
157
188
|
const isRTL = this.direction === 'rtl';
|
|
158
189
|
return classFromObject({
|
|
@@ -164,8 +195,8 @@ export class SplitterBarComponent {
|
|
|
164
195
|
}
|
|
165
196
|
nextSVGArrowClass() {
|
|
166
197
|
const pane = this.splitterService.pane(this.index + 1);
|
|
167
|
-
const isCollapsible = pane
|
|
168
|
-
const isCollapsed = pane
|
|
198
|
+
const isCollapsible = pane?.collapsible;
|
|
199
|
+
const isCollapsed = pane?.collapsed;
|
|
169
200
|
const isHorizontal = this.orientation === 'horizontal';
|
|
170
201
|
const isRTL = this.direction === 'rtl';
|
|
171
202
|
if (isCollapsible && isHorizontal && ((!isCollapsed && !isRTL) || (isCollapsed && isRTL))) {
|
|
@@ -218,9 +249,12 @@ export class SplitterBarComponent {
|
|
|
218
249
|
this.splitterService.tryToggle(next);
|
|
219
250
|
}
|
|
220
251
|
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
252
|
+
setHtmlAttributes() {
|
|
253
|
+
const attributesToRender = { ...this.mutableAttributes, ...this.parsedAttributes };
|
|
254
|
+
setHTMLAttributes(attributesToRender, this.renderer, this.element.nativeElement);
|
|
255
|
+
}
|
|
256
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitterBarComponent, deps: [{ token: i1.DraggableDirective, host: true }, { token: i2.LocalizationService }, { token: i3.SplitterService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
257
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SplitterBarComponent, isStandalone: true, selector: "kendo-splitter-bar", inputs: { orientation: "orientation", index: "index", htmlAttributes: "htmlAttributes" }, host: { properties: { "attr.role": "this.ariaRole", "attr.aria-label": "this.ariaLabel", "class.k-focus": "this.focused", "attr.aria-orientation": "this.hostOrientation", "attr.tabindex": "this.tabIndex", "class": "this.hostClasses", "style.-ms-flex-order": "this.order", "style.order": "this.order" } }, ngImport: i0, template: `
|
|
224
258
|
<div *ngIf="shouldShowIcon('prev')" class="k-collapse-prev" (click)="togglePrevious()">
|
|
225
259
|
<kendo-icon-wrapper
|
|
226
260
|
size="xsmall"
|
|
@@ -237,7 +271,8 @@ SplitterBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
237
271
|
></kendo-icon-wrapper>
|
|
238
272
|
</div>
|
|
239
273
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
|
|
240
|
-
|
|
274
|
+
}
|
|
275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitterBarComponent, decorators: [{
|
|
241
276
|
type: Component,
|
|
242
277
|
args: [{
|
|
243
278
|
selector: 'kendo-splitter-bar',
|
|
@@ -266,6 +301,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
266
301
|
}] }, { type: i2.LocalizationService }, { type: i3.SplitterService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { ariaRole: [{
|
|
267
302
|
type: HostBinding,
|
|
268
303
|
args: ['attr.role']
|
|
304
|
+
}], ariaLabel: [{
|
|
305
|
+
type: HostBinding,
|
|
306
|
+
args: ['attr.aria-label']
|
|
269
307
|
}], focused: [{
|
|
270
308
|
type: HostBinding,
|
|
271
309
|
args: ['class.k-focus']
|
|
@@ -288,4 +326,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
288
326
|
type: Input
|
|
289
327
|
}], index: [{
|
|
290
328
|
type: Input
|
|
329
|
+
}], htmlAttributes: [{
|
|
330
|
+
type: Input
|
|
291
331
|
}] } });
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2024 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Renderer2, Input, Output } from '@angular/core';
|
|
6
|
+
import { NgIf } from '@angular/common';
|
|
7
|
+
import { SplitterService } from './splitter.service';
|
|
8
|
+
import { anyChanged } from '@progress/kendo-angular-common';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "./splitter.service";
|
|
11
|
+
/**
|
|
12
|
+
* Represents the pane component of the Splitter.
|
|
13
|
+
*/
|
|
14
|
+
export class SplitterPaneComponent {
|
|
15
|
+
element;
|
|
16
|
+
renderer;
|
|
17
|
+
cdr;
|
|
18
|
+
splitterService;
|
|
19
|
+
/**
|
|
20
|
+
* @hidden
|
|
21
|
+
*/
|
|
22
|
+
set order(paneOrder) {
|
|
23
|
+
this._order = paneOrder;
|
|
24
|
+
this.setOrderStyles();
|
|
25
|
+
}
|
|
26
|
+
get order() {
|
|
27
|
+
return this._order;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Sets the initial size of the pane.
|
|
31
|
+
* Accepts units in pixel and percentage values.
|
|
32
|
+
* Has to be between the `min` and `max` properties.
|
|
33
|
+
*/
|
|
34
|
+
set size(newSize) {
|
|
35
|
+
this._size = newSize;
|
|
36
|
+
this.renderer.setStyle(this.nativeElement, '-ms-flex-preferred-size', newSize);
|
|
37
|
+
this.renderer.setStyle(this.nativeElement, 'flex-basis', newSize);
|
|
38
|
+
this.setStaticPaneClass();
|
|
39
|
+
}
|
|
40
|
+
get size() {
|
|
41
|
+
return this._size;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Sets the HTML attributes of the splitter bar.
|
|
45
|
+
* The property accepts string key-value based pairs.
|
|
46
|
+
* Attributes which are essential for certain functionalities cannot be changed.
|
|
47
|
+
*/
|
|
48
|
+
set splitterBarAttributes(attributes) {
|
|
49
|
+
this._splitterBarAttributes = attributes;
|
|
50
|
+
const splitterBar = this.splitterService.getPaneSplitterBar(this);
|
|
51
|
+
if (splitterBar) {
|
|
52
|
+
splitterBar.htmlAttributes = attributes;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
get splitterBarAttributes() {
|
|
56
|
+
return this._splitterBarAttributes;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* The CSS classes that will be rendered on the splitter bar.
|
|
60
|
+
* Supports the type of values that are supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
|
|
61
|
+
*/
|
|
62
|
+
splitterBarClass;
|
|
63
|
+
/**
|
|
64
|
+
* Sets the minimum possible size of the pane.
|
|
65
|
+
* Accepts units in pixel and percentage values.
|
|
66
|
+
*/
|
|
67
|
+
min;
|
|
68
|
+
/**
|
|
69
|
+
* Sets the maximum possible size of the pane.
|
|
70
|
+
* Accepts units in pixel and percentage values.
|
|
71
|
+
*/
|
|
72
|
+
max;
|
|
73
|
+
/**
|
|
74
|
+
* Specifies if the user is allowed to resize the pane and provide space for other panes.
|
|
75
|
+
*/
|
|
76
|
+
resizable = true;
|
|
77
|
+
/**
|
|
78
|
+
* Specifies if the user is allowed to hide the pane and provide space for other panes.
|
|
79
|
+
*/
|
|
80
|
+
collapsible = false;
|
|
81
|
+
/**
|
|
82
|
+
* Specifies if overflowing content is scrollable or hidden.
|
|
83
|
+
*/
|
|
84
|
+
scrollable = true;
|
|
85
|
+
/**
|
|
86
|
+
* Specifies if the pane is initially collapsed.
|
|
87
|
+
*/
|
|
88
|
+
collapsed = false;
|
|
89
|
+
/**
|
|
90
|
+
* @hidden
|
|
91
|
+
*/
|
|
92
|
+
orientation = 'horizontal';
|
|
93
|
+
/**
|
|
94
|
+
* @hidden
|
|
95
|
+
*/
|
|
96
|
+
set containsSplitter(value) {
|
|
97
|
+
if (value) {
|
|
98
|
+
this.renderer.addClass(this.nativeElement, 'k-pane-flex');
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
this.renderer.removeClass(this.nativeElement, 'k-pane-flex');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* @hidden
|
|
106
|
+
*/
|
|
107
|
+
overlayContent = false;
|
|
108
|
+
/**
|
|
109
|
+
* Fires each time the user resizes the Splitter pane.
|
|
110
|
+
* The event data contains the new pane size.
|
|
111
|
+
* Allows a two-way binding of the pane `size` property.
|
|
112
|
+
*/
|
|
113
|
+
sizeChange = new EventEmitter();
|
|
114
|
+
/**
|
|
115
|
+
* Fires each time the `collapsed` property changes.
|
|
116
|
+
* The event data contains the new property state.
|
|
117
|
+
* Allows a two-way binding of the `collapsed` pane property.
|
|
118
|
+
*/
|
|
119
|
+
collapsedChange = new EventEmitter();
|
|
120
|
+
get isHidden() {
|
|
121
|
+
return this.collapsed;
|
|
122
|
+
}
|
|
123
|
+
ariaRole = 'group';
|
|
124
|
+
hostClass = true;
|
|
125
|
+
get scrollablePaneClass() {
|
|
126
|
+
return this.scrollable;
|
|
127
|
+
}
|
|
128
|
+
get fixedSize() {
|
|
129
|
+
return this.size && this.size.length > 0;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* @hidden
|
|
133
|
+
*/
|
|
134
|
+
forceExpand = false;
|
|
135
|
+
/**
|
|
136
|
+
* @hidden
|
|
137
|
+
*/
|
|
138
|
+
isResized = false;
|
|
139
|
+
_size;
|
|
140
|
+
_order;
|
|
141
|
+
_splitterBarAttributes;
|
|
142
|
+
constructor(element, renderer, cdr, splitterService) {
|
|
143
|
+
this.element = element;
|
|
144
|
+
this.renderer = renderer;
|
|
145
|
+
this.cdr = cdr;
|
|
146
|
+
this.splitterService = splitterService;
|
|
147
|
+
}
|
|
148
|
+
ngAfterViewChecked() {
|
|
149
|
+
if (this.isHidden) {
|
|
150
|
+
this.renderer.addClass(this.nativeElement, 'k-hidden');
|
|
151
|
+
this.renderer.addClass(this.nativeElement, 'hidden');
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
this.renderer.removeClass(this.nativeElement, 'k-hidden');
|
|
155
|
+
this.renderer.removeClass(this.nativeElement, 'hidden');
|
|
156
|
+
}
|
|
157
|
+
this.setStaticPaneClass();
|
|
158
|
+
}
|
|
159
|
+
ngOnChanges(changes) {
|
|
160
|
+
if (anyChanged(['resizable', 'collapsible'], changes)) {
|
|
161
|
+
this.setStaticPaneClass();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* @hidden
|
|
166
|
+
*/
|
|
167
|
+
get computedSize() {
|
|
168
|
+
if (this.orientation === 'vertical') {
|
|
169
|
+
return this.nativeElement.offsetHeight;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
return this.nativeElement.offsetWidth;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* @hidden
|
|
177
|
+
*/
|
|
178
|
+
get nativeElement() {
|
|
179
|
+
return this.element.nativeElement;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* @hidden
|
|
183
|
+
*/
|
|
184
|
+
toggleOverlay(show) {
|
|
185
|
+
this.overlayContent = show;
|
|
186
|
+
this.cdr.detectChanges();
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* @hidden
|
|
190
|
+
*/
|
|
191
|
+
detectChanges() {
|
|
192
|
+
this.cdr.detectChanges();
|
|
193
|
+
}
|
|
194
|
+
setOrderStyles() {
|
|
195
|
+
this.renderer.setStyle(this.nativeElement, '-ms-flex-order', this.order);
|
|
196
|
+
this.renderer.setStyle(this.nativeElement, 'order', this.order);
|
|
197
|
+
}
|
|
198
|
+
setStaticPaneClass() {
|
|
199
|
+
if (this.forceExpand) {
|
|
200
|
+
this.renderer.removeClass(this.nativeElement, 'k-pane-static');
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (!this.resizable && !this.collapsible || this.fixedSize) {
|
|
204
|
+
this.renderer.addClass(this.nativeElement, 'k-pane-static');
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
this.renderer.removeClass(this.nativeElement, 'k-pane-static');
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitterPaneComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.SplitterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
211
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SplitterPaneComponent, isStandalone: true, selector: "kendo-splitter-pane", inputs: { order: "order", size: "size", splitterBarAttributes: "splitterBarAttributes", splitterBarClass: "splitterBarClass", min: "min", max: "max", resizable: "resizable", collapsible: "collapsible", scrollable: "scrollable", collapsed: "collapsed", orientation: "orientation", containsSplitter: "containsSplitter", overlayContent: "overlayContent" }, outputs: { sizeChange: "sizeChange", collapsedChange: "collapsedChange" }, host: { properties: { "attr.role": "this.ariaRole", "class.k-pane": "this.hostClass", "class.k-scrollable": "this.scrollablePaneClass" } }, exportAs: ["kendoSplitterPane"], usesOnChanges: true, ngImport: i0, template: `
|
|
212
|
+
<ng-container *ngIf="!collapsed"><ng-content></ng-content></ng-container>
|
|
213
|
+
<div *ngIf="overlayContent" class="k-splitter-overlay k-overlay"></div>
|
|
214
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
215
|
+
}
|
|
216
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SplitterPaneComponent, decorators: [{
|
|
217
|
+
type: Component,
|
|
218
|
+
args: [{
|
|
219
|
+
exportAs: 'kendoSplitterPane',
|
|
220
|
+
selector: 'kendo-splitter-pane',
|
|
221
|
+
template: `
|
|
222
|
+
<ng-container *ngIf="!collapsed"><ng-content></ng-content></ng-container>
|
|
223
|
+
<div *ngIf="overlayContent" class="k-splitter-overlay k-overlay"></div>
|
|
224
|
+
`,
|
|
225
|
+
standalone: true,
|
|
226
|
+
imports: [NgIf]
|
|
227
|
+
}]
|
|
228
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.SplitterService }]; }, propDecorators: { order: [{
|
|
229
|
+
type: Input
|
|
230
|
+
}], size: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], splitterBarAttributes: [{
|
|
233
|
+
type: Input
|
|
234
|
+
}], splitterBarClass: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], min: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], max: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}], resizable: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], collapsible: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], scrollable: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], collapsed: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], orientation: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], containsSplitter: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], overlayContent: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], sizeChange: [{
|
|
255
|
+
type: Output
|
|
256
|
+
}], collapsedChange: [{
|
|
257
|
+
type: Output
|
|
258
|
+
}], ariaRole: [{
|
|
259
|
+
type: HostBinding,
|
|
260
|
+
args: ['attr.role']
|
|
261
|
+
}], hostClass: [{
|
|
262
|
+
type: HostBinding,
|
|
263
|
+
args: ['class.k-pane']
|
|
264
|
+
}], scrollablePaneClass: [{
|
|
265
|
+
type: HostBinding,
|
|
266
|
+
args: ['class.k-scrollable']
|
|
267
|
+
}] } });
|