igniteui-angular 21.2.16 → 21.2.18
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/fesm2022/igniteui-angular-action-strip.mjs +5 -2
- package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
- package/fesm2022/igniteui-angular-banner.mjs +5 -2
- package/fesm2022/igniteui-angular-banner.mjs.map +1 -1
- package/fesm2022/igniteui-angular-calendar.mjs +12 -5
- package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-carousel.mjs +5 -2
- package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
- package/fesm2022/igniteui-angular-chips.mjs +5 -2
- package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
- package/fesm2022/igniteui-angular-combo.mjs +5 -2
- package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
- package/fesm2022/igniteui-angular-date-picker.mjs +5 -2
- package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
- package/fesm2022/igniteui-angular-directives.mjs +30 -2
- package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-core.mjs +13 -2
- package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-grid.mjs +12 -5
- package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-input-group.mjs +5 -2
- package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
- package/fesm2022/igniteui-angular-list.mjs +5 -2
- package/fesm2022/igniteui-angular-list.mjs.map +1 -1
- package/fesm2022/igniteui-angular-paginator.mjs +5 -2
- package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
- package/fesm2022/igniteui-angular-query-builder.mjs +21 -8
- package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
- package/fesm2022/igniteui-angular-splitter.mjs +24 -14
- package/fesm2022/igniteui-angular-splitter.mjs.map +1 -1
- package/fesm2022/igniteui-angular-time-picker.mjs +5 -2
- package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
- package/fesm2022/igniteui-angular-tree.mjs +5 -2
- package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
- package/lib/core/styles/components/grid/_excel-filtering-theme.scss +11 -9
- package/package.json +1 -1
- package/styles/igniteui-fluent-dark-excel.css +1 -1
- package/styles/igniteui-fluent-dark-word.css +1 -1
- package/styles/igniteui-fluent-dark.css +1 -1
- package/styles/igniteui-fluent-light-excel.css +1 -1
- package/styles/igniteui-fluent-light-word.css +1 -1
- package/styles/igniteui-fluent-light.css +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-angular-dark.css.map +1 -1
- package/styles/maps/igniteui-angular.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
- package/styles/maps/igniteui-dark-green.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-light.css.map +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
- package/types/igniteui-angular-action-strip.d.ts +1 -0
- package/types/igniteui-angular-banner.d.ts +1 -0
- package/types/igniteui-angular-calendar.d.ts +2 -0
- package/types/igniteui-angular-carousel.d.ts +1 -0
- package/types/igniteui-angular-chips.d.ts +1 -0
- package/types/igniteui-angular-combo.d.ts +1 -0
- package/types/igniteui-angular-date-picker.d.ts +1 -0
- package/types/igniteui-angular-directives.d.ts +12 -1
- package/types/igniteui-angular-grids-core.d.ts +2 -0
- package/types/igniteui-angular-grids-grid.d.ts +3 -1
- package/types/igniteui-angular-input-group.d.ts +1 -0
- package/types/igniteui-angular-list.d.ts +1 -0
- package/types/igniteui-angular-paginator.d.ts +1 -0
- package/types/igniteui-angular-query-builder.d.ts +4 -0
- package/types/igniteui-angular-splitter.d.ts +6 -1
- package/types/igniteui-angular-time-picker.d.ts +1 -0
- package/types/igniteui-angular-tree.d.ts +1 -0
|
@@ -123,6 +123,14 @@ class IgxSplitterPaneComponent {
|
|
|
123
123
|
set order(val) {
|
|
124
124
|
this._order.set(val);
|
|
125
125
|
}
|
|
126
|
+
/** @hidden @internal */
|
|
127
|
+
get owner() {
|
|
128
|
+
return this._owner;
|
|
129
|
+
}
|
|
130
|
+
set owner(value) {
|
|
131
|
+
this._owner = value;
|
|
132
|
+
this.refreshFlex();
|
|
133
|
+
}
|
|
126
134
|
/**
|
|
127
135
|
* Gets/Sets the size of the current pane.
|
|
128
136
|
* * @example
|
|
@@ -137,7 +145,7 @@ class IgxSplitterPaneComponent {
|
|
|
137
145
|
}
|
|
138
146
|
set size(value) {
|
|
139
147
|
this._size = value;
|
|
140
|
-
this.
|
|
148
|
+
this.refreshFlex();
|
|
141
149
|
}
|
|
142
150
|
/** @hidden @internal */
|
|
143
151
|
get isPercentageSize() {
|
|
@@ -149,7 +157,7 @@ class IgxSplitterPaneComponent {
|
|
|
149
157
|
}
|
|
150
158
|
set dragSize(val) {
|
|
151
159
|
this._dragSize = val;
|
|
152
|
-
this.
|
|
160
|
+
this.refreshFlex();
|
|
153
161
|
}
|
|
154
162
|
/**
|
|
155
163
|
*
|
|
@@ -165,7 +173,7 @@ class IgxSplitterPaneComponent {
|
|
|
165
173
|
*/
|
|
166
174
|
get flex() {
|
|
167
175
|
const size = this.dragSize || this.size;
|
|
168
|
-
const grow = this.isPercentageSize && !this.dragSize ? 1 : 0;
|
|
176
|
+
const grow = (this.isPercentageSize || this.hasCollapsedSibling) && !this.dragSize ? 1 : 0;
|
|
169
177
|
return `${grow} ${grow} ${size}`;
|
|
170
178
|
}
|
|
171
179
|
/**
|
|
@@ -177,15 +185,11 @@ class IgxSplitterPaneComponent {
|
|
|
177
185
|
* ```
|
|
178
186
|
*/
|
|
179
187
|
set collapsed(value) {
|
|
180
|
-
if (this.owner) {
|
|
181
|
-
// reset sibling sizes when pane collapse state changes.
|
|
182
|
-
this._getSiblings().forEach(sibling => {
|
|
183
|
-
sibling.size = 'auto';
|
|
184
|
-
sibling.dragSize = null;
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
188
|
this._collapsed = value;
|
|
188
189
|
this.display = this._collapsed ? 'none' : 'flex';
|
|
190
|
+
if (this.owner) {
|
|
191
|
+
this._getSiblings().forEach(sibling => sibling.resetDragSize());
|
|
192
|
+
}
|
|
189
193
|
this.collapsedChange.emit(this._collapsed);
|
|
190
194
|
}
|
|
191
195
|
get collapsed() {
|
|
@@ -202,6 +206,16 @@ class IgxSplitterPaneComponent {
|
|
|
202
206
|
toggle() {
|
|
203
207
|
this.collapsed = !this.collapsed;
|
|
204
208
|
}
|
|
209
|
+
refreshFlex() {
|
|
210
|
+
this.el.nativeElement.style.flex = this.flex;
|
|
211
|
+
}
|
|
212
|
+
resetDragSize() {
|
|
213
|
+
this._dragSize = null;
|
|
214
|
+
this.refreshFlex();
|
|
215
|
+
}
|
|
216
|
+
get hasCollapsedSibling() {
|
|
217
|
+
return this.owner ? this._getSiblings().some(sibling => sibling.collapsed) : false;
|
|
218
|
+
}
|
|
205
219
|
/** @hidden @internal */
|
|
206
220
|
_getSiblings() {
|
|
207
221
|
const panes = this.owner.panes.toArray();
|
|
@@ -491,10 +505,6 @@ class IgxSplitterComponent {
|
|
|
491
505
|
}
|
|
492
506
|
});
|
|
493
507
|
this.assignFlexOrder();
|
|
494
|
-
if (this.panes.filter(x => x.collapsed).length > 0) {
|
|
495
|
-
// if any panes are collapsed, reset sizes.
|
|
496
|
-
this.resetPaneSizes();
|
|
497
|
-
}
|
|
498
508
|
}
|
|
499
509
|
/**
|
|
500
510
|
* @hidden @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igniteui-angular-splitter.mjs","sources":["../../../projects/igniteui-angular/splitter/src/splitter/splitter-pane/splitter-pane.component.ts","../../../projects/igniteui-angular/splitter/src/splitter/splitter-pane/splitter-pane.component.html","../../../projects/igniteui-angular/splitter/src/splitter/splitter.component.ts","../../../projects/igniteui-angular/splitter/src/splitter/splitter.component.html","../../../projects/igniteui-angular/splitter/src/splitter/splitter-bar.component.html","../../../projects/igniteui-angular/splitter/src/splitter/public_api.ts","../../../projects/igniteui-angular/splitter/src/splitter/splitter.module.ts","../../../projects/igniteui-angular/splitter/src/igniteui-angular-splitter.ts"],"sourcesContent":["import { Component, HostBinding, Input, ElementRef, Output, EventEmitter, booleanAttribute, signal, inject } from '@angular/core';\n\n/**\n * Represents individual resizable/collapsible panes.\n *\n * @igxModule IgxSplitterModule\n *\n * @igxParent IgxSplitterComponent\n *\n * @igxKeywords pane\n *\n * @igxGroup presentation\n *\n * @remarks\n * Users can control the resize behavior via the min and max size properties.\n */\n@Component({\n selector: 'igx-splitter-pane',\n templateUrl: './splitter-pane.component.html',\n standalone: true\n})\nexport class IgxSplitterPaneComponent {\n private el = inject(ElementRef);\n\n private _minSize: string;\n private _maxSize: string;\n private _order = signal<number | null>(null);\n\n /**\n * @hidden @internal\n * Gets/Sets the 'display' property of the current pane.\n */\n @HostBinding('style.display')\n public display = 'flex';\n\n /**\n * Gets/Sets the minimum allowed size of the current pane.\n *\n * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane [minSize]='minSize'>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Input()\n public get minSize(): string {\n return this._minSize;\n }\n public set minSize(value: string) {\n this._minSize = value;\n if (this.owner) {\n this.owner.panes.notifyOnChanges();\n }\n }\n\n /**\n * Gets/Set the maximum allowed size of the current pane.\n *\n * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane [maxSize]='maxSize'>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Input()\n public get maxSize(): string {\n return this._maxSize;\n }\n public set maxSize(value: string) {\n this._maxSize = value;\n if (this.owner) {\n this.owner.panes.notifyOnChanges();\n }\n }\n\n /**\n * Gets/Sets whether pane is resizable.\n *\n * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane [resizable]='false'>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n * @remarks\n * If pane is not resizable its related splitter bar cannot be dragged.\n */\n @Input({ transform: booleanAttribute })\n public resizable = true;\n\n /**\n * Event fired when collapsed state of pane is changed.\n *\n * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane (collapsedChange)='paneCollapsedChange($event)'>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Output()\n public collapsedChange = new EventEmitter<boolean>();\n\n /** @hidden @internal */\n @HostBinding('style.order')\n public get order() {\n return this._order();\n }\n public set order(val) {\n this._order.set(val)\n }\n\n /**\n * @hidden @internal\n * Gets/Sets the `overflow`.\n */\n @HostBinding('style.overflow')\n public overflow = 'auto';\n\n /**\n * @hidden @internal\n * Get/Sets the `minWidth` properties of the current pane.\n */\n @HostBinding('style.min-width')\n public minWidth = '0';\n\n /**\n * @hidden @internal\n * Get/Sets the `maxWidth` properties of the current pane.\n */\n @HostBinding('style.max-width')\n public maxWidth = '100%';\n\n /**\n * @hidden @internal\n * Gets/Sets the `minHeight` properties of the current pane.\n */\n @HostBinding('style.min-height')\n public minHeight = '0';\n\n /**\n * @hidden @internal\n * Gets/Sets the `maxHeight` properties of the current `IgxSplitterPaneComponent`.\n */\n @HostBinding('style.max-height')\n public maxHeight = '100%';\n\n /** @hidden @internal */\n public owner;\n\n /**\n * Gets/Sets the size of the current pane.\n * * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane [size]='size'>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Input()\n public get size() {\n return this._size;\n }\n\n public set size(value) {\n this._size = value;\n this.el.nativeElement.style.flex = this.flex;\n }\n\n /** @hidden @internal */\n public get isPercentageSize() {\n return this.size === 'auto' || this.size.indexOf('%') !== -1;\n }\n\n /** @hidden @internal */\n public get dragSize() {\n return this._dragSize;\n }\n public set dragSize(val) {\n this._dragSize = val;\n this.el.nativeElement.style.flex = this.flex;\n }\n\n /**\n *\n * @hidden @internal\n * Gets the host native element.\n */\n public get element(): any {\n return this.el.nativeElement;\n }\n\n /**\n * @hidden @internal\n * Gets the `flex` property of the current `IgxSplitterPaneComponent`.\n */\n @HostBinding('style.flex')\n public get flex() {\n const size = this.dragSize || this.size;\n const grow = this.isPercentageSize && !this.dragSize ? 1 : 0;\n return `${grow} ${grow} ${size}`;\n }\n\n /**\n * Gets/Sets whether current pane is collapsed.\n *\n * @example\n * ```typescript\n * const isCollapsed = pane.collapsed;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public set collapsed(value) {\n if (this.owner) {\n // reset sibling sizes when pane collapse state changes.\n this._getSiblings().forEach(sibling => {\n sibling.size = 'auto'\n sibling.dragSize = null;\n });\n }\n this._collapsed = value;\n this.display = this._collapsed ? 'none' : 'flex';\n this.collapsedChange.emit(this._collapsed);\n }\n\n public get collapsed() {\n return this._collapsed;\n }\n\n private _size = 'auto';\n private _dragSize;\n private _collapsed = false;\n\n /**\n * Toggles the collapsed state of the pane.\n *\n * @example\n * ```typescript\n * pane.toggle();\n * ```\n */\n public toggle() {\n this.collapsed = !this.collapsed;\n }\n\n /** @hidden @internal */\n private _getSiblings() {\n const panes = this.owner.panes.toArray();\n const index = panes.indexOf(this);\n const siblings = [];\n if (index !== 0) {\n siblings.push(panes[index - 1]);\n }\n if (index !== panes.length - 1) {\n siblings.push(panes[index + 1]);\n }\n return siblings;\n }\n}\n","<ng-content></ng-content>","import { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Input, NgZone, Output, QueryList, booleanAttribute, forwardRef, DOCUMENT, inject } from '@angular/core';\nimport { DragDirection, IDragMoveEventArgs, IDragStartEventArgs, IgxDragDirective, IgxDragIgnoreDirective } from 'igniteui-angular/directives';\nimport { IgxSplitterPaneComponent } from './splitter-pane/splitter-pane.component';\nimport { take } from 'rxjs';\n\n/**\n * An enumeration that defines the `SplitterComponent` panes orientation.\n */\nexport enum SplitterType {\n Horizontal,\n Vertical\n}\n\nexport declare interface ISplitterBarResizeEventArgs {\n pane: IgxSplitterPaneComponent;\n sibling: IgxSplitterPaneComponent;\n}\n\n/**\n * Provides a framework for a simple layout, splitting the view horizontally or vertically\n * into multiple smaller resizable and collapsible areas.\n *\n * @igxModule IgxSplitterModule\n *\n * @igxParent Layouts\n *\n * @igxTheme igx-splitter-theme\n *\n * @igxKeywords splitter panes layout\n *\n * @igxGroup presentation\n *\n * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane>\n * ...\n * </igx-splitter-pane>\n * <igx-splitter-pane>\n * ...\n * </igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n@Component({\n selector: 'igx-splitter',\n templateUrl: './splitter.component.html',\n imports: [forwardRef(() => IgxSplitBarComponent)]\n})\nexport class IgxSplitterComponent implements AfterContentInit {\n public document = inject(DOCUMENT);\n private elementRef = inject(ElementRef);\n private zone = inject(NgZone);\n\n /**\n * Gets the list of splitter panes.\n *\n * @example\n * ```typescript\n * const panes = this.splitter.panes;\n * ```\n */\n @ContentChildren(IgxSplitterPaneComponent, { read: IgxSplitterPaneComponent })\n public panes!: QueryList<IgxSplitterPaneComponent>;\n\n /**\n * @hidden\n * @internal\n */\n @HostBinding('class.igx-splitter')\n public cssClass = 'igx-splitter';\n\n /**\n * @hidden @internal\n * Gets/Sets the `overflow` property of the current splitter.\n */\n @HostBinding('style.overflow')\n public overflow = 'hidden';\n\n /**\n * @hidden @internal\n * Sets/Gets the `display` property of the current splitter.\n */\n @HostBinding('style.display')\n public display = 'flex';\n\n /**\n * @hidden\n * @internal\n */\n @HostBinding('attr.aria-orientation')\n public get orientation() {\n return this.type === SplitterType.Horizontal ? 'horizontal' : 'vertical';\n }\n\n /**\n * Event fired when resizing of panes starts.\n *\n * @example\n * ```html\n * <igx-splitter (resizeStart)='resizeStart($event)'>\n * <igx-splitter-pane>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Output()\n public resizeStart = new EventEmitter<ISplitterBarResizeEventArgs>();\n\n /**\n * Event fired when resizing of panes is in progress.\n *\n * @example\n * ```html\n * <igx-splitter (resizing)='resizing($event)'>\n * <igx-splitter-pane>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Output()\n public resizing = new EventEmitter<ISplitterBarResizeEventArgs>();\n\n\n /**\n * Event fired when resizing of panes ends.\n *\n * @example\n * ```html\n * <igx-splitter (resizeEnd)='resizeEnd($event)'>\n * <igx-splitter-pane>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Output()\n public resizeEnd = new EventEmitter<ISplitterBarResizeEventArgs>();\n\n private _type: SplitterType = SplitterType.Horizontal;\n\n /**\n * @hidden @internal\n * A field that holds the initial size of the main `IgxSplitterPaneComponent` in each pair of panes divided by a splitter bar.\n */\n private initialPaneSize!: number;\n\n /**\n * @hidden @internal\n * A field that holds the initial size of the sibling pane in each pair of panes divided by a gripper.\n * @memberof SplitterComponent\n */\n private initialSiblingSize!: number;\n\n /**\n * @hidden @internal\n * The main pane in each pair of panes divided by a gripper.\n */\n private pane!: IgxSplitterPaneComponent;\n\n /**\n * The sibling pane in each pair of panes divided by a splitter bar.\n */\n private sibling!: IgxSplitterPaneComponent;\n /**\n * Gets/Sets the splitter orientation.\n *\n * @example\n * ```html\n * <igx-splitter [type]=\"type\">...</igx-splitter>\n * ```\n */\n @Input()\n public get type() {\n return this._type;\n }\n public set type(value) {\n this._type = value;\n this.resetPaneSizes();\n this.panes?.notifyOnChanges();\n }\n\n /**\n * Sets the visibility of the handle and expanders in the splitter bar.\n * False by default\n *\n * @example\n * ```html\n * <igx-splitter [nonCollapsible]='true'>\n * </igx-splitter>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public nonCollapsible = false; // Input to toggle showing/hiding expanders\n\n /**\n * @hidden @internal\n * Gets the `flex-direction` property of the current `SplitterComponent`.\n */\n @HostBinding('style.flex-direction')\n public get direction(): string {\n return this.type === SplitterType.Horizontal ? 'row' : 'column';\n }\n\n /** @hidden @internal */\n public ngAfterContentInit(): void {\n this.zone.onStable.pipe(take(1)).subscribe(() => {\n this.initPanes();\n });\n this.panes.changes.subscribe(() => {\n this.initPanes();\n });\n }\n\n /**\n * @hidden @internal\n * This method performs initialization logic when the user starts dragging the splitter bar between each pair of panes.\n * @param pane - the main pane associated with the currently dragged bar.\n */\n public onMoveStart(pane: IgxSplitterPaneComponent) {\n const panes = this.panes.toArray();\n this.pane = pane;\n this.sibling = panes[panes.indexOf(this.pane) + 1];\n\n const paneRect = this.pane.element.getBoundingClientRect();\n this.initialPaneSize = this.type === SplitterType.Horizontal ? paneRect.width : paneRect.height;\n\n const siblingRect = this.sibling.element.getBoundingClientRect();\n this.initialSiblingSize = this.type === SplitterType.Horizontal ? siblingRect.width : siblingRect.height;\n const args: ISplitterBarResizeEventArgs = { pane: this.pane, sibling: this.sibling };\n this.resizeStart.emit(args);\n }\n\n /**\n * @hidden @internal\n * This method performs calculations concerning the sizes of each pair of panes when the bar between them is dragged.\n * @param delta - The difference along the X (or Y) axis between the initial and the current point when dragging the bar.\n */\n public onMoving(delta: number) {\n const [ paneSize, siblingSize ] = this.calcNewSizes(delta);\n\n this.pane.dragSize = paneSize + 'px';\n this.sibling.dragSize = siblingSize + 'px';\n\n const args: ISplitterBarResizeEventArgs = { pane: this.pane, sibling: this.sibling };\n this.resizing.emit(args);\n }\n\n public onMoveEnd(delta: number) {\n let [ paneSize, siblingSize ] = this.calcNewSizes(delta);\n\n if (paneSize + siblingSize > this.getTotalSize() && delta < 0) {\n siblingSize = this.getTotalSize() - paneSize;\n } else if (paneSize + siblingSize > this.getTotalSize() && delta > 0) {\n paneSize = this.getTotalSize() - siblingSize;\n }\n\n if (this.pane.isPercentageSize) {\n // handle % resizes\n const totalSize = this.getTotalSize();\n const percentPaneSize = (paneSize / totalSize) * 100;\n this.pane.size = percentPaneSize + '%';\n } else {\n // px resize\n this.pane.size = paneSize + 'px';\n }\n\n if (this.sibling.isPercentageSize) {\n // handle % resizes\n const totalSize = this.getTotalSize();\n const percentSiblingPaneSize = (siblingSize / totalSize) * 100;\n this.sibling.size = percentSiblingPaneSize + '%';\n } else {\n // px resize\n this.sibling.size = siblingSize + 'px';\n }\n this.pane.dragSize = null;\n this.sibling.dragSize = null;\n\n const args: ISplitterBarResizeEventArgs = { pane: this.pane, sibling: this.sibling };\n this.resizeEnd.emit(args);\n }\n\n /** @hidden @internal */\n public getPaneSiblingsByOrder(order: number, barIndex: number): Array<IgxSplitterPaneComponent> {\n const panes = this.panes.toArray();\n const prevPane = panes[order - barIndex - 1];\n const nextPane = panes[order - barIndex];\n const siblings = [prevPane, nextPane];\n return siblings;\n }\n\n private getTotalSize() {\n const computed = this.document.defaultView.getComputedStyle(this.elementRef.nativeElement);\n const totalSize = this.type === SplitterType.Horizontal ? computed.getPropertyValue('width') : computed.getPropertyValue('height');\n return parseFloat(totalSize);\n }\n\n\n /**\n * @hidden @internal\n * This method inits panes with properties.\n */\n private initPanes() {\n this.panes.forEach(pane => {\n pane.owner = this;\n if (this.type === SplitterType.Horizontal) {\n pane.minWidth = pane.minSize ?? '0';\n pane.maxWidth = pane.maxSize ?? '100%';\n } else {\n pane.minHeight = pane.minSize ?? '0';\n pane.maxHeight = pane.maxSize ?? '100%';\n }\n });\n this.assignFlexOrder();\n if (this.panes.filter(x => x.collapsed).length > 0) {\n // if any panes are collapsed, reset sizes.\n this.resetPaneSizes();\n }\n }\n\n /**\n * @hidden @internal\n * This method reset pane sizes.\n */\n private resetPaneSizes() {\n if (this.panes) {\n // if type is changed runtime, should reset sizes.\n this.panes.forEach(x => {\n x.size = 'auto'\n x.minWidth = '0';\n x.maxWidth = '100%';\n x.minHeight = '0';\n x.maxHeight = '100%';\n });\n }\n }\n\n /**\n * @hidden @internal\n * This method assigns the order of each pane.\n */\n private assignFlexOrder() {\n let k = 0;\n this.panes.forEach((pane: IgxSplitterPaneComponent) => {\n pane.order = k;\n k += 2;\n });\n }\n\n /**\n * @hidden @internal\n * Calculates new sizes for the panes based on move delta and initial sizes\n */\n private calcNewSizes(delta: number): [number, number] {\n const min = parseInt(this.pane.minSize, 10) || 0;\n const minSibling = parseInt(this.sibling.minSize, 10) || 0;\n const max = parseInt(this.pane.maxSize, 10) || this.initialPaneSize + this.initialSiblingSize - minSibling;\n const maxSibling = parseInt(this.sibling.maxSize, 10) || this.initialPaneSize + this.initialSiblingSize - min;\n\n if (delta < 0) {\n const maxPossibleDelta = Math.min(\n max - this.initialPaneSize,\n this.initialSiblingSize - minSibling,\n )\n delta = Math.min(maxPossibleDelta, Math.abs(delta)) * -1;\n } else {\n const maxPossibleDelta = Math.min(\n this.initialPaneSize - min,\n maxSibling - this.initialSiblingSize\n )\n delta = Math.min(maxPossibleDelta, Math.abs(delta));\n }\n return [this.initialPaneSize - delta, this.initialSiblingSize + delta];\n }\n}\n\n/**\n * @hidden @internal\n * Represents the draggable bar that visually separates panes and allows for changing their sizes.\n */\n@Component({\n selector: 'igx-splitter-bar',\n templateUrl: './splitter-bar.component.html',\n imports: [IgxDragDirective, IgxDragIgnoreDirective]\n})\nexport class IgxSplitBarComponent {\n /**\n * Set css class to the host element.\n */\n @HostBinding('class.igx-splitter-bar-host')\n public cssClass = 'igx-splitter-bar-host';\n\n /**\n * Sets the visibility of the handle and expanders in the splitter bar.\n */\n @Input({ transform: booleanAttribute })\n public nonCollapsible;\n\n /**\n * Gets/Sets the orientation.\n */\n @Input()\n public type: SplitterType = SplitterType.Horizontal;\n\n /**\n * Sets/gets the element order.\n */\n @HostBinding('style.order')\n @Input()\n public order!: number;\n\n /**\n * @hidden\n * @internal\n */\n @HostBinding('attr.tabindex')\n public get tabindex() {\n return this.resizeDisallowed ? null : 0;\n }\n\n /**\n * @hidden\n * @internal\n */\n @HostBinding('attr.aria-orientation')\n public get orientation() {\n return this.type === SplitterType.Horizontal ? 'horizontal' : 'vertical';\n }\n\n /**\n * @hidden\n * @internal\n */\n public get cursor() {\n if (this.resizeDisallowed) {\n return '';\n }\n return this.type === SplitterType.Horizontal ? 'col-resize' : 'row-resize';\n }\n\n /**\n * Sets/gets the `SplitPaneComponent` associated with the current `SplitBarComponent`.\n *\n * @memberof SplitBarComponent\n */\n @Input()\n public pane!: IgxSplitterPaneComponent;\n\n /**\n * Sets/Gets the `SplitPaneComponent` sibling components associated with the current `SplitBarComponent`.\n */\n @Input()\n public siblings!: Array<IgxSplitterPaneComponent>;\n\n /**\n * An event that is emitted whenever we start dragging the current `SplitBarComponent`.\n */\n @Output()\n public moveStart = new EventEmitter<IgxSplitterPaneComponent>();\n\n /**\n * An event that is emitted while we are dragging the current `SplitBarComponent`.\n */\n @Output()\n public moving = new EventEmitter<number>();\n\n @Output()\n public movingEnd = new EventEmitter<number>();\n\n /**\n * A temporary holder for the pointer coordinates.\n */\n private startPoint!: number;\n\n private interactionKeys = new Set('right down left up arrowright arrowdown arrowleft arrowup'.split(' '));\n\n /**\n * @hidden @internal\n */\n public get prevButtonHidden() {\n return this.siblings[0]?.collapsed && !this.siblings[1]?.collapsed;\n }\n\n /**\n * @hidden @internal\n */\n @HostListener('keydown', ['$event'])\n public keyEvent(event: KeyboardEvent) {\n const key = event.key.toLowerCase();\n const ctrl = event.ctrlKey;\n event.stopPropagation();\n if (this.interactionKeys.has(key)) {\n event.preventDefault();\n }\n switch (key) {\n case 'arrowup':\n case 'up':\n if (this.type === SplitterType.Vertical) {\n if (ctrl) {\n this.onCollapsing(false);\n break;\n }\n if (!this.resizeDisallowed) {\n event.preventDefault();\n this.moveStart.emit(this.pane);\n this.moving.emit(10);\n }\n }\n break;\n case 'arrowdown':\n case 'down':\n if (this.type === SplitterType.Vertical) {\n if (ctrl) {\n this.onCollapsing(true);\n break;\n }\n if (!this.resizeDisallowed) {\n event.preventDefault();\n this.moveStart.emit(this.pane);\n this.moving.emit(-10);\n }\n }\n break;\n case 'arrowleft':\n case 'left':\n if (this.type === SplitterType.Horizontal) {\n if (ctrl) {\n this.onCollapsing(false);\n break;\n }\n if (!this.resizeDisallowed) {\n event.preventDefault();\n this.moveStart.emit(this.pane);\n this.moving.emit(10);\n }\n }\n break;\n case 'arrowright':\n case 'right':\n if (this.type === SplitterType.Horizontal) {\n if (ctrl) {\n this.onCollapsing(true);\n break;\n }\n if (!this.resizeDisallowed) {\n event.preventDefault();\n this.moveStart.emit(this.pane);\n this.moving.emit(-10);\n }\n }\n break;\n default:\n break;\n }\n }\n\n /**\n * @hidden @internal\n */\n public get dragDir() {\n return this.type === SplitterType.Horizontal ? DragDirection.VERTICAL : DragDirection.HORIZONTAL;\n }\n\n /**\n * @hidden @internal\n */\n public get nextButtonHidden() {\n return this.siblings[1]?.collapsed && !this.siblings[0]?.collapsed;\n }\n\n /**\n * @hidden @internal\n */\n public onDragStart(event: IDragStartEventArgs) {\n if (this.resizeDisallowed) {\n event.cancel = true;\n return;\n }\n this.startPoint = this.type === SplitterType.Horizontal ? event.startX : event.startY;\n this.moveStart.emit(this.pane);\n }\n\n /**\n * @hidden @internal\n */\n public onDragMove(event: IDragMoveEventArgs) {\n const isHorizontal = this.type === SplitterType.Horizontal;\n const curr = isHorizontal ? event.pageX : event.pageY;\n const delta = this.startPoint - curr;\n if (delta !== 0) {\n this.moving.emit(delta);\n event.cancel = true;\n event.owner.element.nativeElement.style.transform = '';\n }\n }\n\n public onDragEnd(event: any) {\n const isHorizontal = this.type === SplitterType.Horizontal;\n const curr = isHorizontal ? event.pageX : event.pageY;\n const delta = this.startPoint - curr;\n if (delta !== 0) {\n this.movingEnd.emit(delta);\n }\n }\n\n protected get resizeDisallowed() {\n const relatedTabs = this.siblings;\n return !!relatedTabs.find(x => x?.resizable === false || x?.collapsed === true);\n }\n\n /**\n * @hidden @internal\n */\n public onCollapsing(next: boolean) {\n const prevSibling = this.siblings[0];\n const nextSibling = this.siblings[1];\n let target;\n if (next) {\n // if next is clicked when prev pane is hidden, show prev pane, else hide next pane.\n target = prevSibling.collapsed ? prevSibling : nextSibling;\n } else {\n // if prev is clicked when next pane is hidden, show next pane, else hide prev pane.\n target = nextSibling.collapsed ? nextSibling : prevSibling;\n }\n target.toggle();\n }\n}\n","<ng-content select=\"igx-splitter-pane\"></ng-content>\n@for (pane of panes; track pane; let last = $last; let index = $index) {\n @if (!last) {\n <igx-splitter-bar [order]=\"pane.order + 1\" role=\"separator\"\n [type]=\"type\"\n [pane]=\"pane\"\n [siblings]=\"getPaneSiblingsByOrder(pane.order + 1, index)\"\n (moveStart)=\"onMoveStart($event)\"\n (moving)=\"onMoving($event)\"\n (movingEnd)=\"onMoveEnd($event)\"\n [nonCollapsible]=\"nonCollapsible\">\n </igx-splitter-bar>\n }\n}\n","<div class=\"igx-splitter-bar\"\n [class.igx-splitter-bar--vertical]=\"type === 0\"\n [style.cursor]=\"cursor\"\n igxDrag\n [ghost]=\"false\"\n [dragDirection]=\"dragDir\"\n (dragStart)=\"onDragStart($event)\"\n (dragMove)=\"onDragMove($event)\"\n (dragEnd)=\"onDragEnd($event)\"\n [class.igx-splitter-bar--collapsible]=\"!nonCollapsible\"\n>\n <div class=\"igx-splitter-bar__expander--start\" igxDragIgnore (click)=\"onCollapsing(false)\" [hidden]=\"prevButtonHidden\"></div>\n <div class=\"igx-splitter-bar__handle\"></div>\n <div class=\"igx-splitter-bar__expander--end\" igxDragIgnore (click)=\"onCollapsing(true)\" [hidden]=\"nextButtonHidden\"></div>\n</div>\n","import { IgxSplitterPaneComponent } from './splitter-pane/splitter-pane.component';\nimport { IgxSplitBarComponent, IgxSplitterComponent } from './splitter.component';\n\nexport * from './splitter.component';\nexport * from './splitter-pane/splitter-pane.component';\n\n/* NOTE: Splitter directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_SPLITTER_DIRECTIVES = [\n IgxSplitterComponent,\n IgxSplitterPaneComponent,\n IgxSplitBarComponent\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_SPLITTER_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * @deprecated\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_SPLITTER_DIRECTIVES\n ],\n exports: [\n ...IGX_SPLITTER_DIRECTIVES\n ]\n})\nexport class IgxSplitterModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxSplitterComponent","i2.IgxSplitterPaneComponent","i1.IgxSplitBarComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igniteui-angular-splitter.mjs","sources":["../../../projects/igniteui-angular/splitter/src/splitter/splitter-pane/splitter-pane.component.ts","../../../projects/igniteui-angular/splitter/src/splitter/splitter-pane/splitter-pane.component.html","../../../projects/igniteui-angular/splitter/src/splitter/splitter.component.ts","../../../projects/igniteui-angular/splitter/src/splitter/splitter.component.html","../../../projects/igniteui-angular/splitter/src/splitter/splitter-bar.component.html","../../../projects/igniteui-angular/splitter/src/splitter/public_api.ts","../../../projects/igniteui-angular/splitter/src/splitter/splitter.module.ts","../../../projects/igniteui-angular/splitter/src/igniteui-angular-splitter.ts"],"sourcesContent":["import { Component, HostBinding, Input, ElementRef, Output, EventEmitter, booleanAttribute, signal, inject } from '@angular/core';\n\n/**\n * Represents individual resizable/collapsible panes.\n *\n * @igxModule IgxSplitterModule\n *\n * @igxParent IgxSplitterComponent\n *\n * @igxKeywords pane\n *\n * @igxGroup presentation\n *\n * @remarks\n * Users can control the resize behavior via the min and max size properties.\n */\n@Component({\n selector: 'igx-splitter-pane',\n templateUrl: './splitter-pane.component.html',\n standalone: true\n})\nexport class IgxSplitterPaneComponent {\n private el = inject(ElementRef);\n\n private _minSize: string;\n private _maxSize: string;\n private _order = signal<number | null>(null);\n\n /**\n * @hidden @internal\n * Gets/Sets the 'display' property of the current pane.\n */\n @HostBinding('style.display')\n public display = 'flex';\n\n /**\n * Gets/Sets the minimum allowed size of the current pane.\n *\n * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane [minSize]='minSize'>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Input()\n public get minSize(): string {\n return this._minSize;\n }\n public set minSize(value: string) {\n this._minSize = value;\n if (this.owner) {\n this.owner.panes.notifyOnChanges();\n }\n }\n\n /**\n * Gets/Set the maximum allowed size of the current pane.\n *\n * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane [maxSize]='maxSize'>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Input()\n public get maxSize(): string {\n return this._maxSize;\n }\n public set maxSize(value: string) {\n this._maxSize = value;\n if (this.owner) {\n this.owner.panes.notifyOnChanges();\n }\n }\n\n /**\n * Gets/Sets whether pane is resizable.\n *\n * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane [resizable]='false'>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n * @remarks\n * If pane is not resizable its related splitter bar cannot be dragged.\n */\n @Input({ transform: booleanAttribute })\n public resizable = true;\n\n /**\n * Event fired when collapsed state of pane is changed.\n *\n * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane (collapsedChange)='paneCollapsedChange($event)'>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Output()\n public collapsedChange = new EventEmitter<boolean>();\n\n /** @hidden @internal */\n @HostBinding('style.order')\n public get order() {\n return this._order();\n }\n public set order(val) {\n this._order.set(val)\n }\n\n /**\n * @hidden @internal\n * Gets/Sets the `overflow`.\n */\n @HostBinding('style.overflow')\n public overflow = 'auto';\n\n /**\n * @hidden @internal\n * Get/Sets the `minWidth` properties of the current pane.\n */\n @HostBinding('style.min-width')\n public minWidth = '0';\n\n /**\n * @hidden @internal\n * Get/Sets the `maxWidth` properties of the current pane.\n */\n @HostBinding('style.max-width')\n public maxWidth = '100%';\n\n /**\n * @hidden @internal\n * Gets/Sets the `minHeight` properties of the current pane.\n */\n @HostBinding('style.min-height')\n public minHeight = '0';\n\n /**\n * @hidden @internal\n * Gets/Sets the `maxHeight` properties of the current `IgxSplitterPaneComponent`.\n */\n @HostBinding('style.max-height')\n public maxHeight = '100%';\n\n /** @hidden @internal */\n public get owner() {\n return this._owner;\n }\n public set owner(value) {\n this._owner = value;\n this.refreshFlex();\n }\n\n /**\n * Gets/Sets the size of the current pane.\n * * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane [size]='size'>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Input()\n public get size() {\n return this._size;\n }\n\n public set size(value) {\n this._size = value;\n this.refreshFlex();\n }\n\n /** @hidden @internal */\n public get isPercentageSize() {\n return this.size === 'auto' || this.size.indexOf('%') !== -1;\n }\n\n /** @hidden @internal */\n public get dragSize() {\n return this._dragSize;\n }\n public set dragSize(val) {\n this._dragSize = val;\n this.refreshFlex();\n }\n\n /**\n *\n * @hidden @internal\n * Gets the host native element.\n */\n public get element(): any {\n return this.el.nativeElement;\n }\n\n /**\n * @hidden @internal\n * Gets the `flex` property of the current `IgxSplitterPaneComponent`.\n */\n @HostBinding('style.flex')\n public get flex() {\n const size = this.dragSize || this.size;\n const grow = (this.isPercentageSize || this.hasCollapsedSibling) && !this.dragSize ? 1 : 0;\n return `${grow} ${grow} ${size}`;\n }\n\n /**\n * Gets/Sets whether current pane is collapsed.\n *\n * @example\n * ```typescript\n * const isCollapsed = pane.collapsed;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public set collapsed(value) {\n this._collapsed = value;\n this.display = this._collapsed ? 'none' : 'flex';\n if (this.owner) {\n this._getSiblings().forEach(sibling => sibling.resetDragSize());\n }\n this.collapsedChange.emit(this._collapsed);\n }\n\n public get collapsed() {\n return this._collapsed;\n }\n\n private _size = 'auto';\n private _dragSize;\n private _collapsed = false;\n private _owner: any;\n\n /**\n * Toggles the collapsed state of the pane.\n *\n * @example\n * ```typescript\n * pane.toggle();\n * ```\n */\n public toggle() {\n this.collapsed = !this.collapsed;\n }\n\n private refreshFlex() {\n this.el.nativeElement.style.flex = this.flex;\n }\n\n private resetDragSize() {\n this._dragSize = null;\n this.refreshFlex();\n }\n\n private get hasCollapsedSibling() {\n return this.owner ? this._getSiblings().some(sibling => sibling.collapsed) : false;\n }\n\n /** @hidden @internal */\n private _getSiblings(): IgxSplitterPaneComponent[] {\n const panes: IgxSplitterPaneComponent[] = this.owner.panes.toArray();\n const index = panes.indexOf(this);\n const siblings: IgxSplitterPaneComponent[] = [];\n if (index !== 0) {\n siblings.push(panes[index - 1]);\n }\n if (index !== panes.length - 1) {\n siblings.push(panes[index + 1]);\n }\n return siblings;\n }\n}\n","<ng-content></ng-content>","import { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Input, NgZone, Output, QueryList, booleanAttribute, forwardRef, DOCUMENT, inject } from '@angular/core';\nimport { DragDirection, IDragMoveEventArgs, IDragStartEventArgs, IgxDragDirective, IgxDragIgnoreDirective } from 'igniteui-angular/directives';\nimport { IgxSplitterPaneComponent } from './splitter-pane/splitter-pane.component';\nimport { take } from 'rxjs';\n\n/**\n * An enumeration that defines the `SplitterComponent` panes orientation.\n */\nexport enum SplitterType {\n Horizontal,\n Vertical\n}\n\nexport declare interface ISplitterBarResizeEventArgs {\n pane: IgxSplitterPaneComponent;\n sibling: IgxSplitterPaneComponent;\n}\n\n/**\n * Provides a framework for a simple layout, splitting the view horizontally or vertically\n * into multiple smaller resizable and collapsible areas.\n *\n * @igxModule IgxSplitterModule\n *\n * @igxParent Layouts\n *\n * @igxTheme igx-splitter-theme\n *\n * @igxKeywords splitter panes layout\n *\n * @igxGroup presentation\n *\n * @example\n * ```html\n * <igx-splitter>\n * <igx-splitter-pane>\n * ...\n * </igx-splitter-pane>\n * <igx-splitter-pane>\n * ...\n * </igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n@Component({\n selector: 'igx-splitter',\n templateUrl: './splitter.component.html',\n imports: [forwardRef(() => IgxSplitBarComponent)]\n})\nexport class IgxSplitterComponent implements AfterContentInit {\n public document = inject(DOCUMENT);\n private elementRef = inject(ElementRef);\n private zone = inject(NgZone);\n\n /**\n * Gets the list of splitter panes.\n *\n * @example\n * ```typescript\n * const panes = this.splitter.panes;\n * ```\n */\n @ContentChildren(IgxSplitterPaneComponent, { read: IgxSplitterPaneComponent })\n public panes!: QueryList<IgxSplitterPaneComponent>;\n\n /**\n * @hidden\n * @internal\n */\n @HostBinding('class.igx-splitter')\n public cssClass = 'igx-splitter';\n\n /**\n * @hidden @internal\n * Gets/Sets the `overflow` property of the current splitter.\n */\n @HostBinding('style.overflow')\n public overflow = 'hidden';\n\n /**\n * @hidden @internal\n * Sets/Gets the `display` property of the current splitter.\n */\n @HostBinding('style.display')\n public display = 'flex';\n\n /**\n * @hidden\n * @internal\n */\n @HostBinding('attr.aria-orientation')\n public get orientation() {\n return this.type === SplitterType.Horizontal ? 'horizontal' : 'vertical';\n }\n\n /**\n * Event fired when resizing of panes starts.\n *\n * @example\n * ```html\n * <igx-splitter (resizeStart)='resizeStart($event)'>\n * <igx-splitter-pane>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Output()\n public resizeStart = new EventEmitter<ISplitterBarResizeEventArgs>();\n\n /**\n * Event fired when resizing of panes is in progress.\n *\n * @example\n * ```html\n * <igx-splitter (resizing)='resizing($event)'>\n * <igx-splitter-pane>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Output()\n public resizing = new EventEmitter<ISplitterBarResizeEventArgs>();\n\n\n /**\n * Event fired when resizing of panes ends.\n *\n * @example\n * ```html\n * <igx-splitter (resizeEnd)='resizeEnd($event)'>\n * <igx-splitter-pane>...</igx-splitter-pane>\n * </igx-splitter>\n * ```\n */\n @Output()\n public resizeEnd = new EventEmitter<ISplitterBarResizeEventArgs>();\n\n private _type: SplitterType = SplitterType.Horizontal;\n\n /**\n * @hidden @internal\n * A field that holds the initial size of the main `IgxSplitterPaneComponent` in each pair of panes divided by a splitter bar.\n */\n private initialPaneSize!: number;\n\n /**\n * @hidden @internal\n * A field that holds the initial size of the sibling pane in each pair of panes divided by a gripper.\n * @memberof SplitterComponent\n */\n private initialSiblingSize!: number;\n\n /**\n * @hidden @internal\n * The main pane in each pair of panes divided by a gripper.\n */\n private pane!: IgxSplitterPaneComponent;\n\n /**\n * The sibling pane in each pair of panes divided by a splitter bar.\n */\n private sibling!: IgxSplitterPaneComponent;\n /**\n * Gets/Sets the splitter orientation.\n *\n * @example\n * ```html\n * <igx-splitter [type]=\"type\">...</igx-splitter>\n * ```\n */\n @Input()\n public get type() {\n return this._type;\n }\n public set type(value) {\n this._type = value;\n this.resetPaneSizes();\n this.panes?.notifyOnChanges();\n }\n\n /**\n * Sets the visibility of the handle and expanders in the splitter bar.\n * False by default\n *\n * @example\n * ```html\n * <igx-splitter [nonCollapsible]='true'>\n * </igx-splitter>\n * ```\n */\n @Input({ transform: booleanAttribute })\n public nonCollapsible = false; // Input to toggle showing/hiding expanders\n\n /**\n * @hidden @internal\n * Gets the `flex-direction` property of the current `SplitterComponent`.\n */\n @HostBinding('style.flex-direction')\n public get direction(): string {\n return this.type === SplitterType.Horizontal ? 'row' : 'column';\n }\n\n /** @hidden @internal */\n public ngAfterContentInit(): void {\n this.zone.onStable.pipe(take(1)).subscribe(() => {\n this.initPanes();\n });\n this.panes.changes.subscribe(() => {\n this.initPanes();\n });\n }\n\n /**\n * @hidden @internal\n * This method performs initialization logic when the user starts dragging the splitter bar between each pair of panes.\n * @param pane - the main pane associated with the currently dragged bar.\n */\n public onMoveStart(pane: IgxSplitterPaneComponent) {\n const panes = this.panes.toArray();\n this.pane = pane;\n this.sibling = panes[panes.indexOf(this.pane) + 1];\n\n const paneRect = this.pane.element.getBoundingClientRect();\n this.initialPaneSize = this.type === SplitterType.Horizontal ? paneRect.width : paneRect.height;\n\n const siblingRect = this.sibling.element.getBoundingClientRect();\n this.initialSiblingSize = this.type === SplitterType.Horizontal ? siblingRect.width : siblingRect.height;\n const args: ISplitterBarResizeEventArgs = { pane: this.pane, sibling: this.sibling };\n this.resizeStart.emit(args);\n }\n\n /**\n * @hidden @internal\n * This method performs calculations concerning the sizes of each pair of panes when the bar between them is dragged.\n * @param delta - The difference along the X (or Y) axis between the initial and the current point when dragging the bar.\n */\n public onMoving(delta: number) {\n const [ paneSize, siblingSize ] = this.calcNewSizes(delta);\n\n this.pane.dragSize = paneSize + 'px';\n this.sibling.dragSize = siblingSize + 'px';\n\n const args: ISplitterBarResizeEventArgs = { pane: this.pane, sibling: this.sibling };\n this.resizing.emit(args);\n }\n\n public onMoveEnd(delta: number) {\n let [ paneSize, siblingSize ] = this.calcNewSizes(delta);\n\n if (paneSize + siblingSize > this.getTotalSize() && delta < 0) {\n siblingSize = this.getTotalSize() - paneSize;\n } else if (paneSize + siblingSize > this.getTotalSize() && delta > 0) {\n paneSize = this.getTotalSize() - siblingSize;\n }\n\n if (this.pane.isPercentageSize) {\n // handle % resizes\n const totalSize = this.getTotalSize();\n const percentPaneSize = (paneSize / totalSize) * 100;\n this.pane.size = percentPaneSize + '%';\n } else {\n // px resize\n this.pane.size = paneSize + 'px';\n }\n\n if (this.sibling.isPercentageSize) {\n // handle % resizes\n const totalSize = this.getTotalSize();\n const percentSiblingPaneSize = (siblingSize / totalSize) * 100;\n this.sibling.size = percentSiblingPaneSize + '%';\n } else {\n // px resize\n this.sibling.size = siblingSize + 'px';\n }\n this.pane.dragSize = null;\n this.sibling.dragSize = null;\n\n const args: ISplitterBarResizeEventArgs = { pane: this.pane, sibling: this.sibling };\n this.resizeEnd.emit(args);\n }\n\n /** @hidden @internal */\n public getPaneSiblingsByOrder(order: number, barIndex: number): Array<IgxSplitterPaneComponent> {\n const panes = this.panes.toArray();\n const prevPane = panes[order - barIndex - 1];\n const nextPane = panes[order - barIndex];\n const siblings = [prevPane, nextPane];\n return siblings;\n }\n\n private getTotalSize() {\n const computed = this.document.defaultView.getComputedStyle(this.elementRef.nativeElement);\n const totalSize = this.type === SplitterType.Horizontal ? computed.getPropertyValue('width') : computed.getPropertyValue('height');\n return parseFloat(totalSize);\n }\n\n\n /**\n * @hidden @internal\n * This method inits panes with properties.\n */\n private initPanes() {\n this.panes.forEach(pane => {\n pane.owner = this;\n if (this.type === SplitterType.Horizontal) {\n pane.minWidth = pane.minSize ?? '0';\n pane.maxWidth = pane.maxSize ?? '100%';\n } else {\n pane.minHeight = pane.minSize ?? '0';\n pane.maxHeight = pane.maxSize ?? '100%';\n }\n });\n this.assignFlexOrder();\n }\n\n /**\n * @hidden @internal\n * This method reset pane sizes.\n */\n private resetPaneSizes() {\n if (this.panes) {\n // if type is changed runtime, should reset sizes.\n this.panes.forEach(x => {\n x.size = 'auto'\n x.minWidth = '0';\n x.maxWidth = '100%';\n x.minHeight = '0';\n x.maxHeight = '100%';\n });\n }\n }\n\n /**\n * @hidden @internal\n * This method assigns the order of each pane.\n */\n private assignFlexOrder() {\n let k = 0;\n this.panes.forEach((pane: IgxSplitterPaneComponent) => {\n pane.order = k;\n k += 2;\n });\n }\n\n /**\n * @hidden @internal\n * Calculates new sizes for the panes based on move delta and initial sizes\n */\n private calcNewSizes(delta: number): [number, number] {\n const min = parseInt(this.pane.minSize, 10) || 0;\n const minSibling = parseInt(this.sibling.minSize, 10) || 0;\n const max = parseInt(this.pane.maxSize, 10) || this.initialPaneSize + this.initialSiblingSize - minSibling;\n const maxSibling = parseInt(this.sibling.maxSize, 10) || this.initialPaneSize + this.initialSiblingSize - min;\n\n if (delta < 0) {\n const maxPossibleDelta = Math.min(\n max - this.initialPaneSize,\n this.initialSiblingSize - minSibling,\n )\n delta = Math.min(maxPossibleDelta, Math.abs(delta)) * -1;\n } else {\n const maxPossibleDelta = Math.min(\n this.initialPaneSize - min,\n maxSibling - this.initialSiblingSize\n )\n delta = Math.min(maxPossibleDelta, Math.abs(delta));\n }\n return [this.initialPaneSize - delta, this.initialSiblingSize + delta];\n }\n}\n\n/**\n * @hidden @internal\n * Represents the draggable bar that visually separates panes and allows for changing their sizes.\n */\n@Component({\n selector: 'igx-splitter-bar',\n templateUrl: './splitter-bar.component.html',\n imports: [IgxDragDirective, IgxDragIgnoreDirective]\n})\nexport class IgxSplitBarComponent {\n /**\n * Set css class to the host element.\n */\n @HostBinding('class.igx-splitter-bar-host')\n public cssClass = 'igx-splitter-bar-host';\n\n /**\n * Sets the visibility of the handle and expanders in the splitter bar.\n */\n @Input({ transform: booleanAttribute })\n public nonCollapsible;\n\n /**\n * Gets/Sets the orientation.\n */\n @Input()\n public type: SplitterType = SplitterType.Horizontal;\n\n /**\n * Sets/gets the element order.\n */\n @HostBinding('style.order')\n @Input()\n public order!: number;\n\n /**\n * @hidden\n * @internal\n */\n @HostBinding('attr.tabindex')\n public get tabindex() {\n return this.resizeDisallowed ? null : 0;\n }\n\n /**\n * @hidden\n * @internal\n */\n @HostBinding('attr.aria-orientation')\n public get orientation() {\n return this.type === SplitterType.Horizontal ? 'horizontal' : 'vertical';\n }\n\n /**\n * @hidden\n * @internal\n */\n public get cursor() {\n if (this.resizeDisallowed) {\n return '';\n }\n return this.type === SplitterType.Horizontal ? 'col-resize' : 'row-resize';\n }\n\n /**\n * Sets/gets the `SplitPaneComponent` associated with the current `SplitBarComponent`.\n *\n * @memberof SplitBarComponent\n */\n @Input()\n public pane!: IgxSplitterPaneComponent;\n\n /**\n * Sets/Gets the `SplitPaneComponent` sibling components associated with the current `SplitBarComponent`.\n */\n @Input()\n public siblings!: Array<IgxSplitterPaneComponent>;\n\n /**\n * An event that is emitted whenever we start dragging the current `SplitBarComponent`.\n */\n @Output()\n public moveStart = new EventEmitter<IgxSplitterPaneComponent>();\n\n /**\n * An event that is emitted while we are dragging the current `SplitBarComponent`.\n */\n @Output()\n public moving = new EventEmitter<number>();\n\n @Output()\n public movingEnd = new EventEmitter<number>();\n\n /**\n * A temporary holder for the pointer coordinates.\n */\n private startPoint!: number;\n\n private interactionKeys = new Set('right down left up arrowright arrowdown arrowleft arrowup'.split(' '));\n\n /**\n * @hidden @internal\n */\n public get prevButtonHidden() {\n return this.siblings[0]?.collapsed && !this.siblings[1]?.collapsed;\n }\n\n /**\n * @hidden @internal\n */\n @HostListener('keydown', ['$event'])\n public keyEvent(event: KeyboardEvent) {\n const key = event.key.toLowerCase();\n const ctrl = event.ctrlKey;\n event.stopPropagation();\n if (this.interactionKeys.has(key)) {\n event.preventDefault();\n }\n switch (key) {\n case 'arrowup':\n case 'up':\n if (this.type === SplitterType.Vertical) {\n if (ctrl) {\n this.onCollapsing(false);\n break;\n }\n if (!this.resizeDisallowed) {\n event.preventDefault();\n this.moveStart.emit(this.pane);\n this.moving.emit(10);\n }\n }\n break;\n case 'arrowdown':\n case 'down':\n if (this.type === SplitterType.Vertical) {\n if (ctrl) {\n this.onCollapsing(true);\n break;\n }\n if (!this.resizeDisallowed) {\n event.preventDefault();\n this.moveStart.emit(this.pane);\n this.moving.emit(-10);\n }\n }\n break;\n case 'arrowleft':\n case 'left':\n if (this.type === SplitterType.Horizontal) {\n if (ctrl) {\n this.onCollapsing(false);\n break;\n }\n if (!this.resizeDisallowed) {\n event.preventDefault();\n this.moveStart.emit(this.pane);\n this.moving.emit(10);\n }\n }\n break;\n case 'arrowright':\n case 'right':\n if (this.type === SplitterType.Horizontal) {\n if (ctrl) {\n this.onCollapsing(true);\n break;\n }\n if (!this.resizeDisallowed) {\n event.preventDefault();\n this.moveStart.emit(this.pane);\n this.moving.emit(-10);\n }\n }\n break;\n default:\n break;\n }\n }\n\n /**\n * @hidden @internal\n */\n public get dragDir() {\n return this.type === SplitterType.Horizontal ? DragDirection.VERTICAL : DragDirection.HORIZONTAL;\n }\n\n /**\n * @hidden @internal\n */\n public get nextButtonHidden() {\n return this.siblings[1]?.collapsed && !this.siblings[0]?.collapsed;\n }\n\n /**\n * @hidden @internal\n */\n public onDragStart(event: IDragStartEventArgs) {\n if (this.resizeDisallowed) {\n event.cancel = true;\n return;\n }\n this.startPoint = this.type === SplitterType.Horizontal ? event.startX : event.startY;\n this.moveStart.emit(this.pane);\n }\n\n /**\n * @hidden @internal\n */\n public onDragMove(event: IDragMoveEventArgs) {\n const isHorizontal = this.type === SplitterType.Horizontal;\n const curr = isHorizontal ? event.pageX : event.pageY;\n const delta = this.startPoint - curr;\n if (delta !== 0) {\n this.moving.emit(delta);\n event.cancel = true;\n event.owner.element.nativeElement.style.transform = '';\n }\n }\n\n public onDragEnd(event: any) {\n const isHorizontal = this.type === SplitterType.Horizontal;\n const curr = isHorizontal ? event.pageX : event.pageY;\n const delta = this.startPoint - curr;\n if (delta !== 0) {\n this.movingEnd.emit(delta);\n }\n }\n\n protected get resizeDisallowed() {\n const relatedTabs = this.siblings;\n return !!relatedTabs.find(x => x?.resizable === false || x?.collapsed === true);\n }\n\n /**\n * @hidden @internal\n */\n public onCollapsing(next: boolean) {\n const prevSibling = this.siblings[0];\n const nextSibling = this.siblings[1];\n let target;\n if (next) {\n // if next is clicked when prev pane is hidden, show prev pane, else hide next pane.\n target = prevSibling.collapsed ? prevSibling : nextSibling;\n } else {\n // if prev is clicked when next pane is hidden, show next pane, else hide prev pane.\n target = nextSibling.collapsed ? nextSibling : prevSibling;\n }\n target.toggle();\n }\n}\n","<ng-content select=\"igx-splitter-pane\"></ng-content>\n@for (pane of panes; track pane; let last = $last; let index = $index) {\n @if (!last) {\n <igx-splitter-bar [order]=\"pane.order + 1\" role=\"separator\"\n [type]=\"type\"\n [pane]=\"pane\"\n [siblings]=\"getPaneSiblingsByOrder(pane.order + 1, index)\"\n (moveStart)=\"onMoveStart($event)\"\n (moving)=\"onMoving($event)\"\n (movingEnd)=\"onMoveEnd($event)\"\n [nonCollapsible]=\"nonCollapsible\">\n </igx-splitter-bar>\n }\n}\n","<div class=\"igx-splitter-bar\"\n [class.igx-splitter-bar--vertical]=\"type === 0\"\n [style.cursor]=\"cursor\"\n igxDrag\n [ghost]=\"false\"\n [dragDirection]=\"dragDir\"\n (dragStart)=\"onDragStart($event)\"\n (dragMove)=\"onDragMove($event)\"\n (dragEnd)=\"onDragEnd($event)\"\n [class.igx-splitter-bar--collapsible]=\"!nonCollapsible\"\n>\n <div class=\"igx-splitter-bar__expander--start\" igxDragIgnore (click)=\"onCollapsing(false)\" [hidden]=\"prevButtonHidden\"></div>\n <div class=\"igx-splitter-bar__handle\"></div>\n <div class=\"igx-splitter-bar__expander--end\" igxDragIgnore (click)=\"onCollapsing(true)\" [hidden]=\"nextButtonHidden\"></div>\n</div>\n","import { IgxSplitterPaneComponent } from './splitter-pane/splitter-pane.component';\nimport { IgxSplitBarComponent, IgxSplitterComponent } from './splitter.component';\n\nexport * from './splitter.component';\nexport * from './splitter-pane/splitter-pane.component';\n\n/* NOTE: Splitter directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_SPLITTER_DIRECTIVES = [\n IgxSplitterComponent,\n IgxSplitterPaneComponent,\n IgxSplitBarComponent\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_SPLITTER_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * @deprecated\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_SPLITTER_DIRECTIVES\n ],\n exports: [\n ...IGX_SPLITTER_DIRECTIVES\n ]\n})\nexport class IgxSplitterModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxSplitterComponent","i2.IgxSplitterPaneComponent","i1.IgxSplitBarComponent"],"mappings":"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"}
|
|
@@ -830,13 +830,14 @@ class IgxTimePickerComponent extends PickerBaseDirective {
|
|
|
830
830
|
* By default it uses EN resources.
|
|
831
831
|
*/
|
|
832
832
|
set resourceStrings(value) {
|
|
833
|
-
this._resourceStrings =
|
|
833
|
+
this._resourceStrings = value;
|
|
834
|
+
this._customResourceStrings = Object.assign({}, this._defaultResourceStrings, this._resourceStrings);
|
|
834
835
|
}
|
|
835
836
|
/**
|
|
836
837
|
* An accessor that returns the resource strings.
|
|
837
838
|
*/
|
|
838
839
|
get resourceStrings() {
|
|
839
|
-
return this._resourceStrings
|
|
840
|
+
return this._resourceStrings ? this._customResourceStrings : this._defaultResourceStrings;
|
|
840
841
|
}
|
|
841
842
|
/**
|
|
842
843
|
* Overrides the default text of the **OK** button.
|
|
@@ -970,6 +971,7 @@ class IgxTimePickerComponent extends PickerBaseDirective {
|
|
|
970
971
|
/** @hidden @internal */
|
|
971
972
|
this.ampmItems = [];
|
|
972
973
|
this._resourceStrings = null;
|
|
974
|
+
this._customResourceStrings = null;
|
|
973
975
|
this._defaultResourceStrings = getCurrentResourceStrings(TimePickerResourceStringsEN);
|
|
974
976
|
this._okButtonLabel = null;
|
|
975
977
|
this._cancelButtonLabel = null;
|
|
@@ -1409,6 +1411,7 @@ class IgxTimePickerComponent extends PickerBaseDirective {
|
|
|
1409
1411
|
}
|
|
1410
1412
|
updateResources() {
|
|
1411
1413
|
this._defaultResourceStrings = getCurrentResourceStrings(TimePickerResourceStringsEN, false, this._locale);
|
|
1414
|
+
this._customResourceStrings = this._resourceStrings ? Object.assign({}, this._defaultResourceStrings, this._resourceStrings) : null;
|
|
1412
1415
|
}
|
|
1413
1416
|
get isTouchedOrDirty() {
|
|
1414
1417
|
return (this._ngControl.control.touched || this._ngControl.control.dirty);
|