igniteui-angular 17.2.0 → 17.2.2
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/esm2022/lib/calendar/month-picker/month-picker.component.mjs +224 -6
- package/esm2022/lib/core/utils.mjs +3 -1
- package/esm2022/lib/directives/button/button-base.mjs +39 -2
- package/esm2022/lib/directives/button/button.directive.mjs +2 -1
- package/esm2022/lib/directives/toggle/toggle.directive.mjs +18 -6
- package/esm2022/lib/grids/common/crud.service.mjs +2 -1
- package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +2 -1
- package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +6 -2
- package/fesm2022/igniteui-angular.mjs +283 -9
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/calendar/month-picker/month-picker.component.d.ts +83 -2
- package/lib/core/styles/components/button/_button-component.scss +16 -0
- package/lib/core/styles/components/button/_button-theme.scss +203 -273
- package/lib/core/styles/components/button-group/_button-group-theme.scss +314 -85
- package/lib/core/styles/components/icon-button/_icon-button-theme.scss +27 -51
- package/lib/core/styles/components/overlay/_overlay-component.scss +4 -0
- package/lib/core/styles/components/overlay/_overlay-theme.scss +17 -1
- package/lib/core/utils.d.ts +2 -0
- package/lib/directives/button/button-base.d.ts +21 -0
- package/lib/directives/toggle/toggle.directive.d.ts +5 -3
- package/migrations/migration-collection.json +5 -0
- package/migrations/update-17_2_0/changes/inputs.json +0 -40
- package/migrations/update-17_2_2/changes/inputs.json +29 -0
- package/migrations/update-17_2_2/index.d.ts +3 -0
- package/migrations/update-17_2_2/index.js +18 -0
- package/package.json +2 -2
- package/styles/igniteui-angular-dark.css +1 -1
- package/styles/igniteui-angular.css +1 -1
- package/styles/igniteui-bootstrap-dark.css +1 -1
- package/styles/igniteui-bootstrap-light.css +1 -1
- package/styles/igniteui-dark-green.css +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
|
@@ -394,10 +394,12 @@ class PlatformUtil {
|
|
|
394
394
|
this.platformId = platformId;
|
|
395
395
|
this.isBrowser = isPlatformBrowser(this.platformId);
|
|
396
396
|
this.isIOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);
|
|
397
|
+
this.isSafari = this.isBrowser && /Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent);
|
|
397
398
|
this.isFirefox = this.isBrowser && /Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent);
|
|
398
399
|
this.isEdge = this.isBrowser && /Edge[\/\s](\d+\.\d+)/.test(navigator.userAgent);
|
|
399
400
|
this.isChromium = this.isBrowser && (/Chrom|e?ium/g.test(navigator.userAgent) ||
|
|
400
401
|
/Google Inc/g.test(navigator.vendor)) && !/Edge/g.test(navigator.userAgent);
|
|
402
|
+
this.browserVersion = this.isBrowser ? parseFloat(navigator.userAgent.match(/Version\/([\d.]+)/)?.at(1)) : 0;
|
|
401
403
|
this.KEYMAP = mkenum({
|
|
402
404
|
ENTER: 'Enter',
|
|
403
405
|
SPACE: ' ',
|
|
@@ -8355,6 +8357,14 @@ class IgxButtonBaseDirective extends DisplayDensityBase {
|
|
|
8355
8357
|
*/
|
|
8356
8358
|
onClick(ev) {
|
|
8357
8359
|
this.buttonClick.emit(ev);
|
|
8360
|
+
this.focused = false;
|
|
8361
|
+
}
|
|
8362
|
+
/**
|
|
8363
|
+
* @hidden
|
|
8364
|
+
* @internal
|
|
8365
|
+
*/
|
|
8366
|
+
onBlur() {
|
|
8367
|
+
this.focused = false;
|
|
8358
8368
|
}
|
|
8359
8369
|
/**
|
|
8360
8370
|
* @hidden
|
|
@@ -8381,6 +8391,17 @@ class IgxButtonBaseDirective extends DisplayDensityBase {
|
|
|
8381
8391
|
* ```
|
|
8382
8392
|
*/
|
|
8383
8393
|
this.role = 'button';
|
|
8394
|
+
/**
|
|
8395
|
+
* Sets/gets whether the button component is on focus.
|
|
8396
|
+
* Default value is `false`.
|
|
8397
|
+
* ```typescript
|
|
8398
|
+
* this.button.focus = true;
|
|
8399
|
+
* ```
|
|
8400
|
+
* ```typescript
|
|
8401
|
+
* let isFocused = this.button.focused;
|
|
8402
|
+
* ```
|
|
8403
|
+
*/
|
|
8404
|
+
this.focused = false;
|
|
8384
8405
|
/**
|
|
8385
8406
|
* Enables/disables the button.
|
|
8386
8407
|
*
|
|
@@ -8391,6 +8412,15 @@ class IgxButtonBaseDirective extends DisplayDensityBase {
|
|
|
8391
8412
|
*/
|
|
8392
8413
|
this.disabled = false;
|
|
8393
8414
|
}
|
|
8415
|
+
/**
|
|
8416
|
+
* @hidden
|
|
8417
|
+
* @internal
|
|
8418
|
+
*/
|
|
8419
|
+
updateOnKeyUp(event) {
|
|
8420
|
+
if (event.key === "Tab") {
|
|
8421
|
+
this.focused = true;
|
|
8422
|
+
}
|
|
8423
|
+
}
|
|
8394
8424
|
/**
|
|
8395
8425
|
* Returns the underlying DOM element.
|
|
8396
8426
|
*/
|
|
@@ -8398,7 +8428,7 @@ class IgxButtonBaseDirective extends DisplayDensityBase {
|
|
|
8398
8428
|
return this.element.nativeElement;
|
|
8399
8429
|
}
|
|
8400
8430
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxButtonBaseDirective, deps: [{ token: i0.ElementRef }, { token: DisplayDensityToken, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8401
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.4", type: IgxButtonBaseDirective, inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { buttonClick: "buttonClick" }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.role": "this.role", "class.igx-button--disabled": "this.disabled", "attr.disabled": "this.disabledAttribute" } }, usesInheritance: true, ngImport: i0 }); }
|
|
8431
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.4", type: IgxButtonBaseDirective, inputs: { disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { buttonClick: "buttonClick" }, host: { listeners: { "click": "onClick($event)", "blur": "onBlur()", "keyup": "updateOnKeyUp($event)" }, properties: { "attr.role": "this.role", "class.igx-button--focused": "this.focused", "class.igx-button--disabled": "this.disabled", "attr.disabled": "this.disabledAttribute" } }, usesInheritance: true, ngImport: i0 }); }
|
|
8402
8432
|
}
|
|
8403
8433
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxButtonBaseDirective, decorators: [{
|
|
8404
8434
|
type: Directive
|
|
@@ -8415,6 +8445,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
8415
8445
|
}], onClick: [{
|
|
8416
8446
|
type: HostListener,
|
|
8417
8447
|
args: ['click', ['$event']]
|
|
8448
|
+
}], onBlur: [{
|
|
8449
|
+
type: HostListener,
|
|
8450
|
+
args: ['blur']
|
|
8451
|
+
}], focused: [{
|
|
8452
|
+
type: HostBinding,
|
|
8453
|
+
args: ['class.igx-button--focused']
|
|
8418
8454
|
}], disabled: [{
|
|
8419
8455
|
type: Input,
|
|
8420
8456
|
args: [{ transform: booleanAttribute }]
|
|
@@ -8424,6 +8460,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
8424
8460
|
}], disabledAttribute: [{
|
|
8425
8461
|
type: HostBinding,
|
|
8426
8462
|
args: ['attr.disabled']
|
|
8463
|
+
}], updateOnKeyUp: [{
|
|
8464
|
+
type: HostListener,
|
|
8465
|
+
args: ['keyup', ['$event']]
|
|
8427
8466
|
}] } });
|
|
8428
8467
|
|
|
8429
8468
|
const IgxButtonType = /*@__PURE__*/ mkenum({
|
|
@@ -8569,6 +8608,7 @@ class IgxButtonDirective extends IgxButtonBaseDirective {
|
|
|
8569
8608
|
*/
|
|
8570
8609
|
deselect() {
|
|
8571
8610
|
this.selected = false;
|
|
8611
|
+
this.focused = false;
|
|
8572
8612
|
}
|
|
8573
8613
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxButtonDirective, deps: [{ token: i0.ElementRef }, { token: DisplayDensityToken, optional: true }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8574
8614
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.4", type: IgxButtonDirective, isStandalone: true, selector: "[igxButton]", inputs: { selected: ["selected", "selected", booleanAttribute], type: ["igxButton", "type"], label: ["igxLabel", "label"] }, outputs: { buttonSelected: "buttonSelected" }, host: { properties: { "class.igx-button": "this._cssClass", "class.igx-button--flat": "this.flat", "class.igx-button--contained": "this.contained", "class.igx-button--outlined": "this.outlined", "class.igx-button--fab": "this.fab", "style.--component-size": "this.componentSize" } }, usesInheritance: true, ngImport: i0 }); }
|
|
@@ -17447,6 +17487,11 @@ class IgxToggleDirective {
|
|
|
17447
17487
|
get hiddenClass() {
|
|
17448
17488
|
return this.collapsed;
|
|
17449
17489
|
}
|
|
17490
|
+
get hiddenWebkitClass() {
|
|
17491
|
+
const isSafari = this.platform?.isSafari;
|
|
17492
|
+
const browserVersion = this.platform?.browserVersion;
|
|
17493
|
+
return this.collapsed && isSafari && !!browserVersion && browserVersion < 17.5;
|
|
17494
|
+
}
|
|
17450
17495
|
/**
|
|
17451
17496
|
* @hidden
|
|
17452
17497
|
*/
|
|
@@ -17456,11 +17501,12 @@ class IgxToggleDirective {
|
|
|
17456
17501
|
/**
|
|
17457
17502
|
* @hidden
|
|
17458
17503
|
*/
|
|
17459
|
-
constructor(elementRef, cdr, overlayService, navigationService) {
|
|
17504
|
+
constructor(elementRef, cdr, overlayService, navigationService, platform) {
|
|
17460
17505
|
this.elementRef = elementRef;
|
|
17461
17506
|
this.cdr = cdr;
|
|
17462
17507
|
this.overlayService = overlayService;
|
|
17463
17508
|
this.navigationService = navigationService;
|
|
17509
|
+
this.platform = platform;
|
|
17464
17510
|
/**
|
|
17465
17511
|
* Emits an event after the toggle container is opened.
|
|
17466
17512
|
*
|
|
@@ -17737,8 +17783,8 @@ class IgxToggleDirective {
|
|
|
17737
17783
|
subscription.unsubscribe();
|
|
17738
17784
|
}
|
|
17739
17785
|
}
|
|
17740
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxOverlayService }, { token: IgxNavigationService, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17741
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.4", type: IgxToggleDirective, isStandalone: true, selector: "[igxToggle]", inputs: { id: "id" }, outputs: { opened: "opened", opening: "opening", closed: "closed", closing: "closing", appended: "appended" }, host: { properties: { "class.igx-toggle--hidden": "this.hiddenClass", "attr.aria-hidden": "this.hiddenClass", "class.igx-toggle": "this.defaultClass" } }, exportAs: ["toggle"], ngImport: i0 }); }
|
|
17786
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxToggleDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: IgxOverlayService }, { token: IgxNavigationService, optional: true }, { token: PlatformUtil, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17787
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.4", type: IgxToggleDirective, isStandalone: true, selector: "[igxToggle]", inputs: { id: "id" }, outputs: { opened: "opened", opening: "opening", closed: "closed", closing: "closing", appended: "appended" }, host: { properties: { "class.igx-toggle--hidden": "this.hiddenClass", "attr.aria-hidden": "this.hiddenClass", "class.igx-toggle--hidden-webkit": "this.hiddenWebkitClass", "class.igx-toggle": "this.defaultClass" } }, exportAs: ["toggle"], ngImport: i0 }); }
|
|
17742
17788
|
}
|
|
17743
17789
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxToggleDirective, decorators: [{
|
|
17744
17790
|
type: Directive,
|
|
@@ -17752,6 +17798,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
17752
17798
|
args: [IgxOverlayService]
|
|
17753
17799
|
}] }, { type: IgxNavigationService, decorators: [{
|
|
17754
17800
|
type: Optional
|
|
17801
|
+
}] }, { type: PlatformUtil, decorators: [{
|
|
17802
|
+
type: Optional
|
|
17755
17803
|
}] }], propDecorators: { opened: [{
|
|
17756
17804
|
type: Output
|
|
17757
17805
|
}], opening: [{
|
|
@@ -17770,6 +17818,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
17770
17818
|
}, {
|
|
17771
17819
|
type: HostBinding,
|
|
17772
17820
|
args: ['attr.aria-hidden']
|
|
17821
|
+
}], hiddenWebkitClass: [{
|
|
17822
|
+
type: HostBinding,
|
|
17823
|
+
args: ['class.igx-toggle--hidden-webkit']
|
|
17773
17824
|
}], defaultClass: [{
|
|
17774
17825
|
type: HostBinding,
|
|
17775
17826
|
args: ['class.igx-toggle']
|
|
@@ -23267,6 +23318,7 @@ class IgxAddRow extends IgxEditRow {
|
|
|
23267
23318
|
const args = super.createRowEditEventArgs(includeNewValue, event);
|
|
23268
23319
|
args.oldValue = null;
|
|
23269
23320
|
args.isAddRow = true;
|
|
23321
|
+
args.rowData = this.newData ?? this.data;
|
|
23270
23322
|
return args;
|
|
23271
23323
|
}
|
|
23272
23324
|
createRowEditDoneEventArgs(cachedRowData, event) {
|
|
@@ -31649,6 +31701,26 @@ class IgxMonthPickerComponent extends IgxCalendarBaseDirective {
|
|
|
31649
31701
|
this.viewDate = CalendarDay.from(this.viewDate).add('year', 15).native;
|
|
31650
31702
|
}
|
|
31651
31703
|
}
|
|
31704
|
+
/**
|
|
31705
|
+
* @hidden
|
|
31706
|
+
* @internal
|
|
31707
|
+
*/
|
|
31708
|
+
onActiveViewDecadeKB(date, event, activeViewIdx) {
|
|
31709
|
+
super.activeViewDecadeKB(event, activeViewIdx);
|
|
31710
|
+
if (this.platform.isActivationKey(event)) {
|
|
31711
|
+
this.viewDate = date;
|
|
31712
|
+
this.wrapper.nativeElement.focus();
|
|
31713
|
+
}
|
|
31714
|
+
}
|
|
31715
|
+
/**
|
|
31716
|
+
* @hidden
|
|
31717
|
+
* @internal
|
|
31718
|
+
*/
|
|
31719
|
+
onActiveViewDecade(event, date, activeViewIdx) {
|
|
31720
|
+
event.preventDefault();
|
|
31721
|
+
super.activeViewDecade(activeViewIdx);
|
|
31722
|
+
this.viewDate = date;
|
|
31723
|
+
}
|
|
31652
31724
|
/**
|
|
31653
31725
|
* @hidden
|
|
31654
31726
|
*/
|
|
@@ -31690,7 +31762,8 @@ class IgxMonthPickerComponent extends IgxCalendarBaseDirective {
|
|
|
31690
31762
|
selectYear(event) {
|
|
31691
31763
|
this.previousViewDate = this.viewDate;
|
|
31692
31764
|
this.viewDate = new Date(event.getFullYear(), event.getMonth(), event.getDate());
|
|
31693
|
-
this.activeView = IgxCalendarView.
|
|
31765
|
+
this.activeView = IgxCalendarView.Year;
|
|
31766
|
+
this.wrapper.nativeElement.focus();
|
|
31694
31767
|
}
|
|
31695
31768
|
/**
|
|
31696
31769
|
* @hidden
|
|
@@ -31737,13 +31810,202 @@ class IgxMonthPickerComponent extends IgxCalendarBaseDirective {
|
|
|
31737
31810
|
});
|
|
31738
31811
|
}
|
|
31739
31812
|
}
|
|
31813
|
+
onMouseDown(event) {
|
|
31814
|
+
event.stopPropagation();
|
|
31815
|
+
this.wrapper.nativeElement.focus();
|
|
31816
|
+
}
|
|
31817
|
+
/**
|
|
31818
|
+
* @hidden
|
|
31819
|
+
* @internal
|
|
31820
|
+
*/
|
|
31821
|
+
set showActiveDay(value) {
|
|
31822
|
+
this._showActiveDay = value;
|
|
31823
|
+
this.cdr.detectChanges();
|
|
31824
|
+
}
|
|
31825
|
+
get showActiveDay() {
|
|
31826
|
+
return this._showActiveDay;
|
|
31827
|
+
}
|
|
31828
|
+
get activeDescendant() {
|
|
31829
|
+
if (this.activeView === 'month') {
|
|
31830
|
+
return this.value?.getTime();
|
|
31831
|
+
}
|
|
31832
|
+
return this._activeDescendant ?? this.viewDate.getTime();
|
|
31833
|
+
}
|
|
31834
|
+
set activeDescendant(date) {
|
|
31835
|
+
this._activeDescendant = date.getTime();
|
|
31836
|
+
}
|
|
31837
|
+
get isDefaultView() {
|
|
31838
|
+
return this.activeView === IgxCalendarView.Year;
|
|
31839
|
+
}
|
|
31840
|
+
ngOnInit() {
|
|
31841
|
+
this.activeView = IgxCalendarView.Year;
|
|
31842
|
+
}
|
|
31740
31843
|
ngAfterViewInit() {
|
|
31844
|
+
this.keyboardNavigation
|
|
31845
|
+
.attachKeyboardHandlers(this.wrapper, this)
|
|
31846
|
+
.set("ArrowUp", this.onArrowUp)
|
|
31847
|
+
.set("ArrowDown", this.onArrowDown)
|
|
31848
|
+
.set("ArrowLeft", this.onArrowLeft)
|
|
31849
|
+
.set("ArrowRight", this.onArrowRight)
|
|
31850
|
+
.set("Enter", this.onEnter)
|
|
31851
|
+
.set(" ", this.onEnter)
|
|
31852
|
+
.set("Home", this.onHome)
|
|
31853
|
+
.set("End", this.onEnd)
|
|
31854
|
+
.set("PageUp", this.handlePageUp)
|
|
31855
|
+
.set("PageDown", this.handlePageDown);
|
|
31856
|
+
this.wrapper.nativeElement.addEventListener('focus', (event) => this.onWrapperFocus(event));
|
|
31857
|
+
this.wrapper.nativeElement.addEventListener('blur', (event) => this.onWrapperBlur(event));
|
|
31741
31858
|
this.activeView$.subscribe((view) => {
|
|
31742
31859
|
this.activeViewChanged.emit(view);
|
|
31860
|
+
this.viewDateChanged.emit({
|
|
31861
|
+
previousValue: this.previousViewDate,
|
|
31862
|
+
currentValue: this.viewDate
|
|
31863
|
+
});
|
|
31743
31864
|
});
|
|
31744
31865
|
}
|
|
31866
|
+
onWrapperFocus(event) {
|
|
31867
|
+
event.stopPropagation();
|
|
31868
|
+
this.showActiveDay = true;
|
|
31869
|
+
}
|
|
31870
|
+
onWrapperBlur(event) {
|
|
31871
|
+
event.stopPropagation();
|
|
31872
|
+
this.showActiveDay = false;
|
|
31873
|
+
this._onTouchedCallback();
|
|
31874
|
+
}
|
|
31875
|
+
handlePageUpDown(event, delta) {
|
|
31876
|
+
event.preventDefault();
|
|
31877
|
+
event.stopPropagation();
|
|
31878
|
+
if (this.isDefaultView && event.shiftKey) {
|
|
31879
|
+
this.viewDate = CalendarDay.from(this.viewDate).add('year', delta).native;
|
|
31880
|
+
this.cdr.detectChanges();
|
|
31881
|
+
}
|
|
31882
|
+
else {
|
|
31883
|
+
delta > 0 ? this.nextPage() : this.previousPage();
|
|
31884
|
+
}
|
|
31885
|
+
}
|
|
31886
|
+
handlePageUp(event) {
|
|
31887
|
+
this.handlePageUpDown(event, -1);
|
|
31888
|
+
}
|
|
31889
|
+
handlePageDown(event) {
|
|
31890
|
+
this.handlePageUpDown(event, 1);
|
|
31891
|
+
}
|
|
31892
|
+
onArrowUp(event) {
|
|
31893
|
+
if (this.isDefaultView) {
|
|
31894
|
+
this.monthsView.onKeydownArrowUp(event);
|
|
31895
|
+
}
|
|
31896
|
+
if (this.isDecadeView) {
|
|
31897
|
+
this.dacadeView.onKeydownArrowUp(event);
|
|
31898
|
+
}
|
|
31899
|
+
}
|
|
31900
|
+
onArrowDown(event) {
|
|
31901
|
+
if (this.isDefaultView) {
|
|
31902
|
+
this.monthsView.onKeydownArrowDown(event);
|
|
31903
|
+
}
|
|
31904
|
+
if (this.isDecadeView) {
|
|
31905
|
+
this.dacadeView.onKeydownArrowDown(event);
|
|
31906
|
+
}
|
|
31907
|
+
}
|
|
31908
|
+
onArrowLeft(event) {
|
|
31909
|
+
if (this.isDefaultView) {
|
|
31910
|
+
this.monthsView.onKeydownArrowLeft(event);
|
|
31911
|
+
}
|
|
31912
|
+
if (this.isDecadeView) {
|
|
31913
|
+
this.dacadeView.onKeydownArrowLeft(event);
|
|
31914
|
+
}
|
|
31915
|
+
}
|
|
31916
|
+
onArrowRight(event) {
|
|
31917
|
+
if (this.isDefaultView) {
|
|
31918
|
+
this.monthsView.onKeydownArrowRight(event);
|
|
31919
|
+
}
|
|
31920
|
+
if (this.isDecadeView) {
|
|
31921
|
+
this.dacadeView.onKeydownArrowRight(event);
|
|
31922
|
+
}
|
|
31923
|
+
}
|
|
31924
|
+
onEnter(event) {
|
|
31925
|
+
event.stopPropagation();
|
|
31926
|
+
if (this.isDefaultView) {
|
|
31927
|
+
this.monthsView.onKeydownEnter(event);
|
|
31928
|
+
}
|
|
31929
|
+
if (this.isDecadeView) {
|
|
31930
|
+
this.dacadeView.onKeydownEnter(event);
|
|
31931
|
+
}
|
|
31932
|
+
}
|
|
31933
|
+
onHome(event) {
|
|
31934
|
+
event.stopPropagation();
|
|
31935
|
+
if (this.isDefaultView) {
|
|
31936
|
+
this.monthsView.onKeydownHome(event);
|
|
31937
|
+
}
|
|
31938
|
+
if (this.isDecadeView) {
|
|
31939
|
+
this.dacadeView.onKeydownHome(event);
|
|
31940
|
+
}
|
|
31941
|
+
}
|
|
31942
|
+
onEnd(event) {
|
|
31943
|
+
event.stopPropagation();
|
|
31944
|
+
if (this.isDefaultView) {
|
|
31945
|
+
this.monthsView.onKeydownEnd(event);
|
|
31946
|
+
}
|
|
31947
|
+
if (this.isDecadeView) {
|
|
31948
|
+
this.dacadeView.onKeydownEnd(event);
|
|
31949
|
+
}
|
|
31950
|
+
}
|
|
31951
|
+
/**
|
|
31952
|
+
* @hidden
|
|
31953
|
+
* @internal
|
|
31954
|
+
*/
|
|
31955
|
+
ngOnDestroy() {
|
|
31956
|
+
this.keyboardNavigation.detachKeyboardHandlers();
|
|
31957
|
+
this.wrapper?.nativeElement.removeEventListener('focus', this.onWrapperFocus);
|
|
31958
|
+
this.wrapper?.nativeElement.removeEventListener('blur', this.onWrapperBlur);
|
|
31959
|
+
}
|
|
31960
|
+
/**
|
|
31961
|
+
* @hidden
|
|
31962
|
+
* @internal
|
|
31963
|
+
*/
|
|
31964
|
+
getPrevYearDate(date) {
|
|
31965
|
+
return CalendarDay.from(date).add('year', -1).native;
|
|
31966
|
+
}
|
|
31967
|
+
/**
|
|
31968
|
+
* @hidden
|
|
31969
|
+
* @internal
|
|
31970
|
+
*/
|
|
31971
|
+
getNextYearDate(date) {
|
|
31972
|
+
return CalendarDay.from(date).add('year', 1).native;
|
|
31973
|
+
}
|
|
31974
|
+
/**
|
|
31975
|
+
* Getter for the context object inside the calendar templates.
|
|
31976
|
+
*
|
|
31977
|
+
* @hidden
|
|
31978
|
+
* @internal
|
|
31979
|
+
*/
|
|
31980
|
+
getContext(i) {
|
|
31981
|
+
const date = CalendarDay.from(this.viewDate).add('month', i).native;
|
|
31982
|
+
return this.generateContext(date, i);
|
|
31983
|
+
}
|
|
31984
|
+
/**
|
|
31985
|
+
* Helper method building and returning the context object inside the calendar templates.
|
|
31986
|
+
*
|
|
31987
|
+
* @hidden
|
|
31988
|
+
* @internal
|
|
31989
|
+
*/
|
|
31990
|
+
generateContext(value, i) {
|
|
31991
|
+
const construct = (date, index) => ({
|
|
31992
|
+
index: index,
|
|
31993
|
+
date,
|
|
31994
|
+
...formatToParts(date, this.locale, this.formatOptions, [
|
|
31995
|
+
"era",
|
|
31996
|
+
"year",
|
|
31997
|
+
"month",
|
|
31998
|
+
"day",
|
|
31999
|
+
"weekday",
|
|
32000
|
+
]),
|
|
32001
|
+
});
|
|
32002
|
+
const formatObject = Array.isArray(value)
|
|
32003
|
+
? value.map((date, index) => construct(date, index))
|
|
32004
|
+
: construct(value, i);
|
|
32005
|
+
return { $implicit: formatObject };
|
|
32006
|
+
}
|
|
31745
32007
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxMonthPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
31746
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: IgxMonthPickerComponent, isStandalone: true, selector: "igx-month-picker", inputs: { id: "id" }, host: { listeners: { "keydown.pageup": "previousPage($event)", "keydown.pagedown": "nextPage($event)" }, properties: { "attr.id": "this.id", "class.igx-month-picker": "this.styleClass" } }, providers: [
|
|
32008
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: IgxMonthPickerComponent, isStandalone: true, selector: "igx-month-picker", inputs: { id: "id" }, host: { listeners: { "keydown.pageup": "previousPage($event)", "keydown.pagedown": "nextPage($event)", "mousedown": "onMouseDown($event)" }, properties: { "attr.id": "this.id", "class.igx-month-picker": "this.styleClass" } }, providers: [
|
|
31747
32009
|
{
|
|
31748
32010
|
multi: true,
|
|
31749
32011
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -31753,7 +32015,7 @@ class IgxMonthPickerComponent extends IgxCalendarBaseDirective {
|
|
|
31753
32015
|
multi: false,
|
|
31754
32016
|
provide: KeyboardNavigationService
|
|
31755
32017
|
},
|
|
31756
|
-
], viewQueries: [{ propertyName: "monthsView", first: true, predicate: ["months"], descendants: true, read: IgxMonthsViewComponent }, { propertyName: "dacadeView", first: true, predicate: ["decade"], descendants: true, read: IgxYearsViewComponent }, { propertyName: "daysView", first: true, predicate: ["days"], descendants: true, read: IgxDaysViewComponent }, { propertyName: "yearsBtn", first: true, predicate: ["yearsBtn"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--
|
|
32018
|
+
], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "monthsView", first: true, predicate: ["months"], descendants: true, read: IgxMonthsViewComponent }, { propertyName: "dacadeView", first: true, predicate: ["decade"], descendants: true, read: IgxYearsViewComponent }, { propertyName: "daysView", first: true, predicate: ["days"], descendants: true, read: IgxDaysViewComponent }, { propertyName: "yearsBtn", first: true, predicate: ["yearsBtn"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Previous arrow icon -->\n<ng-template #prevArrow let-obj>\n <igx-icon aria-hidden=\"true\">keyboard_arrow_left</igx-icon>\n</ng-template>\n\n<!-- Next arrow icon -->\n<ng-template #nextArrow let-obj>\n <igx-icon aria-hidden=\"true\">keyboard_arrow_right</igx-icon>\n</ng-template>\n\n<!-- Previous picker button -->\n<ng-template #prevPageButton let-obj>\n <div\n #prevPageBtn\n tabindex=\"0\"\n class=\"igx-calendar-picker__prev\"\n role=\"button\"\n [attr.aria-label]=\"prevNavLabel((getPrevYearDate(viewDate) | date: 'YYYY'))\"\n data-action=\"prev\"\n igxCalendarScrollPage\n (mousedown)=\"previousPage()\"\n (keydown)=\"changePageKB($event, false)\"\n >\n <ng-container *ngTemplateOutlet=\"prevArrow\"></ng-container>\n </div>\n</ng-template>\n\n<!-- Next picker button -->\n<ng-template #nextPageButton let-obj>\n <div\n #nextPageBtn\n tabindex=\"0\"\n class=\"igx-calendar-picker__next\"\n role=\"button\"\n [attr.aria-label]=\"nextNavLabel((getNextYearDate(viewDate) | date: 'YYYY'))\"\n data-action=\"next\"\n igxCalendarScrollPage\n (mousedown)=\"nextPage()\"\n (keydown)=\"changePageKB($event)\"\n >\n <ng-container *ngTemplateOutlet=\"nextArrow\"></ng-container>\n </div>\n</ng-template>\n\n<!-- Year -->\n<ng-template #defaultYear let-obj>\n <span *ngIf=\"activeView === 'year'\" class=\"igx-calendar__aria-off-screen\" aria-live=\"polite\">{{ formattedYear(obj.date) }}</span>\n <span\n #yearsBtn\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"(obj.date | date: 'yyyy') + ', ' + resourceStrings.igx_calendar_select_year\"\n (keydown)=\"onActiveViewDecadeKB(obj.date, $event, obj.index)\"\n (mousedown)=\"onActiveViewDecade($event, obj.date, obj.index)\"\n class=\"igx-calendar-picker__date\">\n {{ formattedYear(obj.date) }}\n </span>\n</ng-template>\n\n<!-- Decade -->\n<ng-template #defaultDecade>\n <span>{{ getDecadeRange().start }} - {{ getDecadeRange().end }}</span>\n</ng-template>\n\n<!-- PICKER IN MONTHS -->\n<ng-template #calendarYearPicker>\n <section class=\"igx-calendar-picker\">\n <div class=\"igx-calendar-picker__dates\">\n <ng-container\n *ngTemplateOutlet=\"defaultYear; context: getContext(0)\">\n </ng-container>\n </div>\n <div class=\"igx-calendar-picker__nav\">\n <ng-container *ngTemplateOutlet=\"prevPageButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"nextPageButton\"></ng-container>\n </div>\n </section>\n</ng-template>\n\n<!-- PICKER IN YEARS -->\n<ng-template #calendarDecadePicker>\n <section class=\"igx-calendar-picker\">\n <div class=\"igx-calendar-picker__dates\" aria-live=\"polite\">\n <ng-container\n *ngTemplateOutlet=\"defaultDecade;\">\n </ng-container>\n </div>\n <div class=\"igx-calendar-picker__nav\">\n <ng-container *ngTemplateOutlet=\"prevPageButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"nextPageButton\"></ng-container>\n </div>\n </section>\n</ng-template>\n\n<div\n #wrapper\n [tabIndex]=\"0\"\n class=\"igx-calendar__wrapper\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [attr.aria-multiselectable]=\"selection !== 'single'\"\n aria-labelledby=\"calendar-desc\"\n role=\"grid\"\n >\n <caption id=\"calendar-desc\" tabindex=\"-1\" class=\"igx-calendar__aria-off-screen\">\n {{ resourceStrings.igx_calendar_singular_single_selection}}\n </caption>\n\n <section class=\"igx-calendar__pickers\">\n <ng-container *ngIf=\"isDefaultView\">\n <ng-container *ngTemplateOutlet=\"calendarYearPicker\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isDecadeView\">\n <ng-container *ngTemplateOutlet=\"calendarDecadePicker\"></ng-container>\n </ng-container>\n </section>\n\n <section class=\"igx-calendar__body\">\n <ng-container *ngIf=\"isDefaultView\">\n <igx-months-view\n #months\n role=\"rowgroup\"\n [tabIndex]=\"-1\"\n [date]=\"viewDate\"\n [locale]=\"locale\"\n [formatView]=\"formatViews.month\"\n [monthFormat]=\"formatOptions.month\"\n [showActive]=\"showActiveDay\"\n [standalone]=\"false\"\n (swiperight)=\"previousPage()\"\n (swipeleft)=\"nextPage()\"\n (selected)=\"selectMonth($event)\"\n (pageChanged)=\"updateDate($event)\"\n (mousedown)=\"$event.preventDefault()\">\n >\n </igx-months-view>\n </ng-container>\n\n <ng-container *ngIf=\"isDecadeView\">\n <igx-years-view\n #decade\n role=\"rowgroup\"\n [tabIndex]=\"-1\"\n [date]=\"viewDate\"\n [locale]=\"locale\"\n [formatView]=\"formatViews.year\"\n [yearFormat]=\"formatOptions.year\"\n [showActive]=\"showActiveDay\"\n [standalone]=\"false\"\n (swiperight)=\"previousPage()\"\n (swipeleft)=\"nextPage()\"\n (selected)=\"selectYear($event)\"\n (pageChanged)=\"updateDate($event)\"\n (mousedown)=\"$event.preventDefault()\"\n >\n </igx-years-view>\n </ng-container>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "component", type: IgxMonthsViewComponent, selector: "igx-months-view", inputs: ["id", "standalone", "monthFormat", "formatView"] }, { kind: "component", type: IgxYearsViewComponent, selector: "igx-years-view", inputs: ["standalone", "yearFormat"] }] }); }
|
|
31757
32019
|
}
|
|
31758
32020
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgxMonthPickerComponent, decorators: [{
|
|
31759
32021
|
type: Component,
|
|
@@ -31771,15 +32033,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
31771
32033
|
NgIf,
|
|
31772
32034
|
NgStyle,
|
|
31773
32035
|
NgTemplateOutlet,
|
|
32036
|
+
DatePipe,
|
|
31774
32037
|
IgxIconComponent,
|
|
31775
32038
|
IgxMonthsViewComponent,
|
|
31776
32039
|
IgxYearsViewComponent,
|
|
31777
|
-
], template: "<!--
|
|
32040
|
+
], template: "<!-- Previous arrow icon -->\n<ng-template #prevArrow let-obj>\n <igx-icon aria-hidden=\"true\">keyboard_arrow_left</igx-icon>\n</ng-template>\n\n<!-- Next arrow icon -->\n<ng-template #nextArrow let-obj>\n <igx-icon aria-hidden=\"true\">keyboard_arrow_right</igx-icon>\n</ng-template>\n\n<!-- Previous picker button -->\n<ng-template #prevPageButton let-obj>\n <div\n #prevPageBtn\n tabindex=\"0\"\n class=\"igx-calendar-picker__prev\"\n role=\"button\"\n [attr.aria-label]=\"prevNavLabel((getPrevYearDate(viewDate) | date: 'YYYY'))\"\n data-action=\"prev\"\n igxCalendarScrollPage\n (mousedown)=\"previousPage()\"\n (keydown)=\"changePageKB($event, false)\"\n >\n <ng-container *ngTemplateOutlet=\"prevArrow\"></ng-container>\n </div>\n</ng-template>\n\n<!-- Next picker button -->\n<ng-template #nextPageButton let-obj>\n <div\n #nextPageBtn\n tabindex=\"0\"\n class=\"igx-calendar-picker__next\"\n role=\"button\"\n [attr.aria-label]=\"nextNavLabel((getNextYearDate(viewDate) | date: 'YYYY'))\"\n data-action=\"next\"\n igxCalendarScrollPage\n (mousedown)=\"nextPage()\"\n (keydown)=\"changePageKB($event)\"\n >\n <ng-container *ngTemplateOutlet=\"nextArrow\"></ng-container>\n </div>\n</ng-template>\n\n<!-- Year -->\n<ng-template #defaultYear let-obj>\n <span *ngIf=\"activeView === 'year'\" class=\"igx-calendar__aria-off-screen\" aria-live=\"polite\">{{ formattedYear(obj.date) }}</span>\n <span\n #yearsBtn\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"(obj.date | date: 'yyyy') + ', ' + resourceStrings.igx_calendar_select_year\"\n (keydown)=\"onActiveViewDecadeKB(obj.date, $event, obj.index)\"\n (mousedown)=\"onActiveViewDecade($event, obj.date, obj.index)\"\n class=\"igx-calendar-picker__date\">\n {{ formattedYear(obj.date) }}\n </span>\n</ng-template>\n\n<!-- Decade -->\n<ng-template #defaultDecade>\n <span>{{ getDecadeRange().start }} - {{ getDecadeRange().end }}</span>\n</ng-template>\n\n<!-- PICKER IN MONTHS -->\n<ng-template #calendarYearPicker>\n <section class=\"igx-calendar-picker\">\n <div class=\"igx-calendar-picker__dates\">\n <ng-container\n *ngTemplateOutlet=\"defaultYear; context: getContext(0)\">\n </ng-container>\n </div>\n <div class=\"igx-calendar-picker__nav\">\n <ng-container *ngTemplateOutlet=\"prevPageButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"nextPageButton\"></ng-container>\n </div>\n </section>\n</ng-template>\n\n<!-- PICKER IN YEARS -->\n<ng-template #calendarDecadePicker>\n <section class=\"igx-calendar-picker\">\n <div class=\"igx-calendar-picker__dates\" aria-live=\"polite\">\n <ng-container\n *ngTemplateOutlet=\"defaultDecade;\">\n </ng-container>\n </div>\n <div class=\"igx-calendar-picker__nav\">\n <ng-container *ngTemplateOutlet=\"prevPageButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"nextPageButton\"></ng-container>\n </div>\n </section>\n</ng-template>\n\n<div\n #wrapper\n [tabIndex]=\"0\"\n class=\"igx-calendar__wrapper\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [attr.aria-multiselectable]=\"selection !== 'single'\"\n aria-labelledby=\"calendar-desc\"\n role=\"grid\"\n >\n <caption id=\"calendar-desc\" tabindex=\"-1\" class=\"igx-calendar__aria-off-screen\">\n {{ resourceStrings.igx_calendar_singular_single_selection}}\n </caption>\n\n <section class=\"igx-calendar__pickers\">\n <ng-container *ngIf=\"isDefaultView\">\n <ng-container *ngTemplateOutlet=\"calendarYearPicker\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isDecadeView\">\n <ng-container *ngTemplateOutlet=\"calendarDecadePicker\"></ng-container>\n </ng-container>\n </section>\n\n <section class=\"igx-calendar__body\">\n <ng-container *ngIf=\"isDefaultView\">\n <igx-months-view\n #months\n role=\"rowgroup\"\n [tabIndex]=\"-1\"\n [date]=\"viewDate\"\n [locale]=\"locale\"\n [formatView]=\"formatViews.month\"\n [monthFormat]=\"formatOptions.month\"\n [showActive]=\"showActiveDay\"\n [standalone]=\"false\"\n (swiperight)=\"previousPage()\"\n (swipeleft)=\"nextPage()\"\n (selected)=\"selectMonth($event)\"\n (pageChanged)=\"updateDate($event)\"\n (mousedown)=\"$event.preventDefault()\">\n >\n </igx-months-view>\n </ng-container>\n\n <ng-container *ngIf=\"isDecadeView\">\n <igx-years-view\n #decade\n role=\"rowgroup\"\n [tabIndex]=\"-1\"\n [date]=\"viewDate\"\n [locale]=\"locale\"\n [formatView]=\"formatViews.year\"\n [yearFormat]=\"formatOptions.year\"\n [showActive]=\"showActiveDay\"\n [standalone]=\"false\"\n (swiperight)=\"previousPage()\"\n (swipeleft)=\"nextPage()\"\n (selected)=\"selectYear($event)\"\n (pageChanged)=\"updateDate($event)\"\n (mousedown)=\"$event.preventDefault()\"\n >\n </igx-years-view>\n </ng-container>\n </section>\n</div>\n" }]
|
|
31778
32041
|
}], propDecorators: { id: [{
|
|
31779
32042
|
type: HostBinding,
|
|
31780
32043
|
args: ["attr.id"]
|
|
31781
32044
|
}, {
|
|
31782
32045
|
type: Input
|
|
32046
|
+
}], wrapper: [{
|
|
32047
|
+
type: ViewChild,
|
|
32048
|
+
args: ["wrapper"]
|
|
31783
32049
|
}], styleClass: [{
|
|
31784
32050
|
type: HostBinding,
|
|
31785
32051
|
args: ["class.igx-month-picker"]
|
|
@@ -31801,6 +32067,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
31801
32067
|
}], nextPage: [{
|
|
31802
32068
|
type: HostListener,
|
|
31803
32069
|
args: ["keydown.pagedown", ["$event"]]
|
|
32070
|
+
}], onMouseDown: [{
|
|
32071
|
+
type: HostListener,
|
|
32072
|
+
args: ['mousedown', ['$event']]
|
|
31804
32073
|
}] } });
|
|
31805
32074
|
|
|
31806
32075
|
/* NOTE: Calendar directives collection for ease-of-use import in standalone components scenario */
|
|
@@ -74027,18 +74296,22 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
|
|
|
74027
74296
|
const separator = this.pivotKeys.columnDimensionSeparator;
|
|
74028
74297
|
const dataArr = fields.map(x => x.split(separator)).sort(x => x.length);
|
|
74029
74298
|
const hierarchy = new Map();
|
|
74299
|
+
const columnDimensions = PivotUtil.flatten(this.columnDimensions);
|
|
74030
74300
|
dataArr.forEach(arr => {
|
|
74031
74301
|
let currentHierarchy = hierarchy;
|
|
74032
74302
|
const path = [];
|
|
74303
|
+
let index = 0;
|
|
74033
74304
|
for (const val of arr) {
|
|
74034
74305
|
path.push(val);
|
|
74035
74306
|
const newPath = path.join(separator);
|
|
74036
74307
|
let targetHierarchy = currentHierarchy.get(newPath);
|
|
74037
74308
|
if (!targetHierarchy) {
|
|
74038
|
-
|
|
74309
|
+
const currentColumnDimension = columnDimensions[index];
|
|
74310
|
+
currentHierarchy.set(newPath, { value: newPath, expandable: !!currentColumnDimension.childLevel, children: new Map(), dimension: currentColumnDimension });
|
|
74039
74311
|
targetHierarchy = currentHierarchy.get(newPath);
|
|
74040
74312
|
}
|
|
74041
74313
|
currentHierarchy = targetHierarchy.children;
|
|
74314
|
+
index++;
|
|
74042
74315
|
}
|
|
74043
74316
|
});
|
|
74044
74317
|
return hierarchy;
|
|
@@ -80460,6 +80733,7 @@ class IgxRowIslandComponent extends IgxHierarchicalGridBaseDirective {
|
|
|
80460
80733
|
return false;
|
|
80461
80734
|
});
|
|
80462
80735
|
this._childColumns = topCols;
|
|
80736
|
+
this.updateColumns(this._childColumns);
|
|
80463
80737
|
this.rowIslandAPI.getChildGrids().forEach((grid) => {
|
|
80464
80738
|
grid.createColumnsList(this._childColumns);
|
|
80465
80739
|
if (!document.body.contains(grid.nativeElement)) {
|