@sumaris-net/ngx-components 18.2.20 → 18.2.22

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 (26) hide show
  1. package/doc/changelog.md +5 -0
  2. package/esm2022/src/app/core/form/form.utils.mjs +3 -2
  3. package/esm2022/src/app/core/form/properties/properties.form.mjs +1 -1
  4. package/esm2022/src/app/core/table/testing/table.testing.mjs +1 -1
  5. package/esm2022/src/app/core/table/testing/table2.testing.mjs +1 -1
  6. package/esm2022/src/app/shared/form/field.component.mjs +5 -5
  7. package/esm2022/src/app/shared/graph/graph-colors.mjs +3 -2
  8. package/esm2022/src/app/shared/inputs.mjs +19 -11
  9. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +1 -1
  10. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +156 -46
  11. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +4 -4
  12. package/esm2022/src/app/shared/material/chips/material.chips.mjs +3 -3
  13. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +24 -21
  14. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +1 -1
  15. package/esm2022/src/app/shared/regexps.mjs +3 -3
  16. package/fesm2022/sumaris-net.ngx-components.mjs +211 -87
  17. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  18. package/package.json +1 -1
  19. package/src/app/core/form/form.utils.d.ts +2 -1
  20. package/src/app/shared/form/field.component.d.ts +2 -2
  21. package/src/app/shared/graph/graph-colors.d.ts +1 -1
  22. package/src/app/shared/inputs.d.ts +4 -3
  23. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +14 -0
  24. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +10 -1
  25. package/src/app/shared/material/swipe/material.swipe.d.ts +2 -4
  26. package/src/assets/manifest.json +1 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sumaris-net/ngx-components",
3
3
  "description": "SUMARiS Angular components",
4
- "version": "18.2.20",
4
+ "version": "18.2.22",
5
5
  "author": "contact@e-is.pro",
6
6
  "license": "AGPL-3.0",
7
7
  "readmeFilename": "README.md",
@@ -1,5 +1,5 @@
1
1
  import { AbstractControl } from '@angular/forms';
2
- import { filterNumberInput, selectInputContent } from '../../shared/inputs';
2
+ import { filterNumberInput, selectInputContent, selectInputContentFromEvent } from '../../shared/inputs';
3
3
  import { WaitForOptions } from '../../shared/observables';
4
4
  import { addValueInArray, clearValueInArray, copyEntity2Form, disableControl, disableControls, enableControl, enableControls, filterFormErrors, filterFormErrorsByPath, filterFormErrorsByPrefix, getControlFromPath, getFormErrors, getFormValueFromEntity, logFormErrors, markAllAsTouched, markAsUntouched, removeValueInArray, resizeArray, setControlEnabled, setControlsEnabled, updateValueAndValidity, waitIdle, waitWhilePending } from '../../shared/forms';
5
5
  export declare type IAppFormGetter = () => IAppForm;
@@ -215,6 +215,7 @@ export declare class AppFormUtils {
215
215
  static disableControls: typeof disableControls;
216
216
  static setControlEnabled: typeof setControlEnabled;
217
217
  static setControlsEnabled: typeof setControlsEnabled;
218
+ static selectInputContentFromEvent: typeof selectInputContentFromEvent;
218
219
  static selectInputContent: typeof selectInputContent;
219
220
  /**
220
221
  * @deprecated use markAllAsTouched() instead (naming was wrong)
@@ -2,7 +2,7 @@ import { ChangeDetectorRef, ElementRef, EventEmitter, Injector, OnInit } from '@
2
2
  import { ControlValueAccessor, FormGroupDirective, UntypedFormControl } from '@angular/forms';
3
3
  import { AppFloatLabelType, DisplayFn, FormFieldDefinition, FormFieldType } from './field.model';
4
4
  import { TranslateService } from '@ngx-translate/core';
5
- import { filterNumberInput, selectInputContent } from '../inputs';
5
+ import { filterNumberInput, selectInputContentFromEvent } from '../inputs';
6
6
  import { Property } from '../types';
7
7
  import { ThemePalette } from '@angular/material/core';
8
8
  import { PredefinedColors } from '@ionic/core';
@@ -54,7 +54,7 @@ export declare class AppFormField implements OnInit, ControlValueAccessor {
54
54
  filterAlphanumericalInput(event: KeyboardEvent): void;
55
55
  focus(): void;
56
56
  filterNumberInput: typeof filterNumberInput;
57
- selectInputContent: typeof selectInputContent;
57
+ selectInputContentFromEvent: typeof selectInputContentFromEvent;
58
58
  getDisplayValueFn(definition: FormFieldDefinition): DisplayFn;
59
59
  getColorContrast(color: string): string | undefined;
60
60
  /**
@@ -47,7 +47,7 @@ export declare class ColorScale {
47
47
  /**
48
48
  * Create an array with the given color
49
49
  **/
50
- static fix(length?: number, colorName?: ColorName): any[];
50
+ static fix(length?: number, colorName?: ColorName): string[];
51
51
  private _min;
52
52
  private _max;
53
53
  private _rangeSize;
@@ -1,7 +1,8 @@
1
1
  import { ElementRef, QueryList } from '@angular/core';
2
2
  import { FocusableElement } from './focusable';
3
- export declare function selectInputContent(event: Event): boolean;
4
- export declare function selectInputRange(input: any, startIndex: number, endIndex?: number): boolean;
3
+ export declare function selectInputContentFromEvent(event: Event): boolean;
4
+ export declare function selectInputContent(input: HTMLInputElement | HTMLTextAreaElement | any): boolean;
5
+ export declare function selectInputRange(input: HTMLInputElement | HTMLTextAreaElement, startIndex: number, endIndex?: number, direction?: 'backward' | 'forward' | 'none'): boolean;
5
6
  export declare function getCaretPosition(input: any): number;
6
7
  export declare function moveInputCaretToSeparator(event: KeyboardEvent, separator: string, forward?: boolean): boolean;
7
8
  export declare function filterNumberInput(event: KeyboardEvent, allowDecimals: boolean, decimalSeparator?: string): void;
@@ -16,7 +17,7 @@ export interface InputElement extends FocusableElement {
16
17
  }
17
18
  export declare function isInputElement(object: any): object is InputElement;
18
19
  export declare function asInputElement<T = any>(object: ElementRef<T>): InputElement | undefined;
19
- export declare function tabindexComparator(a: InputElement, b: InputElement): 0 | 1 | -1;
20
+ export declare function tabindexComparator(a: InputElement, b: InputElement): 1 | 0 | -1;
20
21
  export interface CanGainFocusOptions {
21
22
  minTabindex?: number;
22
23
  maxTabindex?: number;
@@ -13,6 +13,7 @@ export declare interface MatAutocompleteFieldConfig<T = any, F = any> {
13
13
  displayWithSeparator?: string;
14
14
  splitSearchText?: boolean;
15
15
  trimSearchText?: boolean;
16
+ clearInvalidSearchTextOnBlur?: boolean;
16
17
  equals?: EqualsFn;
17
18
  showAllOnFocus?: boolean;
18
19
  showPanelOnFocus?: boolean;
@@ -30,6 +31,19 @@ export declare interface MatAutocompleteFieldConfig<T = any, F = any> {
30
31
  * Add a delay (ms) before trying to select input content (desktop only)
31
32
  */
32
33
  selectInputContentOnFocusDelay?: number;
34
+ /**
35
+ * If true, any invalid value entered in the input field will be cleared when the input loses focus.
36
+ * This helps in preventing invalid data to be displayed on the field
37
+ */
38
+ clearInvalidValueOnBlur?: boolean;
39
+ /**
40
+ * Determines whether the implicit value is preview in the input text field or not (desktop only).
41
+ *
42
+ * If not specified, the default behavior is to not preview implicit values (`false`).
43
+ *
44
+ * @type {boolean}
45
+ */
46
+ previewImplicitValue?: boolean;
33
47
  /**
34
48
  * Class to apply to the `div.mat-mdc-select-panel`
35
49
  */
@@ -35,6 +35,7 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
35
35
  protected _tabindex: number;
36
36
  protected _$inputItems: BehaviorSubject<any[]>;
37
37
  protected _$filteredItems: BehaviorSubject<any[]>;
38
+ protected _selectedItem: any;
38
39
  protected _displayValue: string;
39
40
  protected _moreItemsCount: number;
40
41
  protected _fetchMore$: EventEmitter<Event>;
@@ -63,6 +64,7 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
63
64
  showAllOnFocus: boolean;
64
65
  showPanelOnFocus: boolean;
65
66
  reloadItemsOnFocus: boolean;
67
+ clearInvalidValueOnBlur: boolean;
66
68
  autofocus: boolean;
67
69
  config: MatAutocompleteFieldConfig;
68
70
  i18nPrefix: string;
@@ -85,6 +87,7 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
85
87
  splitSearchText: boolean;
86
88
  selectInputContentOnFocus: boolean;
87
89
  selectInputContentOnFocusDelay: number;
90
+ previewImplicitValue: boolean;
88
91
  /**
89
92
  * @deprecated Use panelClass instead
90
93
  */
@@ -95,6 +98,7 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
95
98
  focused: EventEmitter<FocusEvent>;
96
99
  dropButtonClick: EventEmitter<Event>;
97
100
  keydownEscape: EventEmitter<Event>;
101
+ keydownBackspace: EventEmitter<Event>;
98
102
  keyupEnter: EventEmitter<Event>;
99
103
  selectionChange: EventEmitter<MatAutocompleteFieldSelectChange>;
100
104
  matSelect: MatSelect;
@@ -142,6 +146,7 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
142
146
  protected markAsLoading(): void;
143
147
  protected onSelectionChange(event: MatSelectChange): void;
144
148
  protected onOptionSelected(event: MatAutocompleteSelectedEvent): void;
149
+ protected toggleShowPanel(event: Event): void;
145
150
  private suggest;
146
151
  private fetchMore;
147
152
  private updateImplicitValue;
@@ -160,8 +165,10 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
160
165
  * @private
161
166
  */
162
167
  private _fixSearchbarOverlay;
168
+ private setInputTextValue;
169
+ protected onBackspace(event: Event): void;
163
170
  static ɵfac: i0.ɵɵFactoryDeclaration<MatAutocompleteField, [null, null, null, null, null, { optional: true; }]>;
164
- static ɵcmp: i0.ɵɵComponentDeclaration<MatAutocompleteField, "mat-autocomplete-field", never, { "equals": { "alias": "equals"; "required": false; }; "logPrefix": { "alias": "logPrefix"; "required": false; }; "formControl": { "alias": "formControl"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "label": { "alias": "label"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "suggestFn": { "alias": "suggestFn"; "required": false; }; "required": { "alias": "required"; "required": false; }; "hideRequiredMarker": { "alias": "hideRequiredMarker"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "debounceTime": { "alias": "debounceTime"; "required": false; }; "displaySeparator": { "alias": "displaySeparator"; "required": false; }; "displayWith": { "alias": "displayWith"; "required": false; }; "displayAttributes": { "alias": "displayAttributes"; "required": false; }; "displayColumnSizes": { "alias": "displayColumnSizes"; "required": false; }; "displayColumnNames": { "alias": "displayColumnNames"; "required": false; }; "highlightAccent": { "alias": "highlightAccent"; "required": false; }; "showAllOnFocus": { "alias": "showAllOnFocus"; "required": false; }; "showPanelOnFocus": { "alias": "showPanelOnFocus"; "required": false; }; "reloadItemsOnFocus": { "alias": "reloadItemsOnFocus"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "config": { "alias": "config"; "required": false; }; "i18nPrefix": { "alias": "i18nPrefix"; "required": false; }; "noResultMessage": { "alias": "noResultMessage"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "matAutocompletePosition": { "alias": "matAutocompletePosition"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "fetchMoreThreshold": { "alias": "fetchMoreThreshold"; "required": false; }; "suggestLengthThreshold": { "alias": "suggestLengthThreshold"; "required": false; }; "showLoadingSpinner": { "alias": "showLoadingSpinner"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "showSearchBar": { "alias": "showSearchBar"; "required": false; }; "stickySearchBar": { "alias": "stickySearchBar"; "required": false; }; "applyImplicitValue": { "alias": "applyImplicitValue"; "required": false; }; "dropButtonTitle": { "alias": "dropButtonTitle"; "required": false; }; "clearButtonTitle": { "alias": "clearButtonTitle"; "required": false; }; "trimSearchText": { "alias": "trimSearchText"; "required": false; }; "splitSearchText": { "alias": "splitSearchText"; "required": false; }; "selectInputContentOnFocus": { "alias": "selectInputContentOnFocus"; "required": false; }; "selectInputContentOnFocusDelay": { "alias": "selectInputContentOnFocusDelay"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "clicked": "click"; "blurred": "blur"; "focused": "focus"; "dropButtonClick": "dropButtonClick"; "keydownEscape": "keydown.escape"; "keyupEnter": "keyup.enter"; "selectionChange": "selectionChange"; }, never, ["[matAfter]", "[matPrefix]", "[matSuffix]", "mat-error,[matError]", "mat-hint:not([align='end']),[matHint]", "mat-hint[align='end']"], false, never>;
171
+ static ɵcmp: i0.ɵɵComponentDeclaration<MatAutocompleteField, "mat-autocomplete-field", never, { "equals": { "alias": "equals"; "required": false; }; "logPrefix": { "alias": "logPrefix"; "required": false; }; "formControl": { "alias": "formControl"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "label": { "alias": "label"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "suggestFn": { "alias": "suggestFn"; "required": false; }; "required": { "alias": "required"; "required": false; }; "hideRequiredMarker": { "alias": "hideRequiredMarker"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "debounceTime": { "alias": "debounceTime"; "required": false; }; "displaySeparator": { "alias": "displaySeparator"; "required": false; }; "displayWith": { "alias": "displayWith"; "required": false; }; "displayAttributes": { "alias": "displayAttributes"; "required": false; }; "displayColumnSizes": { "alias": "displayColumnSizes"; "required": false; }; "displayColumnNames": { "alias": "displayColumnNames"; "required": false; }; "highlightAccent": { "alias": "highlightAccent"; "required": false; }; "showAllOnFocus": { "alias": "showAllOnFocus"; "required": false; }; "showPanelOnFocus": { "alias": "showPanelOnFocus"; "required": false; }; "reloadItemsOnFocus": { "alias": "reloadItemsOnFocus"; "required": false; }; "clearInvalidValueOnBlur": { "alias": "clearInvalidValueOnBlur"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "config": { "alias": "config"; "required": false; }; "i18nPrefix": { "alias": "i18nPrefix"; "required": false; }; "noResultMessage": { "alias": "noResultMessage"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "matAutocompletePosition": { "alias": "matAutocompletePosition"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "fetchMoreThreshold": { "alias": "fetchMoreThreshold"; "required": false; }; "suggestLengthThreshold": { "alias": "suggestLengthThreshold"; "required": false; }; "showLoadingSpinner": { "alias": "showLoadingSpinner"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "showSearchBar": { "alias": "showSearchBar"; "required": false; }; "stickySearchBar": { "alias": "stickySearchBar"; "required": false; }; "applyImplicitValue": { "alias": "applyImplicitValue"; "required": false; }; "dropButtonTitle": { "alias": "dropButtonTitle"; "required": false; }; "clearButtonTitle": { "alias": "clearButtonTitle"; "required": false; }; "trimSearchText": { "alias": "trimSearchText"; "required": false; }; "splitSearchText": { "alias": "splitSearchText"; "required": false; }; "selectInputContentOnFocus": { "alias": "selectInputContentOnFocus"; "required": false; }; "selectInputContentOnFocusDelay": { "alias": "selectInputContentOnFocusDelay"; "required": false; }; "previewImplicitValue": { "alias": "previewImplicitValue"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "clicked": "click"; "blurred": "blur"; "focused": "focus"; "dropButtonClick": "dropButtonClick"; "keydownEscape": "keydown.escape"; "keydownBackspace": "keydown.backspace"; "keyupEnter": "keyup.enter"; "selectionChange": "selectionChange"; }, never, ["[matAfter]", "[matPrefix]", "[matSuffix]", "mat-error,[matError]", "mat-hint:not([align='end']),[matHint]", "mat-hint[align='end']"], false, never>;
165
172
  static ngAcceptInputType_required: unknown;
166
173
  static ngAcceptInputType_hideRequiredMarker: unknown;
167
174
  static ngAcceptInputType_mobile: unknown;
@@ -171,6 +178,7 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
171
178
  static ngAcceptInputType_showAllOnFocus: unknown;
172
179
  static ngAcceptInputType_showPanelOnFocus: unknown;
173
180
  static ngAcceptInputType_reloadItemsOnFocus: unknown;
181
+ static ngAcceptInputType_clearInvalidValueOnBlur: unknown;
174
182
  static ngAcceptInputType_autofocus: unknown;
175
183
  static ngAcceptInputType_disableRipple: unknown;
176
184
  static ngAcceptInputType_multiple: unknown;
@@ -183,5 +191,6 @@ export declare class MatAutocompleteField implements OnInit, AfterViewInit, OnDe
183
191
  static ngAcceptInputType_splitSearchText: unknown;
184
192
  static ngAcceptInputType_selectInputContentOnFocus: unknown;
185
193
  static ngAcceptInputType_selectInputContentOnFocusDelay: unknown;
194
+ static ngAcceptInputType_previewImplicitValue: unknown;
186
195
  static ngAcceptInputType_readonly: unknown;
187
196
  }
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
2
  import { ControlValueAccessor, FormGroupDirective, UntypedFormControl } from '@angular/forms';
3
3
  import { BehaviorSubject, Observable } from 'rxjs';
4
- import { InputElement, selectInputContent } from '../../inputs';
4
+ import { InputElement } from '../../inputs';
5
5
  import { AppFloatLabelType, DisplayFn, EqualsFn } from '../../form/field.model';
6
6
  import { Swiper } from 'swiper/types';
7
7
  import { MatFormFieldAppearance, SubscriptSizing } from '@angular/material/form-field';
@@ -23,7 +23,6 @@ export declare class MatSwipeField implements OnInit, InputElement, OnDestroy, C
23
23
  protected showSlides: boolean;
24
24
  protected $items: BehaviorSubject<any[]>;
25
25
  protected $loaded: BehaviorSubject<boolean>;
26
- protected swiperModules: ((opts: any) => void)[];
27
26
  logPrefix: string;
28
27
  formControl: UntypedFormControl;
29
28
  formControlName: string;
@@ -55,6 +54,7 @@ export declare class MatSwipeField implements OnInit, InputElement, OnDestroy, C
55
54
  get value(): any;
56
55
  get disabled(): any;
57
56
  get enabled(): any;
57
+ protected getSwiper(): Swiper;
58
58
  constructor(cd: ChangeDetectorRef, formGroupDir: FormGroupDirective);
59
59
  ngOnInit(): void;
60
60
  ngOnDestroy(): void;
@@ -69,7 +69,6 @@ export declare class MatSwipeField implements OnInit, InputElement, OnDestroy, C
69
69
  registerOnChange(fn: any): void;
70
70
  registerOnTouched(fn: any): void;
71
71
  setDisabledState(isDisabled: boolean): void;
72
- selectInputContent: typeof selectInputContent;
73
72
  previous(): void;
74
73
  next(): void;
75
74
  reachStart(reached: boolean): void;
@@ -83,7 +82,6 @@ export declare class MatSwipeField implements OnInit, InputElement, OnDestroy, C
83
82
  private updateSlides;
84
83
  private slideTo;
85
84
  private updateButtons;
86
- getSwiper(): Promise<Swiper>;
87
85
  ready(): Promise<void>;
88
86
  static ɵfac: i0.ɵɵFactoryDeclaration<MatSwipeField, [null, { optional: true; }]>;
89
87
  static ɵcmp: i0.ɵɵComponentDeclaration<MatSwipeField, "mat-swipe-field", never, { "logPrefix": { "alias": "logPrefix"; "required": false; }; "formControl": { "alias": "formControl"; "required": false; }; "formControlName": { "alias": "formControlName"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "subscriptSizing": { "alias": "subscriptSizing"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "required": { "alias": "required"; "required": false; }; "mobile": { "alias": "mobile"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "equals": { "alias": "equals"; "required": false; }; "displayWith": { "alias": "displayWith"; "required": false; }; "displayAttributes": { "alias": "displayAttributes"; "required": false; }; "appAutofocus": { "alias": "appAutofocus"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "items": { "alias": "items"; "required": false; }; }, { "onClick": "click"; "blurred": "blur"; "focused": "focus"; }, never, never, false, never>;
@@ -2,7 +2,7 @@
2
2
  "name": "ngx-sumaris-components",
3
3
  "short_name": "ngx-sumaris-components",
4
4
  "manifest_version": 1,
5
- "version": "18.2.20",
5
+ "version": "18.2.22",
6
6
  "default_locale": "fr",
7
7
  "description": "Angular components for building beautiful and responsive Apps",
8
8
  "icons": [{