@mgdis/mg-components 6.22.1 → 6.23.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.
Files changed (129) hide show
  1. package/dist/cjs/{index-Dz2LAZQT.js → index-BEF-cqV9.js} +1 -1
  2. package/dist/cjs/loader.cjs.js +2 -2
  3. package/dist/cjs/mg-action-more_36.cjs.entry.js +162 -71
  4. package/dist/cjs/mg-alert.cjs.entry.js +6 -2
  5. package/dist/cjs/mg-breadcrumb.cjs.entry.js +1 -1
  6. package/dist/cjs/mg-components.cjs.js +3 -3
  7. package/dist/cjs/mg-fieldset.cjs.entry.js +4 -3
  8. package/dist/cjs/mg-input-combobox.cjs.entry.js +4 -3
  9. package/dist/cjs/mg-input-file.cjs.entry.js +5 -4
  10. package/dist/cjs/mg-input-rich-text-editor.cjs.entry.js +7489 -6389
  11. package/dist/cjs/mg-input.conf-wgTh7iBb.js +84 -0
  12. package/dist/cjs/mg-loader.cjs.entry.js +1 -1
  13. package/dist/cjs/mg-progress.cjs.entry.js +1 -1
  14. package/dist/collection/assets/icons/index.js +1 -1
  15. package/dist/collection/collection-manifest.json +1 -1
  16. package/dist/collection/components/atoms/internals/mg-input-title/mg-input-title.js +5 -2
  17. package/dist/collection/components/atoms/mg-badge/mg-badge.js +10 -2
  18. package/dist/collection/components/atoms/mg-button/mg-button.js +3 -1
  19. package/dist/collection/components/atoms/mg-card/mg-card.js +14 -6
  20. package/dist/collection/components/atoms/mg-icon/mg-icon.js +8 -5
  21. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +7 -2
  22. package/dist/collection/components/molecules/inputs/mg-input/mg-input.js +11 -11
  23. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +3 -1
  24. package/dist/collection/components/molecules/inputs/mg-input-combobox/mg-input-combobox.js +4 -2
  25. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +4 -2
  26. package/dist/collection/components/molecules/inputs/mg-input-file/mg-input-file.js +5 -3
  27. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +3 -1
  28. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +3 -1
  29. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +3 -1
  30. package/dist/collection/components/molecules/inputs/mg-input-rich-text-editor/mg-input-rich-text-editor.js +3 -1
  31. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +54 -26
  32. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +5 -3
  33. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +3 -1
  34. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +3 -1
  35. package/dist/collection/components/molecules/internals/mg-item-more/mg-item-more.js +1 -1
  36. package/dist/collection/components/molecules/menus/mg-menu-item/mg-menu-item.js +4 -2
  37. package/dist/collection/components/molecules/mg-action-more/mg-action-more.js +1 -1
  38. package/dist/collection/components/molecules/mg-alert/mg-alert.js +25 -1
  39. package/dist/collection/components/molecules/mg-details/mg-details.js +3 -1
  40. package/dist/collection/components/molecules/mg-fieldset/mg-fieldset.js +3 -1
  41. package/dist/collection/components/molecules/mg-form/mg-form.js +4 -2
  42. package/dist/collection/components/molecules/mg-message/mg-message.js +39 -2
  43. package/dist/collection/components/molecules/mg-panel/mg-panel.js +16 -4
  44. package/dist/components/index3.js +1 -1
  45. package/dist/components/index4.js +1 -0
  46. package/dist/components/mg-action-more.js +1 -1
  47. package/dist/components/mg-alert.js +1 -1
  48. package/dist/components/mg-badge2.js +1 -1
  49. package/dist/components/mg-breadcrumb.js +1 -1
  50. package/dist/components/mg-button2.js +1 -1
  51. package/dist/components/mg-card2.js +1 -1
  52. package/dist/components/mg-character-left2.js +1 -1
  53. package/dist/components/mg-details.js +1 -1
  54. package/dist/components/mg-divider2.js +1 -1
  55. package/dist/components/mg-fieldset.js +1 -1
  56. package/dist/components/mg-form.js +1 -1
  57. package/dist/components/mg-icon2.js +1 -1
  58. package/dist/components/mg-input-checkbox.js +1 -1
  59. package/dist/components/mg-input-combobox.js +1 -1
  60. package/dist/components/mg-input-date.js +1 -1
  61. package/dist/components/mg-input-file.js +1 -1
  62. package/dist/components/mg-input-numeric.js +1 -1
  63. package/dist/components/mg-input-password.js +1 -1
  64. package/dist/components/mg-input-radio.js +1 -1
  65. package/dist/components/mg-input-rich-text-editor.js +284 -284
  66. package/dist/components/mg-input-select2.js +1 -1
  67. package/dist/components/mg-input-text2.js +1 -1
  68. package/dist/components/mg-input-textarea.js +1 -1
  69. package/dist/components/mg-input-title2.js +1 -1
  70. package/dist/components/mg-input-toggle.js +1 -1
  71. package/dist/components/mg-input2.js +1 -1
  72. package/dist/components/mg-item-more2.js +1 -1
  73. package/dist/components/mg-loader2.js +1 -1
  74. package/dist/components/mg-menu-item2.js +1 -1
  75. package/dist/components/mg-message2.js +1 -1
  76. package/dist/components/mg-modal.js +1 -1
  77. package/dist/components/mg-pagination.js +1 -1
  78. package/dist/components/mg-panel.js +1 -1
  79. package/dist/components/mg-popover-content2.js +1 -1
  80. package/dist/components/mg-skip-links.js +1 -1
  81. package/dist/components/mg-table.js +1 -1
  82. package/dist/components/mg-tooltip2.js +1 -1
  83. package/dist/custom-elements.json +8828 -0
  84. package/dist/esm/{index-C3jUhxdI.js → index-DshvCiTL.js} +1 -1
  85. package/dist/esm/loader.js +3 -3
  86. package/dist/esm/mg-action-more_36.entry.js +162 -71
  87. package/dist/esm/mg-alert.entry.js +6 -2
  88. package/dist/esm/mg-breadcrumb.entry.js +1 -1
  89. package/dist/esm/mg-components.js +4 -4
  90. package/dist/esm/mg-fieldset.entry.js +4 -3
  91. package/dist/esm/mg-input-combobox.entry.js +4 -3
  92. package/dist/esm/mg-input-file.entry.js +5 -4
  93. package/dist/esm/mg-input-rich-text-editor.entry.js +7489 -6389
  94. package/dist/esm/mg-input.conf-DOi9lJXy.js +73 -0
  95. package/dist/esm/mg-loader.entry.js +1 -1
  96. package/dist/esm/mg-progress.entry.js +1 -1
  97. package/dist/mg-components/mg-components.esm.js +1 -1
  98. package/dist/mg-components/{p-661da56b.entry.js → p-13feb37a.entry.js} +1 -1
  99. package/dist/mg-components/{p-c1aeb277.entry.js → p-236bb1d2.entry.js} +1 -1
  100. package/dist/mg-components/p-79265ad3.entry.js +1 -0
  101. package/dist/mg-components/{p-8e256086.entry.js → p-7c63e469.entry.js} +1 -1
  102. package/dist/mg-components/p-7fd3e519.entry.js +1 -0
  103. package/dist/mg-components/p-DOi9lJXy.js +1 -0
  104. package/dist/mg-components/p-a0e2c886.entry.js +1 -0
  105. package/dist/mg-components/p-cdb01923.entry.js +1 -0
  106. package/dist/mg-components/p-d0b6d8f5.entry.js +1 -0
  107. package/dist/mg-components/p-d698fa67.entry.js +1658 -0
  108. package/dist/types/assets/icons/index.d.ts +2 -0
  109. package/dist/types/components/atoms/internals/mg-input-title/mg-input-title.d.ts +4 -0
  110. package/dist/types/components/atoms/mg-badge/mg-badge.d.ts +4 -0
  111. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +12 -6
  112. package/dist/types/components/molecules/mg-alert/mg-alert.d.ts +4 -0
  113. package/dist/types/components/molecules/mg-message/mg-message.d.ts +6 -0
  114. package/dist/types/components.d.ts +22 -0
  115. package/dist/types/stencil-public-runtime.d.ts +1 -0
  116. package/ide/intellij/web-types.json +207 -3472
  117. package/ide/vscode/css-custom-data.json +1 -1
  118. package/ide/vscode/html-custom-data.json +58 -314
  119. package/package.json +29 -24
  120. package/dist/cjs/mg-input.conf-BNpeATnq.js +0 -35
  121. package/dist/esm/mg-input.conf-C9rmNQIL.js +0 -25
  122. package/dist/mg-components/p-06fbdb2f.entry.js +0 -1
  123. package/dist/mg-components/p-188b9ca9.entry.js +0 -1
  124. package/dist/mg-components/p-4667078d.entry.js +0 -1
  125. package/dist/mg-components/p-5a859ecf.entry.js +0 -1658
  126. package/dist/mg-components/p-C9rmNQIL.js +0 -1
  127. package/dist/mg-components/p-b0b8c58f.entry.js +0 -1
  128. package/dist/mg-components/p-bbcef41c.entry.js +0 -1
  129. /package/dist/mg-components/{p-C3jUhxdI.js → p-DshvCiTL.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mgdis/mg-components",
3
- "version": "6.22.1",
3
+ "version": "6.23.0",
4
4
  "description": "MG Components",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -10,13 +10,18 @@
10
10
  "collection": "dist/collection/collection-manifest.json",
11
11
  "collection:main": "dist/collection/index.js",
12
12
  "unpkg": "dist/mg-components/mg-components.esm.js",
13
+ "customElements": "dist/custom-elements.json",
13
14
  "web-types": "ide/intellij/web-types.json",
14
15
  "contributes": {
15
16
  "html": {
16
- "customData": "ide/vscode/html-custom-data.json"
17
+ "customData": [
18
+ "ide/vscode/html-custom-data.json"
19
+ ]
17
20
  },
18
21
  "css": {
19
- "customData": "ide/vscode/css-custom-data.json"
22
+ "customData": [
23
+ "ide/vscode/css-custom-data.json"
24
+ ]
20
25
  }
21
26
  },
22
27
  "files": [
@@ -34,36 +39,36 @@
34
39
  },
35
40
  "dependencies": {
36
41
  "@popperjs/core": "2.11.8",
37
- "@stencil/core": "4.43.4",
38
- "jodit": "4.12.2",
39
- "@mgdis/core-ui-helpers": "1.1.2",
40
- "@mgdis/img": "2.6.1",
41
- "@mgdis/styles": "2.17.1",
42
- "@mgdis/sanitize-html": "1.1.1"
42
+ "@stencil/core": "4.43.5",
43
+ "jodit": "4.12.4",
44
+ "@mgdis/core-ui-helpers": "1.2.0",
45
+ "@mgdis/sanitize-html": "1.1.2",
46
+ "@mgdis/styles": "2.18.0",
47
+ "@mgdis/img": "2.7.0"
43
48
  },
44
49
  "devDependencies": {
45
- "@playwright/test": "1.59.1",
46
- "@storybook/addon-a11y": "10.3.5",
47
- "@storybook/addon-docs": "10.3.5",
48
- "@storybook/addon-links": "10.3.5",
49
- "@storybook/html": "10.3.5",
50
- "@storybook/html-vite": "10.3.5",
50
+ "@playwright/test": "1.60.0",
51
+ "@storybook/addon-a11y": "10.4.2",
52
+ "@storybook/addon-docs": "10.4.2",
53
+ "@storybook/addon-links": "10.4.2",
54
+ "@storybook/html": "10.4.2",
55
+ "@storybook/html-vite": "10.4.2",
51
56
  "@types/jest": "29.5.14",
52
- "@types/node": "24.12.2",
53
- "chromatic": "16.3.0",
57
+ "@types/node": "24.12.4",
58
+ "chromatic": "17.2.0",
54
59
  "eslint": "8.57.1",
55
- "eslint-plugin-storybook": "10.3.5",
60
+ "eslint-plugin-storybook": "10.4.2",
56
61
  "jest": "29.7.0",
57
62
  "jest-cli": "29.7.0",
58
- "jest-junit": "16.0.0",
63
+ "jest-junit": "17.0.0",
59
64
  "jest-transform-stub": "2.0.0",
60
- "react": "19.2.5",
61
- "react-dom": "19.2.5",
65
+ "react": "19.2.7",
66
+ "react-dom": "19.2.7",
62
67
  "sass": "1.99.0",
63
- "storybook": "10.3.5",
68
+ "storybook": "10.4.2",
64
69
  "storybook-addon-tag-badges": "3.1.0",
65
70
  "typescript": "5.9.3",
66
- "vite": "7.3.2",
71
+ "vite": "8.0.16",
67
72
  "@core-ui/jest-config": "1.0.9",
68
73
  "@mgdis/linting-stencil": "1.3.11"
69
74
  },
@@ -75,7 +80,7 @@
75
80
  "test": "TZ=UTC stencil test --spec --e2e",
76
81
  "test:unit": "TZ=UTC stencil test --spec --collectCoverage",
77
82
  "test:e2e": "pnpm --package=@pnpm/@playwright/test dlx playwright test",
78
- "test:e2e:docker": "pnpm dlx @playwright/test test",
83
+ "test:e2e:docker": "pnpm exec playwright test",
79
84
  "test:watch": "stencil test --spec --e2e --watchAll",
80
85
  "generate": "stencil generate",
81
86
  "storybook": "storybook dev -p 6006",
@@ -1,35 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Possible input width
5
- */
6
- const widths = [2, 4, 16, 'full'];
7
- /**
8
- * Possible tootltip postions
9
- */
10
- const tooltipPositions = ['input', 'label'];
11
- /**
12
- * Possible label headings
13
- */
14
- const labelHeadings = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
15
- /**
16
- * Is HTMLMgInputElement an HTMLMgInputFileElement
17
- * @param input - input element
18
- * @returns true if input is an mg-input-file element
19
- */
20
- const isMgInputFile = (input) => input.nodeName === 'MG-INPUT-FILE';
21
- const classFieldset = 'mg-c-input--fieldset';
22
- const classDisabled = 'mg-c-input--disabled';
23
- const classReadonly = 'mg-c-input--readonly';
24
- const classVerticalList = 'mg-c-input--vertical-list';
25
- const classDisplayCharacterLeft = 'mg-c-input--display-character-left';
26
-
27
- exports.classDisabled = classDisabled;
28
- exports.classDisplayCharacterLeft = classDisplayCharacterLeft;
29
- exports.classFieldset = classFieldset;
30
- exports.classReadonly = classReadonly;
31
- exports.classVerticalList = classVerticalList;
32
- exports.isMgInputFile = isMgInputFile;
33
- exports.labelHeadings = labelHeadings;
34
- exports.tooltipPositions = tooltipPositions;
35
- exports.widths = widths;
@@ -1,25 +0,0 @@
1
- /**
2
- * Possible input width
3
- */
4
- const widths = [2, 4, 16, 'full'];
5
- /**
6
- * Possible tootltip postions
7
- */
8
- const tooltipPositions = ['input', 'label'];
9
- /**
10
- * Possible label headings
11
- */
12
- const labelHeadings = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
13
- /**
14
- * Is HTMLMgInputElement an HTMLMgInputFileElement
15
- * @param input - input element
16
- * @returns true if input is an mg-input-file element
17
- */
18
- const isMgInputFile = (input) => input.nodeName === 'MG-INPUT-FILE';
19
- const classFieldset = 'mg-c-input--fieldset';
20
- const classDisabled = 'mg-c-input--disabled';
21
- const classReadonly = 'mg-c-input--readonly';
22
- const classVerticalList = 'mg-c-input--vertical-list';
23
- const classDisplayCharacterLeft = 'mg-c-input--display-character-left';
24
-
25
- export { classDisabled as a, classFieldset as b, classReadonly as c, classVerticalList as d, classDisplayCharacterLeft as e, isMgInputFile as i, labelHeadings as l, tooltipPositions as t, widths as w };
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as s,a as o}from"./p-C3jUhxdI.js";import{P as e,C as n,t as a,a as h,n as r,g as c,b as p,i as m,c as u,f as l,d as g}from"./p-C7xjtdiw.js";import{c as d,a as b,w as v}from"./p-C9rmNQIL.js";import{i as f}from"./p-DSEloqPn.js";import{K as w}from"./p-yMGqY8YG.js";const _=t=>t&&"object"==typeof t&&"string"==typeof t.title&&void 0!==t.value,x=class{constructor(s){t(this,s),this.valueChange=i(this,"value-change",7),this.filterChange=i(this,"filter-change",7),this.showMore=i(this,"load-more",7),this.inputValid=i(this,"input-valid",7),this.fetchError=i(this,"fetch-error",7),this.hasDisplayedError=!1,this.customErrorMessage={lock:!1},this.name=this.identifier,this.labelOnTop=!1,this.labelHide=!1,this.required=!1,this.readonly=!1,this.disabled=!1,this.mgWidth="full",this.tooltipPosition="input",this.options=new e([]),this.filter="",this.classCollection=new n(["mg-c-input--combobox","mg-c-input--has-icon","mg-c-input--input-append"]),this.popoverDisplay=!1,this.handleOptionClick=t=>{this.setValue(this.options.items.find((i=>a(i.value)===t.target.dataset.value))),this.popoverDisplay=!1},this.handleResetButton=t=>{t.stopPropagation(),this.reset().then((()=>{this.input.focus()}))},this.handlePopoverDisplay=t=>{this.popoverDisplay=t.detail},this.handleFilterInput=()=>{this.checkValidity(),this.hasDisplayedError&&this.setErrorMessage(),this.popoverDisplay||(this.popoverDisplay=!0),this.debounce||(this.debounce=!0,setTimeout((()=>{this.filter=this.input.value,this.debounce=!1}),250))},this.handleFilterBlur=t=>{this.popoverDisplay?(t.stopImmediatePropagation(),this.input.focus()):(this.handlerInProgress="blur",this.displayError().finally((()=>{this.handlerInProgress=void 0})))},this.handleFilterFocus=()=>{this.isLoading||(this.option=null)},this.handleLoadMoreButton=()=>{this.loadingWrapper({name:"load-more",cursor:h.NEXT}).then((()=>{this.input.focus()}))},this.handleFilterKeydown=t=>{var i;if(this.disabled||t.ctrlKey||t.shiftKey)return;let s=!1;switch(t.key){case w.TAB:case w.ENTER:{s=t.key===w.ENTER;const o=null!==(i=this.option)&&void 0!==i?i:this.options.items.find(this.isCurrentOption);this.popoverDisplay&&this.setValue(o),this.popoverDisplay=!1;break}case w.DOWN:case w.ARROWDOWN:case w.UP:case w.ARROWUP:{if(s=!0,this.isLoading||0===this.page.total){this.popoverDisplay=!0;break}if(Boolean(t.altKey)&&[w.DOWN,w.ARROWDOWN].includes(t.key)){this.popoverDisplay=!0;break}let i;const o=this.popoverDisplay&&_(this.option);[w.DOWN,w.ARROWDOWN].includes(t.key)?i=o?h.NEXT:h.FIRST:[w.UP,w.ARROWUP].includes(t.key)&&(i=o?h.PREVIOUS:h.LAST),this.loadingWrapper({name:"scroll",cursor:i}),this.popoverDisplay=!0;break}case w.LEFT:case w.ARROWLEFT:case w.HOME:case w.RIGHT:case w.ARROWRIGHT:case w.END:{if(!_(this.option))break;let i;s=!0,this.option=null,w.HOME===t.key?i=0:w.END===t.key&&(i=this.filter.length),"number"==typeof i&&this.input.setSelectionRange(i,i);break}case w.ESC:case w.ESCAPE:s=!0,this.popoverDisplay?this.popoverDisplay=!1:(this.setValue(null),this.filter="",this.option=null);break;default:this.option=null}s&&(t.stopPropagation(),t.preventDefault())},this.scrollToIndex=t=>{requestAnimationFrame((()=>{var i;this.popoverDisplay&&(null===(i=this.element.shadowRoot.querySelector(`li:nth-of-type(${(t||0)+this.page.baseIndex})`))||void 0===i||i.scrollIntoView({block:"nearest"}))}))},this.isCurrentOption=t=>(_(this.value)?this.value.value:this.value)===t.value,this.getValueTitle=()=>this.value&&_(this.value)?this.value.title:"string"==typeof this.value?this.value:"",this.checkValidity=()=>{this.setValidity(this.readonly||this.disabled||this.input.checkValidity())},this.setErrorMessage=(t=!1)=>{this.errorMessage=void 0,this.valid||(t||this.customErrorMessage.lock&&void 0!==this.customErrorMessage.message?this.errorMessage=this.customErrorMessage.message:this.input.validity.valueMissing&&(this.errorMessage=this.messages.errors.required))},this.getFirstPage=()=>this.options.getPage(0,(t=>""===this.filter||t.title.toLocaleLowerCase().includes(this.filter.toLocaleLowerCase()))),this.loadingWrapper=t=>{var i;let s,o;if(null!==(i=this.loadingAction)&&void 0!==i||(this.loadingAction=t.name),Boolean(this.option)&&"load-more"!==this.loadingAction?o=this.page.items.findIndex((t=>a(t.value)===a(this.option.value))):"load-more"===this.loadingAction&&(o=this.page.items.length-this.page.baseIndex),"load-more"===t.name)this.isLoading=!0,s=this.goToNextPage;else{if(t.cursor===h.NEXT&&this.page.items.length<=this.page.total&&o+this.page.baseIndex===this.page.items.length&&o+this.page.baseIndex<this.page.total)return void this.loadMoreElement.click();s="scroll"===t.name?r:this.updatePage}return s().then((()=>{const i=""===this.filter?this.options.items:this.options.items.filter((t=>t.title.includes(this.filter)));"load-data"!==t.name&&(o=this.page.getIndexFromCursor(t.cursor,"load-more"===this.loadingAction&&o>=0?i[o]:this.option)),this.option=i[o],this.scrollToIndex(o)})).finally((()=>{requestAnimationFrame((()=>{this.isLoading=!1,this.loadingAction=void 0}))}))},this.goToNextPage=()=>(this.showMore.emit(),void 0!==this.fetchurl?this.getOptions("string"==typeof this.page.next?this.page.next:void 0).then((t=>{if(void 0!==t){const i=[...this.page.items,...t.items];this.options=new e(i,{total:t.total,next:t.next,top:i.length})}})):r((()=>{if("function"==typeof this.page.next){const t=this.page.next();this.page=new g(Object.assign(Object.assign({},t),{items:[...this.page.items,...t.items]}))}}))),this.updatePage=async()=>{if(void 0!==this.fetchurl)return this.getOptions().then((t=>{void 0!==t&&(this.options=new e(t.items,{total:t.total,next:t.next,top:t.top}))}));this.page=this.getFirstPage()},this.getOptions=async(t=this.fetchurl)=>{const i="function"==typeof this.fetchmappings.request.filterTransform?this.fetchmappings.request.filterTransform(this.filter):this.filter,s=("string"==typeof t?t:t.toString()).replaceAll(this.fetchmappings.request.filter,encodeURIComponent(i));try{const t=await fetch(s,this.fetchoptions);if(!t.ok)return void this.fetchError.emit(new Error(`${t.status} - ${t.statusText}`));const i=await t.json(),o=c(i,this.fetchmappings.response.items).map((t=>{var i;return{title:c(t,this.fetchmappings.response.itemTitle),value:null!==(i=c(t,this.fetchmappings.response.itemValue))&&void 0!==i?i:t}})),e=Number(c(i,this.fetchmappings.response.total,0));let n=c(i,this.fetchmappings.response.next);if(URL.canParse(s)&&Boolean(n)&&!URL.canParse(n)){const t=new URL(s);t.pathname.endsWith(n.split("?")[0])&&(n=new URL(n,t).toString())}return{items:o,total:e,next:n,top:o.length}}catch(t){this.fetchError.emit(t)}}}watchValue(t){this.filter=this.getValueTitle(),this.valueChange.emit(t)}watchItems(t){if(void 0===this.fetchurl||void 0!==t){if(void 0!==this.fetchurl&&void 0!==t)throw new Error(`<mg-input-combobox> prop "items" values cannot be use with "fetchurl" prop defined. Passed value: ${a(t)}.`);if(Array.isArray(t)&&0===t.length)this.options=new e([]);else if(p(t))this.options=new e(t.map((t=>({title:t,value:t}))),{total:t.length});else{if(i=t,!Array.isArray(i)||!i.every(_))throw new Error(`<mg-input-combobox> prop "items" values must be the same type, string or Option. Passed value: ${a(t)}.`);this.options=new e(t,{total:t.length})}var i}}watchIdentifier(t){m(t)&&(this.popoverId=`${t}-popover`,this.element.dataset.mgPopoverGuard=this.popoverId)}watchReadonly(t){t?this.classCollection.add(d):this.classCollection.delete(d)}watchValidityChange(t,i,s){void 0!==this.input&&(this.input[s]=t,this.checkValidity(),this.hasDisplayedError&&(this.setErrorMessage(),this.hasDisplayedError=!1))}watchDisabled(t){t?this.classCollection.add(b):this.classCollection.delete(b)}watchMgWidth(t){v.forEach((t=>{this.classCollection.delete(`mg-c-input--width-${t}`)})),void 0!==t&&this.classCollection.add(`mg-c-input--width-${this.mgWidth}`),this.classCollection=new n(this.classCollection.classes)}watchFetchUrl(t){void 0!==t&&this.loadingWrapper({name:"load-data"})}watchFetchOptions(t){if(this.fetchurl&&t&&!u(t))throw new Error(`<mg-input-combobox> prop "fetchoptions" value must be a valid RequestInit. Passed value: ${a(t)}.`)}watchFetchMappings(t){if(void 0!==this.fetchurl&&!u(t))throw new Error('<mg-input-combobox> prop "fetchmappings" is required with "fetchurl" prop.');if(void 0!==t&&!(t=>{const i=u(t)&&Object.hasOwn(t,"request")&&Object.hasOwn(t,"response");if(i){const{request:i,response:s}=t;return![i,s].some((t=>!u(t)))&&!("string"!=typeof i.filter||void 0!==i.filterTransform&&"function"!=typeof i.filterTransform||"object"!=typeof s||"string"!=typeof s.total||"string"!=typeof s.items||"string"!=typeof s.next||"string"!=typeof s.itemTitle||"string"!=typeof s.itemValue&&void 0!==s.itemValue)}return i})(t))throw new Error(`<mg-input-combobox> prop "fetchmappings" value must be { request: RequestMappingType, response: ResponseMappingType }. Passed value: ${a(t)}.`)}watchOptions(){this.page=this.getFirstPage()}watchFilter(t){this.loadingWrapper({name:"load-data"}),this.filterChange.emit(t)}watchPopoverDisplay(t){t?this.input.focus():(this.option=null,this.filter=this.getValueTitle(),this.handlerInProgress="blur",this.displayError().finally((()=>{this.handlerInProgress=void 0})))}async setFocus(){var t;null===(t=this.input)||void 0===t||t.focus()}displayError(){return new Promise((t=>{requestAnimationFrame((()=>{this.checkValidity(),this.setErrorMessage(),this.hasDisplayedError=this.invalid,t()}))}))}async setError(t,i,s=!1){if("boolean"!=typeof t)throw new Error('<mg-input-combobox> method "setError()" param "valid" must be a boolean.');if(void 0!==i&&!m(i))throw new Error('<mg-input-combobox> method "setError()" param "errorMessage" must be a string.');this.customErrorMessage={lock:!t&&s,message:t?void 0:i},this.setValidity(t),this.setErrorMessage(!0),this.hasDisplayedError=this.invalid}async reset(){if(!this.readonly)return this.setValue(null),this.option=null,this.filter="",new Promise((t=>{requestAnimationFrame((()=>{this.customErrorMessage={lock:!1},this.checkValidity(),this.errorMessage=void 0,this.hasDisplayedError=!1,t()}))}))}setValue(t){this.value=_(t)?p(this.items||this.options.items)?t.title:Object.assign({},t):""}setValidity(t){const i=this.valid;this.customErrorMessage.lock&&(void 0===this.customErrorMessage.message||t)||(this.valid=t),this.invalid=!this.valid,(void 0===this.handlerInProgress||"blur"===this.handlerInProgress&&this.valid!==i)&&this.inputValid.emit(this.valid)}componentWillLoad(){return this.messages=f(this.element).messages,this.watchIdentifier(this.identifier),this.watchItems(this.items),void 0!==this.fetchurl&&(this.watchFetchOptions(this.fetchoptions),this.watchFetchMappings(this.fetchmappings),this.loadingWrapper({name:"load-data"})),this.watchValue(this.value),this.watchOptions(),this.watchMgWidth(this.mgWidth),this.watchReadonly(this.readonly),this.watchDisabled(this.disabled),setTimeout((()=>{this.checkValidity()}),0)}render(){var t,i,o,e,n,h;const r=`${this.identifier}-list`,c=this.getValueTitle(),p=this.value&&!this.disabled;let m,u;return(null===(t=this.page)||void 0===t?void 0:t.items.length)>0?m="list":0===(null===(i=this.page)||void 0===i?void 0:i.items.length)&&this.filter.length>0?m="notfound":0===(null===(o=this.page)||void 0===o?void 0:o.items.length)&&(m="notavailable"),u=void 0!==(null===(e=this.option)||void 0===e?void 0:e.value)?this.option.value:"string"==typeof this.value?this.value:null===(n=this.value)||void 0===n?void 0:n.value,s("mg-input",{key:"d19136f775e89188dcecf78a004abd1bc8048174",label:this.label,identifier:this.identifier,class:this.classCollection.classes.join(" "),ariaDescribedbyIDs:m&&"list"!==m?m:void 0,labelOnTop:this.labelOnTop,labelHide:this.labelHide,required:this.required,tooltip:this.tooltip,tooltipPosition:this.readonly&&void 0===this.value?"label":this.tooltipPosition,helpText:this.helpText,errorMessage:this.errorMessage},this.readonly?c&&s("b",{class:"mg-c-input__readonly-value"},c):s("mg-popover",{identifier:this.popoverId,placement:"bottom-start",display:this.popoverDisplay,"arrow-hide":!0,style:{"--mg-c-input-list-width":(null===(h=this.input)||void 0===h?void 0:h.offsetWidth)>0?`${this.input.offsetWidth}px`:void 0},"data-fallback-placement":"bottom-end","onDisplay-change":this.handlePopoverDisplay},s("div",{class:"mg-c-input__input-group-container"},s("mg-icon",{icon:"magnifying-glass"}),s("input",{type:"text",role:"combobox",class:"mg-c-input__box mg-c-input__box--width",value:this.filter,id:this.identifier,name:this.name,placeholder:this.placeholder,title:this.placeholder,disabled:this.disabled,required:this.required,autocomplete:"off","aria-autocomplete":"list","aria-expanded":this.popoverDisplay.toString(),"aria-controls":r,"aria-invalid":(!0===this.invalid).toString(),"aria-activedescendant":l(u),onInput:this.handleFilterInput,onBlur:this.handleFilterBlur,onFocus:this.handleFilterFocus,onKeyDown:this.handleFilterKeydown,ref:t=>{null!==t&&(this.input=t)}}),p?s("mg-button",{class:"mg-c-input__box-append mg-c-input__reset",variant:"flat","is-icon":!0,label:this.messages.general.reset,"aria-controls":this.identifier,tabindex:"-1",onClick:this.handleResetButton},s("mg-icon",{icon:"cross"})):s("mg-button",{class:"mg-c-input__box-append",variant:"flat","is-icon":!0,label:this.itemsLabel,tabindex:"-1",disabled:this.disabled},s("mg-icon",{icon:"chevron-"+(this.popoverDisplay?"up":"down")}))),s("div",{slot:"content",class:"mg-c-input__popover-container"},"list"===m&&[s("ul",{key:"list",class:"mg-c-input__input-list",role:"listbox",id:r,"aria-label":this.itemsLabel,"aria-setsize":this.page.total},this.page.items.map((t=>{var i;return s("li",{role:"option",class:{"mg-c-input__input-list-item":!0,"mg-c-input__input-list-item--focus-visible":JSON.stringify(null===(i=this.option)||void 0===i?void 0:i.value)===JSON.stringify(t.value),"mg-c-input__input-list-item--selected":this.isCurrentOption(t)},key:t.title,id:l(t.value),"aria-selected":this.isCurrentOption(t).toString(),"data-value":a(t.value),onClick:this.handleOptionClick},t.title,this.isCurrentOption(t)&&s("mg-icon",{icon:"check"}))}))),this.isLoading&&s("mg-loader",{key:"loader",message:this.messages.input.combobox.search,class:{"mg-u-visually-hidden":Boolean(this.page.next)}}),this.page.next&&s("mg-button",{key:"load-more",variant:"flat",class:"mg-c-input__load-more",tabIndex:-1,disabled:this.isLoading,"full-width":!0,"disable-on-click":!0,onClick:this.handleLoadMoreButton,"aria-controls":r,ref:t=>{null!==t&&(this.loadMoreElement=t)}},s("mg-icon",{icon:"chevron-down"}),this.messages.input.showMore)],"notfound"===m&&s("p",{id:m,class:"mg-c-input__popover-info"},this.messages.input.combobox.notFound),"notavailable"===m&&s("p",{id:m,class:"mg-c-input__popover-info"},this.messages.input.combobox.notAvailable))))}get element(){return o(this)}static get watchers(){return{value:[{watchValue:0}],items:[{watchItems:0}],identifier:[{watchIdentifier:0}],readonly:[{watchReadonly:0},{watchValidityChange:0}],required:[{watchValidityChange:0}],disabled:[{watchValidityChange:0},{watchDisabled:0}],mgWidth:[{watchMgWidth:0}],fetchurl:[{watchFetchUrl:0}],fetchoptions:[{watchFetchOptions:0}],fetchmappings:[{watchFetchMappings:0}],options:[{watchOptions:0}],filter:[{watchFilter:0}],popoverDisplay:[{watchPopoverDisplay:0}]}}};x.style=".mg-c-input__box{height:var(--mg-b-size-min-height);box-sizing:border-box;padding:calc((var(--mg-b-size-min-height) - var(--mg-b-font-size)*var(--mg-b-line-height))/2) var(--mg-b-size-8);border-width:var(--mg-c-input-border-width);border-style:solid;border-color:var(--mg-c-input-color-border);border-radius:var(--mg-c-input-border-radius);background-color:var(--mg-b-color-light);color:var(--mg-b-color-dark);font-family:inherit;font-size:var(--mg-b-font-size);text-align:var(--mg-c-input-text-align, left)}.mg-c-input__box::placeholder{color:var(--mg-c-input-placeholder-color-text);font-style:italic}.mg-c-input__box:focus{box-shadow:0 0 var(--mg-b-size-4) var(--mg-c-input-color-box-shadow-focus)}.mg-c-input__box:disabled{opacity:var(--mg-b-opacity-element-disabled)}.mg-c-input.mg-c-input--has-error .mg-c-input__box{border-color:var(--mg-b-color-danger)}.mg-c-input.mg-c-input--is-input-group-append{--mg-c-button-border-radius-top-left:0;--mg-c-button-border-radius-bottom-left:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box{margin-right:calc(-1*var(--mg-b-size-border));border-bottom-right-radius:0;border-top-right-radius:0}.mg-c-input.mg-c-input--is-input-group-append .mg-c-input__box:focus-visible{outline-offset:-0.2rem;outline-style:solid;outline-width:.2rem}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]){--mg-c-button-border-radius-top-right:0;--mg-c-button-border-radius-bottom-right:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:not(:last-of-type)){--mg-c-button-border-right-width:0}.mg-c-input.mg-c-input--has-buttons-group-append ::slotted([slot=append-input]:last-of-type){--mg-c-button-border-radius-top-right:var(--mg-c-input-border-radius);--mg-c-button-border-radius-bottom-right:var(--mg-c-input-border-radius)}.mg-c-input.mg-c-input--is-append-input-slot-content:not(.mg-c-input--readonly) ::slotted([slot=append-input]){align-self:start;padding-top:calc((var(--mg-b-size-min-height) - var(--mg-b-size-16))/2)}.mg-c-input.mg-c-input--has-icon .mg-c-input__input-group-container{position:relative}.mg-c-input.mg-c-input--has-icon .mg-c-input__input-group-container>mg-icon:first-of-type{position:absolute;top:50%;left:var(--mg-b-size-8);color:var(--mg-c-input-color-icon);transform:translateY(-50%)}.mg-c-input.mg-c-input--has-icon .mg-c-input__input-group-container .mg-c-input__box{padding-left:calc(var(--mg-b-size-16) + var(--mg-b-size-8)*2)}.mg-c-input__popover-info{padding:var(--mg-b-size-8);margin:0;color:var(--mg-b-color-neutral-90);text-align:center}.mg-c-input__input-container{width:100%;flex:1 auto}.mg-c-input.mg-c-input--width-full .mg-c-input__box{width:100%}.mg-c-input.mg-c-input--width-full .mg-c-input__input-group-container{width:100%;flex-grow:1}.mg-c-input.mg-c-input--width-2.mg-c-input--display-character-left .mg-c-input__input-group-container,.mg-c-input.mg-c-input--width-4.mg-c-input--display-character-left .mg-c-input__input-group-container,.mg-c-input.mg-c-input--width-16.mg-c-input--display-character-left .mg-c-input__input-group-container{width:max-content}.mg-c-input.mg-c-input--width-2 .mg-c-input__box{width:var(--mg-b-size-48)}.mg-c-input.mg-c-input--width-2.mg-c-input--text.mg-c-input--display-character-left .mg-c-input__box{width:calc(var(--mg-b-size-48) + var(--mg-c-character-left-message-length)*(.35ch + .3rem))}.mg-c-input.mg-c-input--width-4 .mg-c-input__box{width:var(--mg-b-size-72)}.mg-c-input.mg-c-input--width-4.mg-c-input--text.mg-c-input--display-character-left .mg-c-input__box{width:calc(var(--mg-b-size-72) + var(--mg-c-character-left-message-length)*(.35ch + .3rem))}.mg-c-input.mg-c-input--width-16 .mg-c-input__box{width:calc(26*var(--mg-b-size-8))}.mg-c-input.mg-c-input--width-16.mg-c-input--text.mg-c-input--display-character-left .mg-c-input__box{width:calc(calc(26 * var(--mg-b-size-8)) + var(--mg-c-character-left-message-length)*(.35ch + .3rem))}.mg-c-input.mg-c-input--width-full:not(.mg-c-input--label-on-top){justify-content:stretch}.mg-c-input.mg-c-input--is-input-group-append ::slotted([slot=append-input]),.mg-c-input.mg-c-input--is-append-input-slot-content ::slotted([slot=append-input]){width:auto}:host(.mg-c-input.mg-c-input--width-full) ::slotted(*:not(mg-input-title)){width:100%;max-width:100%}.mg-c-input__readonly-value{min-height:var(--mg-b-font-size);align-self:flex-start;margin-top:calc((var(--mg-b-size-min-height) - var(--mg-b-font-size)*var(--mg-b-line-height))/2);overflow-wrap:anywhere}.mg-u-visually-hidden{position:absolute !important;overflow:hidden !important;width:.1rem !important;height:.1rem !important;padding:0 !important;border:0 !important;margin:-0.1rem !important;clip:rect(0.1rem, 0.1rem, 0.1rem, 0.1rem) !important;clip-path:inset(50%) !important;white-space:nowrap !important}*:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion){*{animation:none !important;transition:none !important}}a{color:inherit;text-decoration:underline}a:hover,a:focus,a:active{text-decoration:none}.mg-c-input.mg-c-input--combobox mg-popover{--mg-c-popover-overflow:auto;--mg-c-popover-spacing-vertical:0;--mg-c-popover-spacing-horizontal:0;--mg-c-popover-min-width:var(--mg-c-input-list-width);--mg-c-popover-max-height:calc(50 * var(--mg-b-size-8) - var(--mg-b-size-32))}.mg-c-input.mg-c-input--combobox .mg-c-input__input-group-container{position:relative}.mg-c-input.mg-c-input--combobox .mg-c-input__box{cursor:pointer}.mg-c-input.mg-c-input--combobox .mg-c-input__popover-container{display:flex;flex-direction:column;gap:var(--mg-b-size-4)}.mg-c-input.mg-c-input--combobox .mg-c-input__load-more{padding:0 var(--mg-b-size-8) var(--mg-b-size-4)}.mg-c-input.mg-c-input--combobox .mg-c-input__input-list{padding:0;margin:0;cursor:pointer;list-style:none}.mg-c-input.mg-c-input--combobox .mg-c-input__input-list-item{display:flex;padding:var(--mg-b-size-8)}.mg-c-input.mg-c-input--combobox .mg-c-input__input-list-item:hover,.mg-c-input.mg-c-input--combobox .mg-c-input__input-list-item.mg-c-input__input-list-item--focus-visible{background-color:var(--mg-b-color-neutral-20)}.mg-c-input.mg-c-input--combobox .mg-c-input__input-list-item.mg-c-input__input-list-item--selected{font-weight:700}.mg-c-input.mg-c-input--combobox .mg-c-input__input-list-item.mg-c-input__input-list-item--selected mg-icon{margin-left:auto}.mg-c-input.mg-c-input--combobox.mg-c-input--width-2 .mg-c-input__box{width:calc(var(--mg-b-size-16) + var(--mg-b-size-8)*2 + var(--mg-b-size-24) + var(--mg-b-size-min-height) + var(--mg-b-size-4))}.mg-c-input.mg-c-input--combobox.mg-c-input--width-4 .mg-c-input__box{width:calc(var(--mg-b-size-16) + var(--mg-b-size-8)*2 + var(--mg-b-size-48) + var(--mg-b-size-min-height) + var(--mg-b-size-4))}.mg-c-input.mg-c-input--combobox.mg-c-input--width-16 .mg-c-input__box{width:calc(var(--mg-b-size-16) + var(--mg-b-size-8)*2 + calc(23 * var(--mg-b-size-8)) + var(--mg-b-size-min-height) + var(--mg-b-size-4))}.mg-c-input.mg-c-input--combobox.mg-c-input--width-full mg-popover{--mg-c-popover-max-width:var(--mg-c-input-list-width, var(--mg-c-popover-max-width))}.mg-c-input.mg-c-input--combobox.mg-c-input--width-full .mg-c-input__input-group-container{display:flex;width:100%}.mg-c-input.mg-c-input--combobox.mg-c-input--width-full .mg-c-input__box{flex:1}.mg-c-input.mg-c-input--combobox.mg-c-input--input-append .mg-c-input__box{padding-right:calc(var(--mg-b-size-min-height) + var(--mg-b-size-4))}.mg-c-input.mg-c-input--combobox.mg-c-input--input-append .mg-c-input__box-append{position:absolute;top:0;right:0}";export{x as mg_input_combobox}
@@ -1 +0,0 @@
1
- import{r as t,c as s,f as i,h as e,a}from"./p-C3jUhxdI.js";import{C as h,t as o}from"./p-C7xjtdiw.js";import{i as n}from"./p-DSEloqPn.js";const r=["info","warning","success","danger"],c=["bar-left","background"],l=class{constructor(i){t(this,i),this.componentShow=s(this,"component-show",3),this.componentHide=s(this,"component-hide",3),this.componentClose=s(this,"component-close",3),this.classCloseButton="mg-c-alert--close-button",this.storedTimer=null,this.isFocused=!1,this.isHovered=!1,this.variant="info",this.variantStyle="bar-left",this.classCollection=new h(["mg-c-alert"]),this.hasActions=!1,this.setTimer=()=>{this.storedTimer=setTimeout((()=>this.element.hidden=!0),1e3*this.delay)},this.clearTimer=()=>{clearTimeout(this.storedTimer)},this.timerEvents=t=>{this.clearTimer();const s="mouseenter"===t.type;this[s?"isHovered":"isFocused"]=!0,this.element.addEventListener(s?"mouseleave":"focusout",(t=>{this["mouseleave"===t.type?"isHovered":"isFocused"]=!1,this.isFocused||this.isHovered||this.setTimer()}),{once:!0})},this.handleClose=()=>{this.element.hidden=!0,this.componentClose.emit()}}watchDelay(t){if(void 0!==t&&t<2)throw new Error(`<mg-alert> prop "delay" must be greater than 2 seconds. Passed value: ${o(t)}.`)}watchVariant(t){if(t&&!r.includes(t))throw new Error(`<mg-alert> prop "variant" must be one of: ${r.join(", ")}. Passed value: ${o(t)}.`)}watchVariantStyle(t){if(t&&!c.includes(t))throw new Error(`<mg-alert> prop "variantStyle" must be one of: ${c.join(", ")}. Passed value: ${o(t)}.`)}watchHidden(t){"string"==typeof t&&""===t&&(t=!0),t?(this.componentHide.emit(),["focusin","mouseenter"].forEach((t=>{this.element.removeEventListener(t,this.timerEvents)})),this.clearTimer()):(this.componentShow.emit(),this.delay>1&&(this.setTimer(),["focusin","mouseenter"].forEach((t=>{this.element.addEventListener(t,this.timerEvents)})))),i(this)}componentWillLoad(){this.messages=n(this.element).messages,this.watchVariant(this.variant),this.watchVariantStyle(this.variantStyle),this.watchDelay(this.delay),this.watchHidden(this.element.hidden),this.hasActions=null!==this.element.querySelector('[slot="actions"]'),this.hasActions||this.classCollection.add(this.classCloseButton)}render(){return e("mg-message",{key:"9041d8643bf4d0d44f20d30ac3c1d9aa46d6e060",class:this.classCollection.join(),role:["info","success"].includes(this.variant)?"status":"alert",variant:this.variant,variantStyle:this.variantStyle},e("slot",{key:"94d1a430e9af605fa2ea2b557e82fc15f1cc148b"}),this.hasActions?e("span",{slot:"actions"},e("slot",{name:"actions"})):e("span",{class:"mg-c-alert__close-button"},e("mg-button",{"is-icon":!0,variant:"flat",label:this.messages.alert.closeButton,onClick:this.handleClose},e("mg-icon",{icon:"cross"}))))}get element(){return a(this)}static get watchers(){return{delay:[{watchDelay:0}],variant:[{watchVariant:0}],variantStyle:[{watchVariantStyle:0}],hidden:[{watchHidden:0}]}}};l.style=".mg-c-alert__close-button{position:absolute;top:0;right:0}.mg-c-alert.mg-c-alert--close-button{--mg-c-card-spacing:0 var(--mg-b-size-min-height) 0 0}";export{l as mg_alert}