@mgdis/mg-components 5.11.1 → 5.12.0
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/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mg-action-more_31.cjs.entry.js +287 -242
- package/dist/cjs/mg-components.cjs.js +1 -1
- package/dist/cjs/mg-item-more.cjs.entry.js +1 -1
- package/dist/cjs/{mg-menu.conf-05ec32a3.js → mg-menu.conf-79f0c761.js} +12 -2
- package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +0 -218
- package/dist/collection/components/atoms/mg-icon/mg-icon.css +0 -7
- package/dist/collection/components/atoms/mg-icon/mg-icon.js +6 -9
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.css +34 -0
- package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +156 -14
- package/dist/collection/components/molecules/mg-details/mg-details.css +20 -3
- package/dist/collection/locales/en/messages.json +6 -1
- package/dist/collection/locales/fr/messages.json +6 -1
- package/dist/collection/styles/a11y.scss +5 -1
- package/dist/collection/styles/typography.scss +7 -0
- package/dist/collection/variables.css +8 -0
- package/dist/components/index2.js +12 -2
- package/dist/components/mg-details.js +1 -1
- package/dist/components/mg-icon2.js +157 -227
- package/dist/components/mg-input-checkbox.js +167 -23
- package/dist/components/mg-pagination.js +1 -170
- package/dist/components/mg-pagination2.js +172 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mg-action-more_31.entry.js +287 -242
- package/dist/esm/mg-components.js +1 -1
- package/dist/esm/mg-item-more.entry.js +1 -1
- package/dist/esm/{mg-menu.conf-c8aa56ce.js → mg-menu.conf-850d4c6e.js} +12 -2
- package/dist/mg-components/locales/en/messages.json +6 -1
- package/dist/mg-components/locales/fr/messages.json +6 -1
- package/dist/mg-components/mg-components.css +1 -1
- package/dist/mg-components/mg-components.esm.js +1 -1
- package/dist/mg-components/p-60b7afd9.entry.js +1 -0
- package/dist/mg-components/{p-d3ed97d3.entry.js → p-67ba5d05.entry.js} +1 -1
- package/dist/mg-components/p-689503fc.js +1 -0
- package/dist/mg-components/styles/a11y.scss +5 -1
- package/dist/mg-components/styles/typography.scss +7 -0
- package/dist/mg-components/variables.css +8 -0
- package/dist/types/components/atoms/mg-icon/mg-icon.conf.d.ts +0 -4
- package/dist/types/components/atoms/mg-icon/mg-icon.d.ts +0 -5
- package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.d.ts +4 -0
- package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +78 -1
- package/dist/types/components.d.ts +8 -0
- package/dist/types/locales/index.d.ts +10 -0
- package/package.json +7 -5
- package/dist/mg-components/p-4539cdfd.entry.js +0 -1
- package/dist/mg-components/p-b14be68b.js +0 -1
|
@@ -22,6 +22,9 @@ export class MgInputCheckbox {
|
|
|
22
22
|
this.hasDisplayedError = false;
|
|
23
23
|
// style
|
|
24
24
|
this.baseClassName = 'mg-input--checkbox';
|
|
25
|
+
this.multiStart = 5;
|
|
26
|
+
this.searchStart = 10;
|
|
27
|
+
this.searchOffset = 10;
|
|
25
28
|
/**
|
|
26
29
|
* Handle input event
|
|
27
30
|
* @param event - input event
|
|
@@ -59,6 +62,27 @@ export class MgInputCheckbox {
|
|
|
59
62
|
this.checkValidity();
|
|
60
63
|
this.setErrorMessage();
|
|
61
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* Handle input search value-change event
|
|
67
|
+
* @param event - input value-change event
|
|
68
|
+
*/
|
|
69
|
+
this.handleSearchChange = (event) => {
|
|
70
|
+
this.searchValue = event.detail;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Handle mg-pagination current page change event
|
|
74
|
+
* @param event - pagination current page change event
|
|
75
|
+
*/
|
|
76
|
+
this.handleCurrentPageChange = (event) => {
|
|
77
|
+
this.currentSearchPage = Number(event.detail);
|
|
78
|
+
};
|
|
79
|
+
this.handleMgPopoverDisplayChange = (event) => {
|
|
80
|
+
// reset search value
|
|
81
|
+
if (!event.detail) {
|
|
82
|
+
this.searchValue = '';
|
|
83
|
+
this.setCurrentSearchPage();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
62
86
|
/**
|
|
63
87
|
* get invalid element
|
|
64
88
|
* @returns element
|
|
@@ -102,6 +126,17 @@ export class MgInputCheckbox {
|
|
|
102
126
|
* @returns MgPopover identifier
|
|
103
127
|
*/
|
|
104
128
|
this.getMgPopoverIdentifier = () => `${this.identifier}-input-mg-popover`;
|
|
129
|
+
/**
|
|
130
|
+
* Manage items to display depending on the search state
|
|
131
|
+
* @returns items to display
|
|
132
|
+
*/
|
|
133
|
+
this.getDisplayItems = () => (this.searchValue.length > 0 ? this.searchResults : this.checkboxItems);
|
|
134
|
+
/**
|
|
135
|
+
* Method to get pagination total-page
|
|
136
|
+
* @param checkboxes - checkboxes to paginate
|
|
137
|
+
* @returns total page number for pagination
|
|
138
|
+
*/
|
|
139
|
+
this.getPaginationTotalPages = (checkboxes) => Math.ceil(checkboxes.length / this.searchOffset);
|
|
105
140
|
this.value = undefined;
|
|
106
141
|
this.type = checkboxTypes[0];
|
|
107
142
|
this.identifier = undefined;
|
|
@@ -112,6 +147,7 @@ export class MgInputCheckbox {
|
|
|
112
147
|
this.inputVerticalList = false;
|
|
113
148
|
this.required = false;
|
|
114
149
|
this.readonly = false;
|
|
150
|
+
this.displaySelectedValues = undefined;
|
|
115
151
|
this.disabled = false;
|
|
116
152
|
this.tooltip = undefined;
|
|
117
153
|
this.helpText = undefined;
|
|
@@ -120,6 +156,10 @@ export class MgInputCheckbox {
|
|
|
120
156
|
this.classCollection = new ClassList([this.baseClassName]);
|
|
121
157
|
this.errorMessage = undefined;
|
|
122
158
|
this.checkboxItems = [];
|
|
159
|
+
this.displaySearchInput = undefined;
|
|
160
|
+
this.currentSearchPage = 0;
|
|
161
|
+
this.searchValue = '';
|
|
162
|
+
this.searchResults = [];
|
|
123
163
|
}
|
|
124
164
|
validateValue(newValue) {
|
|
125
165
|
if (isCheckboxItems(newValue)) {
|
|
@@ -141,12 +181,18 @@ export class MgInputCheckbox {
|
|
|
141
181
|
}
|
|
142
182
|
else {
|
|
143
183
|
const className = `${this.baseClassName}-multi`;
|
|
144
|
-
if (newValue === 'multi')
|
|
184
|
+
if (newValue === 'multi') {
|
|
145
185
|
this.classCollection.add(className);
|
|
186
|
+
this.element.dataset.mgPopoverGuard = this.getMgPopoverIdentifier();
|
|
187
|
+
}
|
|
146
188
|
else
|
|
147
189
|
this.classCollection.delete(className);
|
|
148
190
|
}
|
|
149
191
|
}
|
|
192
|
+
validateDisplaySelectedValues(newValue) {
|
|
193
|
+
if (newValue !== undefined && this.type !== 'multi')
|
|
194
|
+
throw new Error('<mg-input-checkbox> prop "displaySelectedValues" can only be used with prop type "multi".');
|
|
195
|
+
}
|
|
150
196
|
handleValidityChange(newValue, _oldValue, prop) {
|
|
151
197
|
this.inputs.forEach(input => {
|
|
152
198
|
input[prop] = newValue;
|
|
@@ -164,6 +210,17 @@ export class MgInputCheckbox {
|
|
|
164
210
|
else
|
|
165
211
|
this.classCollection.delete(className);
|
|
166
212
|
}
|
|
213
|
+
validateCheckboxItems(newValue) {
|
|
214
|
+
if (newValue.length > this.multiStart)
|
|
215
|
+
this.type = 'multi';
|
|
216
|
+
if (newValue.length > this.searchStart)
|
|
217
|
+
this.displaySearchInput = this.type === 'multi';
|
|
218
|
+
}
|
|
219
|
+
validateSearchValue(newValue) {
|
|
220
|
+
this.searchResults = this.checkboxItems.filter(item => item.title.toLocaleLowerCase().includes(newValue.trim().toLocaleLowerCase()));
|
|
221
|
+
// after each query we reset pagination
|
|
222
|
+
this.setCurrentSearchPage();
|
|
223
|
+
}
|
|
167
224
|
/**
|
|
168
225
|
* Public method to display errors
|
|
169
226
|
*/
|
|
@@ -172,6 +229,31 @@ export class MgInputCheckbox {
|
|
|
172
229
|
this.setErrorMessage();
|
|
173
230
|
this.hasDisplayedError = this.invalid;
|
|
174
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Reset current-search-page prop
|
|
234
|
+
*/
|
|
235
|
+
setCurrentSearchPage() {
|
|
236
|
+
this.currentSearchPage = this.getDisplayItems().length > 0 ? 1 : 0;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Method to get a array range
|
|
240
|
+
* @param from - array start index
|
|
241
|
+
* @param to - array end index
|
|
242
|
+
* @returns array's range
|
|
243
|
+
*/
|
|
244
|
+
getArrayRange(array, from, to) {
|
|
245
|
+
return array.slice(from, to);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Get from and to index
|
|
249
|
+
* @returns [from,to] index
|
|
250
|
+
*/
|
|
251
|
+
getFromToIndexes() {
|
|
252
|
+
const isFirstPage = this.currentSearchPage === 1;
|
|
253
|
+
const checkboxItemsFromIndex = isFirstPage ? 0 : (this.currentSearchPage - 1) * this.searchOffset;
|
|
254
|
+
const checkboxItemsToIndex = isFirstPage ? this.searchOffset : this.currentSearchPage * this.searchOffset;
|
|
255
|
+
return [checkboxItemsFromIndex, checkboxItemsToIndex];
|
|
256
|
+
}
|
|
175
257
|
/*************
|
|
176
258
|
* Lifecycle *
|
|
177
259
|
*************/
|
|
@@ -182,12 +264,12 @@ export class MgInputCheckbox {
|
|
|
182
264
|
componentWillLoad() {
|
|
183
265
|
// Get locales
|
|
184
266
|
this.messages = initLocales(this.element).messages;
|
|
185
|
-
if (this.type === 'multi')
|
|
186
|
-
this.element.dataset.mgPopoverGuard = this.getMgPopoverIdentifier();
|
|
187
267
|
// Validate
|
|
268
|
+
this.validateType(this.type);
|
|
188
269
|
this.validateValue(this.value);
|
|
189
270
|
this.validateDisabled(this.disabled);
|
|
190
|
-
this.
|
|
271
|
+
this.validateDisplaySelectedValues(this.displaySelectedValues);
|
|
272
|
+
this.setCurrentSearchPage();
|
|
191
273
|
// Check validity when component is ready
|
|
192
274
|
// return a promise to process action only in the FIRST render().
|
|
193
275
|
// https://stenciljs.com/docs/component-lifecycle#componentwillload
|
|
@@ -195,30 +277,60 @@ export class MgInputCheckbox {
|
|
|
195
277
|
this.checkValidity();
|
|
196
278
|
}, 0);
|
|
197
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
* Render checkbox multi display values
|
|
282
|
+
* @param selectedValuesNb - selected values length
|
|
283
|
+
* @returns display selected values
|
|
284
|
+
*/
|
|
285
|
+
renderCheckboxMultiDisplaySelectedValues(selectedValuesNb) {
|
|
286
|
+
if (this.displaySelectedValues) {
|
|
287
|
+
return (selectedValuesNb > 0 && (h("ul", { role: "list", class: "mg-input__input-checkbox-multi-values-container" }, this.checkboxItems
|
|
288
|
+
.filter(({ value }) => value)
|
|
289
|
+
.map(({ title }) => (h("li", { class: "mg-input__input-checkbox-multi-value", key: title }, title))))));
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
return h("strong", null, this.messages.input.checkbox[selectedValuesNb > 1 ? 'selectedValues' : 'selectedValue'].replace('{nb}', selectedValuesNb));
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Render paginated checkboxes
|
|
297
|
+
* @param checkboxes - checkboxes to render
|
|
298
|
+
* @returns paginated checkboxes
|
|
299
|
+
*/
|
|
300
|
+
renderPaginatedCheckboxes(checkboxes) {
|
|
301
|
+
const [checkboxItemsFromIndex, checkboxItemsToIndex] = this.getFromToIndexes();
|
|
302
|
+
return [
|
|
303
|
+
this.renderCheckboxes(this.getArrayRange(checkboxes, checkboxItemsFromIndex, checkboxItemsToIndex)),
|
|
304
|
+
h("mg-pagination", { key: "search-pagination", totalPages: this.getPaginationTotalPages(checkboxes), currentPage: this.currentSearchPage, "onCurrent-page-change": this.handleCurrentPageChange, hideNavigationLabels: true, identifier: `${this.identifier}-pagination` }),
|
|
305
|
+
];
|
|
306
|
+
}
|
|
198
307
|
/**
|
|
199
308
|
* render checkbox multi element
|
|
200
309
|
* @returns html element
|
|
201
310
|
*/
|
|
202
311
|
renderCheckboxMulti() {
|
|
203
312
|
const selectedValuesNb = this.checkboxItems.filter(({ value }) => value).length;
|
|
204
|
-
|
|
313
|
+
const checkboxes = this.getDisplayItems();
|
|
314
|
+
return (h("div", { class: { 'mg-input__input-container': true, 'mg-input__input-checkbox-multi': true, 'mg-input__input-checkbox-multi--with-values': this.displaySelectedValues } }, this.renderCheckboxMultiDisplaySelectedValues(selectedValuesNb), h("mg-popover", { arrowHide: true, identifier: this.getMgPopoverIdentifier(), "onDisplay-change": this.handleMgPopoverDisplayChange, ref: el => {
|
|
205
315
|
if (Boolean(el))
|
|
206
316
|
this.mgPopover = el;
|
|
207
|
-
} }, h("mg-button", { variant: "secondary" }, h("mg-icon", { icon: "list" }), this.renderButtonText(selectedValuesNb)), h("div", { slot: "content" }, this.
|
|
317
|
+
} }, h("mg-button", { variant: "secondary" }, h("mg-icon", { icon: "list" }), this.renderButtonText(selectedValuesNb)), h("div", { slot: "content" }, this.displaySearchInput && [
|
|
318
|
+
h("mg-input-text", { key: "input-search", identifier: `${this.identifier}-input-search`, icon: "magnifying-glass", type: "search", placeholder: this.messages.input.checkbox.label, label: this.messages.input.checkbox.label, mgWidth: "full", value: this.searchValue, labelHide: true, displayCharacterLeft: false, name: "q", "onValue-change": this.handleSearchChange, "aria-controls": "search-results items-list" }),
|
|
319
|
+
h("p", { key: "search-results", role: "status", class: "sr-only", id: "search-results" }, `${checkboxes.length} ${this.messages.input.checkbox[checkboxes.length > 0 ? 'results' : 'result']}`),
|
|
320
|
+
], this.displaySearchInput && this.getPaginationTotalPages(checkboxes) > 1 ? this.renderPaginatedCheckboxes(checkboxes) : this.renderCheckboxes(checkboxes), this.displaySearchInput && checkboxes.length === 0 && h("p", { class: "mg-input__input-checkbox-multi-no-result" }, this.messages.input.checkbox.noResult)))));
|
|
208
321
|
}
|
|
209
322
|
/**
|
|
210
323
|
* Render checkbox element
|
|
324
|
+
* @param checkboxes - checkboxes to render
|
|
211
325
|
* @returns HTML Element
|
|
212
326
|
*/
|
|
213
|
-
renderCheckboxes() {
|
|
327
|
+
renderCheckboxes(checkboxes) {
|
|
214
328
|
return (h("ul", { class: {
|
|
215
329
|
'mg-input__input-group-container': true,
|
|
216
330
|
'mg-input__input-group-container--vertical': this.inputVerticalList || (this.type === 'multi' && !this.readonly),
|
|
217
331
|
'mg-input__input-checkbox-multi-inputs': this.type === 'multi' && !this.readonly,
|
|
218
|
-
}, role: "list"
|
|
219
|
-
.filter(item =>
|
|
220
|
-
return !this.readonly || item.value;
|
|
221
|
-
})
|
|
332
|
+
}, role: "list", "aria-describedby": this.displaySearchInput ? 'search-results' : false, "aria-label": this.displaySearchInput ? this.messages.input.checkbox.searchResults : false, "aria-live": this.displaySearchInput ? 'polite' : false, id: "items-list", key: "checkboxes" }, checkboxes
|
|
333
|
+
.filter(item => !this.readonly || item.value)
|
|
222
334
|
.map((input, index) => (h("li", { key: input.id, class: { 'mg-input__input-group': true, 'mg-input__input-group--disabled': this.disabled || input.disabled } }, h("input", { type: "checkbox", id: input.id, name: this.identifier, value: input.value && input.value.toString(), checked: Boolean(input.value), disabled: this.readonly || this.disabled || input.disabled, required: this.required, indeterminate: input.value === null, onInput: this.handleInput, onBlur: this.handleBlur, onKeyDown: this.handleKeydown, ref: el => {
|
|
223
335
|
if (el !== null)
|
|
224
336
|
this.inputs[index] = el;
|
|
@@ -229,7 +341,7 @@ export class MgInputCheckbox {
|
|
|
229
341
|
* @returns HTML Element
|
|
230
342
|
*/
|
|
231
343
|
render() {
|
|
232
|
-
return (h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: !this.readonly ? this.required : undefined, readonly: undefined, mgWidth: undefined, disabled: this.disabled, value: this.value && this.value.toString(), readonlyValue: undefined, tooltip: !this.readonly ? this.tooltip : undefined, helpText: !this.readonly ? this.helpText : undefined, errorMessage: !this.readonly ? this.errorMessage : undefined, isFieldset: true }, this.type === 'checkbox' || this.readonly ? this.renderCheckboxes() : this.renderCheckboxMulti()));
|
|
344
|
+
return (h(MgInput, { identifier: this.identifier, classCollection: this.classCollection, ariaDescribedbyIDs: [], label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: !this.readonly ? this.required : undefined, readonly: undefined, mgWidth: undefined, disabled: this.disabled, value: this.value && this.value.toString(), readonlyValue: undefined, tooltip: !this.readonly ? this.tooltip : undefined, helpText: !this.readonly ? this.helpText : undefined, errorMessage: !this.readonly ? this.errorMessage : undefined, isFieldset: true }, this.type === 'checkbox' || this.readonly ? this.renderCheckboxes(this.checkboxItems) : this.renderCheckboxMulti()));
|
|
233
345
|
}
|
|
234
346
|
static get is() { return "mg-input-checkbox"; }
|
|
235
347
|
static get encapsulation() { return "shadow"; }
|
|
@@ -267,7 +379,7 @@ export class MgInputCheckbox {
|
|
|
267
379
|
},
|
|
268
380
|
"type": {
|
|
269
381
|
"type": "string",
|
|
270
|
-
"mutable":
|
|
382
|
+
"mutable": true,
|
|
271
383
|
"complexType": {
|
|
272
384
|
"original": "CheckboxType",
|
|
273
385
|
"resolved": "\"checkbox\" | \"multi\"",
|
|
@@ -429,6 +541,23 @@ export class MgInputCheckbox {
|
|
|
429
541
|
"reflect": false,
|
|
430
542
|
"defaultValue": "false"
|
|
431
543
|
},
|
|
544
|
+
"displaySelectedValues": {
|
|
545
|
+
"type": "boolean",
|
|
546
|
+
"mutable": false,
|
|
547
|
+
"complexType": {
|
|
548
|
+
"original": "boolean",
|
|
549
|
+
"resolved": "boolean",
|
|
550
|
+
"references": {}
|
|
551
|
+
},
|
|
552
|
+
"required": false,
|
|
553
|
+
"optional": false,
|
|
554
|
+
"docs": {
|
|
555
|
+
"tags": [],
|
|
556
|
+
"text": "Display selected values list in \"multi\" type"
|
|
557
|
+
},
|
|
558
|
+
"attribute": "display-selected-values",
|
|
559
|
+
"reflect": false
|
|
560
|
+
},
|
|
432
561
|
"disabled": {
|
|
433
562
|
"type": "boolean",
|
|
434
563
|
"mutable": false,
|
|
@@ -521,7 +650,11 @@ export class MgInputCheckbox {
|
|
|
521
650
|
return {
|
|
522
651
|
"classCollection": {},
|
|
523
652
|
"errorMessage": {},
|
|
524
|
-
"checkboxItems": {}
|
|
653
|
+
"checkboxItems": {},
|
|
654
|
+
"displaySearchInput": {},
|
|
655
|
+
"currentSearchPage": {},
|
|
656
|
+
"searchValue": {},
|
|
657
|
+
"searchResults": {}
|
|
525
658
|
};
|
|
526
659
|
}
|
|
527
660
|
static get events() {
|
|
@@ -593,6 +726,9 @@ export class MgInputCheckbox {
|
|
|
593
726
|
}, {
|
|
594
727
|
"propName": "type",
|
|
595
728
|
"methodName": "validateType"
|
|
729
|
+
}, {
|
|
730
|
+
"propName": "displaySelectedValues",
|
|
731
|
+
"methodName": "validateDisplaySelectedValues"
|
|
596
732
|
}, {
|
|
597
733
|
"propName": "required",
|
|
598
734
|
"methodName": "handleValidityChange"
|
|
@@ -605,6 +741,12 @@ export class MgInputCheckbox {
|
|
|
605
741
|
}, {
|
|
606
742
|
"propName": "disabled",
|
|
607
743
|
"methodName": "validateDisabled"
|
|
744
|
+
}, {
|
|
745
|
+
"propName": "checkboxItems",
|
|
746
|
+
"methodName": "validateCheckboxItems"
|
|
747
|
+
}, {
|
|
748
|
+
"propName": "searchValue",
|
|
749
|
+
"methodName": "validateSearchValue"
|
|
608
750
|
}];
|
|
609
751
|
}
|
|
610
752
|
}
|
|
@@ -25,12 +25,14 @@
|
|
|
25
25
|
transition: none !important;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
.mg-details {
|
|
29
|
+
container: mg-details/inline-size;
|
|
30
|
+
}
|
|
28
31
|
.mg-details summary {
|
|
29
32
|
display: flex;
|
|
30
33
|
align-items: baseline;
|
|
31
34
|
cursor: pointer;
|
|
32
35
|
}
|
|
33
|
-
|
|
34
36
|
.mg-details__toggle {
|
|
35
37
|
margin-left: 1.5rem;
|
|
36
38
|
flex-shrink: 0;
|
|
@@ -40,7 +42,22 @@
|
|
|
40
42
|
gap: 0.6rem;
|
|
41
43
|
min-height: calc(var(--font-size) * var(--line-height));
|
|
42
44
|
}
|
|
43
|
-
|
|
44
45
|
.mg-details__details {
|
|
45
|
-
margin-top:
|
|
46
|
+
margin-top: var(--mg-details-spacing);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@container mg-details (max-width: 60rem) {
|
|
50
|
+
.mg-details__toggle span {
|
|
51
|
+
border: 0 !important;
|
|
52
|
+
clip: rect(1px, 1px, 1px, 1px) !important;
|
|
53
|
+
-webkit-clip-path: inset(50%) !important;
|
|
54
|
+
clip-path: inset(50%) !important;
|
|
55
|
+
height: 1px !important;
|
|
56
|
+
margin: -1px !important;
|
|
57
|
+
overflow: hidden !important;
|
|
58
|
+
padding: 0 !important;
|
|
59
|
+
position: absolute !important;
|
|
60
|
+
width: 1px !important;
|
|
61
|
+
white-space: nowrap !important;
|
|
62
|
+
}
|
|
46
63
|
}
|
|
@@ -23,7 +23,12 @@
|
|
|
23
23
|
"selectedValue": "{nb} selected value",
|
|
24
24
|
"editButton": "Edit",
|
|
25
25
|
"selectButton": "Select values",
|
|
26
|
-
"showButton": "Show"
|
|
26
|
+
"showButton": "Show",
|
|
27
|
+
"label": "Enter a value",
|
|
28
|
+
"result": "result",
|
|
29
|
+
"results": "results",
|
|
30
|
+
"searchResults": "Search result(s) list.",
|
|
31
|
+
"noResult": "No result."
|
|
27
32
|
}
|
|
28
33
|
},
|
|
29
34
|
"form": {
|
|
@@ -23,7 +23,12 @@
|
|
|
23
23
|
"selectedValue": "{nb} valeur selectionnée",
|
|
24
24
|
"editButton": "Modifier",
|
|
25
25
|
"selectButton": "Sélectionner des valeurs",
|
|
26
|
-
"showButton": "Voir"
|
|
26
|
+
"showButton": "Voir",
|
|
27
|
+
"label": "Saisissez une valeur",
|
|
28
|
+
"result": "resultat",
|
|
29
|
+
"results": "resultats",
|
|
30
|
+
"searchResults": "List de resultat(s) de la recherche.",
|
|
31
|
+
"noResult": "Aucun resultat."
|
|
27
32
|
}
|
|
28
33
|
},
|
|
29
34
|
"form": {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
// Make content available only for screen reader
|
|
6
6
|
// https://gist.github.com/ffoodd/000b59f431e3e64e4ce1a24d5bb36034
|
|
7
|
-
|
|
7
|
+
@mixin sr-only {
|
|
8
8
|
border: 0 !important;
|
|
9
9
|
clip: rect(1px, 1px, 1px, 1px) !important;
|
|
10
10
|
-webkit-clip-path: inset(50%) !important;
|
|
@@ -18,6 +18,10 @@
|
|
|
18
18
|
white-space: nowrap !important;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
.sr-only {
|
|
22
|
+
@include sr-only();
|
|
23
|
+
}
|
|
24
|
+
|
|
21
25
|
// Remove outline for non-keyboard :focus
|
|
22
26
|
// https://www.tpgi.com/focus-visible-and-backwards-compatibility/
|
|
23
27
|
*:focus:not(:focus-visible) {
|
|
@@ -75,6 +75,9 @@
|
|
|
75
75
|
--color-dark-l: 13.1%;
|
|
76
76
|
--color-dark: var(--color-dark-h), var(--color-dark-s), var(--color-dark-l);
|
|
77
77
|
|
|
78
|
+
/* dark-5 */
|
|
79
|
+
--mg-color-dark-5-hsl: hsl(var(--color-dark-h), 9%, 96%);
|
|
80
|
+
|
|
78
81
|
/* Light */
|
|
79
82
|
/* white; (#ffffff) */
|
|
80
83
|
/* rgb(255, 255, 255); */
|
|
@@ -259,4 +262,9 @@
|
|
|
259
262
|
--mg-tabs-focused-background-color-hsl: var(--mg-color-app-hsl);
|
|
260
263
|
--mg-tabs-border-color-active-hsl: var(--mg-color-app-hsl);
|
|
261
264
|
--mg-tabs-color-active-hsl: var(--mg-color-app-hsl);
|
|
265
|
+
|
|
266
|
+
/*
|
|
267
|
+
<mg-details>
|
|
268
|
+
*/
|
|
269
|
+
--mg-details-spacing: 1.5rem;
|
|
262
270
|
}
|
|
@@ -22,7 +22,12 @@ const input$1 = {
|
|
|
22
22
|
selectedValue: "{nb} selected value",
|
|
23
23
|
editButton: "Edit",
|
|
24
24
|
selectButton: "Select values",
|
|
25
|
-
showButton: "Show"
|
|
25
|
+
showButton: "Show",
|
|
26
|
+
label: "Enter a value",
|
|
27
|
+
result: "result",
|
|
28
|
+
results: "results",
|
|
29
|
+
searchResults: "Search result(s) list.",
|
|
30
|
+
noResult: "No result."
|
|
26
31
|
}
|
|
27
32
|
};
|
|
28
33
|
const form$1 = {
|
|
@@ -104,7 +109,12 @@ const input = {
|
|
|
104
109
|
selectedValue: "{nb} valeur selectionnée",
|
|
105
110
|
editButton: "Modifier",
|
|
106
111
|
selectButton: "Sélectionner des valeurs",
|
|
107
|
-
showButton: "Voir"
|
|
112
|
+
showButton: "Voir",
|
|
113
|
+
label: "Saisissez une valeur",
|
|
114
|
+
result: "resultat",
|
|
115
|
+
results: "resultats",
|
|
116
|
+
searchResults: "List de resultat(s) de la recherche.",
|
|
117
|
+
noResult: "Aucun resultat."
|
|
108
118
|
}
|
|
109
119
|
};
|
|
110
120
|
const form = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
2
2
|
import { d as defineCustomElement$2 } from './mg-icon2.js';
|
|
3
3
|
|
|
4
|
-
const mgDetailsCss = ".sr-only{border:0 !important
|
|
4
|
+
const mgDetailsCss = "/**\n * A11Y\n */\n.sr-only {\n border: 0 !important;\n clip: rect(1px, 1px, 1px, 1px) !important;\n -webkit-clip-path: inset(50%) !important;\n clip-path: inset(50%) !important;\n height: 1px !important;\n margin: -1px !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n width: 1px !important;\n white-space: nowrap !important;\n}\n\n*:focus:not(:focus-visible) {\n outline: none;\n}\n\n@media (prefers-reduced-motion) {\n .mg-a11y-animation {\n animation: none !important;\n transition: none !important;\n }\n}\n.mg-details {\n container: mg-details/inline-size;\n}\n.mg-details summary {\n display: flex;\n align-items: baseline;\n cursor: pointer;\n}\n.mg-details__toggle {\n margin-left: 1.5rem;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n align-self: flex-start;\n gap: 0.6rem;\n min-height: calc(var(--font-size) * var(--line-height));\n}\n.mg-details__details {\n margin-top: var(--mg-details-spacing);\n}\n\n@container mg-details (max-width: 60rem) {\n .mg-details__toggle span {\n border: 0 !important;\n clip: rect(1px, 1px, 1px, 1px) !important;\n -webkit-clip-path: inset(50%) !important;\n clip-path: inset(50%) !important;\n height: 1px !important;\n margin: -1px !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n width: 1px !important;\n white-space: nowrap !important;\n }\n}";
|
|
5
5
|
|
|
6
6
|
const MgDetails$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
7
7
|
constructor() {
|