@mgdis/mg-components 6.21.0 → 6.22.1

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 (177) hide show
  1. package/dist/cjs/{index-CCsGMNyq.js → index-BxB20_Vw.js} +8 -0
  2. package/dist/cjs/{index-C2viYwrR.js → index-Dz2LAZQT.js} +329 -1789
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/{mg-action-more_37.cjs.entry.js → mg-action-more_36.cjs.entry.js} +200 -242
  5. package/dist/cjs/mg-alert.cjs.entry.js +3 -3
  6. package/dist/cjs/mg-breadcrumb.cjs.entry.js +63 -0
  7. package/dist/cjs/mg-components.cjs.js +3 -3
  8. package/dist/cjs/mg-fieldset.cjs.entry.js +2 -2
  9. package/dist/cjs/mg-input-combobox.cjs.entry.js +4 -4
  10. package/dist/cjs/mg-input-file.cjs.entry.js +4 -4
  11. package/dist/cjs/mg-input-rich-text-editor.cjs.entry.js +40095 -15808
  12. package/dist/cjs/mg-loader.cjs.entry.js +3 -3
  13. package/dist/cjs/mg-progress.cjs.entry.js +2 -2
  14. package/dist/collection/assets/icons/index.js +1 -1
  15. package/dist/collection/collection-manifest.json +4 -3
  16. package/dist/collection/components/atoms/internals/mg-character-left/mg-character-left.js +1 -1
  17. package/dist/collection/components/atoms/internals/mg-input-title/mg-input-title.js +1 -1
  18. package/dist/collection/components/atoms/mg-badge/mg-badge.js +2 -1
  19. package/dist/collection/components/atoms/mg-button/mg-button.js +6 -3
  20. package/dist/collection/components/atoms/mg-card/mg-card.js +3 -2
  21. package/dist/collection/components/atoms/mg-divider/mg-divider.js +1 -1
  22. package/dist/collection/components/atoms/mg-icon/mg-icon.js +10 -6
  23. package/dist/collection/components/atoms/mg-tag/mg-tag.js +3 -2
  24. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip-content/mg-tooltip-content.js +1 -1
  25. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +3 -2
  26. package/dist/collection/components/molecules/inputs/mg-input/mg-input.js +5 -3
  27. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.js +2 -2
  28. package/dist/collection/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxPaginated.js +38 -0
  29. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.js +3 -2
  30. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +47 -26
  31. package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.js +13 -7
  32. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +3 -2
  33. package/dist/collection/components/molecules/inputs/mg-input-file/mg-input-file.js +4 -3
  34. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +9 -5
  35. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +6 -4
  36. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +5 -3
  37. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/custom-properties.scss +212 -0
  38. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.conf.js +1 -0
  39. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/editor/index.js +300 -94
  40. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.conf.js +29 -0
  41. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.js +164 -51
  42. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +22 -8
  43. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +12 -7
  44. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +5 -3
  45. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +7 -4
  46. package/dist/collection/components/molecules/internals/mg-item-more/mg-item-more.js +7 -38
  47. package/dist/collection/components/molecules/menus/mg-menu/mg-menu.conf.js +0 -4
  48. package/dist/collection/components/molecules/menus/mg-menu/mg-menu.js +24 -44
  49. package/dist/collection/components/molecules/menus/mg-menu-item/mg-menu-item.js +69 -40
  50. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +11 -7
  51. package/dist/collection/components/molecules/mg-alert/mg-alert.js +5 -3
  52. package/dist/collection/components/molecules/mg-breadcrumb/mg-breadcrumb.conf.js +1 -0
  53. package/dist/collection/components/molecules/mg-breadcrumb/mg-breadcrumb.js +93 -0
  54. package/dist/collection/components/molecules/mg-details/mg-details.js +1 -1
  55. package/dist/collection/components/molecules/mg-fieldset/mg-fieldset.js +3 -2
  56. package/dist/collection/components/molecules/mg-form/mg-form.js +5 -3
  57. package/dist/collection/components/molecules/mg-illustrated-message/mg-illustrated-message.js +5 -3
  58. package/dist/collection/components/molecules/mg-loader/mg-loader.js +1 -1
  59. package/dist/collection/components/molecules/mg-message/mg-message.js +6 -4
  60. package/dist/collection/components/molecules/mg-modal/mg-modal.js +4 -3
  61. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +2 -1
  62. package/dist/collection/components/molecules/mg-panel/mg-panel.js +5 -3
  63. package/dist/collection/components/molecules/mg-popover/mg-popover-content/mg-popover-content.js +1 -1
  64. package/dist/collection/components/molecules/mg-popover/mg-popover.js +3 -2
  65. package/dist/collection/components/molecules/mg-progress/mg-progress.js +3 -2
  66. package/dist/collection/components/molecules/mg-skip-links/mg-skip-links.js +3 -2
  67. package/dist/collection/components/molecules/mg-table/mg-table.js +41 -2
  68. package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js +0 -4
  69. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +15 -34
  70. package/dist/collection/locales/en/messages.json +3 -0
  71. package/dist/collection/locales/fr/messages.json +3 -0
  72. package/dist/components/index2.js +1 -1
  73. package/dist/components/index3.js +1 -1
  74. package/dist/components/mg-action-more.js +1 -1
  75. package/dist/components/mg-alert.js +1 -1
  76. package/dist/components/mg-breadcrumb.d.ts +11 -0
  77. package/dist/components/mg-breadcrumb.js +1 -0
  78. package/dist/components/mg-card2.js +1 -1
  79. package/dist/components/mg-character-left2.js +1 -1
  80. package/dist/components/mg-details.js +1 -1
  81. package/dist/components/mg-divider2.js +1 -1
  82. package/dist/components/mg-fieldset.js +1 -1
  83. package/dist/components/mg-form.js +1 -1
  84. package/dist/components/mg-icon2.js +1 -1
  85. package/dist/components/mg-illustrated-message.js +1 -1
  86. package/dist/components/mg-input-checkbox.js +1 -1
  87. package/dist/components/mg-input-combobox.js +1 -1
  88. package/dist/components/mg-input-date.js +1 -1
  89. package/dist/components/mg-input-file.js +1 -1
  90. package/dist/components/mg-input-numeric.js +1 -1
  91. package/dist/components/mg-input-password.js +1 -1
  92. package/dist/components/mg-input-radio.js +1 -1
  93. package/dist/components/mg-input-rich-text-editor.js +1663 -1
  94. package/dist/components/mg-input-select2.js +1 -1
  95. package/dist/components/mg-input-text2.js +1 -1
  96. package/dist/components/mg-input-textarea.js +1 -1
  97. package/dist/components/mg-input-title2.js +1 -1
  98. package/dist/components/mg-input-toggle.js +1 -1
  99. package/dist/components/mg-input2.js +1 -1
  100. package/dist/components/mg-item-more2.js +1 -1
  101. package/dist/components/mg-loader2.js +1 -1
  102. package/dist/components/mg-menu-item2.js +1 -1
  103. package/dist/components/mg-message2.js +1 -1
  104. package/dist/components/mg-modal.js +1 -1
  105. package/dist/components/mg-panel.js +1 -1
  106. package/dist/components/mg-popover-content2.js +1 -1
  107. package/dist/components/mg-popover2.js +1 -1
  108. package/dist/components/mg-progress.js +1 -1
  109. package/dist/components/mg-skip-links.js +1 -1
  110. package/dist/components/mg-table.js +1 -1
  111. package/dist/components/mg-tabs2.js +1 -1
  112. package/dist/components/mg-tag.js +1 -1
  113. package/dist/components/mg-tooltip-content2.js +1 -1
  114. package/dist/components/mg-tooltip2.js +1 -1
  115. package/dist/esm/{index-DFwaH2hS.js → index-C3jUhxdI.js} +329 -1789
  116. package/dist/esm/{index-D-uaxCxH.js → index-DSEloqPn.js} +8 -0
  117. package/dist/esm/loader.js +3 -3
  118. package/dist/esm/{mg-action-more_37.entry.js → mg-action-more_36.entry.js} +202 -243
  119. package/dist/esm/mg-alert.entry.js +3 -3
  120. package/dist/esm/mg-breadcrumb.entry.js +61 -0
  121. package/dist/esm/mg-components.js +4 -4
  122. package/dist/esm/mg-fieldset.entry.js +2 -2
  123. package/dist/esm/mg-input-combobox.entry.js +4 -4
  124. package/dist/esm/mg-input-file.entry.js +4 -4
  125. package/dist/esm/mg-input-rich-text-editor.entry.js +40082 -15795
  126. package/dist/esm/mg-loader.entry.js +3 -3
  127. package/dist/esm/mg-progress.entry.js +2 -2
  128. package/dist/mg-components/locales/en/messages.json +3 -0
  129. package/dist/mg-components/locales/fr/messages.json +3 -0
  130. package/dist/mg-components/mg-components.esm.js +1 -1
  131. package/dist/mg-components/{p-6b57f249.entry.js → p-06fbdb2f.entry.js} +1 -1
  132. package/dist/mg-components/{p-c3d116b9.entry.js → p-188b9ca9.entry.js} +1 -1
  133. package/dist/mg-components/p-4667078d.entry.js +1 -0
  134. package/dist/mg-components/p-5a859ecf.entry.js +1658 -0
  135. package/dist/mg-components/p-661da56b.entry.js +1 -0
  136. package/dist/mg-components/{p-988c282e.entry.js → p-8e256086.entry.js} +1 -1
  137. package/dist/mg-components/p-C3jUhxdI.js +2 -0
  138. package/dist/mg-components/p-DSEloqPn.js +1 -0
  139. package/dist/mg-components/{p-6b655830.entry.js → p-b0b8c58f.entry.js} +1 -1
  140. package/dist/mg-components/{p-dd1934f4.entry.js → p-bbcef41c.entry.js} +1 -1
  141. package/dist/mg-components/{p-4175dcbe.entry.js → p-c1aeb277.entry.js} +1 -1
  142. package/dist/types/assets/icons/index.d.ts +2 -0
  143. package/dist/types/components/molecules/inputs/mg-input/mg-input.conf.d.ts +1 -1
  144. package/dist/types/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxList.d.ts +2 -2
  145. package/dist/types/components/molecules/inputs/mg-input-checkbox/MgInputCheckboxPaginated.d.ts +8 -0
  146. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.conf.d.ts +16 -8
  147. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +15 -5
  148. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.conf.d.ts +17 -0
  149. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/editor/index.d.ts +27 -19
  150. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.conf.d.ts +3 -0
  151. package/dist/types/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.d.ts +48 -14
  152. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +1 -1
  153. package/dist/types/components/molecules/internals/mg-item-more/mg-item-more.conf.d.ts +0 -5
  154. package/dist/types/components/molecules/internals/mg-item-more/mg-item-more.d.ts +1 -6
  155. package/dist/types/components/molecules/menus/mg-menu/mg-menu.conf.d.ts +2 -10
  156. package/dist/types/components/molecules/menus/mg-menu/mg-menu.d.ts +7 -7
  157. package/dist/types/components/molecules/menus/mg-menu-item/mg-menu-item.d.ts +12 -8
  158. package/dist/types/components/molecules/mg-breadcrumb/mg-breadcrumb.conf.d.ts +18 -0
  159. package/dist/types/components/molecules/mg-breadcrumb/mg-breadcrumb.d.ts +34 -0
  160. package/dist/types/components/molecules/mg-table/mg-table.d.ts +6 -0
  161. package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +1 -9
  162. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +4 -4
  163. package/dist/types/components.d.ts +617 -207
  164. package/dist/types/stencil-public-runtime.d.ts +52 -2
  165. package/ide/intellij/web-types.json +143 -55
  166. package/ide/vscode/css-custom-data.json +10 -2
  167. package/ide/vscode/html-custom-data.json +113 -34
  168. package/package.json +24 -23
  169. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.js +0 -245
  170. package/dist/components/mg-input-checkbox-paginated.d.ts +0 -11
  171. package/dist/components/mg-input-checkbox-paginated.js +0 -1
  172. package/dist/components/mg-input-checkbox-paginated2.js +0 -1
  173. package/dist/mg-components/p-08fa327b.entry.js +0 -1
  174. package/dist/mg-components/p-D-uaxCxH.js +0 -1
  175. package/dist/mg-components/p-DFwaH2hS.js +0 -2
  176. package/dist/mg-components/p-a79b1f19.entry.js +0 -1
  177. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox-paginated/mg-input-checkbox-paginated.d.ts +0 -77
@@ -2,17 +2,25 @@ import { h } from "@stencil/core";
2
2
  import { ClassList, isValidString, toString } from "@mgdis/core-ui-helpers/dist/utils";
3
3
  import { classReadonly, classDisabled } from "../mg-input/mg-input.conf";
4
4
  import { initLocales } from "../../../../locales";
5
+ import { Sanitizer } from "@mgdis/sanitize-html";
5
6
  import { defineEditor } from "./editor";
7
+ import { DEFAULT_MODULES } from "./mg-input-rich-text-editor.conf";
6
8
  export class MgInputRichTextEditor {
7
9
  constructor() {
8
10
  // hasDisplayedError (triggered by blur event)
9
11
  this.hasDisplayedError = false;
12
+ // Custom error message
10
13
  this.customErrorMessage = { lock: false };
11
14
  /**
12
15
  * Define the value of the editor
13
16
  * Can be either HTML string or plain text
14
17
  */
15
18
  this.value = '';
19
+ /**
20
+ * Input name
21
+ * If not set the value equals the identifier
22
+ */
23
+ this.name = this.identifier;
16
24
  /**
17
25
  * Define if label is displayed on top
18
26
  */
@@ -22,7 +30,8 @@ export class MgInputRichTextEditor {
22
30
  */
23
31
  this.labelHide = false;
24
32
  /**
25
- * Define the number of visible text lines for the control
33
+ * Define the number of visible text lines for the editor.
34
+ * Impacts the editor height. Content can grow beyond this minimum.
26
35
  */
27
36
  this.rows = 5;
28
37
  /**
@@ -50,19 +59,19 @@ export class MgInputRichTextEditor {
50
59
  * @returns truthy is value is invalid
51
60
  */
52
61
  this.isEmpty = () => {
53
- const textContent = this.getTextContent();
62
+ const textContent = this.editor.editor.textContent.trim();
54
63
  return !(isValidString(textContent) && textContent !== '\n');
55
64
  };
56
- /**
57
- * Extract the text without HTML tags from value
58
- * @returns text content
59
- */
60
- this.getTextContent = () => this.value.replace(/<[^>]*>/g, '').trim();
61
65
  /**
62
66
  * Get pattern validity
63
67
  * @returns is pattern valid
64
68
  */
65
- this.getPatternValidity = () => this.pattern === undefined || new RegExp(`^${this.pattern}$`, 'u').test(this.getTextContent());
69
+ this.getPatternValidity = () => {
70
+ if (this.pattern === undefined)
71
+ return true;
72
+ const textContent = this.editor.editor.textContent.trim();
73
+ return new RegExp(`^${this.pattern}$`, 'u').test(textContent);
74
+ };
66
75
  /**
67
76
  * Check if input is valid
68
77
  */
@@ -115,17 +124,22 @@ export class MgInputRichTextEditor {
115
124
  * Handle `text-change` event
116
125
  */
117
126
  this.handleTextChange = () => {
118
- // Get HTML content
119
- const htmlContent = this.editor.getSemanticHTML();
120
- this.value = htmlContent;
121
- // Emit the HTML content for form compatibility
122
- this.valueChange.emit(htmlContent);
127
+ // Get HTML content and sanitize before storing and emitting
128
+ this.value = this.sanitizer.sanitize(this.editor.value);
129
+ // Emit the sanitized HTML content for form compatibility
130
+ this.valueChange.emit(this.value);
123
131
  // Check validity but do not display the error message if the error message is already displayed
124
132
  this.checkValidity();
125
133
  if (this.hasDisplayedError) {
126
134
  this.setErrorMessage();
127
135
  }
128
136
  };
137
+ /**
138
+ * Initialize sanitizer with current sanitizerOptions
139
+ */
140
+ this.initializeSanitizer = () => {
141
+ this.sanitizer = new Sanitizer(this.sanitizerOptions);
142
+ };
129
143
  }
130
144
  watchReadonly(newValue) {
131
145
  if (newValue)
@@ -134,14 +148,26 @@ export class MgInputRichTextEditor {
134
148
  this.classCollection.delete(classReadonly);
135
149
  }
136
150
  watchDisabled(newValue) {
137
- var _a, _b;
151
+ var _a, _b, _c;
138
152
  if (newValue) {
139
153
  this.classCollection.add(classDisabled);
140
- (_a = this.editor) === null || _a === void 0 ? void 0 : _a.disable();
154
+ (_a = this.editor) === null || _a === void 0 ? void 0 : _a.setReadOnly(true);
141
155
  }
142
156
  else {
143
157
  this.classCollection.delete(classDisabled);
144
- (_b = this.editor) === null || _b === void 0 ? void 0 : _b.enable();
158
+ (_b = this.editor) === null || _b === void 0 ? void 0 : _b.setReadOnly(false);
159
+ }
160
+ // Propagate aria-disabled and tabIndex to the WYSIWYG element
161
+ const wysiwygEl = (_c = this.editor) === null || _c === void 0 ? void 0 : _c.editor;
162
+ if (wysiwygEl !== undefined) {
163
+ if (newValue) {
164
+ wysiwygEl.setAttribute('aria-disabled', 'true');
165
+ }
166
+ else {
167
+ wysiwygEl.removeAttribute('aria-disabled');
168
+ }
169
+ // tabIndex -1 when disabled to exclude from Tab navigation
170
+ wysiwygEl.tabIndex = newValue ? -1 : 0;
145
171
  }
146
172
  }
147
173
  handleValidityChange() {
@@ -158,6 +184,19 @@ export class MgInputRichTextEditor {
158
184
  throw new Error(`<mg-input-rich-text-editor> props "pattern" and "patternErrorMessage" must be non-empty string and paired. Passed value: "pattern='${toString(this.pattern)}'" and "patternErrorMessage='${toString(this.patternErrorMessage)}'".`);
159
185
  }
160
186
  }
187
+ watchModules(newValue) {
188
+ if (newValue !== undefined && (!Array.isArray(newValue) || newValue.length === 0 || !newValue.every(isValidString))) {
189
+ throw new Error(`<mg-input-rich-text-editor> prop "modules" must be a non-empty array of strings. Passed value: "${toString(newValue)}".`);
190
+ }
191
+ }
192
+ watchSanitizerOptions(newValue) {
193
+ if (newValue !== undefined && (typeof newValue !== 'object' || newValue === null || Array.isArray(newValue))) {
194
+ throw new Error(`<mg-input-rich-text-editor> prop "sanitizerOptions" must be an object. Passed value: "${toString(newValue)}".`);
195
+ }
196
+ if (this.sanitizer !== undefined) {
197
+ this.initializeSanitizer();
198
+ }
199
+ }
161
200
  /**
162
201
  * Set focus on input.
163
202
  */
@@ -166,26 +205,18 @@ export class MgInputRichTextEditor {
166
205
  (_a = this.editor) === null || _a === void 0 ? void 0 : _a.focus();
167
206
  }
168
207
  /**
169
- * Get editor content in HTML format
170
- * @returns HTML content of the editor
208
+ * Get editor content as HTML
209
+ * @returns HTML content of the editor (sanitized)
171
210
  */
172
- getEditorHTML() {
173
- return new Promise(resolve => {
174
- requestAnimationFrame(() => {
175
- resolve(this.editor.getSemanticHTML());
176
- });
177
- });
211
+ async getEditorHTML() {
212
+ return this.sanitizer.sanitize(this.editor.value);
178
213
  }
179
214
  /**
180
215
  * Get editor content in plain text format
181
216
  * @returns Plain text content of the editor
182
217
  */
183
218
  async getEditorText() {
184
- return new Promise(resolve => {
185
- requestAnimationFrame(() => {
186
- resolve(this.editor.getText());
187
- });
188
- });
219
+ return this.editor.editor.textContent.trim();
189
220
  }
190
221
  /**
191
222
  * Display input error if it exists.
@@ -238,7 +269,7 @@ export class MgInputRichTextEditor {
238
269
  async reset() {
239
270
  if (!this.readonly) {
240
271
  this.value = '';
241
- this.editor.setText('');
272
+ this.editor.value = '';
242
273
  // Use `Promise` as requested for stencil method
243
274
  // Use `requestAnimationFrame` to ensure:
244
275
  // - DOM is fully updated before validation
@@ -281,13 +312,16 @@ export class MgInputRichTextEditor {
281
312
  componentWillLoad() {
282
313
  // Get locales
283
314
  this.messages = initLocales(this.element).messages;
284
- this.element.style.setProperty('--mg-c-input-rich-text-editor-rows', this.rows.toString());
285
315
  // Validate
286
316
  this.validatePattern(this.pattern);
287
317
  this.validatePattern(this.patternErrorMessage);
288
318
  // Watch
289
319
  this.watchReadonly(this.readonly);
290
320
  this.watchDisabled(this.disabled);
321
+ this.watchModules(this.modules);
322
+ this.watchSanitizerOptions(this.sanitizerOptions);
323
+ // Initialize sanitizer with optional configuration
324
+ this.initializeSanitizer();
291
325
  // Check validity when component is ready
292
326
  // return a promise to process action only in the FIRST render().
293
327
  // https://stenciljs.com/docs/component-lifecycle#componentwillload
@@ -296,20 +330,44 @@ export class MgInputRichTextEditor {
296
330
  }, 0);
297
331
  }
298
332
  /**
299
- * add listeners and render editor element
333
+ * Add listeners and render editor element
300
334
  */
301
335
  componentDidLoad() {
336
+ var _a;
302
337
  if (!this.readonly) {
303
- this.editor = defineEditor(this.wrapperElement, {
304
- theme: 'snow',
305
- modules: this.modules,
338
+ this.editor = defineEditor(this.element, this.editorElement, {
339
+ modules: (_a = this.modules) !== null && _a !== void 0 ? _a : DEFAULT_MODULES,
306
340
  readOnly: this.readonly || this.disabled,
341
+ disabled: this.disabled,
307
342
  placeholder: this.placeholder,
308
- value: this.value,
343
+ value: this.sanitizer.sanitize(this.value),
344
+ rows: this.rows,
309
345
  handleTextChange: this.handleTextChange,
310
346
  handleBlur: this.handleBlur,
311
347
  handleFocus: this.handleFocus,
312
348
  });
349
+ // Track the initial title element set up by defineEditor
350
+ this.currentTitleElement = this.element.shadowRoot.querySelector('mg-input-title');
351
+ }
352
+ }
353
+ /**
354
+ * Re-apply accessibility attributes after re-renders.
355
+ * When state changes (disabled, readonly, etc.) trigger a re-render,
356
+ * mg-input's renderLabel() may destroy and recreate mg-input-title,
357
+ * which loses the id and click handler needed for aria-labelledby.
358
+ */
359
+ componentDidRender() {
360
+ if (this.editor !== undefined && !this.readonly) {
361
+ const titleElement = this.element.shadowRoot.querySelector('mg-input-title');
362
+ if (titleElement !== null && titleElement !== this.currentTitleElement) {
363
+ const titleId = `${this.identifier}-title`;
364
+ titleElement.id = titleId;
365
+ titleElement.addEventListener('click', () => {
366
+ var _a;
367
+ (_a = this.editor) === null || _a === void 0 ? void 0 : _a.focus();
368
+ });
369
+ this.currentTitleElement = titleElement;
370
+ }
313
371
  }
314
372
  }
315
373
  /**
@@ -317,20 +375,21 @@ export class MgInputRichTextEditor {
317
375
  * @returns HTML mg-input Element
318
376
  */
319
377
  render() {
320
- return (h("mg-input", { key: '26e4f26987e66541a6b21c7888ed7acd4e4ccad6', identifier: this.identifier, class: this.classCollection.join(), label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, tooltip: this.tooltip, tooltipPosition: this.tooltipPosition, helpText: this.helpText, errorMessage: this.hasDisplayedError ? this.errorMessage : undefined }, this.readonly ? (h("div", { class: "mg-c-input__readonly-value", innerHTML: this.value })) : (h("div", { ref: el => {
321
- this.wrapperElement = el;
322
- }, id: this.identifier, class: "mg-c-input__wrapper" }, h("div", null)))));
378
+ return (h("mg-input", { key: '019cea088aa4a3938d533d7214ba7a8a1e750c0d', identifier: this.identifier, class: this.classCollection.join(), label: this.label, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, tooltip: this.tooltip, tooltipPosition: this.tooltipPosition, helpText: this.helpText, errorMessage: this.hasDisplayedError ? this.errorMessage : undefined }, this.readonly ? (h("div", { class: "mg-c-input__readonly-value", innerHTML: this.value })) : (h("div", { id: this.identifier, class: "mg-c-input__wrapper" }, h("textarea", { name: this.name, ref: (el) => {
379
+ if (el !== null)
380
+ this.editorElement = el;
381
+ } })))));
323
382
  }
324
383
  static get is() { return "mg-input-rich-text-editor"; }
325
384
  static get encapsulation() { return "shadow"; }
326
385
  static get originalStyleUrls() {
327
386
  return {
328
- "$": ["../../../../../node_modules/quill/dist/quill.snow.css", "../../../../../node_modules/@mgdis/styles/dist/components/mg-input-rich-text-editor.css"]
387
+ "$": ["./editor/custom-properties.scss", "../../../../../node_modules/jodit/es2021/jodit.css", "../../../../../node_modules/@mgdis/styles/dist/components/mg-input-rich-text-editor.css"]
329
388
  };
330
389
  }
331
390
  static get styleUrls() {
332
391
  return {
333
- "$": ["../../../../../node_modules/quill/dist/quill.snow.css", "../../../../../node_modules/@mgdis/styles/dist/components/mg-input-rich-text-editor.css"]
392
+ "$": ["editor/custom-properties.css", "../../../../../node_modules/jodit/es2021/jodit.css", "../../../../../node_modules/@mgdis/styles/dist/components/mg-input-rich-text-editor.css"]
334
393
  };
335
394
  }
336
395
  static get properties() {
@@ -374,6 +433,26 @@ export class MgInputRichTextEditor {
374
433
  "reflect": false,
375
434
  "attribute": "identifier"
376
435
  },
436
+ "name": {
437
+ "type": "string",
438
+ "mutable": false,
439
+ "complexType": {
440
+ "original": "string",
441
+ "resolved": "string",
442
+ "references": {}
443
+ },
444
+ "required": false,
445
+ "optional": false,
446
+ "docs": {
447
+ "tags": [],
448
+ "text": "Input name\nIf not set the value equals the identifier"
449
+ },
450
+ "getter": false,
451
+ "setter": false,
452
+ "reflect": false,
453
+ "attribute": "name",
454
+ "defaultValue": "this.identifier"
455
+ },
377
456
  "label": {
378
457
  "type": "string",
379
458
  "mutable": false,
@@ -464,7 +543,7 @@ export class MgInputRichTextEditor {
464
543
  "optional": false,
465
544
  "docs": {
466
545
  "tags": [],
467
- "text": "Define the number of visible text lines for the control"
546
+ "text": "Define the number of visible text lines for the editor.\nImpacts the editor height. Content can grow beyond this minimum."
468
547
  },
469
548
  "getter": false,
470
549
  "setter": false,
@@ -599,7 +678,8 @@ export class MgInputRichTextEditor {
599
678
  "TooltipPosition": {
600
679
  "location": "import",
601
680
  "path": "../mg-input/mg-input.conf",
602
- "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::TooltipPosition"
681
+ "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::TooltipPosition",
682
+ "referenceLocation": "TooltipPosition"
603
683
  }
604
684
  }
605
685
  },
@@ -635,16 +715,43 @@ export class MgInputRichTextEditor {
635
715
  "attribute": "help-text"
636
716
  },
637
717
  "modules": {
718
+ "type": "string",
719
+ "mutable": false,
720
+ "complexType": {
721
+ "original": "ButtonsOption",
722
+ "resolved": "(string | ButtonsGroup | IControlType<IViewBased<IViewOptions> | IJodit | IFileBrowser<IFileBrowserOptions>, IToolbarButton>)[] | string",
723
+ "references": {
724
+ "ButtonsOption": {
725
+ "location": "import",
726
+ "path": "./editor/editor.conf",
727
+ "id": "src/components/molecules/inputs/mg-input-rich-text-editor/editor/editor.conf.ts::ButtonsOption",
728
+ "referenceLocation": "ButtonsOption"
729
+ }
730
+ }
731
+ },
732
+ "required": false,
733
+ "optional": true,
734
+ "docs": {
735
+ "tags": [],
736
+ "text": "Editor modules configuration.\nMust be passed as an array (e.g. modules=['bold', 'italic', '|', 'ul', 'ol']).\nUse `|` for a separator/divider in the toolbar.\nAvailable modules:\n- **Text formatting**: `bold`, `italic`, `underline`, `strikethrough`, `eraser`\n- **Lists**: `ul` (unordered list), `ol` (ordered list)\n- **Text positioning**: `superscript`, `subscript`\n- **Colors**: `brush` (text color/background)\n- **Media**: `link`, `image`, `file`\n- **Tables**: `table`\n- **History**: `undo`, `redo`\n- **Other**: `print`, `source` (HTML source editor)"
737
+ },
738
+ "getter": false,
739
+ "setter": false,
740
+ "reflect": false,
741
+ "attribute": "modules"
742
+ },
743
+ "sanitizerOptions": {
638
744
  "type": "unknown",
639
745
  "mutable": false,
640
746
  "complexType": {
641
- "original": "EditorOptionsType['modules']",
642
- "resolved": "string | unknown",
747
+ "original": "SanitizerOptions",
748
+ "resolved": "{ disallowAttributes?: Record<string, string[]>; disallowTags?: string[]; }",
643
749
  "references": {
644
- "EditorOptionsType": {
750
+ "SanitizerOptions": {
645
751
  "location": "import",
646
- "path": "./editor",
647
- "id": "src/components/molecules/inputs/mg-input-rich-text-editor/editor/index.ts::EditorOptionsType"
752
+ "path": "@mgdis/sanitize-html",
753
+ "id": "../sanitize-html/dist/index.d.ts::SanitizerOptions",
754
+ "referenceLocation": "SanitizerOptions"
648
755
  }
649
756
  }
650
757
  },
@@ -652,7 +759,7 @@ export class MgInputRichTextEditor {
652
759
  "optional": true,
653
760
  "docs": {
654
761
  "tags": [],
655
- "text": "Editor modules configuration"
762
+ "text": "Sanitizer configuration in native format.\nUse disallowTags (array of tag names) and/or disallowAttributes (object mapping tag names to string arrays).\nUse \"*\" as tag key to disallow attributes on all tags."
656
763
  },
657
764
  "getter": false,
658
765
  "setter": false
@@ -768,10 +875,10 @@ export class MgInputRichTextEditor {
768
875
  "return": "Promise<string>"
769
876
  },
770
877
  "docs": {
771
- "text": "Get editor content in HTML format",
878
+ "text": "Get editor content as HTML",
772
879
  "tags": [{
773
880
  "name": "returns",
774
- "text": "HTML content of the editor"
881
+ "text": "HTML content of the editor (sanitized)"
775
882
  }]
776
883
  }
777
884
  },
@@ -896,6 +1003,12 @@ export class MgInputRichTextEditor {
896
1003
  }, {
897
1004
  "propName": "patternErrorMessage",
898
1005
  "methodName": "validatePattern"
1006
+ }, {
1007
+ "propName": "modules",
1008
+ "methodName": "watchModules"
1009
+ }, {
1010
+ "propName": "sanitizerOptions",
1011
+ "methodName": "watchSanitizerOptions"
899
1012
  }];
900
1013
  }
901
1014
  }
@@ -129,11 +129,19 @@ export class MgInputSelect {
129
129
  }
130
130
  };
131
131
  /**
132
- * Method to compare item.title with input.value
132
+ * Method to compare item with input.value
133
133
  * @param item - item to compare with
134
134
  * @returns truthy if input.value is an item
135
135
  */
136
- this.isInputValue = (item) => { var _a; return item.title === ((_a = this.input) === null || _a === void 0 ? void 0 : _a.value); };
136
+ this.isInputValue = (item) => {
137
+ if (this.input === undefined)
138
+ return false;
139
+ // String items keep native DOM values.
140
+ if (allItemsAreString(this.items))
141
+ return item.title === this.input.value;
142
+ // Object items use stringified values.
143
+ return toString(item.value) === this.input.value;
144
+ };
137
145
  /**
138
146
  * Handle blur event
139
147
  */
@@ -178,7 +186,10 @@ export class MgInputSelect {
178
186
  * @param option - to render
179
187
  * @returns render option
180
188
  */
181
- this.renderOption = (option) => (h("option", { key: option.title, value: option.title, selected: JSON.stringify(this.value) === JSON.stringify(option.value), disabled: option.disabled }, option.title));
189
+ this.renderOption = (option) => {
190
+ const serializedValue = allItemsAreString(this.items) ? option.title : toString(option.value);
191
+ return (h("option", { key: serializedValue, value: serializedValue, selected: JSON.stringify(this.value) === JSON.stringify(option.value), disabled: option.disabled }, option.title));
192
+ };
182
193
  }
183
194
  validateValue(newValue) {
184
195
  setTimeout(() => {
@@ -372,7 +383,7 @@ export class MgInputSelect {
372
383
  */
373
384
  render() {
374
385
  const readonlyValue = this.getReadonlyValue();
375
- return (h("mg-input", { key: 'e7857da9c724cb582217b944cb723308d7efedbe', label: this.label, identifier: this.identifier, class: this.classCollection.join(), labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, tooltip: this.tooltip, tooltipPosition: this.readonly && readonlyValue === null ? 'label' : this.tooltipPosition, helpText: this.helpText, errorMessage: this.errorMessage }, this.readonly ? (readonlyValue && h("b", { class: "mg-c-input__readonly-value" }, readonlyValue)) : (h("select", { class: "mg-c-input__box", id: this.identifier, name: this.name, title: this.placeholder, disabled: this.disabled, required: this.required, "aria-invalid": (this.invalid === true).toString(), onInput: this.handleInput, onBlur: this.handleBlur, ref: (el) => {
386
+ return (h("mg-input", { key: '7d544e8f67a37d5781697da10d3d4f47cc5027e3', label: this.label, identifier: this.identifier, class: this.classCollection.join(), labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, tooltip: this.tooltip, tooltipPosition: this.readonly && readonlyValue === null ? 'label' : this.tooltipPosition, helpText: this.helpText, errorMessage: this.errorMessage }, this.readonly ? (readonlyValue && h("b", { class: "mg-c-input__readonly-value" }, readonlyValue)) : (h("select", { class: "mg-c-input__box", id: this.identifier, name: this.name, title: this.placeholder, disabled: this.disabled, required: this.required, "aria-invalid": (this.invalid === true).toString(), onInput: this.handleInput, onBlur: this.handleBlur, ref: (el) => {
376
387
  if (el !== null)
377
388
  this.input = el;
378
389
  } }, (!this.placeholderHide || !this.valueExist) && ( // In case passed value does not match any option we display the placeholder
@@ -421,7 +432,8 @@ export class MgInputSelect {
421
432
  "SelectOption": {
422
433
  "location": "import",
423
434
  "path": "./mg-input-select.conf",
424
- "id": "src/components/molecules/inputs/mg-input-select/mg-input-select.conf.ts::SelectOption"
435
+ "id": "src/components/molecules/inputs/mg-input-select/mg-input-select.conf.ts::SelectOption",
436
+ "referenceLocation": "SelectOption"
425
437
  }
426
438
  }
427
439
  },
@@ -661,7 +673,8 @@ export class MgInputSelect {
661
673
  "Width": {
662
674
  "location": "import",
663
675
  "path": "../mg-input/mg-input.conf",
664
- "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::Width"
676
+ "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::Width",
677
+ "referenceLocation": "Width"
665
678
  }
666
679
  }
667
680
  },
@@ -705,7 +718,8 @@ export class MgInputSelect {
705
718
  "TooltipPosition": {
706
719
  "location": "import",
707
720
  "path": "../mg-input/mg-input.conf",
708
- "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::TooltipPosition"
721
+ "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::TooltipPosition",
722
+ "referenceLocation": "TooltipPosition"
709
723
  }
710
724
  }
711
725
  },
@@ -801,7 +815,7 @@ export class MgInputSelect {
801
815
  },
802
816
  "complexType": {
803
817
  "original": "HTMLMgInputCheckboxElement['value']",
804
- "resolved": "CheckboxValue[]",
818
+ "resolved": "ICheckboxValue[]",
805
819
  "references": {
806
820
  "HTMLMgInputCheckboxElement": {
807
821
  "location": "global",
@@ -375,7 +375,7 @@ export class MgInputText {
375
375
  * @returns HTML Element
376
376
  */
377
377
  render() {
378
- return (h("mg-input", { key: 'cefd22e81ad535ff0ffd99d274c5eb616110ddd6', label: this.label, identifier: this.identifier, class: this.classCollection.join(), ariaDescribedbyIDs: this.characterLeftId, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, tooltip: this.tooltip, tooltipPosition: this.readonly && this.value === undefined ? 'label' : this.tooltipPosition, helpText: this.helpText, errorMessage: this.errorMessage }, this.readonly
378
+ return (h("mg-input", { key: '068e38b82ef4e2254fb8d37f21ecf11dc4f3a012', label: this.label, identifier: this.identifier, class: this.classCollection.join(), ariaDescribedbyIDs: this.characterLeftId, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, tooltip: this.tooltip, tooltipPosition: this.readonly && this.value === undefined ? 'label' : this.tooltipPosition, helpText: this.helpText, errorMessage: this.errorMessage }, this.readonly
379
379
  ? this.value && this.renderReadonly()
380
380
  : [
381
381
  h("div", { key: "input", class: "mg-c-input__input-group-container", style: {
@@ -528,7 +528,8 @@ export class MgInputText {
528
528
  "TextType": {
529
529
  "location": "import",
530
530
  "path": "./mg-input-text.conf",
531
- "id": "src/components/molecules/inputs/mg-input-text/mg-input-text.conf.ts::TextType"
531
+ "id": "src/components/molecules/inputs/mg-input-text/mg-input-text.conf.ts::TextType",
532
+ "referenceLocation": "TextType"
532
533
  }
533
534
  }
534
535
  },
@@ -549,12 +550,13 @@ export class MgInputText {
549
550
  "mutable": false,
550
551
  "complexType": {
551
552
  "original": "IconType",
552
- "resolved": "\"address-card\" | \"address-card-outline\" | \"align-center\" | \"align-justify\" | \"align-left\" | \"align-right\" | \"api\" | \"archive\" | \"archive-outline\" | \"arrow-clock\" | \"arrow-down\" | \"arrow-down-a-z\" | \"arrow-down-right\" | \"arrow-left\" | \"arrow-right\" | \"arrow-rotate\" | \"arrow-rotate-backward\" | \"arrow-up\" | \"arrow-up-right\" | \"arrow-up-right-square\" | \"arrow-up-z-a\" | \"arrows-compare\" | \"arrows-right-down\" | \"arrows-right-left\" | \"arrows-rotate\" | \"arrows-rotate-backward\" | \"arrows-up-down\" | \"ban\" | \"bell\" | \"bell-outline\" | \"book\" | \"book-outline\" | \"briefcase\" | \"briefcase-outline\" | \"building\" | \"building-outline\" | \"calculator\" | \"calculator-outline\" | \"calendar\" | \"calendar-euro\" | \"calendar-euro-outline\" | \"calendar-outline\" | \"check\" | \"check-circle\" | \"check-circle-outline\" | \"chevron-down\" | \"chevron-down-circle\" | \"chevron-left\" | \"chevron-left-circle\" | \"chevron-right\" | \"chevron-right-circle\" | \"chevron-up\" | \"chevron-up-circle\" | \"circle\" | \"clock\" | \"clock-outline\" | \"code-square-outline\" | \"cog\" | \"cog-outline\" | \"comment\" | \"comment-exclamation\" | \"comment-exclamation-outline\" | \"comment-outline\" | \"comment-question\" | \"comment-question-outline\" | \"comment-sms\" | \"comment-sms-outline\" | \"conversation\" | \"conversation-outline\" | \"copy\" | \"copy-file\" | \"copy-file-outline\" | \"copy-outline\" | \"credit-card\" | \"cross\" | \"cross-circle\" | \"cross-circle-outline\" | \"dashboard\" | \"dashboard-outline\" | \"download\" | \"earth\" | \"earth-outline\" | \"ellipsis\" | \"ellipsis-vertical\" | \"euro\" | \"euro-circle\" | \"exclamation-circle\" | \"exclamation-circle-outline\" | \"exclamation-stamp\" | \"exclamation-triangle\" | \"exclamation-triangle-outline\" | \"eye\" | \"eye-outline\" | \"eye-slash\" | \"eye-slash-outline\" | \"fax\" | \"fax-outline\" | \"file\" | \"file-cog\" | \"file-cog-outline\" | \"file-download\" | \"file-download-outline\" | \"file-excel\" | \"file-excel-outline\" | \"file-outline\" | \"file-pdf\" | \"file-pdf-outline\" | \"file-text\" | \"file-text-outline\" | \"file-upload\" | \"file-upload-outline\" | \"file-word\" | \"file-word-outline\" | \"filter\" | \"filter-outline\" | \"floppy-disk\" | \"floppy-disk-checked\" | \"floppy-disk-checked-outline\" | \"floppy-disk-outline\" | \"folder\" | \"folder-check\" | \"folder-check-outline\" | \"folder-lines\" | \"folder-lines-outline\" | \"folder-link\" | \"folder-link-outline\" | \"folder-outline\" | \"folder-star\" | \"folder-star-outline\" | \"folders\" | \"folders-outline\" | \"gavel\" | \"gavel-outline\" | \"graduation-cap\" | \"graduation-cap-outline\" | \"hand-euro\" | \"hand-euro-outline\" | \"hand-up\" | \"history\" | \"home\" | \"home-outline\" | \"info-circle\" | \"info-circle-outline\" | \"interrogation-circle\" | \"interrogation-circle-outline\" | \"key\" | \"laptop\" | \"layers\" | \"life-ring\" | \"lines-rectangle\" | \"lines-rectangle-outline\" | \"link\" | \"list\" | \"loader\" | \"location\" | \"location-outline\" | \"lock\" | \"lock-outline\" | \"log-in\" | \"log-out\" | \"magnifying-glass\" | \"mail\" | \"mail-open\" | \"mail-open-outline\" | \"mail-outline\" | \"messages-square\" | \"messages-square-outline\" | \"mobile\" | \"mobile-outline\" | \"notes\" | \"notes-outline\" | \"paper-plane\" | \"paper-plane-outline\" | \"paper-plane-slash\" | \"paper-plane-slash-outline\" | \"paperclip\" | \"pen\" | \"pen-circle\" | \"pen-fancy\" | \"pen-fancy-files-outline\" | \"pen-fancy-outline\" | \"pen-outline\" | \"phone\" | \"phone-outline\" | \"picture\" | \"picture-outline\" | \"play-circle\" | \"plus\" | \"plus-circle\" | \"plus-circle-outline\" | \"share\" | \"share-outline\" | \"shuffle\" | \"sidebar-arrow-left\" | \"sidebar-arrow-right\" | \"sitemap\" | \"sliders\" | \"sliders-outline\" | \"squares\" | \"star\" | \"star-outline\" | \"table\" | \"tag\" | \"tag-outline\" | \"tags\" | \"tags-outline\" | \"thumb-down\" | \"thumb-down-outline\" | \"thumb-up\" | \"thumb-up-outline\" | \"thumbtack\" | \"thumbtack-outline\" | \"trash\" | \"trash-outline\" | \"universal-access\" | \"universal-access-outline\" | \"unlink\" | \"unlock\" | \"unlock-outline\" | \"upload\" | \"user\" | \"user-circle\" | \"user-group\" | \"user-group-outline\" | \"user-lock\" | \"user-outline\" | \"user-pen-fancy-outline\" | \"user-plus\" | \"user-question-outline\" | \"user-shield\" | \"user-shield-outline\" | \"users\" | \"users-outline\" | \"wallet\" | \"wallet-outline\"",
553
+ "resolved": "\"address-card\" | \"address-card-outline\" | \"align-center\" | \"align-justify\" | \"align-left\" | \"align-right\" | \"api\" | \"archive\" | \"archive-outline\" | \"arrow-clock\" | \"arrow-down\" | \"arrow-down-a-z\" | \"arrow-down-right\" | \"arrow-left\" | \"arrow-right\" | \"arrow-rotate\" | \"arrow-rotate-backward\" | \"arrow-up\" | \"arrow-up-right\" | \"arrow-up-right-square\" | \"arrow-up-z-a\" | \"arrows-compare\" | \"arrows-right-down\" | \"arrows-right-left\" | \"arrows-rotate\" | \"arrows-rotate-backward\" | \"arrows-up-down\" | \"ban\" | \"bell\" | \"bell-outline\" | \"book\" | \"book-outline\" | \"briefcase\" | \"briefcase-outline\" | \"building\" | \"building-outline\" | \"calculator\" | \"calculator-outline\" | \"calendar\" | \"calendar-euro\" | \"calendar-euro-outline\" | \"calendar-outline\" | \"check\" | \"check-circle\" | \"check-circle-outline\" | \"chevron-down\" | \"chevron-down-circle\" | \"chevron-left\" | \"chevron-left-circle\" | \"chevron-right\" | \"chevron-right-circle\" | \"chevron-up\" | \"chevron-up-circle\" | \"circle\" | \"clock\" | \"clock-outline\" | \"code-square-outline\" | \"cog\" | \"cog-outline\" | \"comment\" | \"comment-exclamation\" | \"comment-exclamation-outline\" | \"comment-outline\" | \"comment-question\" | \"comment-question-outline\" | \"comment-sms\" | \"comment-sms-outline\" | \"conversation\" | \"conversation-outline\" | \"copy\" | \"copy-file\" | \"copy-file-outline\" | \"copy-outline\" | \"credit-card\" | \"cross\" | \"cross-circle\" | \"cross-circle-outline\" | \"dashboard\" | \"dashboard-outline\" | \"download\" | \"earth\" | \"earth-outline\" | \"ellipsis\" | \"ellipsis-vertical\" | \"euro\" | \"euro-circle\" | \"exclamation-circle\" | \"exclamation-circle-outline\" | \"exclamation-stamp\" | \"exclamation-triangle\" | \"exclamation-triangle-outline\" | \"eye\" | \"eye-outline\" | \"eye-slash\" | \"eye-slash-outline\" | \"fax\" | \"fax-outline\" | \"file\" | \"file-cog\" | \"file-cog-outline\" | \"file-download\" | \"file-download-outline\" | \"file-excel\" | \"file-excel-outline\" | \"file-outline\" | \"file-pdf\" | \"file-pdf-outline\" | \"file-text\" | \"file-text-outline\" | \"file-upload\" | \"file-upload-outline\" | \"file-word\" | \"file-word-outline\" | \"filter\" | \"filter-outline\" | \"floppy-disk\" | \"floppy-disk-checked\" | \"floppy-disk-checked-outline\" | \"floppy-disk-outline\" | \"folder\" | \"folder-check\" | \"folder-check-outline\" | \"folder-lines\" | \"folder-lines-outline\" | \"folder-link\" | \"folder-link-outline\" | \"folder-outline\" | \"folder-star\" | \"folder-star-outline\" | \"folders\" | \"folders-outline\" | \"gavel\" | \"gavel-outline\" | \"graduation-cap\" | \"graduation-cap-outline\" | \"hand-euro\" | \"hand-euro-outline\" | \"hand-up\" | \"history\" | \"home\" | \"home-outline\" | \"info-circle\" | \"info-circle-outline\" | \"interrogation-circle\" | \"interrogation-circle-outline\" | \"key\" | \"laptop\" | \"layers\" | \"life-ring\" | \"lines-rectangle\" | \"lines-rectangle-outline\" | \"link\" | \"list\" | \"loader\" | \"location\" | \"location-outline\" | \"lock\" | \"lock-outline\" | \"log-in\" | \"log-out\" | \"magnifying-glass\" | \"mail\" | \"mail-open\" | \"mail-open-outline\" | \"mail-outline\" | \"messages-square\" | \"messages-square-outline\" | \"mobile\" | \"mobile-outline\" | \"notes\" | \"notes-outline\" | \"paper-plane\" | \"paper-plane-outline\" | \"paper-plane-slash\" | \"paper-plane-slash-outline\" | \"paperclip\" | \"pause\" | \"pause-outline\" | \"pen\" | \"pen-circle\" | \"pen-fancy\" | \"pen-fancy-files-outline\" | \"pen-fancy-outline\" | \"pen-outline\" | \"phone\" | \"phone-outline\" | \"picture\" | \"picture-outline\" | \"play-circle\" | \"plus\" | \"plus-circle\" | \"plus-circle-outline\" | \"share\" | \"share-outline\" | \"shuffle\" | \"sidebar-arrow-left\" | \"sidebar-arrow-right\" | \"sitemap\" | \"sliders\" | \"sliders-outline\" | \"squares\" | \"star\" | \"star-outline\" | \"table\" | \"tag\" | \"tag-outline\" | \"tags\" | \"tags-outline\" | \"thumb-down\" | \"thumb-down-outline\" | \"thumb-up\" | \"thumb-up-outline\" | \"thumbtack\" | \"thumbtack-outline\" | \"trash\" | \"trash-outline\" | \"universal-access\" | \"universal-access-outline\" | \"unlink\" | \"unlock\" | \"unlock-outline\" | \"upload\" | \"user\" | \"user-circle\" | \"user-group\" | \"user-group-outline\" | \"user-lock\" | \"user-outline\" | \"user-pen-fancy-outline\" | \"user-plus\" | \"user-question-outline\" | \"user-shield\" | \"user-shield-outline\" | \"users\" | \"users-outline\" | \"wallet\" | \"wallet-outline\"",
553
554
  "references": {
554
555
  "IconType": {
555
556
  "location": "import",
556
557
  "path": "../../../../components",
557
- "id": "src/components.d.ts::IconType"
558
+ "id": "src/components.d.ts::IconType",
559
+ "referenceLocation": "IconType"
558
560
  }
559
561
  }
560
562
  },
@@ -598,7 +600,8 @@ export class MgInputText {
598
600
  "OptionType": {
599
601
  "location": "import",
600
602
  "path": "./mg-input-text.conf",
601
- "id": "src/components/molecules/inputs/mg-input-text/mg-input-text.conf.ts::OptionType"
603
+ "id": "src/components/molecules/inputs/mg-input-text/mg-input-text.conf.ts::OptionType",
604
+ "referenceLocation": "OptionType"
602
605
  }
603
606
  }
604
607
  },
@@ -701,7 +704,8 @@ export class MgInputText {
701
704
  "Width": {
702
705
  "location": "import",
703
706
  "path": "../mg-input/mg-input.conf",
704
- "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::Width"
707
+ "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::Width",
708
+ "referenceLocation": "Width"
705
709
  }
706
710
  }
707
711
  },
@@ -784,7 +788,8 @@ export class MgInputText {
784
788
  "TooltipPosition": {
785
789
  "location": "import",
786
790
  "path": "../mg-input/mg-input.conf",
787
- "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::TooltipPosition"
791
+ "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::TooltipPosition",
792
+ "referenceLocation": "TooltipPosition"
788
793
  }
789
794
  }
790
795
  },
@@ -284,7 +284,7 @@ export class MgInputTextarea {
284
284
  * @returns HTML Element
285
285
  */
286
286
  render() {
287
- return (h("mg-input", { key: 'dc646a42eee0c10394666218521ebfc1ab79a789', label: this.label, identifier: this.identifier, class: this.classCollection.join(), ariaDescribedbyIDs: this.characterLeftId, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, tooltip: this.tooltip, tooltipPosition: this.readonly && this.value === undefined ? 'label' : this.tooltipPosition, helpText: this.helpText, errorMessage: this.errorMessage }, this.readonly ? (this.value && h("b", { class: "mg-c-input__readonly-value" }, this.value)) : (h("div", { class: "mg-c-input__input-group-container" }, h("textarea", { class: {
287
+ return (h("mg-input", { key: '021aa902aa952730d98fbc2eaa5136975b484319', label: this.label, identifier: this.identifier, class: this.classCollection.join(), ariaDescribedbyIDs: this.characterLeftId, labelOnTop: this.labelOnTop, labelHide: this.labelHide, required: this.required, tooltip: this.tooltip, tooltipPosition: this.readonly && this.value === undefined ? 'label' : this.tooltipPosition, helpText: this.helpText, errorMessage: this.errorMessage }, this.readonly ? (this.value && h("b", { class: "mg-c-input__readonly-value" }, this.value)) : (h("div", { class: "mg-c-input__input-group-container" }, h("textarea", { class: {
288
288
  'mg-c-input__box': true,
289
289
  'mg-c-input__box--width': true,
290
290
  'mg-c-input__box--resizable': this.resizable === 'both',
@@ -535,7 +535,8 @@ export class MgInputTextarea {
535
535
  "Width": {
536
536
  "location": "import",
537
537
  "path": "../mg-input/mg-input.conf",
538
- "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::Width"
538
+ "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::Width",
539
+ "referenceLocation": "Width"
539
540
  }
540
541
  }
541
542
  },
@@ -638,7 +639,8 @@ export class MgInputTextarea {
638
639
  "TooltipPosition": {
639
640
  "location": "import",
640
641
  "path": "../mg-input/mg-input.conf",
641
- "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::TooltipPosition"
642
+ "id": "src/components/molecules/inputs/mg-input/mg-input.conf.ts::TooltipPosition",
643
+ "referenceLocation": "TooltipPosition"
642
644
  }
643
645
  }
644
646
  },