@sumaris-net/ngx-components 21.3.3-rc1 → 21.3.4
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/doc/changelog.md +18 -0
- package/fesm2022/sumaris-net-ngx-components-testing.mjs +68 -0
- package/fesm2022/sumaris-net-ngx-components-testing.mjs.map +1 -1
- package/fesm2022/sumaris-net.ngx-components.mjs +409 -102
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/assets/i18n/en-US.json +2 -0
- package/src/assets/i18n/en.json +2 -0
- package/src/assets/i18n/fr.json +2 -0
- package/src/assets/manifest.json +1 -1
- package/src/theme/_mixins.scss +16 -4
- package/src/theme/_ngx-components.globals.scss +2 -2
- package/src/theme/_ngx-components.scss +10 -1
- package/types/sumaris-net-ngx-components-testing.d.ts +30 -0
- package/types/sumaris-net.ngx-components.d.ts +157 -56
package/package.json
CHANGED
|
@@ -653,10 +653,12 @@
|
|
|
653
653
|
"DRAG_AND_DROP": "Drag and drop a file{{ extension }} here<br/>or",
|
|
654
654
|
"BROWSE": "Browse",
|
|
655
655
|
"IMPORTING": "Import in progress",
|
|
656
|
+
"DONE_COUNT": "{{count}} / {{total}} file(s) ready",
|
|
656
657
|
"BTN_IMPORT_POLICY_DOTS": "Import policy...",
|
|
657
658
|
"ERROR": "Error while uploading file",
|
|
658
659
|
"MAX_FILE_SIZE_ERROR": "The file size is too large to be uploaded ({{maxFileSizeMb}} MB max)",
|
|
659
660
|
"EXTENSION_NOT_ALLOWED_ERROR": "The file extension is not allowed ({{fileExtensionsExcluded}} excluded)",
|
|
661
|
+
"TYPE_NOT_ALLOWED_ERROR": "This file type is not allowed (expected: {{fileExtension}}).",
|
|
660
662
|
"IMPORT_POLICY": {
|
|
661
663
|
"TITLE": "Import options",
|
|
662
664
|
"INSERT-ONLY": "Inserts only",
|
package/src/assets/i18n/en.json
CHANGED
|
@@ -653,10 +653,12 @@
|
|
|
653
653
|
"DRAG_AND_DROP": "Drag and drop a file{{ extension }} here<br/>or",
|
|
654
654
|
"BROWSE": "Browse",
|
|
655
655
|
"IMPORTING": "Import in progress",
|
|
656
|
+
"DONE_COUNT": "{{count}} / {{total}} file(s) ready",
|
|
656
657
|
"BTN_IMPORT_POLICY_DOTS": "Import policy...",
|
|
657
658
|
"ERROR": "Error while uploading file",
|
|
658
659
|
"MAX_FILE_SIZE_ERROR": "The file size is too large to be uploaded ({{maxFileSizeMb}} MB max)",
|
|
659
660
|
"EXTENSION_NOT_ALLOWED_ERROR": "The file extension is not allowed ({{fileExtensionsExcluded}} excluded)",
|
|
661
|
+
"TYPE_NOT_ALLOWED_ERROR": "This file type is not allowed (expected: {{fileExtension}}).",
|
|
660
662
|
"IMPORT_POLICY": {
|
|
661
663
|
"TITLE": "Import options",
|
|
662
664
|
"INSERT-ONLY": "Inserts only",
|
package/src/assets/i18n/fr.json
CHANGED
|
@@ -656,10 +656,12 @@
|
|
|
656
656
|
"DRAG_AND_DROP": "Glisser et déposer un fichier{{ extension }} ici<br/>ou",
|
|
657
657
|
"BROWSE": "Parcourir",
|
|
658
658
|
"IMPORTING": "Importation en cours",
|
|
659
|
+
"DONE_COUNT": "{{count}} / {{total}} fichier(s) prêt(s)",
|
|
659
660
|
"BTN_IMPORT_POLICY_DOTS": "Stratégie d'importation...",
|
|
660
661
|
"ERROR": "Erreur durant l'envoi de fichier",
|
|
661
662
|
"MAX_FILE_SIZE_ERROR": "La taille du fichier est trop importante pour être téléversé ({{maxFileSizeMb}} Mo max).",
|
|
662
663
|
"EXTENSION_NOT_ALLOWED_ERROR": "L'extension du fichier n'est pas autorisée ({{fileExtensionsExcluded}} exclus).",
|
|
664
|
+
"TYPE_NOT_ALLOWED_ERROR": "Ce type de fichier n'est pas accepté (attendu : {{fileExtension}}).",
|
|
663
665
|
"IMPORT_POLICY": {
|
|
664
666
|
"TITLE": "Stratégie d'importation",
|
|
665
667
|
"INSERT-ONLY": "Insertions uniquement",
|
package/src/assets/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "ngx-sumaris-components",
|
|
3
3
|
"short_name": "ngx-sumaris-components",
|
|
4
4
|
"manifest_version": 1,
|
|
5
|
-
"version": "21.3.
|
|
5
|
+
"version": "21.3.4",
|
|
6
6
|
"default_locale": "fr",
|
|
7
7
|
"description": "Angular components for building beautiful and responsive Apps",
|
|
8
8
|
"icons": [{
|
package/src/theme/_mixins.scss
CHANGED
|
@@ -129,8 +129,10 @@
|
|
|
129
129
|
--ion-backdrop-opacity: 0.32;
|
|
130
130
|
--ion-card-background-color: #{$card-background-color};
|
|
131
131
|
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
// Do NOT write `var($app-expansion-panel-padding, ...)`: `var()` only accepts a custom property name, so
|
|
133
|
+
// `var(0, ...)` is invalid and drops the property (expansion panels header was rendered without padding)
|
|
134
|
+
--expansion-panel-padding: #{$app-expansion-panel-padding};
|
|
135
|
+
--expansion-panel-header-padding: #{$app-expansion-panel-header-padding};
|
|
134
136
|
--mat-expansion-container-background-color:var($mat-expansion-container-background-color, var(--ion-background-color));
|
|
135
137
|
--mat-expansion-container-text-color: var($mat-expansion-container-text-color, var(--ion-text-color));
|
|
136
138
|
|
|
@@ -140,14 +142,18 @@
|
|
|
140
142
|
--mat-toolbar-height: #{$mat-toolbar-height-desktop};
|
|
141
143
|
--mat-toolbar-standard-height: #{$mat-toolbar-height-desktop};
|
|
142
144
|
--mat-toolbar-mobile-height: #{$mat-toolbar-height-mobile};
|
|
143
|
-
--mat-paginator-height: $paginator-height;
|
|
145
|
+
--mat-paginator-height: #{$app-paginator-height};
|
|
144
146
|
--mat-option-min-height: #{$mat-option-min-height};
|
|
145
147
|
--mat-option-max-height: #{$mat-option-max-height};
|
|
146
148
|
--mat-toolbar-background-color: var(--ion-toolbar-background);
|
|
147
149
|
--mat-toolbar-container-background-color: var(--ion-toolbar-background);
|
|
148
150
|
--mat-toolbar-container-text-color: var(--ion-text-color);
|
|
149
151
|
--mat-table-background-color: var(--ion-background-color);
|
|
150
|
-
|
|
152
|
+
.mat-primary {
|
|
153
|
+
--mat-progress-bar-active-indicator-color: var(--ion-color-primary);
|
|
154
|
+
--mat-pseudo-checkbox-full-selected-icon-color: var(--ion-color-primary);
|
|
155
|
+
--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--ion-color-primary);
|
|
156
|
+
}
|
|
151
157
|
--as-gutter-background-color: var(--ion-toolbar-background);
|
|
152
158
|
|
|
153
159
|
--app-table-header-height: #{$app-table-header-height};
|
|
@@ -222,6 +228,12 @@
|
|
|
222
228
|
--app-form-color-rgb: #{$background-color-rgb-value};
|
|
223
229
|
--app-form-field-focus-background-color: rgba(#{$background-color-rgb-value}, 0.87);
|
|
224
230
|
|
|
231
|
+
.mat-primary {
|
|
232
|
+
--mat-progress-bar-active-indicator-color: var(--ion-color-primary);
|
|
233
|
+
--mat-pseudo-checkbox-full-selected-icon-color: var(--ion-color-primary);
|
|
234
|
+
--mat-pseudo-checkbox-minimal-selected-checkmark-color: var(--ion-color-primary);
|
|
235
|
+
}
|
|
236
|
+
|
|
225
237
|
// Step colors
|
|
226
238
|
--ion-color-step-50: #{$text-color-step-50};
|
|
227
239
|
--ion-color-step-100: #{$text-color-step-100};
|
|
@@ -13,8 +13,8 @@ $app-table-cell-focus-background-color: transparent !default;
|
|
|
13
13
|
$app-paginator-height: 34px !default;
|
|
14
14
|
$app-form-buttons-bar-height: 56px !default;
|
|
15
15
|
|
|
16
|
-
$app-expansion-panel-padding:
|
|
17
|
-
$app-expansion-panel-header-padding:
|
|
16
|
+
$app-expansion-panel-padding: var(--ion-padding) !default;
|
|
17
|
+
$app-expansion-panel-header-padding: var(--ion-padding) !default;
|
|
18
18
|
|
|
19
19
|
// Form's field text and label
|
|
20
20
|
$app-form-color: #{$text-color} !default;
|
|
@@ -93,7 +93,16 @@ ion-content {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
ion-footer {
|
|
96
|
-
|
|
96
|
+
&:has(mat-paginator) {
|
|
97
|
+
mat-paginator {
|
|
98
|
+
padding-bottom: var(--ion-safe-area-bottom);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&:not(:has(mat-paginator)) {
|
|
103
|
+
padding-bottom: var(--ion-safe-area-bottom);
|
|
104
|
+
}
|
|
105
|
+
|
|
97
106
|
}
|
|
98
107
|
|
|
99
108
|
ion-fab[vertical="bottom"] {
|
|
@@ -73,6 +73,10 @@ declare const MaterialSelectors: {
|
|
|
73
73
|
tabLabel: string;
|
|
74
74
|
/** Material paginator */
|
|
75
75
|
paginator: string;
|
|
76
|
+
/** Material paginator range label (e.g. '1 - 20 of 42') */
|
|
77
|
+
paginatorRangeLabel: string;
|
|
78
|
+
/** Material progress bar */
|
|
79
|
+
progressBar: string;
|
|
76
80
|
/** Material icon */
|
|
77
81
|
icon: string;
|
|
78
82
|
/** Material autocomplete panel */
|
|
@@ -86,6 +90,8 @@ declare const MaterialSelectors: {
|
|
|
86
90
|
declare class MaterialHelper {
|
|
87
91
|
private page;
|
|
88
92
|
constructor(page: Page);
|
|
93
|
+
/** Append a suffix (e.g. a class) to each part of a selector list (e.g. 'mat-cell, td[mat-cell]') */
|
|
94
|
+
protected static withSuffix(selectors: string, suffix: string): string;
|
|
89
95
|
/** Get all visible table rows, optionally scoped to a parent locator */
|
|
90
96
|
tableRows(scope?: Locator): Locator;
|
|
91
97
|
/** Get a single table row by index (0-based), optionally scoped to a parent locator */
|
|
@@ -106,6 +112,18 @@ declare class MaterialHelper {
|
|
|
106
112
|
selectMatSelectOption(formControlName: string, optionText: string | RegExp): Promise<void>;
|
|
107
113
|
/** Select an autocomplete option by text after typing in a form control */
|
|
108
114
|
selectAutocompleteOption(formControlName: string, searchText: string, optionText: string | RegExp): Promise<void>;
|
|
115
|
+
/** Get the cells of a table column (e.g. 'lastName'), optionally scoped to a parent locator */
|
|
116
|
+
tableCells(column: string, scope?: Locator): Locator;
|
|
117
|
+
/** Get the cell of a row, in the given column (e.g. 'lastName') */
|
|
118
|
+
rowCell(row: Locator, column: string): Locator;
|
|
119
|
+
/** Get the table rows having a cell (in the given column) that contains the text, optionally scoped to a parent locator */
|
|
120
|
+
tableRowsByCell(column: string, text: string | RegExp, scope?: Locator): Locator;
|
|
121
|
+
/** Get the header cell of a table column (e.g. to sort it), optionally scoped to a parent locator */
|
|
122
|
+
tableHeaderCell(column: string, scope?: Locator): Locator;
|
|
123
|
+
/** Read the total count, from the paginator range label (e.g. '1 - 20 of 42' -> 42), optionally scoped to a parent locator */
|
|
124
|
+
paginatorTotal(scope?: Locator): Promise<number>;
|
|
125
|
+
/** Wait for the progress bar(s) to stop (not in 'query' mode), optionally scoped to a parent locator */
|
|
126
|
+
waitForProgressBarIdle(timeout?: number, scope?: Locator): Promise<void>;
|
|
109
127
|
/** Wait for table rows to be loaded (at least one row visible), optionally scoped to a parent locator */
|
|
110
128
|
waitForTableRows(timeout?: number, scope?: Locator): Promise<void>;
|
|
111
129
|
}
|
|
@@ -176,6 +194,18 @@ declare class UiHelper {
|
|
|
176
194
|
tableRow(index: number, scope?: Locator): Locator;
|
|
177
195
|
/** Click on a table row by index, optionally scoped to a parent locator */
|
|
178
196
|
clickRow(index: number, scope?: Locator): Promise<void>;
|
|
197
|
+
/** Get the cells of a table column, optionally scoped to a parent locator */
|
|
198
|
+
tableCells(column: string, scope?: Locator): Locator;
|
|
199
|
+
/** Get the cell of a row, in the given column */
|
|
200
|
+
rowCell(row: Locator, column: string): Locator;
|
|
201
|
+
/** Get the table rows having a cell (in the given column) that contains the text */
|
|
202
|
+
tableRowsByCell(column: string, text: string | RegExp, scope?: Locator): Locator;
|
|
203
|
+
/** Get the header cell of a table column */
|
|
204
|
+
tableHeaderCell(column: string, scope?: Locator): Locator;
|
|
205
|
+
/** Read the total count, from the table paginator */
|
|
206
|
+
paginatorTotal(scope?: Locator): Promise<number>;
|
|
207
|
+
/** Wait for the progress bar(s) to stop (e.g. end of all HTTP requests) */
|
|
208
|
+
waitForProgressBarIdle(timeout?: number, scope?: Locator): Promise<void>;
|
|
179
209
|
/** Fill a mat-form-field input identified by its formControlName */
|
|
180
210
|
fillFormControl(formControlName: string, value: string): Promise<void>;
|
|
181
211
|
/** Select an autocomplete option */
|