@eui/mobile-core 16.7.0-snapshot-1709561696755 → 16.7.0-snapshot-1709715271617

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.
Files changed (27) hide show
  1. package/docs/components/EuimMultiselectComponent.html +24 -0
  2. package/docs/dependencies.html +2 -2
  3. package/docs/js/search/search_index.js +2 -2
  4. package/esm2022/lib/components/directives/euim-item-divider/euim-item-divider.directive.mjs +4 -1
  5. package/esm2022/lib/components/directives/euim-list-header/euim-list-header.directive.mjs +4 -1
  6. package/esm2022/lib/components/euim-chip-selector/euim-chip-selector.component.mjs +4 -2
  7. package/esm2022/lib/components/euim-menu/euim-menu.component.mjs +4 -1
  8. package/esm2022/lib/components/euim-multiselect/euim-multiselect-all/euim-multiselect-all.directive.mjs +7 -1
  9. package/esm2022/lib/components/euim-multiselect/euim-multiselect-filter/euim-multiselect-filter.component.mjs +14 -6
  10. package/esm2022/lib/components/euim-multiselect/euim-multiselect-select-field/euim-multiselect-select-field.directive.mjs +7 -1
  11. package/esm2022/lib/components/euim-multiselect/euim-multiselect.component.mjs +27 -3
  12. package/esm2022/lib/components/euim-slider/euim-slider.component.mjs +4 -1
  13. package/esm2022/lib/components/layout/euim-info-screen/euim-info-screen.component.mjs +4 -1
  14. package/fesm2022/eui-mobile-core.mjs +67 -8
  15. package/fesm2022/eui-mobile-core.mjs.map +1 -1
  16. package/lib/components/directives/euim-item-divider/euim-item-divider.directive.d.ts.map +1 -1
  17. package/lib/components/directives/euim-list-header/euim-list-header.directive.d.ts.map +1 -1
  18. package/lib/components/euim-chip-selector/euim-chip-selector.component.d.ts.map +1 -1
  19. package/lib/components/euim-menu/euim-menu.component.d.ts.map +1 -1
  20. package/lib/components/euim-multiselect/euim-multiselect-all/euim-multiselect-all.directive.d.ts.map +1 -1
  21. package/lib/components/euim-multiselect/euim-multiselect-filter/euim-multiselect-filter.component.d.ts.map +1 -1
  22. package/lib/components/euim-multiselect/euim-multiselect-select-field/euim-multiselect-select-field.directive.d.ts.map +1 -1
  23. package/lib/components/euim-multiselect/euim-multiselect.component.d.ts +3 -1
  24. package/lib/components/euim-multiselect/euim-multiselect.component.d.ts.map +1 -1
  25. package/lib/components/euim-slider/euim-slider.component.d.ts.map +1 -1
  26. package/lib/components/layout/euim-info-screen/euim-info-screen.component.d.ts.map +1 -1
  27. package/package.json +1 -1
@@ -697,6 +697,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
697
697
  args: ['class']
698
698
  }] } });
699
699
 
700
+ /**
701
+ * @deprecated It is removed. Use {@link euim-sidebar} instead.
702
+ */
700
703
  class EuimMenuComponent {
701
704
  constructor(navCtrl) {
702
705
  this.navCtrl = navCtrl;
@@ -1091,6 +1094,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1091
1094
  args: ['class']
1092
1095
  }] } });
1093
1096
 
1097
+ /**
1098
+ * @deprecated It will be removed on v17 release. Use {@link ion-list-header} instead.
1099
+ */
1094
1100
  class EuimListHeaderDirective {
1095
1101
  constructor() {
1096
1102
  this.className = 'euim-list-divider';
@@ -1131,6 +1137,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1131
1137
  }]
1132
1138
  }] });
1133
1139
 
1140
+ /**
1141
+ * @deprecated It will be removed on v17 release. Use {@link euimDivider} instead if there is a case with no separator. For all othere cases ion-item-divider will be used.
1142
+ */
1134
1143
  class EuimItemDividerDirective {
1135
1144
  constructor() {
1136
1145
  this.className = 'euim-item-divider';
@@ -1782,6 +1791,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1782
1791
  }]
1783
1792
  }] });
1784
1793
 
1794
+ /**
1795
+ * @deprecated It was removed in v16. Use {@link euim-slider-info-screen} instead.
1796
+ */
1785
1797
  class EuimInfoScreenComponent {
1786
1798
  constructor() {
1787
1799
  this.className = 'euim-info-screen';
@@ -2811,6 +2823,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2811
2823
  }]
2812
2824
  }] });
2813
2825
 
2826
+ /**
2827
+ * @deprecated It was removed in v16. Use {@link euim-slider-info-screen} instead.
2828
+ */
2814
2829
  class EuimSliderComponent {
2815
2830
  constructor(renderer, gestureCtrl, sliderElement, cdr) {
2816
2831
  this.renderer = renderer;
@@ -3416,7 +3431,9 @@ class EuimChipSelectorComponent {
3416
3431
  this.updateChipsAndFilters();
3417
3432
  }
3418
3433
  ngOnChanges(changes) {
3419
- if (this.euimChipSelectorItemComponent && this.euimChipSelectorItemComponent.length > 0) {
3434
+ if (this.euimChipSelectorItemComponent && this.euimChipSelectorItemComponent.length > 0 &&
3435
+ changes.selectedChips.currentValue && changes.selectedChips.currentValue.length === 1 &&
3436
+ changes.selectedChips.currentValue.every((value, index) => value === '0')) {
3420
3437
  this.clearFiltersAndSelectAll();
3421
3438
  }
3422
3439
  }
@@ -3804,9 +3821,14 @@ class EuimMultiselectComponent {
3804
3821
  constructor(ref) {
3805
3822
  this.ref = ref;
3806
3823
  this.className = 'euim-multiselect';
3824
+ this.euimKeepSelection = false;
3807
3825
  this.numberOfSelected = 0;
3808
3826
  }
3809
3827
  ngOnInit() {
3828
+ if (this.euimKeepSelection) {
3829
+ this.currentDataProvider =
3830
+ [...this.currentDataProvider]?.map((obj, index) => ({ ...obj, _id: index + 1 }));
3831
+ }
3810
3832
  this.initialDataProvider = this.currentDataProvider;
3811
3833
  }
3812
3834
  selectAllItems() {
@@ -3824,7 +3846,15 @@ class EuimMultiselectComponent {
3824
3846
  }
3825
3847
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3826
3848
  selectedItems() {
3827
- return this.currentDataProvider?.filter(item => item.selected);
3849
+ if (this.euimKeepSelection) {
3850
+ const filteredItemsWithoutId = this.currentDataProvider
3851
+ ?.filter(item => item.selected)
3852
+ .map(({ _id, ...rest }) => rest);
3853
+ return filteredItemsWithoutId;
3854
+ }
3855
+ else {
3856
+ return this.currentDataProvider?.filter(item => item.selected);
3857
+ }
3828
3858
  }
3829
3859
  selectByIndex(index, state = true) {
3830
3860
  if (index < this.currentDataProvider?.length) {
@@ -3838,12 +3868,19 @@ class EuimMultiselectComponent {
3838
3868
  if (changes.currentDataProvider &&
3839
3869
  changes.currentDataProvider.currentValue
3840
3870
  && changes.currentDataProvider.previousValue === null) {
3871
+ if (this.euimKeepSelection) {
3872
+ this.currentDataProvider =
3873
+ [...this.currentDataProvider]?.map((obj, index) => ({ ...obj, _id: index + 1 }));
3874
+ }
3841
3875
  this.initialDataProvider = changes.currentDataProvider.currentValue;
3842
3876
  }
3843
3877
  }
3844
3878
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EuimMultiselectComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
3845
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EuimMultiselectComponent, selector: "euim-multiselect", inputs: { currentDataProvider: "currentDataProvider", toolbarTitle: "toolbarTitle" }, host: { properties: { "class": "this.className" } }, usesOnChanges: true, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"light\" class=\"euim-multiselect__toolbar\">\n <ng-content select=\"euim-multiselect-toolbar\"></ng-content>\n <ion-toolbar color=\"light\">\n <ng-content select=\"euim-multiselect-filter\"></ng-content>\n </ion-toolbar>\n </ion-toolbar>\n</ion-header>\n\n<ng-container *ngIf=\"currentDataProvider?.length > 0\">\n <ng-content select=\"euim-multiselect-list\">\n\n </ng-content>\n</ng-container>\n\n<ng-container *ngIf=\"currentDataProvider?.length === 0\">\n <ng-content select=\"euim-empty-list-placeholder\">\n </ng-content>\n</ng-container>\n\n\n\n", styles: [".euim-multiselect__toolbar{color:var(--eui-base-color-grey-100)}.euim-multiselect__toolbar--title{font:normal normal 400 1.25rem/1.5rem var(--eui-base-font-family);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3879
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EuimMultiselectComponent, selector: "euim-multiselect", inputs: { currentDataProvider: "currentDataProvider", toolbarTitle: "toolbarTitle", euimKeepSelection: "euimKeepSelection" }, host: { properties: { "class": "this.className" } }, usesOnChanges: true, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"light\" class=\"euim-multiselect__toolbar\">\n <ng-content select=\"euim-multiselect-toolbar\"></ng-content>\n <ion-toolbar color=\"light\">\n <ng-content select=\"euim-multiselect-filter\"></ng-content>\n </ion-toolbar>\n </ion-toolbar>\n</ion-header>\n\n<ng-container *ngIf=\"currentDataProvider?.length > 0\">\n <ng-content select=\"euim-multiselect-list\">\n\n </ng-content>\n</ng-container>\n\n<ng-container *ngIf=\"currentDataProvider?.length === 0\">\n <ng-content select=\"euim-empty-list-placeholder\">\n </ng-content>\n</ng-container>\n\n\n\n", styles: [".euim-multiselect__toolbar{color:var(--eui-base-color-grey-100)}.euim-multiselect__toolbar--title{font:normal normal 400 1.25rem/1.5rem var(--eui-base-font-family);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
3846
3880
  }
3881
+ __decorate([
3882
+ coerceBoolean
3883
+ ], EuimMultiselectComponent.prototype, "euimKeepSelection", void 0);
3847
3884
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EuimMultiselectComponent, decorators: [{
3848
3885
  type: Component,
3849
3886
  args: [{ selector: 'euim-multiselect', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ion-header>\n <ion-toolbar color=\"light\" class=\"euim-multiselect__toolbar\">\n <ng-content select=\"euim-multiselect-toolbar\"></ng-content>\n <ion-toolbar color=\"light\">\n <ng-content select=\"euim-multiselect-filter\"></ng-content>\n </ion-toolbar>\n </ion-toolbar>\n</ion-header>\n\n<ng-container *ngIf=\"currentDataProvider?.length > 0\">\n <ng-content select=\"euim-multiselect-list\">\n\n </ng-content>\n</ng-container>\n\n<ng-container *ngIf=\"currentDataProvider?.length === 0\">\n <ng-content select=\"euim-empty-list-placeholder\">\n </ng-content>\n</ng-container>\n\n\n\n", styles: [".euim-multiselect__toolbar{color:var(--eui-base-color-grey-100)}.euim-multiselect__toolbar--title{font:normal normal 400 1.25rem/1.5rem var(--eui-base-font-family);font-weight:700}\n"] }]
@@ -3854,6 +3891,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3854
3891
  type: Input
3855
3892
  }], toolbarTitle: [{
3856
3893
  type: Input
3894
+ }], euimKeepSelection: [{
3895
+ type: Input
3857
3896
  }] } });
3858
3897
 
3859
3898
  class EuimMultiselectFilterComponent {
@@ -3864,12 +3903,20 @@ class EuimMultiselectFilterComponent {
3864
3903
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3865
3904
  handleChange(event) {
3866
3905
  const query = event.detail.value.toLowerCase();
3867
- this.multiselect.selectAll = false;
3868
- this.multiselect.indeterminate = false;
3869
- this.multiselect.currentDataProvider?.forEach((item) => (item.selected = false));
3906
+ if (!this.multiselect.euimKeepSelection) {
3907
+ this.multiselect.selectAll = false;
3908
+ this.multiselect.indeterminate = false;
3909
+ this.multiselect.currentDataProvider?.forEach((item) => (item.selected = false));
3910
+ }
3870
3911
  if (query === '') {
3871
- this.multiselect.currentDataProvider =
3872
- this.multiselect.initialDataProvider;
3912
+ if (!this.multiselect.euimKeepSelection) {
3913
+ this.multiselect.currentDataProvider =
3914
+ this.multiselect.initialDataProvider;
3915
+ }
3916
+ else {
3917
+ this.multiselect.currentDataProvider =
3918
+ this.multiselect.initialDataProvider;
3919
+ }
3873
3920
  }
3874
3921
  else {
3875
3922
  this.multiselect.currentDataProvider =
@@ -3899,9 +3946,15 @@ class EuimMultiselectAllDirective {
3899
3946
  this.euimMulti.indeterminate = false;
3900
3947
  if (event.detail.checked) {
3901
3948
  this.euimMulti.numberOfSelected = this.euimMulti.currentDataProvider?.length;
3949
+ if (this.euimMulti.euimKeepSelection) {
3950
+ this.euimMulti.initialDataProvider?.forEach((item) => (item.selected = true));
3951
+ }
3902
3952
  }
3903
3953
  else {
3904
3954
  this.euimMulti.numberOfSelected = 0;
3955
+ if (this.euimMulti.euimKeepSelection) {
3956
+ this.euimMulti.initialDataProvider?.forEach((item) => (item.selected = false));
3957
+ }
3905
3958
  }
3906
3959
  }
3907
3960
  get indeterminate() {
@@ -3955,6 +4008,12 @@ class EuimMultiselectSelectFieldDirective {
3955
4008
  }
3956
4009
  onIonChange(event) {
3957
4010
  this.item.selected = event.detail.checked;
4011
+ if (this.euimMulti.euimKeepSelection) {
4012
+ const foundItem = this.euimMulti.initialDataProvider.find(item => item._id === this.item);
4013
+ if (foundItem) {
4014
+ foundItem._id = event.detail.checked;
4015
+ }
4016
+ }
3958
4017
  const isSelectAll = this.euimMulti.currentDataProvider?.every((item) => item.selected);
3959
4018
  this.euimMulti.indeterminate = !isSelectAll && this.euimMulti.currentDataProvider?.some((item) => item.selected);
3960
4019
  if (!this.euimMulti.indeterminate) {