@gov-design-system-ce/components 4.0.7 → 4.0.8-rc02

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 (248) hide show
  1. package/dist/cjs/array.utils-5a024b3a.js +46 -0
  2. package/dist/cjs/array.utils-5a024b3a.js.map +1 -0
  3. package/dist/cjs/constants-9dc978dd.js +27 -0
  4. package/dist/cjs/constants-9dc978dd.js.map +1 -0
  5. package/dist/cjs/core.cjs.js +1 -1
  6. package/dist/cjs/{form-74063d50.js → form-893791cf.js} +3 -3
  7. package/dist/cjs/form-893791cf.js.map +1 -0
  8. package/dist/cjs/gov-form-checkbox-group.cjs.entry.js +89 -0
  9. package/dist/cjs/gov-form-checkbox-group.cjs.entry.js.map +1 -0
  10. package/dist/cjs/gov-form-checkbox.cjs.entry.js +6 -2
  11. package/dist/cjs/gov-form-checkbox.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gov-form-control.cjs.entry.js +1 -1
  13. package/dist/cjs/gov-form-file.cjs.entry.js +1 -1
  14. package/dist/cjs/gov-form-group.cjs.entry.js +7 -16
  15. package/dist/cjs/gov-form-group.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gov-form-input.cjs.entry.js +1 -1
  17. package/dist/cjs/gov-form-multi-select.cjs.entry.js +83 -102
  18. package/dist/cjs/gov-form-multi-select.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gov-form-radio-group.cjs.entry.js +73 -0
  20. package/dist/cjs/gov-form-radio-group.cjs.entry.js.map +1 -0
  21. package/dist/cjs/gov-form-radio.cjs.entry.js +6 -2
  22. package/dist/cjs/gov-form-radio.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gov-form-select.cjs.entry.js +14 -18
  24. package/dist/cjs/gov-form-select.cjs.entry.js.map +1 -1
  25. package/dist/cjs/gov-form-switch.cjs.entry.js +6 -2
  26. package/dist/cjs/gov-form-switch.cjs.entry.js.map +1 -1
  27. package/dist/cjs/gov-icon.cjs.entry.js +1 -1
  28. package/dist/cjs/gov-pagination.cjs.entry.js +2 -8
  29. package/dist/cjs/gov-pagination.cjs.entry.js.map +1 -1
  30. package/dist/cjs/index-7b6bba34.js +8 -0
  31. package/dist/cjs/loader.cjs.js +1 -1
  32. package/dist/cjs/stencil.utils-22814956.js +11 -0
  33. package/dist/cjs/stencil.utils-22814956.js.map +1 -0
  34. package/dist/collection/collection-manifest.json +2 -0
  35. package/dist/collection/components/gov-form/checkbox/gov-form-checkbox.js +5 -1
  36. package/dist/collection/components/gov-form/checkbox/gov-form-checkbox.js.map +1 -1
  37. package/dist/collection/components/gov-form/group/constants.js +6 -0
  38. package/dist/collection/components/gov-form/group/constants.js.map +1 -1
  39. package/dist/collection/components/gov-form/group/gov-form-checkbox-group.js +182 -0
  40. package/dist/collection/components/gov-form/group/gov-form-checkbox-group.js.map +1 -0
  41. package/dist/collection/components/gov-form/group/gov-form-group.css +9 -9
  42. package/dist/collection/components/gov-form/group/gov-form-group.js.map +1 -1
  43. package/dist/collection/components/gov-form/group/gov-form-group.types.js +2 -0
  44. package/dist/collection/components/gov-form/group/gov-form-group.types.js.map +1 -0
  45. package/dist/collection/components/gov-form/group/gov-form-radio-group.js +166 -0
  46. package/dist/collection/components/gov-form/group/gov-form-radio-group.js.map +1 -0
  47. package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.css +1 -0
  48. package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.js +134 -253
  49. package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.js.map +1 -1
  50. package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.types.js.map +1 -1
  51. package/dist/collection/components/gov-form/radio/gov-form-radio.js +5 -1
  52. package/dist/collection/components/gov-form/radio/gov-form-radio.js.map +1 -1
  53. package/dist/collection/components/gov-form/select/constants.js +1 -1
  54. package/dist/collection/components/gov-form/select/constants.js.map +1 -1
  55. package/dist/collection/components/gov-form/select/gov-form-select.js +40 -64
  56. package/dist/collection/components/gov-form/select/gov-form-select.js.map +1 -1
  57. package/dist/collection/components/gov-form/select/gov-form-select.types.js.map +1 -1
  58. package/dist/collection/components/gov-form/switch/gov-form-switch.js +5 -1
  59. package/dist/collection/components/gov-form/switch/gov-form-switch.js.map +1 -1
  60. package/dist/collection/components/gov-pagination/gov-pagination.js +1 -1
  61. package/dist/collection/components/gov-pagination/gov-pagination.js.map +1 -1
  62. package/dist/collection/helpers/Dom/form.js +1 -1
  63. package/dist/collection/helpers/Dom/form.js.map +1 -1
  64. package/dist/collection/pages/Forms.js +80 -13
  65. package/dist/collection/pages/Forms.js.map +1 -1
  66. package/dist/collection/pages/Home.js +65 -40
  67. package/dist/collection/pages/Home.js.map +1 -1
  68. package/dist/collection/utils/array.utils.js +14 -0
  69. package/dist/collection/utils/array.utils.js.map +1 -1
  70. package/dist/collection/utils/object.utils.js +18 -0
  71. package/dist/collection/utils/object.utils.js.map +1 -0
  72. package/dist/collection/utils/stencil.utils.js +6 -0
  73. package/dist/collection/utils/stencil.utils.js.map +1 -0
  74. package/dist/components/gov-accordion-item.js +1 -1
  75. package/dist/components/gov-attachments-item.js +1 -1
  76. package/dist/components/gov-breadcrumbs.js +1 -1
  77. package/dist/components/gov-button.js +1 -1
  78. package/dist/components/gov-card.js +1 -1
  79. package/dist/components/gov-chip.js +1 -1
  80. package/dist/components/gov-form-autocomplete.js +1 -1
  81. package/dist/components/gov-form-checkbox-group.d.ts +11 -0
  82. package/dist/components/gov-form-checkbox-group.js +2 -0
  83. package/dist/components/gov-form-checkbox-group.js.map +1 -0
  84. package/dist/components/gov-form-checkbox.js +1 -1
  85. package/dist/components/gov-form-checkbox.js.map +1 -1
  86. package/dist/components/gov-form-control.js +1 -1
  87. package/dist/components/gov-form-file.js +1 -1
  88. package/dist/components/gov-form-group.js +1 -1
  89. package/dist/components/gov-form-group.js.map +1 -1
  90. package/dist/components/gov-form-input.js +1 -1
  91. package/dist/components/gov-form-multi-select.js +1 -1
  92. package/dist/components/gov-form-multi-select.js.map +1 -1
  93. package/dist/components/gov-form-radio-group.d.ts +11 -0
  94. package/dist/components/gov-form-radio-group.js +2 -0
  95. package/dist/components/gov-form-radio-group.js.map +1 -0
  96. package/dist/components/gov-form-radio.js +1 -1
  97. package/dist/components/gov-form-radio.js.map +1 -1
  98. package/dist/components/gov-form-select.js +1 -1
  99. package/dist/components/gov-form-switch.js +1 -1
  100. package/dist/components/gov-form-switch.js.map +1 -1
  101. package/dist/components/gov-icon.js +1 -1
  102. package/dist/components/gov-infobar.js +1 -1
  103. package/dist/components/gov-loading.js +1 -1
  104. package/dist/components/gov-modal.js +1 -1
  105. package/dist/components/gov-pagination.js +1 -1
  106. package/dist/components/gov-pagination.js.map +1 -1
  107. package/dist/components/gov-prompt.js +1 -1
  108. package/dist/components/gov-side-nav-item.js +1 -1
  109. package/dist/components/gov-tabs.js +1 -1
  110. package/dist/components/gov-tag.js +1 -1
  111. package/dist/components/gov-toast.js +1 -1
  112. package/dist/components/gov-tooltip-content.js +1 -1
  113. package/dist/components/gov-wizard-item.js +1 -1
  114. package/dist/components/{p-44762d17.js → p-0a1fbf26.js} +2 -2
  115. package/dist/components/p-2dee9951.js.map +1 -1
  116. package/dist/components/p-3a04fb9b.js +2 -0
  117. package/dist/components/p-3a04fb9b.js.map +1 -0
  118. package/dist/components/p-4529b963.js +2 -0
  119. package/dist/components/{p-8b7b916a.js.map → p-4529b963.js.map} +1 -1
  120. package/dist/components/{p-76b229e3.js → p-4a19259c.js} +2 -2
  121. package/dist/components/p-75be4c94.js +2 -0
  122. package/dist/components/p-75be4c94.js.map +1 -0
  123. package/dist/components/{p-5dbe0178.js → p-8749590a.js} +2 -2
  124. package/dist/components/p-8fcc8483.js +2 -0
  125. package/dist/components/p-8fcc8483.js.map +1 -0
  126. package/dist/components/{p-976404a5.js → p-a7443b36.js} +2 -2
  127. package/dist/components/p-ab5a13ea.js +2 -0
  128. package/dist/components/p-ab5a13ea.js.map +1 -0
  129. package/dist/components/{p-99860f34.js → p-b5716fb6.js} +2 -2
  130. package/dist/components/p-f04382c3.js +2 -0
  131. package/dist/components/p-f04382c3.js.map +1 -0
  132. package/dist/core/core.esm.js +1 -1
  133. package/dist/core/core.esm.js.map +1 -1
  134. package/dist/core/{p-f9dcaafb.entry.js → p-0702b541.entry.js} +2 -2
  135. package/dist/core/p-0702b541.entry.js.map +1 -0
  136. package/dist/core/p-0eb3fd76.entry.js +2 -0
  137. package/dist/core/{p-e3b14974.entry.js.map → p-0eb3fd76.entry.js.map} +1 -1
  138. package/dist/core/{p-148501cc.entry.js → p-115f99f4.entry.js} +2 -2
  139. package/dist/core/p-115f99f4.entry.js.map +1 -0
  140. package/dist/core/p-1f769a40.entry.js +2 -0
  141. package/dist/core/p-1f769a40.entry.js.map +1 -0
  142. package/dist/core/p-35d6ef00.entry.js +2 -0
  143. package/dist/core/p-35d6ef00.entry.js.map +1 -0
  144. package/dist/core/{p-9402e4cc.entry.js → p-39272558.entry.js} +2 -2
  145. package/dist/core/p-39272558.entry.js.map +1 -0
  146. package/dist/core/p-3a04fb9b.js +2 -0
  147. package/dist/core/p-3a04fb9b.js.map +1 -0
  148. package/dist/core/p-4b4a270d.entry.js +2 -0
  149. package/dist/core/p-4b4a270d.entry.js.map +1 -0
  150. package/dist/core/p-5bc604a3.js.map +1 -1
  151. package/dist/core/p-61a2b12a.js +2 -0
  152. package/dist/core/p-61a2b12a.js.map +1 -0
  153. package/dist/core/p-8fcc8483.js +2 -0
  154. package/dist/core/p-8fcc8483.js.map +1 -0
  155. package/dist/core/p-927880d6.entry.js.map +1 -1
  156. package/dist/core/{p-ac856de6.entry.js → p-9c00b909.entry.js} +2 -2
  157. package/dist/core/p-ab5a13ea.js +2 -0
  158. package/dist/core/p-ab5a13ea.js.map +1 -0
  159. package/dist/core/{p-835f1187.entry.js → p-c20ee863.entry.js} +2 -2
  160. package/dist/core/p-cad17bfe.entry.js +2 -0
  161. package/dist/core/p-cad17bfe.entry.js.map +1 -0
  162. package/dist/core/{p-1bc2f62c.entry.js → p-d07d3dcc.entry.js} +2 -2
  163. package/dist/core/p-ead75342.entry.js +2 -0
  164. package/dist/core/p-ead75342.entry.js.map +1 -0
  165. package/dist/core/p-f4ef1b95.entry.js +2 -0
  166. package/dist/core/p-f4ef1b95.entry.js.map +1 -0
  167. package/dist/esm/array.utils-b27436ea.js +43 -0
  168. package/dist/esm/array.utils-b27436ea.js.map +1 -0
  169. package/dist/esm/constants-e80d9514.js +22 -0
  170. package/dist/esm/constants-e80d9514.js.map +1 -0
  171. package/dist/esm/core.js +1 -1
  172. package/dist/esm/{form-39dc6896.js → form-b81fd97e.js} +3 -3
  173. package/dist/esm/form-b81fd97e.js.map +1 -0
  174. package/dist/esm/gov-form-checkbox-group.entry.js +85 -0
  175. package/dist/esm/gov-form-checkbox-group.entry.js.map +1 -0
  176. package/dist/esm/gov-form-checkbox.entry.js +6 -2
  177. package/dist/esm/gov-form-checkbox.entry.js.map +1 -1
  178. package/dist/esm/gov-form-control.entry.js +1 -1
  179. package/dist/esm/gov-form-file.entry.js +1 -1
  180. package/dist/esm/gov-form-group.entry.js +4 -13
  181. package/dist/esm/gov-form-group.entry.js.map +1 -1
  182. package/dist/esm/gov-form-input.entry.js +1 -1
  183. package/dist/esm/gov-form-multi-select.entry.js +83 -102
  184. package/dist/esm/gov-form-multi-select.entry.js.map +1 -1
  185. package/dist/esm/gov-form-radio-group.entry.js +69 -0
  186. package/dist/esm/gov-form-radio-group.entry.js.map +1 -0
  187. package/dist/esm/gov-form-radio.entry.js +6 -2
  188. package/dist/esm/gov-form-radio.entry.js.map +1 -1
  189. package/dist/esm/gov-form-select.entry.js +14 -18
  190. package/dist/esm/gov-form-select.entry.js.map +1 -1
  191. package/dist/esm/gov-form-switch.entry.js +6 -2
  192. package/dist/esm/gov-form-switch.entry.js.map +1 -1
  193. package/dist/esm/gov-icon.entry.js +1 -1
  194. package/dist/esm/gov-pagination.entry.js +2 -8
  195. package/dist/esm/gov-pagination.entry.js.map +1 -1
  196. package/dist/esm/index-eb59f132.js +8 -0
  197. package/dist/esm/loader.js +1 -1
  198. package/dist/esm/stencil.utils-7cb5b075.js +9 -0
  199. package/dist/esm/stencil.utils-7cb5b075.js.map +1 -0
  200. package/dist/hydrate/index.js +335 -157
  201. package/dist/types/components/gov-form/checkbox/gov-form-checkbox.d.ts +2 -0
  202. package/dist/types/components/gov-form/group/constants.d.ts +6 -0
  203. package/dist/types/components/gov-form/group/gov-form-checkbox-group.d.ts +32 -0
  204. package/dist/types/components/gov-form/group/gov-form-group.types.d.ts +7 -0
  205. package/dist/types/components/gov-form/group/gov-form-radio-group.d.ts +32 -0
  206. package/dist/types/components/gov-form/multiselect/gov-form-multi-select.d.ts +17 -29
  207. package/dist/types/components/gov-form/multiselect/gov-form-multi-select.types.d.ts +3 -2
  208. package/dist/types/components/gov-form/radio/gov-form-radio.d.ts +2 -0
  209. package/dist/types/components/gov-form/select/constants.d.ts +1 -1
  210. package/dist/types/components/gov-form/select/gov-form-select.d.ts +6 -9
  211. package/dist/types/components/gov-form/select/gov-form-select.types.d.ts +1 -1
  212. package/dist/types/components/gov-form/switch/gov-form-switch.d.ts +2 -0
  213. package/dist/types/components.d.ts +122 -38
  214. package/dist/types/utils/array.utils.d.ts +1 -0
  215. package/dist/types/utils/object.utils.d.ts +1 -0
  216. package/dist/types/utils/stencil.utils.d.ts +1 -0
  217. package/package.json +2 -2
  218. package/dist/cjs/form-74063d50.js.map +0 -1
  219. package/dist/components/p-2d5d24af.js +0 -2
  220. package/dist/components/p-2d5d24af.js.map +0 -1
  221. package/dist/components/p-53e02bee.js +0 -2
  222. package/dist/components/p-53e02bee.js.map +0 -1
  223. package/dist/components/p-8b7b916a.js +0 -2
  224. package/dist/core/p-0e5fa8bf.js +0 -2
  225. package/dist/core/p-0e5fa8bf.js.map +0 -1
  226. package/dist/core/p-148501cc.entry.js.map +0 -1
  227. package/dist/core/p-531c350f.entry.js +0 -2
  228. package/dist/core/p-531c350f.entry.js.map +0 -1
  229. package/dist/core/p-9402e4cc.entry.js.map +0 -1
  230. package/dist/core/p-adf276b0.entry.js +0 -2
  231. package/dist/core/p-adf276b0.entry.js.map +0 -1
  232. package/dist/core/p-e3b14974.entry.js +0 -2
  233. package/dist/core/p-f1031bac.entry.js +0 -2
  234. package/dist/core/p-f1031bac.entry.js.map +0 -1
  235. package/dist/core/p-f7065042.entry.js +0 -2
  236. package/dist/core/p-f7065042.entry.js.map +0 -1
  237. package/dist/core/p-f9dcaafb.entry.js.map +0 -1
  238. package/dist/esm/form-39dc6896.js.map +0 -1
  239. package/dist/globals.d.ts +0 -2
  240. package/dist/types/types/typings.d.ts +0 -6
  241. /package/dist/components/{p-44762d17.js.map → p-0a1fbf26.js.map} +0 -0
  242. /package/dist/components/{p-76b229e3.js.map → p-4a19259c.js.map} +0 -0
  243. /package/dist/components/{p-5dbe0178.js.map → p-8749590a.js.map} +0 -0
  244. /package/dist/components/{p-976404a5.js.map → p-a7443b36.js.map} +0 -0
  245. /package/dist/components/{p-99860f34.js.map → p-b5716fb6.js.map} +0 -0
  246. /package/dist/core/{p-ac856de6.entry.js.map → p-9c00b909.entry.js.map} +0 -0
  247. /package/dist/core/{p-835f1187.entry.js.map → p-c20ee863.entry.js.map} +0 -0
  248. /package/dist/core/{p-1bc2f62c.entry.js.map → p-d07d3dcc.entry.js.map} +0 -0
@@ -3,13 +3,15 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-7b6bba34.js');
6
- const form = require('./form-74063d50.js');
6
+ const form = require('./form-893791cf.js');
7
7
  const template = require('./template-9534c584.js');
8
8
  const win = require('./win-5521073d.js');
9
9
  const props = require('./props-d6146e54.js');
10
10
  const wcag = require('./wcag-e6257f27.js');
11
11
  const string_utils = require('./string.utils-0f08c48c.js');
12
12
  const utils = require('./utils-c9b1bba3.js');
13
+ const array_utils = require('./array.utils-5a024b3a.js');
14
+ const stencil_utils = require('./stencil.utils-22814956.js');
13
15
  require('./sizes-79872c2a.js');
14
16
  require('./variants-f5ffeef3.js');
15
17
  require('./constants-caad94b4.js');
@@ -17,11 +19,7 @@ require('./constants-6df82618.js');
17
19
  require('./constants-97eea364.js');
18
20
  require('./gov.log-b842920d.js');
19
21
 
20
- const hasOwnProperty = (obj, prop) => {
21
- return Object.prototype.hasOwnProperty.call(obj, prop);
22
- };
23
-
24
- const govFormMultiSelectCss = ".gov-form-multi-select__list{margin:0;padding:0}.gov-form-multi-select__list>.gov-form-multi-select__item{margin:0;padding:0;background:none}.gov-form-multi-select__list>.gov-form-multi-select__item::before{display:none}.gov-spin-animation,.gov-pseudo-spin-animation::before{animation:spin 4s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}@keyframes countdown{to{transform:scaleX(0)}}@keyframes progress{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}@keyframes pulse{0%{opacity:1}50%{opacity:0.4}100%{opacity:1}}.gov-form-multi-select{position:relative;display:flex;width:100%;align-items:center}.gov-form-multi-select .element{position:relative;display:flex;flex:1 1 auto}.gov-form-multi-select input,.gov-form-multi-select select,.gov-form-multi-select textarea{width:100%;border-radius:var(--gov-border-radius, 0.1875rem);background-color:var(--gov-form-bg-color, var(--gov-color-neutral-white));font-family:var(--gov-font-family, \"Roboto\", sans-serif)}.gov-form-multi-select input:focus,.gov-form-multi-select select:focus,.gov-form-multi-select textarea:focus{outline:none}.gov-form-multi-select input:focus-visible,.gov-form-multi-select select:focus-visible,.gov-form-multi-select textarea:focus-visible{border-radius:var(--gov-border-radius, 0.1875rem);outline:var(--gov-outline-width, 0.125rem) solid var(--gov-color-focus-base);outline-offset:0}.gov-form-multi-select input::-moz-placeholder,.gov-form-multi-select select::-moz-placeholder,.gov-form-multi-select textarea::-moz-placeholder{color:var(--gov-form-placeholder-color, var(--gov-color-secondary-600))}.gov-form-multi-select input::placeholder,.gov-form-multi-select select::placeholder,.gov-form-multi-select textarea::placeholder{color:var(--gov-form-placeholder-color, var(--gov-color-secondary-600))}.gov-form-multi-select textarea{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);padding:0.5rem 0.75rem;resize:none}.gov-form-multi-select *[slot=left-icon],.gov-form-multi-select *[slot=right-icon]{position:absolute;top:50%;display:flex;justify-content:center;transform:translateY(-50%);pointer-events:none}.gov-form-multi-select *[slot=left-icon]{left:0}.gov-form-multi-select *[slot=right-icon]{right:0}.gov-form-multi-select *[slot=prefix],.gov-form-multi-select *[slot=sufix]{margin:0}[size=s].gov-form-multi-select{font-weight:var(--gov-text-s-font-weight);font-size:var(--gov-text-s-font-size);line-height:var(--gov-text-s-line-height);letter-spacing:var(--gov-text-s-letter-spacing);gap:0.5rem var(--gov-form-input-core-s-icon-size, 1rem)}[size=s].gov-form-multi-select input,[size=s].gov-form-multi-select select{font-weight:var(--gov-text-s-font-weight);font-size:var(--gov-text-s-font-size);line-height:var(--gov-text-s-line-height);letter-spacing:var(--gov-text-s-letter-spacing);height:var(--gov-form-input-core-s-height, 2rem);padding:var(--gov-form-input-core-s-padding, 0.25rem 0.75rem)}[size=s].gov-form-multi-select *[slot=left-icon],[size=s].gov-form-multi-select *[slot=right-icon]{width:var(--gov-form-input-core-s-icon-size, 1rem);height:var(--gov-form-input-core-s-icon-size, 1rem)}[size=s].gov-form-multi-select *[slot=left-icon]{left:calc((var(--gov-form-input-core-s-icon-padding, 2rem) - var(--gov-form-input-core-s-icon-size, 1rem)) / 2)}[size=s].gov-form-multi-select *[slot=left-icon]~input{padding-left:var(--gov-form-input-core-s-icon-padding, 2rem)}[size=s].gov-form-multi-select *[slot=right-icon]{right:calc((var(--gov-form-input-core-s-icon-padding, 2rem) - var(--gov-form-input-core-s-icon-size, 1rem)) / 2)}[size=s].gov-form-multi-select *[slot=right-icon]~input,[size=s].gov-form-multi-select *[slot=right-icon]~select{padding-right:var(--gov-form-input-core-s-icon-padding, 2rem)}[size=m].gov-form-multi-select{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);gap:0.5rem var(--gov-form-input-core-m-icon-size, 1rem)}[size=m].gov-form-multi-select input,[size=m].gov-form-multi-select select{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);height:var(--gov-form-input-core-m-height, 2.5rem);padding:var(--gov-form-input-core-m-padding, 0.4375rem 0.75rem)}[size=m].gov-form-multi-select *[slot=left-icon],[size=m].gov-form-multi-select *[slot=right-icon]{width:var(--gov-form-input-core-m-icon-size, 1rem);height:var(--gov-form-input-core-m-icon-size, 1rem)}[size=m].gov-form-multi-select *[slot=left-icon]{left:calc((var(--gov-form-input-core-m-icon-padding, 2.5rem) - var(--gov-form-input-core-m-icon-size, 1rem)) / 2)}[size=m].gov-form-multi-select *[slot=left-icon]~input{padding-left:var(--gov-form-input-core-m-icon-padding, 2.5rem)}[size=m].gov-form-multi-select *[slot=right-icon]{right:calc((var(--gov-form-input-core-m-icon-padding, 2.5rem) - var(--gov-form-input-core-m-icon-size, 1rem)) / 2)}[size=m].gov-form-multi-select *[slot=right-icon]~input,[size=m].gov-form-multi-select *[slot=right-icon]~select{padding-right:var(--gov-form-input-core-m-icon-padding, 2.5rem)}[size=l].gov-form-multi-select{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);gap:0.5rem var(--gov-form-input-core-l-icon-size, 1rem)}[size=l].gov-form-multi-select input,[size=l].gov-form-multi-select select{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);height:var(--gov-form-input-core-l-height, 3rem);padding:var(--gov-form-input-core-l-padding, 0.6875rem 0.75rem)}[size=l].gov-form-multi-select *[slot=left-icon],[size=l].gov-form-multi-select *[slot=right-icon]{width:var(--gov-form-input-core-l-icon-size, 1rem);height:var(--gov-form-input-core-l-icon-size, 1rem)}[size=l].gov-form-multi-select *[slot=left-icon]{left:calc((var(--gov-form-input-core-l-icon-padding, 2.5rem) - var(--gov-form-input-core-l-icon-size, 1rem)) / 2)}[size=l].gov-form-multi-select *[slot=left-icon]~input{padding-left:var(--gov-form-input-core-l-icon-padding, 2.5rem)}[size=l].gov-form-multi-select *[slot=right-icon]{right:calc((var(--gov-form-input-core-l-icon-padding, 2.5rem) - var(--gov-form-input-core-l-icon-size, 1rem)) / 2)}[size=l].gov-form-multi-select *[slot=right-icon]~input,[size=l].gov-form-multi-select *[slot=right-icon]~select{padding-right:var(--gov-form-input-core-l-icon-padding, 2.5rem)}[size=xl].gov-form-multi-select{font-weight:var(--gov-text-l-font-weight);font-size:var(--gov-text-l-font-size);line-height:var(--gov-text-l-line-height);letter-spacing:var(--gov-text-l-letter-spacing);gap:0.5rem var(--gov-form-input-core-xl-icon-size, 1.25rem)}[size=xl].gov-form-multi-select input,[size=xl].gov-form-multi-select select{font-weight:var(--gov-text-l-font-weight);font-size:var(--gov-text-l-font-size);line-height:var(--gov-text-l-line-height);letter-spacing:var(--gov-text-l-letter-spacing);height:var(--gov-form-input-core-xl-height, 3.5rem);padding:var(--gov-form-input-core-xl-padding, 0.9375rem 1rem 0.875rem)}[size=xl].gov-form-multi-select *[slot=left-icon],[size=xl].gov-form-multi-select *[slot=right-icon]{width:var(--gov-form-input-core-xl-icon-size, 1.25rem);height:var(--gov-form-input-core-xl-icon-size, 1.25rem)}[size=xl].gov-form-multi-select *[slot=left-icon]{left:calc((var(--gov-form-input-core-xl-icon-padding, 3rem) - var(--gov-form-input-core-xl-icon-size, 1.25rem)) / 2)}[size=xl].gov-form-multi-select *[slot=left-icon]~input{padding-left:var(--gov-form-input-core-xl-icon-padding, 3rem)}[size=xl].gov-form-multi-select *[slot=right-icon]{right:calc((var(--gov-form-input-core-xl-icon-padding, 3rem) - var(--gov-form-input-core-xl-icon-size, 1.25rem)) / 2)}[size=xl].gov-form-multi-select *[slot=right-icon]~input,[size=xl].gov-form-multi-select *[slot=right-icon]~select{padding-right:var(--gov-form-input-core-xl-icon-padding, 3rem)}[variant=primary].gov-form-multi-select input,[variant=primary].gov-form-multi-select select,[variant=primary].gov-form-multi-select textarea{color:var(--gov-form-input-color-primary, var(--gov-color-secondary-700));border:var(--gov-form-input-border-primary, 0.0625rem solid var(--gov-color-primary-600))}[variant=primary].gov-form-multi-select *[slot=left-icon],[variant=primary].gov-form-multi-select *[slot=right-icon]:not(.icon-arrow){color:var(--gov-form-input-icon-color-primary, var(--gov-color-primary))}[variant=secondary].gov-form-multi-select input,[variant=secondary].gov-form-multi-select select,[variant=secondary].gov-form-multi-select textarea{color:var(--gov-form-input-color-secondary, var(--gov-color-secondary-700));border:var(--gov-form-input-border-secondary, 0.0625rem solid var(--gov-color-secondary-700))}[variant=secondary].gov-form-multi-select *[slot=left-icon],[variant=secondary].gov-form-multi-select *[slot=right-icon]:not(.icon-arrow){color:var(--gov-form-input-icon-color-secondary, var(--gov-color-primary))}[disabled=\"\"].gov-form-multi-select,[disabled=true i].gov-form-multi-select,[disabled=\"1\"].gov-form-multi-select{pointer-events:none}[disabled=\"\"].gov-form-multi-select input,[disabled=\"\"].gov-form-multi-select select,[disabled=\"\"].gov-form-multi-select textarea,[disabled=true i].gov-form-multi-select input,[disabled=true i].gov-form-multi-select select,[disabled=true i].gov-form-multi-select textarea,[disabled=\"1\"].gov-form-multi-select input,[disabled=\"1\"].gov-form-multi-select select,[disabled=\"1\"].gov-form-multi-select textarea{border-color:var(--gov-form-state-color-disabled, var(--gov-color-secondary-600));background:var(--gov-form-input-disabled-bg, var(--gov-color-secondary-300));color:var(--gov-form-state-color-disabled, var(--gov-color-secondary-600))}[disabled=\"\"].gov-form-multi-select *[slot=left-icon],[disabled=\"\"].gov-form-multi-select *[slot=right-icon],[disabled=true i].gov-form-multi-select *[slot=left-icon],[disabled=true i].gov-form-multi-select *[slot=right-icon],[disabled=\"1\"].gov-form-multi-select *[slot=left-icon],[disabled=\"1\"].gov-form-multi-select *[slot=right-icon]{color:var(--gov-form-state-color-disabled, var(--gov-color-secondary-600)) !important}[invalid=\"\"].gov-form-multi-select input,[invalid=\"\"].gov-form-multi-select select,[invalid=\"\"].gov-form-multi-select textarea,[invalid=true i].gov-form-multi-select input,[invalid=true i].gov-form-multi-select select,[invalid=true i].gov-form-multi-select textarea,[invalid=\"1\"].gov-form-multi-select input,[invalid=\"1\"].gov-form-multi-select select,[invalid=\"1\"].gov-form-multi-select textarea{border-color:var(--gov-form-state-color-error, var(--gov-color-error));color:var(--gov-form-state-color-error, var(--gov-color-error))}[invalid=\"\"].gov-form-multi-select input::-moz-placeholder,[invalid=\"\"].gov-form-multi-select select::-moz-placeholder,[invalid=\"\"].gov-form-multi-select textarea::-moz-placeholder,[invalid=true i].gov-form-multi-select input::-moz-placeholder,[invalid=true i].gov-form-multi-select select::-moz-placeholder,[invalid=true i].gov-form-multi-select textarea::-moz-placeholder,[invalid=\"1\"].gov-form-multi-select input::-moz-placeholder,[invalid=\"1\"].gov-form-multi-select select::-moz-placeholder,[invalid=\"1\"].gov-form-multi-select textarea::-moz-placeholder{color:var(--gov-form-state-color-error, var(--gov-color-error-300))}[invalid=\"\"].gov-form-multi-select input::placeholder,[invalid=\"\"].gov-form-multi-select select::placeholder,[invalid=\"\"].gov-form-multi-select textarea::placeholder,[invalid=true i].gov-form-multi-select input::placeholder,[invalid=true i].gov-form-multi-select select::placeholder,[invalid=true i].gov-form-multi-select textarea::placeholder,[invalid=\"1\"].gov-form-multi-select input::placeholder,[invalid=\"1\"].gov-form-multi-select select::placeholder,[invalid=\"1\"].gov-form-multi-select textarea::placeholder{color:var(--gov-form-state-color-error, var(--gov-color-error-300))}[invalid=\"\"].gov-form-multi-select *[slot=left-icon],[invalid=\"\"].gov-form-multi-select *[slot=right-icon],[invalid=true i].gov-form-multi-select *[slot=left-icon],[invalid=true i].gov-form-multi-select *[slot=right-icon],[invalid=\"1\"].gov-form-multi-select *[slot=left-icon],[invalid=\"1\"].gov-form-multi-select *[slot=right-icon]{color:var(--gov-form-state-color-error, var(--gov-color-error)) !important}[invalid=\"\"].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow),[invalid=true i].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow),[invalid=\"1\"].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow){display:none}[success=\"\"].gov-form-multi-select *[slot=right-icon]:not(.icon-arrow),[success=true i].gov-form-multi-select *[slot=right-icon]:not(.icon-arrow),[success=\"1\"].gov-form-multi-select *[slot=right-icon]:not(.icon-arrow){color:var(--gov-form-state-color-success, var(--gov-color-success))}[success=\"\"].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow),[success=true i].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow),[success=\"1\"].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow){display:none}[multiline=\"\"].gov-form-multi-select *[slot=left-icon],[multiline=\"\"].gov-form-multi-select *[slot=right-icon],[multiline=true i].gov-form-multi-select *[slot=left-icon],[multiline=true i].gov-form-multi-select *[slot=right-icon],[multiline=\"1\"].gov-form-multi-select *[slot=left-icon],[multiline=\"1\"].gov-form-multi-select *[slot=right-icon]{display:none}.gov-form-multi-select{background:none}.gov-form-multi-select select{-webkit-appearance:none;-moz-appearance:none}.gov-form-multi-select select::-ms-expand{display:none}[size=s].gov-form-multi-select *[slot=right-icon]{right:var(--gov-form-select-s-arrow-right-position, 0.75rem);width:var(--gov-form-select-s-arrow-size, 0.75rem);height:var(--gov-form-select-s-arrow-size, 0.75rem)}[size=s][invalid=\"\"].gov-form-multi-select .icon-arrow,[size=s][invalid=true i].gov-form-multi-select .icon-arrow,[size=s][invalid=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-s-arrow-right-position, 0.75rem))}[size=s][success=\"\"].gov-form-multi-select .icon-arrow,[size=s][success=true i].gov-form-multi-select .icon-arrow,[size=s][success=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-s-arrow-right-position, 0.75rem))}[size=m].gov-form-multi-select *[slot=right-icon]{right:var(--gov-form-select-m-arrow-right-position, 1rem);width:var(--gov-form-select-m-arrow-size, 0.75rem);height:var(--gov-form-select-m-arrow-size, 0.75rem)}[size=m][invalid=\"\"].gov-form-multi-select .icon-arrow,[size=m][invalid=true i].gov-form-multi-select .icon-arrow,[size=m][invalid=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-m-arrow-right-position, 1rem))}[size=m][success=\"\"].gov-form-multi-select .icon-arrow,[size=m][success=true i].gov-form-multi-select .icon-arrow,[size=m][success=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-m-arrow-right-position, 1rem))}[size=l].gov-form-multi-select *[slot=right-icon]{right:var(--gov-form-select-l-arrow-right-position, 1rem);width:var(--gov-form-select-l-arrow-size, 1rem);height:var(--gov-form-select-l-arrow-size, 1rem)}[size=l][invalid=\"\"].gov-form-multi-select .icon-arrow,[size=l][invalid=true i].gov-form-multi-select .icon-arrow,[size=l][invalid=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-l-arrow-right-position, 1rem))}[size=l][success=\"\"].gov-form-multi-select .icon-arrow,[size=l][success=true i].gov-form-multi-select .icon-arrow,[size=l][success=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-l-arrow-right-position, 1rem))}[size=xl].gov-form-multi-select *[slot=right-icon]{right:var(--gov-form-select-xl-arrow-right-position, 1.3125rem);width:var(--gov-form-select-xl-arrow-size, 1rem);height:var(--gov-form-select-xl-arrow-size, 1rem)}[size=xl][invalid=\"\"].gov-form-multi-select .icon-arrow,[size=xl][invalid=true i].gov-form-multi-select .icon-arrow,[size=xl][invalid=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-xl-arrow-right-position, 1.3125rem))}[size=xl][success=\"\"].gov-form-multi-select .icon-arrow,[size=xl][success=true i].gov-form-multi-select .icon-arrow,[size=xl][success=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-xl-arrow-right-position, 1.3125rem))}[size=s][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=s][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=s][invalid=true i].gov-form-multi-select *[slot=right-icon]~select,[size=s][invalid=true i].gov-form-multi-select *[slot=right-icon]~input,[size=s][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=s][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-s-icon-padding, 2rem))}[size=s][success=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=s][success=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=s][success=true i].gov-form-multi-select *[slot=right-icon]~select,[size=s][success=true i].gov-form-multi-select *[slot=right-icon]~input,[size=s][success=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=s][success=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-s-icon-padding, 2rem))}[size=m][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=m][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=m][invalid=true i].gov-form-multi-select *[slot=right-icon]~select,[size=m][invalid=true i].gov-form-multi-select *[slot=right-icon]~input,[size=m][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=m][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-m-icon-padding, 2.5rem))}[size=m][success=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=m][success=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=m][success=true i].gov-form-multi-select *[slot=right-icon]~select,[size=m][success=true i].gov-form-multi-select *[slot=right-icon]~input,[size=m][success=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=m][success=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-m-icon-padding, 2.5rem))}[size=l][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=l][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=l][invalid=true i].gov-form-multi-select *[slot=right-icon]~select,[size=l][invalid=true i].gov-form-multi-select *[slot=right-icon]~input,[size=l][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=l][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-l-icon-padding, 2.5rem))}[size=l][success=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=l][success=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=l][success=true i].gov-form-multi-select *[slot=right-icon]~select,[size=l][success=true i].gov-form-multi-select *[slot=right-icon]~input,[size=l][success=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=l][success=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-l-icon-padding, 2.5rem))}[size=xl][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=xl][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=xl][invalid=true i].gov-form-multi-select *[slot=right-icon]~select,[size=xl][invalid=true i].gov-form-multi-select *[slot=right-icon]~input,[size=xl][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=xl][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-xl-icon-padding, 3rem))}[size=xl][success=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=xl][success=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=xl][success=true i].gov-form-multi-select *[slot=right-icon]~select,[size=xl][success=true i].gov-form-multi-select *[slot=right-icon]~input,[size=xl][success=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=xl][success=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-xl-icon-padding, 3rem))}.gov-form-multi-select{flex-wrap:wrap}.gov-form-multi-select__wrap{display:flex;gap:0.5rem;width:100%}.gov-form-multi-select__list{font-weight:var(--gov-text-xs-font-weight);font-size:var(--gov-text-xs-font-size);line-height:var(--gov-text-xs-line-height);letter-spacing:var(--gov-text-xs-letter-spacing);display:flex;gap:0.5rem;flex-wrap:wrap}.gov-form-multi-select__list>.gov-form-multi-select__item{position:relative;display:flex;flex:0 0 auto;align-items:center;padding:0rem 0rem 0rem 0.5rem;background:var(--gov-form-multiselect-bg, var(--gov-color-primary-200));transition:150ms linear background-color}";
22
+ const govFormMultiSelectCss = ".gov-form-multi-select__list{margin:0;padding:0}.gov-form-multi-select__list>.gov-form-multi-select__item{margin:0;padding:0;background:none}.gov-form-multi-select__list>.gov-form-multi-select__item::before{display:none}.gov-spin-animation,.gov-pseudo-spin-animation::before{animation:spin 4s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}@keyframes countdown{to{transform:scaleX(0)}}@keyframes progress{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}@keyframes pulse{0%{opacity:1}50%{opacity:0.4}100%{opacity:1}}.gov-form-multi-select{position:relative;display:flex;width:100%;align-items:center}.gov-form-multi-select .element{position:relative;display:flex;flex:1 1 auto}.gov-form-multi-select input,.gov-form-multi-select select,.gov-form-multi-select textarea{width:100%;border-radius:var(--gov-border-radius, 0.1875rem);background-color:var(--gov-form-bg-color, var(--gov-color-neutral-white));font-family:var(--gov-font-family, \"Roboto\", sans-serif)}.gov-form-multi-select input:focus,.gov-form-multi-select select:focus,.gov-form-multi-select textarea:focus{outline:none}.gov-form-multi-select input:focus-visible,.gov-form-multi-select select:focus-visible,.gov-form-multi-select textarea:focus-visible{border-radius:var(--gov-border-radius, 0.1875rem);outline:var(--gov-outline-width, 0.125rem) solid var(--gov-color-focus-base);outline-offset:0}.gov-form-multi-select input::-moz-placeholder,.gov-form-multi-select select::-moz-placeholder,.gov-form-multi-select textarea::-moz-placeholder{color:var(--gov-form-placeholder-color, var(--gov-color-secondary-600))}.gov-form-multi-select input::placeholder,.gov-form-multi-select select::placeholder,.gov-form-multi-select textarea::placeholder{color:var(--gov-form-placeholder-color, var(--gov-color-secondary-600))}.gov-form-multi-select textarea{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);padding:0.5rem 0.75rem;resize:none}.gov-form-multi-select *[slot=left-icon],.gov-form-multi-select *[slot=right-icon]{position:absolute;top:50%;display:flex;justify-content:center;transform:translateY(-50%);pointer-events:none}.gov-form-multi-select *[slot=left-icon]{left:0}.gov-form-multi-select *[slot=right-icon]{right:0}.gov-form-multi-select *[slot=prefix],.gov-form-multi-select *[slot=sufix]{margin:0}[size=s].gov-form-multi-select{font-weight:var(--gov-text-s-font-weight);font-size:var(--gov-text-s-font-size);line-height:var(--gov-text-s-line-height);letter-spacing:var(--gov-text-s-letter-spacing);gap:0.5rem var(--gov-form-input-core-s-icon-size, 1rem)}[size=s].gov-form-multi-select input,[size=s].gov-form-multi-select select{font-weight:var(--gov-text-s-font-weight);font-size:var(--gov-text-s-font-size);line-height:var(--gov-text-s-line-height);letter-spacing:var(--gov-text-s-letter-spacing);height:var(--gov-form-input-core-s-height, 2rem);padding:var(--gov-form-input-core-s-padding, 0.25rem 0.75rem)}[size=s].gov-form-multi-select *[slot=left-icon],[size=s].gov-form-multi-select *[slot=right-icon]{width:var(--gov-form-input-core-s-icon-size, 1rem);height:var(--gov-form-input-core-s-icon-size, 1rem)}[size=s].gov-form-multi-select *[slot=left-icon]{left:calc((var(--gov-form-input-core-s-icon-padding, 2rem) - var(--gov-form-input-core-s-icon-size, 1rem)) / 2)}[size=s].gov-form-multi-select *[slot=left-icon]~input{padding-left:var(--gov-form-input-core-s-icon-padding, 2rem)}[size=s].gov-form-multi-select *[slot=right-icon]{right:calc((var(--gov-form-input-core-s-icon-padding, 2rem) - var(--gov-form-input-core-s-icon-size, 1rem)) / 2)}[size=s].gov-form-multi-select *[slot=right-icon]~input,[size=s].gov-form-multi-select *[slot=right-icon]~select{padding-right:var(--gov-form-input-core-s-icon-padding, 2rem)}[size=m].gov-form-multi-select{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);gap:0.5rem var(--gov-form-input-core-m-icon-size, 1rem)}[size=m].gov-form-multi-select input,[size=m].gov-form-multi-select select{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);height:var(--gov-form-input-core-m-height, 2.5rem);padding:var(--gov-form-input-core-m-padding, 0.4375rem 0.75rem)}[size=m].gov-form-multi-select *[slot=left-icon],[size=m].gov-form-multi-select *[slot=right-icon]{width:var(--gov-form-input-core-m-icon-size, 1rem);height:var(--gov-form-input-core-m-icon-size, 1rem)}[size=m].gov-form-multi-select *[slot=left-icon]{left:calc((var(--gov-form-input-core-m-icon-padding, 2.5rem) - var(--gov-form-input-core-m-icon-size, 1rem)) / 2)}[size=m].gov-form-multi-select *[slot=left-icon]~input{padding-left:var(--gov-form-input-core-m-icon-padding, 2.5rem)}[size=m].gov-form-multi-select *[slot=right-icon]{right:calc((var(--gov-form-input-core-m-icon-padding, 2.5rem) - var(--gov-form-input-core-m-icon-size, 1rem)) / 2)}[size=m].gov-form-multi-select *[slot=right-icon]~input,[size=m].gov-form-multi-select *[slot=right-icon]~select{padding-right:var(--gov-form-input-core-m-icon-padding, 2.5rem)}[size=l].gov-form-multi-select{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);gap:0.5rem var(--gov-form-input-core-l-icon-size, 1rem)}[size=l].gov-form-multi-select input,[size=l].gov-form-multi-select select{font-weight:var(--gov-text-m-font-weight);font-size:var(--gov-text-m-font-size);line-height:var(--gov-text-m-line-height);letter-spacing:var(--gov-text-m-letter-spacing);height:var(--gov-form-input-core-l-height, 3rem);padding:var(--gov-form-input-core-l-padding, 0.6875rem 0.75rem)}[size=l].gov-form-multi-select *[slot=left-icon],[size=l].gov-form-multi-select *[slot=right-icon]{width:var(--gov-form-input-core-l-icon-size, 1rem);height:var(--gov-form-input-core-l-icon-size, 1rem)}[size=l].gov-form-multi-select *[slot=left-icon]{left:calc((var(--gov-form-input-core-l-icon-padding, 2.5rem) - var(--gov-form-input-core-l-icon-size, 1rem)) / 2)}[size=l].gov-form-multi-select *[slot=left-icon]~input{padding-left:var(--gov-form-input-core-l-icon-padding, 2.5rem)}[size=l].gov-form-multi-select *[slot=right-icon]{right:calc((var(--gov-form-input-core-l-icon-padding, 2.5rem) - var(--gov-form-input-core-l-icon-size, 1rem)) / 2)}[size=l].gov-form-multi-select *[slot=right-icon]~input,[size=l].gov-form-multi-select *[slot=right-icon]~select{padding-right:var(--gov-form-input-core-l-icon-padding, 2.5rem)}[size=xl].gov-form-multi-select{font-weight:var(--gov-text-l-font-weight);font-size:var(--gov-text-l-font-size);line-height:var(--gov-text-l-line-height);letter-spacing:var(--gov-text-l-letter-spacing);gap:0.5rem var(--gov-form-input-core-xl-icon-size, 1.25rem)}[size=xl].gov-form-multi-select input,[size=xl].gov-form-multi-select select{font-weight:var(--gov-text-l-font-weight);font-size:var(--gov-text-l-font-size);line-height:var(--gov-text-l-line-height);letter-spacing:var(--gov-text-l-letter-spacing);height:var(--gov-form-input-core-xl-height, 3.5rem);padding:var(--gov-form-input-core-xl-padding, 0.9375rem 1rem 0.875rem)}[size=xl].gov-form-multi-select *[slot=left-icon],[size=xl].gov-form-multi-select *[slot=right-icon]{width:var(--gov-form-input-core-xl-icon-size, 1.25rem);height:var(--gov-form-input-core-xl-icon-size, 1.25rem)}[size=xl].gov-form-multi-select *[slot=left-icon]{left:calc((var(--gov-form-input-core-xl-icon-padding, 3rem) - var(--gov-form-input-core-xl-icon-size, 1.25rem)) / 2)}[size=xl].gov-form-multi-select *[slot=left-icon]~input{padding-left:var(--gov-form-input-core-xl-icon-padding, 3rem)}[size=xl].gov-form-multi-select *[slot=right-icon]{right:calc((var(--gov-form-input-core-xl-icon-padding, 3rem) - var(--gov-form-input-core-xl-icon-size, 1.25rem)) / 2)}[size=xl].gov-form-multi-select *[slot=right-icon]~input,[size=xl].gov-form-multi-select *[slot=right-icon]~select{padding-right:var(--gov-form-input-core-xl-icon-padding, 3rem)}[variant=primary].gov-form-multi-select input,[variant=primary].gov-form-multi-select select,[variant=primary].gov-form-multi-select textarea{color:var(--gov-form-input-color-primary, var(--gov-color-secondary-700));border:var(--gov-form-input-border-primary, 0.0625rem solid var(--gov-color-primary-600))}[variant=primary].gov-form-multi-select *[slot=left-icon],[variant=primary].gov-form-multi-select *[slot=right-icon]:not(.icon-arrow){color:var(--gov-form-input-icon-color-primary, var(--gov-color-primary))}[variant=secondary].gov-form-multi-select input,[variant=secondary].gov-form-multi-select select,[variant=secondary].gov-form-multi-select textarea{color:var(--gov-form-input-color-secondary, var(--gov-color-secondary-700));border:var(--gov-form-input-border-secondary, 0.0625rem solid var(--gov-color-secondary-700))}[variant=secondary].gov-form-multi-select *[slot=left-icon],[variant=secondary].gov-form-multi-select *[slot=right-icon]:not(.icon-arrow){color:var(--gov-form-input-icon-color-secondary, var(--gov-color-primary))}[disabled=\"\"].gov-form-multi-select,[disabled=true i].gov-form-multi-select,[disabled=\"1\"].gov-form-multi-select{pointer-events:none}[disabled=\"\"].gov-form-multi-select input,[disabled=\"\"].gov-form-multi-select select,[disabled=\"\"].gov-form-multi-select textarea,[disabled=true i].gov-form-multi-select input,[disabled=true i].gov-form-multi-select select,[disabled=true i].gov-form-multi-select textarea,[disabled=\"1\"].gov-form-multi-select input,[disabled=\"1\"].gov-form-multi-select select,[disabled=\"1\"].gov-form-multi-select textarea{border-color:var(--gov-form-state-color-disabled, var(--gov-color-secondary-600));background:var(--gov-form-input-disabled-bg, var(--gov-color-secondary-300));color:var(--gov-form-state-color-disabled, var(--gov-color-secondary-600))}[disabled=\"\"].gov-form-multi-select *[slot=left-icon],[disabled=\"\"].gov-form-multi-select *[slot=right-icon],[disabled=true i].gov-form-multi-select *[slot=left-icon],[disabled=true i].gov-form-multi-select *[slot=right-icon],[disabled=\"1\"].gov-form-multi-select *[slot=left-icon],[disabled=\"1\"].gov-form-multi-select *[slot=right-icon]{color:var(--gov-form-state-color-disabled, var(--gov-color-secondary-600)) !important}[invalid=\"\"].gov-form-multi-select input,[invalid=\"\"].gov-form-multi-select select,[invalid=\"\"].gov-form-multi-select textarea,[invalid=true i].gov-form-multi-select input,[invalid=true i].gov-form-multi-select select,[invalid=true i].gov-form-multi-select textarea,[invalid=\"1\"].gov-form-multi-select input,[invalid=\"1\"].gov-form-multi-select select,[invalid=\"1\"].gov-form-multi-select textarea{border-color:var(--gov-form-state-color-error, var(--gov-color-error));color:var(--gov-form-state-color-error, var(--gov-color-error))}[invalid=\"\"].gov-form-multi-select input::-moz-placeholder,[invalid=\"\"].gov-form-multi-select select::-moz-placeholder,[invalid=\"\"].gov-form-multi-select textarea::-moz-placeholder,[invalid=true i].gov-form-multi-select input::-moz-placeholder,[invalid=true i].gov-form-multi-select select::-moz-placeholder,[invalid=true i].gov-form-multi-select textarea::-moz-placeholder,[invalid=\"1\"].gov-form-multi-select input::-moz-placeholder,[invalid=\"1\"].gov-form-multi-select select::-moz-placeholder,[invalid=\"1\"].gov-form-multi-select textarea::-moz-placeholder{color:var(--gov-form-state-color-error, var(--gov-color-error-300))}[invalid=\"\"].gov-form-multi-select input::placeholder,[invalid=\"\"].gov-form-multi-select select::placeholder,[invalid=\"\"].gov-form-multi-select textarea::placeholder,[invalid=true i].gov-form-multi-select input::placeholder,[invalid=true i].gov-form-multi-select select::placeholder,[invalid=true i].gov-form-multi-select textarea::placeholder,[invalid=\"1\"].gov-form-multi-select input::placeholder,[invalid=\"1\"].gov-form-multi-select select::placeholder,[invalid=\"1\"].gov-form-multi-select textarea::placeholder{color:var(--gov-form-state-color-error, var(--gov-color-error-300))}[invalid=\"\"].gov-form-multi-select *[slot=left-icon],[invalid=\"\"].gov-form-multi-select *[slot=right-icon],[invalid=true i].gov-form-multi-select *[slot=left-icon],[invalid=true i].gov-form-multi-select *[slot=right-icon],[invalid=\"1\"].gov-form-multi-select *[slot=left-icon],[invalid=\"1\"].gov-form-multi-select *[slot=right-icon]{color:var(--gov-form-state-color-error, var(--gov-color-error)) !important}[invalid=\"\"].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow),[invalid=true i].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow),[invalid=\"1\"].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow){display:none}[success=\"\"].gov-form-multi-select *[slot=right-icon]:not(.icon-arrow),[success=true i].gov-form-multi-select *[slot=right-icon]:not(.icon-arrow),[success=\"1\"].gov-form-multi-select *[slot=right-icon]:not(.icon-arrow){color:var(--gov-form-state-color-success, var(--gov-color-success))}[success=\"\"].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow),[success=true i].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow),[success=\"1\"].gov-form-multi-select *[slot=right-icon]:not(.icon-validation):not(.icon-arrow){display:none}[multiline=\"\"].gov-form-multi-select *[slot=left-icon],[multiline=\"\"].gov-form-multi-select *[slot=right-icon],[multiline=true i].gov-form-multi-select *[slot=left-icon],[multiline=true i].gov-form-multi-select *[slot=right-icon],[multiline=\"1\"].gov-form-multi-select *[slot=left-icon],[multiline=\"1\"].gov-form-multi-select *[slot=right-icon]{display:none}.gov-form-multi-select{background:none}.gov-form-multi-select select{-webkit-appearance:none;-moz-appearance:none}.gov-form-multi-select select::-ms-expand{display:none}[size=s].gov-form-multi-select *[slot=right-icon]{right:var(--gov-form-select-s-arrow-right-position, 0.75rem);width:var(--gov-form-select-s-arrow-size, 0.75rem);height:var(--gov-form-select-s-arrow-size, 0.75rem)}[size=s][invalid=\"\"].gov-form-multi-select .icon-arrow,[size=s][invalid=true i].gov-form-multi-select .icon-arrow,[size=s][invalid=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-s-arrow-right-position, 0.75rem))}[size=s][success=\"\"].gov-form-multi-select .icon-arrow,[size=s][success=true i].gov-form-multi-select .icon-arrow,[size=s][success=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-s-arrow-right-position, 0.75rem))}[size=m].gov-form-multi-select *[slot=right-icon]{right:var(--gov-form-select-m-arrow-right-position, 1rem);width:var(--gov-form-select-m-arrow-size, 0.75rem);height:var(--gov-form-select-m-arrow-size, 0.75rem)}[size=m][invalid=\"\"].gov-form-multi-select .icon-arrow,[size=m][invalid=true i].gov-form-multi-select .icon-arrow,[size=m][invalid=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-m-arrow-right-position, 1rem))}[size=m][success=\"\"].gov-form-multi-select .icon-arrow,[size=m][success=true i].gov-form-multi-select .icon-arrow,[size=m][success=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-m-arrow-right-position, 1rem))}[size=l].gov-form-multi-select *[slot=right-icon]{right:var(--gov-form-select-l-arrow-right-position, 1rem);width:var(--gov-form-select-l-arrow-size, 1rem);height:var(--gov-form-select-l-arrow-size, 1rem)}[size=l][invalid=\"\"].gov-form-multi-select .icon-arrow,[size=l][invalid=true i].gov-form-multi-select .icon-arrow,[size=l][invalid=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-l-arrow-right-position, 1rem))}[size=l][success=\"\"].gov-form-multi-select .icon-arrow,[size=l][success=true i].gov-form-multi-select .icon-arrow,[size=l][success=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-l-arrow-right-position, 1rem))}[size=xl].gov-form-multi-select *[slot=right-icon]{right:var(--gov-form-select-xl-arrow-right-position, 1.3125rem);width:var(--gov-form-select-xl-arrow-size, 1rem);height:var(--gov-form-select-xl-arrow-size, 1rem)}[size=xl][invalid=\"\"].gov-form-multi-select .icon-arrow,[size=xl][invalid=true i].gov-form-multi-select .icon-arrow,[size=xl][invalid=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-xl-arrow-right-position, 1.3125rem))}[size=xl][success=\"\"].gov-form-multi-select .icon-arrow,[size=xl][success=true i].gov-form-multi-select .icon-arrow,[size=xl][success=\"1\"].gov-form-multi-select .icon-arrow{right:calc(3 * var(--gov-form-select-xl-arrow-right-position, 1.3125rem))}[size=s][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=s][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=s][invalid=true i].gov-form-multi-select *[slot=right-icon]~select,[size=s][invalid=true i].gov-form-multi-select *[slot=right-icon]~input,[size=s][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=s][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-s-icon-padding, 2rem))}[size=s][success=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=s][success=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=s][success=true i].gov-form-multi-select *[slot=right-icon]~select,[size=s][success=true i].gov-form-multi-select *[slot=right-icon]~input,[size=s][success=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=s][success=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-s-icon-padding, 2rem))}[size=m][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=m][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=m][invalid=true i].gov-form-multi-select *[slot=right-icon]~select,[size=m][invalid=true i].gov-form-multi-select *[slot=right-icon]~input,[size=m][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=m][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-m-icon-padding, 2.5rem))}[size=m][success=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=m][success=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=m][success=true i].gov-form-multi-select *[slot=right-icon]~select,[size=m][success=true i].gov-form-multi-select *[slot=right-icon]~input,[size=m][success=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=m][success=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-m-icon-padding, 2.5rem))}[size=l][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=l][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=l][invalid=true i].gov-form-multi-select *[slot=right-icon]~select,[size=l][invalid=true i].gov-form-multi-select *[slot=right-icon]~input,[size=l][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=l][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-l-icon-padding, 2.5rem))}[size=l][success=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=l][success=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=l][success=true i].gov-form-multi-select *[slot=right-icon]~select,[size=l][success=true i].gov-form-multi-select *[slot=right-icon]~input,[size=l][success=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=l][success=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-l-icon-padding, 2.5rem))}[size=xl][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=xl][invalid=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=xl][invalid=true i].gov-form-multi-select *[slot=right-icon]~select,[size=xl][invalid=true i].gov-form-multi-select *[slot=right-icon]~input,[size=xl][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=xl][invalid=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-xl-icon-padding, 3rem))}[size=xl][success=\"\"].gov-form-multi-select *[slot=right-icon]~select,[size=xl][success=\"\"].gov-form-multi-select *[slot=right-icon]~input,[size=xl][success=true i].gov-form-multi-select *[slot=right-icon]~select,[size=xl][success=true i].gov-form-multi-select *[slot=right-icon]~input,[size=xl][success=\"1\"].gov-form-multi-select *[slot=right-icon]~select,[size=xl][success=\"1\"].gov-form-multi-select *[slot=right-icon]~input{padding-right:calc(2 * var(--gov-form-input-core-xl-icon-padding, 3rem))}.gov-form-multi-select{flex-wrap:wrap}.gov-form-multi-select__wrap{display:flex;align-items:center;gap:0.5rem;width:100%}.gov-form-multi-select__list{font-weight:var(--gov-text-xs-font-weight);font-size:var(--gov-text-xs-font-size);line-height:var(--gov-text-xs-line-height);letter-spacing:var(--gov-text-xs-letter-spacing);display:flex;gap:0.5rem;flex-wrap:wrap}.gov-form-multi-select__list>.gov-form-multi-select__item{position:relative;display:flex;flex:0 0 auto;align-items:center;padding:0rem 0rem 0rem 0.5rem;background:var(--gov-form-multiselect-bg, var(--gov-color-primary-200));transition:150ms linear background-color}";
25
23
 
26
24
  const GovFormMultiSelect = class {
27
25
  constructor(hostRef) {
@@ -31,6 +29,8 @@ const GovFormMultiSelect = class {
31
29
  this.govChange = index.createEvent(this, "gov-change", 7);
32
30
  this.govSelect = index.createEvent(this, "gov-select", 7);
33
31
  this.govRemove = index.createEvent(this, "gov-remove", 7);
32
+ this.value = undefined;
33
+ this.options = undefined;
34
34
  this.identifier = undefined;
35
35
  this.placeholder = undefined;
36
36
  this.variant = undefined;
@@ -47,9 +47,9 @@ const GovFormMultiSelect = class {
47
47
  this.wcagLabelledBy = undefined;
48
48
  this.wcagOwns = undefined;
49
49
  this.focused = undefined;
50
- this.value = undefined;
51
- this.selectedOptions = [];
52
- this.options = [];
50
+ this.valueState = undefined;
51
+ this.selectedOptionsState = [];
52
+ this.optionsState = [];
53
53
  this.selectId = string_utils.createID('GovSelect');
54
54
  this.listId = string_utils.createID('GovMultiList');
55
55
  this.h = template.govHost(this.host);
@@ -61,6 +61,12 @@ const GovFormMultiSelect = class {
61
61
  validateSize(newValue) {
62
62
  props.validateProp(form.FormMultiselectSizes, newValue, form.FormMultiSelectClass.root);
63
63
  }
64
+ watchOptions(newValue) {
65
+ this.optionsState = array_utils.propsValueToArray(newValue);
66
+ }
67
+ watchValue(newValue) {
68
+ this.selectedOptionsState = array_utils.propsValueToArray(newValue);
69
+ }
64
70
  watchDisabled() {
65
71
  this.passControlAttrs();
66
72
  }
@@ -73,65 +79,74 @@ const GovFormMultiSelect = class {
73
79
  this.validateVariant(this.variant);
74
80
  this.validateSize(this.size);
75
81
  this.watchDisabled();
82
+ this.passControlAttrs();
83
+ this.f.passAttrToLabel('required', String(this.required));
84
+ this.optionsState = array_utils.propsValueToArray(this.options);
85
+ this.selectedOptionsState = array_utils.propsValueToArray(this.value);
76
86
  }
77
87
  getAvailableOptions(ignoreFilter = false) {
78
- if (Array.isArray(this.options) && this.options.length) {
88
+ if (Array.isArray(this.optionsState) && this.optionsState.length) {
79
89
  if (ignoreFilter) {
80
- return this.options;
90
+ return this.optionsState;
81
91
  }
82
- return this.options.filter((option) => {
83
- const isSelected = this.selectedOptions.findIndex((selected) => selected.value === option.value);
84
- return (isSelected !== -1 || (option === null || option === void 0 ? void 0 : option.disabled)) ? false : true;
85
- });
92
+ return this.optionsState.filter((option) => {
93
+ const selectedIndex = this.selectedValueIndex(option.value);
94
+ return (selectedIndex !== -1 || (option === null || option === void 0 ? void 0 : option.disabled)) ? false : true;
95
+ }).map((option) => { var _a; return ({ name: (_a = option.name) !== null && _a !== void 0 ? _a : option.value, value: option.value }); });
86
96
  }
87
97
  return Array.from(this.selectRef.querySelectorAll('option'))
88
98
  .filter((option) => {
89
99
  if (ignoreFilter) {
90
100
  return true;
91
101
  }
92
- return !(option.disabled || option.selected);
102
+ const selectedIndex = this.selectedValueIndex(option.value);
103
+ return !(option.disabled || option.selected || selectedIndex > -1);
93
104
  })
94
105
  .map((option) => ({ name: option.textContent, value: option.value }));
95
106
  }
96
107
  initAutocomplete() {
97
- this.autocompleteRef.addEventListener('gov-select', this.onSelectHandler.bind(this));
98
- this.autocompleteRef.addEventListener('gov-input', this.onInputHandler.bind(this));
99
- this.autocompleteRef.addEventListener('gov-focus', this.onFocusHandler.bind(this));
100
- this.autocompleteRef.addEventListener('gov-blur', this.onBlurHandler.bind(this));
101
- this.autocompleteRef
102
- .setSearchCallback(value => {
108
+ var _a, _b, _c, _d, _e;
109
+ (_a = this.autocompleteRef) === null || _a === void 0 ? void 0 : _a.addEventListener('gov-select', this.onSelectHandler.bind(this));
110
+ (_b = this.autocompleteRef) === null || _b === void 0 ? void 0 : _b.addEventListener('gov-input', this.onInputHandler.bind(this));
111
+ (_c = this.autocompleteRef) === null || _c === void 0 ? void 0 : _c.addEventListener('gov-focus', this.onFocusHandler.bind(this));
112
+ (_d = this.autocompleteRef) === null || _d === void 0 ? void 0 : _d.addEventListener('gov-blur', this.onBlurHandler.bind(this));
113
+ (_e = this.autocompleteRef) === null || _e === void 0 ? void 0 : _e.setSearchCallback(searchString => {
103
114
  return new Promise(resolve => {
104
115
  const data = this.getAvailableOptions();
105
- if (String(value).length === 0) {
116
+ if (String(searchString).length === 0) {
106
117
  return resolve(data);
107
118
  }
108
- resolve(data.filter(({ name }) => {
119
+ resolve(data.filter(({ name, value }) => {
109
120
  if (!name)
110
- return false;
111
- return string_utils.removeDiacritics(name).toLowerCase().indexOf(string_utils.removeDiacritics(value).toLowerCase()) > -1;
121
+ name = value;
122
+ return string_utils.removeDiacritics(name).toLowerCase().indexOf(string_utils.removeDiacritics(searchString).toLowerCase()) > -1;
112
123
  }));
113
124
  });
114
- })
115
- .then();
125
+ }).finally();
116
126
  }
117
- getOptionIndex(value) {
118
- return this.selectedOptions.findIndex(option => option.value === value.value && option.name === value.name);
127
+ selectedValueIndex(value) {
128
+ return this.selectedOptionsState.findIndex((selected) => selected === value);
119
129
  }
120
130
  getOptionElement(value) {
121
- return this.selectRef.querySelector('option[value="' + value.value + '"]');
131
+ return this.selectRef.querySelector('option[value="' + value + '"]');
132
+ }
133
+ getOption(value) {
134
+ var _a;
135
+ return (_a = this.getAvailableOptions(true).find((option) => option.value === value)) !== null && _a !== void 0 ? _a : null;
122
136
  }
123
137
  selectOption(newOption, notify = true) {
124
- const index = this.getOptionIndex(newOption);
138
+ const index = this.selectedValueIndex(newOption);
125
139
  if (index === -1) {
126
- this.selectedOptions = [...this.selectedOptions, newOption];
140
+ this.selectedOptionsState = [...this.selectedOptionsState, newOption];
141
+ this.value = this.selectedOptionsState;
127
142
  if (notify) {
128
143
  this.govChange.emit({
129
144
  component: form.FormMultiSelectClass.root,
130
- value: this.selectedOptions,
145
+ value: this.selectedOptionsState,
131
146
  });
132
147
  this.govSelect.emit({
133
148
  component: form.FormMultiSelectClass.root,
134
- value: this.selectedOptions,
149
+ value: this.selectedOptionsState,
135
150
  });
136
151
  }
137
152
  const option = this.getOptionElement(newOption);
@@ -141,18 +156,19 @@ const GovFormMultiSelect = class {
141
156
  }
142
157
  }
143
158
  removeOption(removeOption, notify = true) {
144
- const index = this.getOptionIndex(removeOption);
159
+ const index = this.selectedValueIndex(removeOption);
145
160
  if (index !== -1) {
146
- this.selectedOptions.splice(index, 1);
147
- this.selectedOptions = [...this.selectedOptions];
161
+ this.selectedOptionsState.splice(index, 1);
162
+ this.selectedOptionsState = [...this.selectedOptionsState];
163
+ this.value = this.selectedOptionsState;
148
164
  if (notify) {
149
165
  this.govChange.emit({
150
166
  component: form.FormMultiSelectClass.root,
151
- value: this.selectedOptions,
167
+ value: this.selectedOptionsState,
152
168
  });
153
169
  this.govRemove.emit({
154
170
  component: form.FormMultiSelectClass.root,
155
- value: this.selectedOptions,
171
+ value: this.selectedOptionsState,
156
172
  });
157
173
  }
158
174
  const option = this.getOptionElement(removeOption);
@@ -163,13 +179,14 @@ const GovFormMultiSelect = class {
163
179
  }
164
180
  async componentDidLoad() {
165
181
  this.initAutocomplete();
166
- this.selectRef.querySelectorAll('option').forEach((option) => {
167
- if (option.selected) {
168
- this.selectOption({
169
- name: option.textContent,
170
- value: option.value,
171
- }, false);
172
- }
182
+ }
183
+ async componentDidRender() {
184
+ stencil_utils.tick(() => {
185
+ this.selectRef.querySelectorAll('option').forEach((option) => {
186
+ if (option.selected) {
187
+ this.selectOption(option.value, false);
188
+ }
189
+ });
173
190
  });
174
191
  if (win.canValidateWcagOnRender()) {
175
192
  await utils.delay(500);
@@ -177,10 +194,16 @@ const GovFormMultiSelect = class {
177
194
  }
178
195
  }
179
196
  render() {
180
- return (index.h(index.Host, { class: form.FormMultiSelectClass.root, size: this.size, variant: this.variant }, index.h("div", { class: form.FormMultiSelectClass.wrap }, index.h("div", { class: "element" }, index.h("gov-form-autocomplete", { value: this.value, disabled: this.disabled, identifier: this.identifier || this.selectId, required: false, size: this.size, variant: this.variant, placeholder: this.placeholder, "message-empty": this.messageEmpty, "message-loading": this.messageLoading, ref: el => (this.autocompleteRef = el), minlength: 0, wcagDescribedBy: this.wcagDescribedBy, wcagLabelledBy: this.wcagLabelledBy, wcagOwns: this.listId }), index.h("gov-icon", { slot: "right-icon", class: "icon-arrow", name: "chevron-down" }), this.h.hasSlot('right-icon') && !(this.success || this.invalid) && index.h("slot", { name: "right-icon" }), this.success && index.h("gov-icon", { slot: "right-icon", class: "icon-validation", name: "check-lg" }), this.invalid && index.h("gov-icon", { slot: "right-icon", class: "icon-validation", name: "exclamation-lg" }), index.h("select", { hidden: true, "aria-hidden": template.toBoolAttr(true), multiple: true, required: this.required, name: this.name, disabled: this.disabled, ref: el => (this.selectRef = el), "aria-disabled": template.toBoolAttrIfDefined(this.disabled), "aria-required": template.toBoolAttrIfDefined(this.required), "aria-invalid": template.toBoolAttrIfDefined(this.invalid), "aria-describedby": this.wcagDescribedBy, "aria-labelledby": this.wcagLabelledBy, "aria-owns": this.wcagOwns }, index.h("slot", null), this.options.map((option) => {
181
- return (index.h("option", { value: option.value, selected: option.value === this.value, disabled: option === null || option === void 0 ? void 0 : option.disabled }, option.name));
182
- })))), this.hideSelectedList === false ? (index.h("ul", { role: "listbox", id: this.listId, class: form.FormMultiSelectClass.list }, this.selectedOptions.map(option => {
183
- return (index.h("li", { class: form.FormMultiSelectClass.item, role: "option" }, option.name, index.h("gov-button", { wcagLabel: 'Odebrat vybranou položku ' + option.name, variant: "primary", type: "base", size: "s", "on-gov-click": () => this.onTagRemove(option) }, index.h("gov-icon", { name: "x-lg" }))));
197
+ return (index.h(index.Host, { class: form.FormMultiSelectClass.root, size: this.size, variant: this.variant }, index.h("div", { class: form.FormMultiSelectClass.wrap }, this.h.hasSlot('prefix') && index.h("slot", { name: "prefix" }), index.h("div", { class: "element" }, index.h("gov-form-autocomplete", { value: this.valueState, disabled: this.disabled, identifier: this.identifier || this.selectId, required: false, size: this.size, variant: this.variant, placeholder: this.placeholder, "message-empty": this.messageEmpty, "message-loading": this.messageLoading, ref: el => (this.autocompleteRef = el), minlength: 0, wcagDescribedBy: this.wcagDescribedBy, wcagLabelledBy: this.wcagLabelledBy, wcagOwns: this.listId }), index.h("gov-icon", { slot: "right-icon", class: "icon-arrow", name: "chevron-down" }), this.h.hasSlot('right-icon') && !(this.success || this.invalid) && index.h("slot", { name: "right-icon" }), this.success && index.h("gov-icon", { slot: "right-icon", class: "icon-validation", name: "check-lg" }), this.invalid && index.h("gov-icon", { slot: "right-icon", class: "icon-validation", name: "exclamation-lg" }), index.h("select", { hidden: true, class: 'hidden-select-list', "aria-hidden": template.toBoolAttr(true), multiple: true, required: this.required, name: this.name, disabled: this.disabled, ref: el => (this.selectRef = el), "aria-disabled": template.toBoolAttrIfDefined(this.disabled), "aria-required": template.toBoolAttrIfDefined(this.required), "aria-invalid": template.toBoolAttrIfDefined(this.invalid), "aria-describedby": this.wcagDescribedBy, "aria-labelledby": this.wcagLabelledBy, "aria-owns": this.wcagOwns }, index.h("slot", null), Array.isArray(this.optionsState) && this.optionsState.map((option) => {
198
+ var _a;
199
+ const selectedOption = this.selectedValueIndex(option.value);
200
+ return (index.h("option", { value: option.value, selected: selectedOption > -1, disabled: option === null || option === void 0 ? void 0 : option.disabled }, (_a = option.name) !== null && _a !== void 0 ? _a : option.value));
201
+ }))), this.h.hasSlot('sufix') && index.h("slot", { name: "sufix" })), this.hideSelectedList === false ? (index.h("ul", { role: "listbox", id: this.listId, class: form.FormMultiSelectClass.list }, Array.isArray(this.selectedOptionsState) && this.selectedOptionsState.map(selected => {
202
+ var _a, _b;
203
+ const option = this.getOption(selected);
204
+ if (!option)
205
+ return null;
206
+ return (index.h("li", { class: form.FormMultiSelectClass.item, role: "option" }, (_a = option.name) !== null && _a !== void 0 ? _a : option.value, index.h("gov-button", { wcagLabel: (_b = 'Odebrat vybranou položku ' + option.name) !== null && _b !== void 0 ? _b : option.value, variant: "primary", type: "base", size: "s", "on-gov-click": () => this.onTagRemove(selected) }, index.h("gov-icon", { name: "x-lg" }))));
184
207
  }))) : null));
185
208
  }
186
209
  onFocusHandler(e) {
@@ -189,7 +212,7 @@ const GovFormMultiSelect = class {
189
212
  this.govFocus.emit({
190
213
  component: form.FormMultiSelectClass.root,
191
214
  originalEvent: e,
192
- value: this.selectedOptions,
215
+ value: this.selectedOptionsState,
193
216
  });
194
217
  }
195
218
  onBlurHandler(e) {
@@ -199,19 +222,19 @@ const GovFormMultiSelect = class {
199
222
  this.govBlur.emit({
200
223
  component: form.FormMultiSelectClass.root,
201
224
  originalEvent: e,
202
- value: this.selectedOptions,
225
+ value: this.selectedOptionsState,
203
226
  });
204
227
  }
205
228
  onInputHandler(e) {
206
- this.value = e.detail.value;
229
+ this.valueState = e.detail.value;
207
230
  e.stopPropagation();
208
231
  }
209
232
  onSelectHandler(e) {
210
233
  e.stopPropagation();
211
234
  const value = e.detail.selected;
212
- this.selectOption(value);
213
- this.value = '';
214
- this.autocompleteRef.clearValue();
235
+ this.selectOption(value.value);
236
+ this.valueState = '';
237
+ this.autocompleteRef.clearValue().finally();
215
238
  this.autocompleteRef.focus();
216
239
  }
217
240
  onTagRemove(removeOption) {
@@ -227,7 +250,7 @@ const GovFormMultiSelect = class {
227
250
  * Sets the ordered value of the element
228
251
  */
229
252
  async setValue(value) {
230
- this.value = value;
253
+ this.valueState = value;
231
254
  }
232
255
  /**
233
256
  * Returns an instance of the native html select element
@@ -235,50 +258,6 @@ const GovFormMultiSelect = class {
235
258
  async getRef() {
236
259
  return this.selectRef;
237
260
  }
238
- /**
239
- * Returns a list of selected items
240
- */
241
- async getSelectedOptions() {
242
- return this.selectedOptions;
243
- }
244
- /**
245
- * Setting a list of options to choose from
246
- */
247
- async setOptions(options) {
248
- if (Array.isArray(options)) {
249
- this.options = [...options];
250
- }
251
- }
252
- /**
253
- * Returns all available options
254
- */
255
- async getOptions(ignoreFilter = true) {
256
- return this.getAvailableOptions(ignoreFilter);
257
- }
258
- /**
259
- * Setting the list of selected options
260
- */
261
- async setSelectedOptions(options) {
262
- if (Array.isArray(options)) {
263
- this.selectedOptions = [...options];
264
- }
265
- }
266
- /**
267
- * To remove an option from the selected list
268
- */
269
- async removeSelectedOption(option, notify = false) {
270
- if (typeof option === 'object' && hasOwnProperty(option, 'name') && hasOwnProperty(option, 'value')) {
271
- this.removeOption(option, notify);
272
- }
273
- }
274
- /**
275
- * Returns an instance of the native html select element
276
- */
277
- async setSelectedOption(option, notify = false) {
278
- if (typeof option === 'object' && hasOwnProperty(option, 'name') && hasOwnProperty(option, 'value')) {
279
- this.selectOption(option, notify);
280
- }
281
- }
282
261
  /**
283
262
  * Validate the WCAG attributes of the component
284
263
  */
@@ -292,6 +271,8 @@ const GovFormMultiSelect = class {
292
271
  static get watchers() { return {
293
272
  "variant": ["validateVariant"],
294
273
  "size": ["validateSize", "watchDisabled"],
274
+ "options": ["watchOptions"],
275
+ "value": ["watchValue"],
295
276
  "disabled": ["watchDisabled"],
296
277
  "invalid": ["watchDisabled"],
297
278
  "success": ["watchDisabled"]
@@ -1 +1 @@
1
- {"file":"gov-form-multi-select.entry.cjs.js","mappings":"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","names":["createID","govHost","govForm","validateProp","FormMultiselectVariants","FormMultiSelectClass","FormMultiselectSizes","toBoolAttr","removeDiacritics","canValidateWcagOnRender","delay","h","Host","toBoolAttrIfDefined","validateWcagRef","validateWcagLabelFor"],"sources":["../../../packages/core/src/utils/helpers.types.ts","../../../packages/core/src/components/gov-form/multiselect/gov-form-multi-select.scss?tag=gov-form-multi-select","../../../packages/core/src/components/gov-form/multiselect/gov-form-multi-select.tsx"],"sourcesContent":["\nexport type Optional<T> = T | undefined;\nexport type Nullable<T> = T | null;\nexport type OptionalProperty<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;\nexport type ValueOf<T> = T[keyof T];\n\nexport type DeepPartial<T> = {\n\t[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\nexport type ObjectOrArrayType<T> = T | T[];\nexport const ObjectOrArray = {\n\tfirst: <T>(item: ObjectOrArrayType<T>): T => (Array.isArray(item) ? item[0] : item),\n\tarray: <T>(item: ObjectOrArrayType<T>): T[] => (Array.isArray(item) ? item : [item]),\n};\n\nexport const Omit = <T extends object, P extends keyof T, R extends Omit<T, P>>(properties: P[], object: T): R =>\n\tObject.entries(object).reduce(\n\t\t(all, [key, value]) => (properties.includes(key as P) ? all : { ...all, [key]: value }),\n\t\t{} as R\n\t);\n\nexport const whenDefined =\n\t<I, O>(fn: (input: I) => O) =>\n\t(value?: I): O | undefined =>\n\t\tvalue ? fn(value) : undefined;\n\n/**\n * Comparator function which defines the sort order\n * @example\n * ```\n * // sorts objects by `id` property\n * [{ id: 3 }, { id: 2 }, { id: 1 }].sort(compare(['id']))\n *\n * // sorts objects by `id` and `name` properties\n * [{ id: 3, name: 'b' }, { id: 2, name: 'a' }, { id: 1, name: 'b' }].sort(compare(['id', 'name']))\n * ```\n *\n * @param {Array<keyof T>} properties\n * @return {number}\n */\nexport const compare =\n\t<T extends object>(properties: Array<keyof T>) =>\n\t(a: T, b: T): number => {\n\t\tconst [property, ...rest] = properties;\n\t\tif (!property) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (a[property] < b[property]) {\n\t\t\treturn -1;\n\t\t}\n\t\tif (a[property] > b[property]) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn rest.length > 0 ? compare(rest)(a, b) : 0;\n\t};\n\nexport const is = <T>(value: T | undefined | null): value is T => value !== undefined && value !== null;\n\nexport const has =\n\t<T extends object, P extends keyof T>(property: P) =>\n\t(object: OptionalProperty<T, P>): object is T => {\n\t\treturn !!object[property];\n\t};\n\nexport const equals =\n\t<A>(a?: A) =>\n\t(b?: A): boolean =>\n\t\ta === b;\nexport const prop =\n\t<T, P extends keyof T>(property: P) =>\n\t(object: T): T[P] =>\n\t\tobject[property];\n\nexport const propOptional =\n\t<T, P extends keyof T>(property: P) =>\n\t(object?: T): Optional<T[P]> =>\n\t\tobject ? object[property] : undefined;\n\nexport const hasOwnProperty = <X extends object, Y extends PropertyKey>(\n\tobj: X,\n\tprop: Y\n): obj is X & Record<Y, ValueOf<X>> => {\n\treturn Object.prototype.hasOwnProperty.call(obj, prop);\n};\n\nexport const isObject = <T extends object>(obj: unknown): obj is T => typeof obj === 'object';\nexport const isString = (input: unknown): input is string => is(input) && typeof input === 'string';\nexport const isNumber = (input: unknown): input is string => is(input) && typeof input === 'number';\n\ntype Entries<T> = {\n\t[K in keyof T]: [K, T[K]];\n}[keyof T][];\nexport const getEntries = <T extends object>(obj: T) => Object.entries(obj) as Entries<T>;\n\nexport const getKeys = <T extends object>(obj: T) => Object.keys(obj) as Array<keyof T>;\nexport const getValues = <T extends object>(obj: T) => Object.values(obj) as Array<ValueOf<T>>;\n\nexport const first = <T>(array: T[]): Optional<T> => array[0];\n\nexport const pairs = <T>(arr: T[]): Array<[string, string]> =>\n\tarr.flatMap((item1, index1) => arr.flatMap((item2, index2) => (index1 > index2 ? [[item1, item2]] : []))) as any;\n\nexport const find =\n\t<T, S extends T>(predicate: (item: T) => item is S) =>\n\t(array?: T[]): Optional<S> =>\n\t\t(array || []).find(predicate);\nexport const filter =\n\t<T, S extends T>(predicate: (item: T) => item is S) =>\n\t(array?: T[]): S[] =>\n\t\t(array || []).filter(predicate);\n","/*\n * Multiselect\n */\n\n@import \"../select/gov-form-select-core.scss\";\n$class: \".gov-form-multi-select\";\n\n#{$class} {\n\t@extend %form-select-core;\n\tflex-wrap: wrap;\n\t&__wrap {\n\t\tdisplay: flex;\n\t\tgap: rem-calc(8);\n\t\twidth: 100%;\n\t}\n\t&__list {\n\t\t@extend %reset-ul;\n\t\t@include typography($font-size-xs);\n\t\tdisplay: flex;\n\t\tgap: rem-calc(8);\n\t\tflex-wrap: wrap;\n\t}\n\t&__list > &__item {\n\t\t@extend %reset-ul-li;\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tflex: 0 0 auto;\n\t\talign-items: center;\n\t\tpadding: rem-calc(0 0 0 8);\n\t\tbackground: $form-multiselect-bg;\n\t\ttransition: $t linear background-color;\n\t}\n}\n","import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from '@stencil/core'\nimport {govForm} from '../../../helpers/Dom/form'\nimport {GovForm} from '../../../helpers/Dom/form.types'\nimport {govHost, toBoolAttr, toBoolAttrIfDefined} from '../../../helpers/Dom/template'\nimport {GovHost} from '../../../helpers/Dom/template.types'\nimport {canValidateWcagOnRender} from '../../../helpers/Dom/win'\nimport {validateProp} from '../../../helpers/Validate/props'\nimport {validateWcagLabelFor, validateWcagRef} from '../../../helpers/Validate/wcag'\nimport {Nullable} from '../../../types/interfaces'\nimport {createID, removeDiacritics} from '../../../utils/string.utils'\nimport {delay} from '../../../utils/utils'\nimport {FormAutocompleteEvent} from '../autocomplete/gov-form-autocomplete.types'\nimport {\n\tFormMultiSelectClass,\n\tFormMultiselectSizes,\n\tFormMultiselectSizesType,\n\tFormMultiselectVariants,\n\tFormMultiselectVariantType\n} from './constants'\nimport {FormMultiselectEvent, GovFormMultiSelectItem} from './gov-form-multi-select.types'\nimport {hasOwnProperty} from \"../../../utils/helpers.types\";\n\n@Component({\n\ttag: 'gov-form-multi-select',\n\tstyleUrl: 'gov-form-multi-select.scss',\n})\nexport class GovFormMultiSelect {\n\tprivate f: GovForm\n\tprivate readonly h: GovHost\n\n\tprivate selectRef?: HTMLSelectElement\n\tprivate autocompleteRef?: HTMLGovFormAutocompleteElement\n\n\tprivate readonly selectId: string\n\tprivate readonly listId: string\n\n\tconstructor() {\n\t\tthis.selectId = createID('GovSelect')\n\t\tthis.listId = createID('GovMultiList')\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormSelectElement\n\t/**\n\t * Custom select identifier.\n\t */\n\t@Prop({attribute: 'identifier'}) readonly identifier: string\n\t/**\n\t * Custom select placeholder.\n\t */\n\t@Prop({attribute: 'placeholder'}) readonly placeholder: string\n\t/**\n\t * Style variation of the form select.\n\t */\n\t@Prop() readonly variant?: FormMultiselectVariantType\n\t/**\n\t * Select’s size.\n\t */\n\t@Prop() readonly size?: FormMultiselectSizesType = 'm'\n\t/**\n\t * Name of the select.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Option to hide the list of selected items\n\t */\n\t@Prop({attribute: 'hide-selected-list'}) readonly hideSelectedList: boolean = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the select component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Custom message for when there is a blank sheet\n\t */\n\t@Prop({attribute: 'message-empty'}) readonly messageEmpty: string = 'Nebyly nalezeny žádné výsledky'\n\t/**\n\t * Custom message for when data is loaded\n\t */\n\t@Prop({attribute: 'message-loading'}) readonly messageLoading: string = 'Načítám...'\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({attribute: 'wcag-described-by'}) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({attribute: 'wcag-labelled-by'}) readonly wcagLabelledBy: string\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({attribute: 'wcag-owns'}) readonly wcagOwns: string\n\t/**\n\t * Emitted when the select has focus.\n\t */\n\t@Event({eventName: 'gov-focus'}) govFocus: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when the select loses focus.\n\t */\n\t@Event({eventName: 'gov-blur'}) govBlur: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when the select change value.\n\t */\n\t@Event({eventName: 'gov-change'}) govChange: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when an item is selected\n\t */\n\t@Event({eventName: 'gov-select'}) govSelect: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when an item is removed\n\t */\n\t@Event({eventName: 'gov-remove'}) govRemove: EventEmitter<FormMultiselectEvent>\n\n\t@State() focused: boolean\n\t@State() value: string\n\t@State() selectedOptions: GovFormMultiSelectItem[] = []\n\t@State() options: GovFormMultiSelectItem[] = []\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormMultiselectVariants, newValue, FormMultiSelectClass.root)\n\t}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormMultiselectSizes, newValue, FormMultiSelectClass.root)\n\t}\n\n\t@Watch('disabled')\n\t@Watch('invalid')\n\t@Watch('success')\n\t@Watch('size')\n\twatchDisabled(): void {\n\t\tthis.passControlAttrs()\n\t}\n\n\tprivate passControlAttrs() {\n\t\tthis.f.passAttrToControl('size', this.size)\n\t\tthis.f.passAttrToControl('invalid', toBoolAttr(this.invalid))\n\t\tthis.f.passAttrToControl('success', toBoolAttr(this.success))\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t\tthis.watchDisabled()\n\t}\n\n\tprivate getAvailableOptions(ignoreFilter = false): GovFormMultiSelectItem[] {\n\t\tif (Array.isArray(this.options) && this.options.length) {\n\t\t\tif (ignoreFilter) {\n\t\t\t\treturn this.options;\n\t\t\t}\n\t\t\treturn this.options.filter((option) => {\n\t\t\t\tconst isSelected = this.selectedOptions.findIndex((selected) => selected.value === option.value)\n\t\t\t\treturn (isSelected !== -1 || option?.disabled) ? false : true\n\t\t\t})\n\t\t}\n\t\treturn Array.from(this.selectRef.querySelectorAll('option'))\n\t\t\t.filter((option: HTMLOptionElement) => {\n\t\t\t\tif (ignoreFilter) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn !(option.disabled || option.selected)\n\t\t\t})\n\t\t\t.map((option: HTMLOptionElement) => ({name: option.textContent, value: option.value}))\n\t}\n\n\tprivate initAutocomplete() {\n\t\tthis.autocompleteRef.addEventListener('gov-select', this.onSelectHandler.bind(this))\n\t\tthis.autocompleteRef.addEventListener('gov-input', this.onInputHandler.bind(this))\n\t\tthis.autocompleteRef.addEventListener('gov-focus', this.onFocusHandler.bind(this))\n\t\tthis.autocompleteRef.addEventListener('gov-blur', this.onBlurHandler.bind(this))\n\t\tthis.autocompleteRef\n\t\t\t.setSearchCallback(value => {\n\t\t\t\treturn new Promise(resolve => {\n\t\t\t\t\tconst data = this.getAvailableOptions()\n\t\t\t\t\tif (String(value).length === 0) {\n\t\t\t\t\t\treturn resolve(data)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(\n\t\t\t\t\t\tdata.filter(({name}) => {\n\t\t\t\t\t\t\tif (!name) return false\n\t\t\t\t\t\t\treturn removeDiacritics(name).toLowerCase().indexOf(removeDiacritics(value).toLowerCase()) > -1\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t})\n\t\t\t.then()\n\t}\n\n\tprivate getOptionIndex(value: GovFormMultiSelectItem): number {\n\t\treturn this.selectedOptions.findIndex(option => option.value === value.value && option.name === value.name)\n\t}\n\n\tprivate getOptionElement(value: GovFormMultiSelectItem): Nullable<HTMLOptionElement> {\n\t\treturn this.selectRef.querySelector('option[value=\"' + value.value + '\"]') as HTMLOptionElement\n\t}\n\n\tprivate selectOption(newOption: GovFormMultiSelectItem, notify = true) {\n\t\tconst index = this.getOptionIndex(newOption)\n\t\tif (index === -1) {\n\t\t\tthis.selectedOptions = [...this.selectedOptions, newOption]\n\t\t\tif (notify) {\n\t\t\t\tthis.govChange.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptions,\n\t\t\t\t})\n\t\t\t\tthis.govSelect.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptions,\n\t\t\t\t})\n\t\t\t}\n\t\t\tconst option = this.getOptionElement(newOption)\n\t\t\tif (option) {\n\t\t\t\toption.selected = true\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate removeOption(removeOption: GovFormMultiSelectItem, notify = true) {\n\t\tconst index = this.getOptionIndex(removeOption)\n\t\tif (index !== -1) {\n\t\t\tthis.selectedOptions.splice(index, 1)\n\t\t\tthis.selectedOptions = [...this.selectedOptions]\n\t\t\tif (notify) {\n\t\t\t\tthis.govChange.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptions,\n\t\t\t\t})\n\t\t\t\tthis.govRemove.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptions,\n\t\t\t\t})\n\t\t\t}\n\t\t\tconst option = this.getOptionElement(removeOption)\n\t\t\tif (option) {\n\t\t\t\toption.selected = false\n\t\t\t}\n\t\t}\n\t}\n\n\tasync componentDidLoad() {\n\t\tthis.initAutocomplete()\n\n\t\tthis.selectRef.querySelectorAll('option').forEach((option: HTMLOptionElement) => {\n\t\t\tif (option.selected) {\n\t\t\t\tthis.selectOption({\n\t\t\t\t\tname: option.textContent,\n\t\t\t\t\tvalue: option.value,\n\t\t\t\t}, false)\n\t\t\t}\n\t\t})\n\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormMultiSelectClass.root} size={this.size} variant={this.variant}>\n\t\t\t\t<div class={FormMultiSelectClass.wrap}>\n\t\t\t\t\t<div class=\"element\">\n\t\t\t\t\t\t<gov-form-autocomplete\n\t\t\t\t\t\t\tvalue={this.value}\n\t\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\t\tidentifier={this.identifier || this.selectId}\n\t\t\t\t\t\t\trequired={false}\n\t\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\t\tmessage-empty={this.messageEmpty}\n\t\t\t\t\t\t\tmessage-loading={this.messageLoading}\n\t\t\t\t\t\t\tref={el => (this.autocompleteRef = el as HTMLGovFormAutocompleteElement)}\n\t\t\t\t\t\t\tminlength={0}\n\t\t\t\t\t\t\twcagDescribedBy={this.wcagDescribedBy}\n\t\t\t\t\t\t\twcagLabelledBy={this.wcagLabelledBy}\n\t\t\t\t\t\t\twcagOwns={this.listId}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<gov-icon slot=\"right-icon\" class=\"icon-arrow\" name=\"chevron-down\"></gov-icon>\n\t\t\t\t\t\t{this.h.hasSlot('right-icon') && !(this.success || this.invalid) && <slot name=\"right-icon\"/>}\n\t\t\t\t\t\t{this.success && <gov-icon slot=\"right-icon\" class=\"icon-validation\" name=\"check-lg\"></gov-icon>}\n\t\t\t\t\t\t{this.invalid && <gov-icon slot=\"right-icon\" class=\"icon-validation\" name=\"exclamation-lg\"></gov-icon>}\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\thidden\n\t\t\t\t\t\t\taria-hidden={toBoolAttr(true)}\n\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\t\tref={el => (this.selectRef = el as HTMLSelectElement)}\n\t\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\t\taria-owns={this.wcagOwns}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t{this.options.map((option) => {\n\t\t\t\t\t\t\t\treturn (<option value={option.value} selected={option.value === this.value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={option?.disabled}>{option.name}</option>)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</select>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{this.hideSelectedList === false ? (\n\t\t\t\t\t<ul role=\"listbox\" id={this.listId} class={FormMultiSelectClass.list}>\n\t\t\t\t\t\t{this.selectedOptions.map(option => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li class={FormMultiSelectClass.item} role=\"option\">\n\t\t\t\t\t\t\t\t\t{option.name}\n\t\t\t\t\t\t\t\t\t<gov-button\n\t\t\t\t\t\t\t\t\t\twcagLabel={'Odebrat vybranou položku ' + option.name}\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\ttype=\"base\"\n\t\t\t\t\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\t\t\t\t\ton-gov-click={() => this.onTagRemove(option)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<gov-icon name=\"x-lg\"></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.focused = true\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.selectedOptions,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\te.stopPropagation()\n\t\tthis.focused = false\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.selectedOptions,\n\t\t})\n\t}\n\n\tprivate onInputHandler(e: CustomEvent<FormAutocompleteEvent>) {\n\t\tthis.value = e.detail.value\n\t\te.stopPropagation()\n\t}\n\n\tprivate onSelectHandler(e: CustomEvent<FormAutocompleteEvent>) {\n\t\te.stopPropagation()\n\t\tconst value = e.detail.selected\n\t\tthis.selectOption(value as GovFormMultiSelectItem)\n\t\tthis.value = ''\n\t\tthis.autocompleteRef.clearValue()\n\t\tthis.autocompleteRef.focus()\n\t}\n\n\tprivate onTagRemove(removeOption: GovFormMultiSelectItem) {\n\t\tthis.removeOption(removeOption)\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.selectRef.focus(options)\n\t}\n\n\t/**\n\t * Sets the ordered value of the element\n\t */\n\t@Method()\n\tasync setValue(value: string): Promise<void> {\n\t\tthis.value = value\n\t}\n\n\t/**\n\t * Returns an instance of the native html select element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLSelectElement> {\n\t\treturn this.selectRef\n\t}\n\n\t/**\n\t * Returns a list of selected items\n\t */\n\t@Method()\n\tasync getSelectedOptions(): Promise<GovFormMultiSelectItem[]> {\n\t\treturn this.selectedOptions\n\t}\n\n\t/**\n\t * Setting a list of options to choose from\n\t */\n\t@Method()\n\tasync setOptions(options: GovFormMultiSelectItem[]): Promise<void> {\n\t\tif (Array.isArray(options)) {\n\t\t\tthis.options = [...options]\n\t\t}\n\t}\n\n\t/**\n\t * Returns all available options\n\t */\n\t@Method()\n\tasync getOptions(ignoreFilter = true): Promise<GovFormMultiSelectItem[]> {\n\t\treturn this.getAvailableOptions(ignoreFilter)\n\t}\n\n\t/**\n\t * Setting the list of selected options\n\t */\n\t@Method()\n\tasync setSelectedOptions(options: GovFormMultiSelectItem[]): Promise<void> {\n\t\tif (Array.isArray(options)) {\n\t\t\tthis.selectedOptions = [...options]\n\t\t}\n\t}\n\n\t/**\n\t * To remove an option from the selected list\n\t */\n\t@Method()\n\tasync removeSelectedOption(option: GovFormMultiSelectItem, notify = false): Promise<void> {\n\t\tif (typeof option === 'object' && hasOwnProperty(option, 'name') && hasOwnProperty(option, 'value')) {\n\t\t\tthis.removeOption(option, notify)\n\t\t}\n\t}\n\n\t/**\n\t * Returns an instance of the native html select element\n\t */\n\t@Method()\n\tasync setSelectedOption(option: GovFormMultiSelectItem, notify = false): Promise<void> {\n\t\tif (typeof option === 'object' && hasOwnProperty(option, 'name') && hasOwnProperty(option, 'value')) {\n\t\t\tthis.selectOption(option, notify)\n\t\t}\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, 'wcag-described-by', FormMultiSelectClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, 'wcag-labelled-by', FormMultiSelectClass.root)\n\t\tvalidateWcagRef(this.wcagOwns, 'wcag-owns', FormMultiSelectClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.selectId, this.wcagLabelledBy, FormMultiSelectClass.root)\n\t}\n}\n"],"version":3}
1
+ {"file":"gov-form-multi-select.entry.cjs.js","mappings":"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","names":["createID","govHost","govForm","validateProp","FormMultiselectVariants","FormMultiSelectClass","FormMultiselectSizes","propsValueToArray","toBoolAttr","removeDiacritics","tick","canValidateWcagOnRender","delay","h","Host","toBoolAttrIfDefined","validateWcagRef","validateWcagLabelFor"],"sources":["../../../packages/core/src/components/gov-form/multiselect/gov-form-multi-select.scss?tag=gov-form-multi-select","../../../packages/core/src/components/gov-form/multiselect/gov-form-multi-select.tsx"],"sourcesContent":["/*\n * Multiselect\n */\n\n@import \"../select/gov-form-select-core.scss\";\n$class: \".gov-form-multi-select\";\n\n#{$class} {\n\t@extend %form-select-core;\n\tflex-wrap: wrap;\n\t&__wrap {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: rem-calc(8);\n\t\twidth: 100%;\n\t}\n\t&__list {\n\t\t@extend %reset-ul;\n\t\t@include typography($font-size-xs);\n\t\tdisplay: flex;\n\t\tgap: rem-calc(8);\n\t\tflex-wrap: wrap;\n\t}\n\t&__list > &__item {\n\t\t@extend %reset-ul-li;\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tflex: 0 0 auto;\n\t\talign-items: center;\n\t\tpadding: rem-calc(0 0 0 8);\n\t\tbackground: $form-multiselect-bg;\n\t\ttransition: $t linear background-color;\n\t}\n}\n","import {Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch} from '@stencil/core'\nimport {govForm} from '../../../helpers/Dom/form'\nimport {GovForm} from '../../../helpers/Dom/form.types'\nimport {govHost, toBoolAttr, toBoolAttrIfDefined} from '../../../helpers/Dom/template'\nimport {GovHost} from '../../../helpers/Dom/template.types'\nimport {canValidateWcagOnRender} from '../../../helpers/Dom/win'\nimport {validateProp} from '../../../helpers/Validate/props'\nimport {validateWcagLabelFor, validateWcagRef} from '../../../helpers/Validate/wcag'\nimport {Nullable} from '../../../types/interfaces'\nimport {createID, removeDiacritics} from '../../../utils/string.utils'\nimport {delay} from '../../../utils/utils'\nimport {FormAutocompleteEvent} from '../autocomplete/gov-form-autocomplete.types'\nimport {\n\tFormMultiSelectClass,\n\tFormMultiselectSizes,\n\tFormMultiselectSizesType,\n\tFormMultiselectVariants,\n\tFormMultiselectVariantType\n} from './constants'\nimport {\n\tFormMultiselectEvent,\n\tGovFormMultiSelectItem,\n\tGovFormMultiSelectSelectedItem\n} from './gov-form-multi-select.types'\nimport {propsValueToArray} from \"../../../utils/array.utils\";\nimport {tick} from \"../../../utils/stencil.utils\";\n\n@Component({\n\ttag: 'gov-form-multi-select',\n\tstyleUrl: 'gov-form-multi-select.scss',\n})\nexport class GovFormMultiSelect {\n\tprivate f: GovForm\n\tprivate readonly h: GovHost\n\n\tprivate selectRef?: HTMLSelectElement\n\tprivate autocompleteRef?: HTMLGovFormAutocompleteElement\n\n\tprivate readonly selectId: string\n\tprivate readonly listId: string\n\n\tconstructor() {\n\t\tthis.selectId = createID('GovSelect')\n\t\tthis.listId = createID('GovMultiList')\n\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovFormSelectElement\n\t/**\n\t * Value of multi-select\n\t */\n\t@Prop({reflect: true, mutable: true}) value: string | GovFormMultiSelectSelectedItem[]\n\t/**\n\t * Options of multi-select\n\t */\n\t@Prop({reflect: true, mutable: true}) options?: string | GovFormMultiSelectItem[]\n\t/**\n\t * Custom select identifier.\n\t */\n\t@Prop({attribute: 'identifier'}) readonly identifier: string\n\t/**\n\t * Custom select placeholder.\n\t */\n\t@Prop({attribute: 'placeholder'}) readonly placeholder: string\n\t/**\n\t * Style variation of the form select.\n\t */\n\t@Prop() readonly variant?: FormMultiselectVariantType\n\t/**\n\t * Select’s size.\n\t */\n\t@Prop() readonly size?: FormMultiselectSizesType = 'm'\n\t/**\n\t * Name of the select.\n\t */\n\t@Prop() readonly name: string\n\t/**\n\t * Option to hide the list of selected items\n\t */\n\t@Prop({attribute: 'hide-selected-list'}) readonly hideSelectedList: boolean = false\n\t/**\n\t * Set whether the input is required or not. Please note that this is necessary for accessible inputs when the user is required to fill them.\n\t * When using this property you need to also set “novalidate” attribute to your form element to prevent browser from displaying its own validation errors.\n\t */\n\t@Prop() readonly required: boolean = false\n\t/**\n\t * Makes the select component disabled.\n\t * This prevents users from being able to interact with the select, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean\n\t/**\n\t * Custom message for when there is a blank sheet\n\t */\n\t@Prop({attribute: 'message-empty'}) readonly messageEmpty: string = 'Nebyly nalezeny žádné výsledky'\n\t/**\n\t * Custom message for when data is loaded\n\t */\n\t@Prop({attribute: 'message-loading'}) readonly messageLoading: string = 'Načítám...'\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({attribute: 'wcag-described-by'}) readonly wcagDescribedBy: string\n\t/**\n\t * Indicates the id of a component that labels the input.\n\t */\n\t@Prop({attribute: 'wcag-labelled-by'}) readonly wcagLabelledBy: string\n\t/**\n\t * Indicates the id of a component that describes the input.\n\t */\n\t@Prop({attribute: 'wcag-owns'}) readonly wcagOwns: string\n\t/**\n\t * Emitted when the select has focus.\n\t */\n\t@Event({eventName: 'gov-focus'}) govFocus: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when the select loses focus.\n\t */\n\t@Event({eventName: 'gov-blur'}) govBlur: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when the select change value.\n\t */\n\t@Event({eventName: 'gov-change'}) govChange: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when an item is selected\n\t */\n\t@Event({eventName: 'gov-select'}) govSelect: EventEmitter<FormMultiselectEvent>\n\t/**\n\t * Emitted when an item is removed\n\t */\n\t@Event({eventName: 'gov-remove'}) govRemove: EventEmitter<FormMultiselectEvent>\n\n\t@State() focused: boolean\n\t@State() valueState: string\n\t@State() selectedOptionsState: GovFormMultiSelectSelectedItem[] = []\n\t@State() optionsState: GovFormMultiSelectItem[] = []\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormMultiselectVariants, newValue, FormMultiSelectClass.root)\n\t}\n\n\t@Watch('size')\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormMultiselectSizes, newValue, FormMultiSelectClass.root)\n\t}\n\n\t@Watch('options')\n\twatchOptions(newValue: string | GovFormMultiSelectItem[]): void {\n\t\tthis.optionsState = propsValueToArray(newValue)\n\t}\n\n\t@Watch('value')\n\twatchValue(newValue: string | GovFormMultiSelectItem[]): void {\n\t\tthis.selectedOptionsState = propsValueToArray(newValue)\n\t}\n\n\t@Watch('disabled')\n\t@Watch('invalid')\n\t@Watch('success')\n\t@Watch('size')\n\twatchDisabled(): void {\n\t\tthis.passControlAttrs()\n\t}\n\n\tprivate passControlAttrs() {\n\t\tthis.f.passAttrToControl('size', this.size)\n\t\tthis.f.passAttrToControl('invalid', toBoolAttr(this.invalid))\n\t\tthis.f.passAttrToControl('success', toBoolAttr(this.success))\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t\tthis.watchDisabled()\n\t\tthis.passControlAttrs()\n\t\tthis.f.passAttrToLabel('required', String(this.required))\n\t\tthis.optionsState = propsValueToArray(this.options)\n\t\tthis.selectedOptionsState = propsValueToArray(this.value)\n\t}\n\n\tprivate getAvailableOptions(ignoreFilter = false): GovFormMultiSelectItem[] {\n\t\tif (Array.isArray(this.optionsState) && this.optionsState.length) {\n\t\t\tif (ignoreFilter) {\n\t\t\t\treturn this.optionsState;\n\t\t\t}\n\t\t\treturn this.optionsState.filter((option) => {\n\t\t\t\tconst selectedIndex = this.selectedValueIndex(option.value)\n\t\t\t\treturn (selectedIndex !== -1 || option?.disabled) ? false : true\n\t\t\t}).map((option) => ({name: option.name ?? option.value, value: option.value}))\n\t\t}\n\t\treturn Array.from(this.selectRef.querySelectorAll('option'))\n\t\t\t.filter((option: HTMLOptionElement) => {\n\t\t\t\tif (ignoreFilter) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tconst selectedIndex = this.selectedValueIndex(option.value)\n\t\t\t\treturn !(option.disabled || option.selected || selectedIndex > -1)\n\t\t\t})\n\t\t\t.map((option: HTMLOptionElement) => ({name: option.textContent, value: option.value}))\n\t}\n\n\tprivate initAutocomplete() {\n\t\tthis.autocompleteRef?.addEventListener('gov-select', this.onSelectHandler.bind(this))\n\t\tthis.autocompleteRef?.addEventListener('gov-input', this.onInputHandler.bind(this))\n\t\tthis.autocompleteRef?.addEventListener('gov-focus', this.onFocusHandler.bind(this))\n\t\tthis.autocompleteRef?.addEventListener('gov-blur', this.onBlurHandler.bind(this))\n\t\tthis.autocompleteRef\n\t\t\t?.setSearchCallback(searchString => {\n\t\t\t\treturn new Promise(resolve => {\n\t\t\t\t\tconst data = this.getAvailableOptions()\n\t\t\t\t\tif (String(searchString).length === 0) {\n\t\t\t\t\t\treturn resolve(data)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(\n\t\t\t\t\t\tdata.filter(({name, value}) => {\n\t\t\t\t\t\t\tif (!name) name = value;\n\t\t\t\t\t\t\treturn removeDiacritics(name).toLowerCase().indexOf(removeDiacritics(searchString).toLowerCase()) > -1\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t})\n\t\t\t.finally()\n\t}\n\n\tprivate selectedValueIndex(value: GovFormMultiSelectSelectedItem) {\n\t\treturn this.selectedOptionsState.findIndex((selected) => selected === value)\n\t}\n\n\tprivate getOptionElement(value: GovFormMultiSelectSelectedItem): Nullable<HTMLOptionElement> {\n\t\treturn this.selectRef.querySelector('option[value=\"' + value + '\"]') as HTMLOptionElement\n\t}\n\n\tprivate getOption(value: GovFormMultiSelectSelectedItem): GovFormMultiSelectItem | null {\n\t\treturn this.getAvailableOptions(true).find((option) => option.value === value) ?? null;\n\t}\n\n\tprivate selectOption(newOption: GovFormMultiSelectSelectedItem, notify = true) {\n\t\tconst index = this.selectedValueIndex(newOption)\n\t\tif (index === -1) {\n\t\t\tthis.selectedOptionsState = [...this.selectedOptionsState, newOption]\n\t\t\tthis.value = this.selectedOptionsState;\n\t\t\tif (notify) {\n\t\t\t\tthis.govChange.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t\tthis.govSelect.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t}\n\t\t\tconst option = this.getOptionElement(newOption)\n\t\t\tif (option) {\n\t\t\t\toption.selected = true\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate removeOption(removeOption: GovFormMultiSelectSelectedItem, notify = true) {\n\t\tconst index = this.selectedValueIndex(removeOption)\n\t\tif (index !== -1) {\n\t\t\tthis.selectedOptionsState.splice(index, 1)\n\t\t\tthis.selectedOptionsState = [...this.selectedOptionsState]\n\t\t\tthis.value = this.selectedOptionsState;\n\t\t\tif (notify) {\n\t\t\t\tthis.govChange.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t\tthis.govRemove.emit({\n\t\t\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\t\t\tvalue: this.selectedOptionsState,\n\t\t\t\t})\n\t\t\t}\n\t\t\tconst option = this.getOptionElement(removeOption)\n\t\t\tif (option) {\n\t\t\t\toption.selected = false\n\t\t\t}\n\t\t}\n\t}\n\n\tasync componentDidLoad() {\n\t\tthis.initAutocomplete()\n\t}\n\n\tasync componentDidRender() {\n\t\ttick(() => {\n\t\t\tthis.selectRef.querySelectorAll('option').forEach((option: HTMLOptionElement) => {\n\t\t\t\tif (option.selected) {\n\t\t\t\t\tthis.selectOption(option.value, false)\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t\tif (canValidateWcagOnRender()) {\n\t\t\tawait delay(500)\n\t\t\tawait this.validateWcag()\n\t\t}\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormMultiSelectClass.root} size={this.size} variant={this.variant}>\n\t\t\t\t<div class={FormMultiSelectClass.wrap}>\n\t\t\t\t\t{this.h.hasSlot('prefix') && <slot name=\"prefix\"></slot>}\n\t\t\t\t\t<div class=\"element\">\n\t\t\t\t\t\t<gov-form-autocomplete\n\t\t\t\t\t\t\tvalue={this.valueState}\n\t\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\t\tidentifier={this.identifier || this.selectId}\n\t\t\t\t\t\t\trequired={false}\n\t\t\t\t\t\t\tsize={this.size}\n\t\t\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\t\t\tmessage-empty={this.messageEmpty}\n\t\t\t\t\t\t\tmessage-loading={this.messageLoading}\n\t\t\t\t\t\t\tref={el => (this.autocompleteRef = el as HTMLGovFormAutocompleteElement)}\n\t\t\t\t\t\t\tminlength={0}\n\t\t\t\t\t\t\twcagDescribedBy={this.wcagDescribedBy}\n\t\t\t\t\t\t\twcagLabelledBy={this.wcagLabelledBy}\n\t\t\t\t\t\t\twcagOwns={this.listId}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<gov-icon slot=\"right-icon\" class=\"icon-arrow\" name=\"chevron-down\"></gov-icon>\n\t\t\t\t\t\t{this.h.hasSlot('right-icon') && !(this.success || this.invalid) && <slot name=\"right-icon\"/>}\n\t\t\t\t\t\t{this.success && <gov-icon slot=\"right-icon\" class=\"icon-validation\" name=\"check-lg\"></gov-icon>}\n\t\t\t\t\t\t{this.invalid && <gov-icon slot=\"right-icon\" class=\"icon-validation\" name=\"exclamation-lg\"></gov-icon>}\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\thidden\n\t\t\t\t\t\t\tclass={'hidden-select-list'}\n\t\t\t\t\t\t\taria-hidden={toBoolAttr(true)}\n\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\trequired={this.required}\n\t\t\t\t\t\t\tname={this.name}\n\t\t\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\t\t\tref={el => (this.selectRef = el as HTMLSelectElement)}\n\t\t\t\t\t\t\taria-disabled={toBoolAttrIfDefined(this.disabled)}\n\t\t\t\t\t\t\taria-required={toBoolAttrIfDefined(this.required)}\n\t\t\t\t\t\t\taria-invalid={toBoolAttrIfDefined(this.invalid)}\n\t\t\t\t\t\t\taria-describedby={this.wcagDescribedBy}\n\t\t\t\t\t\t\taria-labelledby={this.wcagLabelledBy}\n\t\t\t\t\t\t\taria-owns={this.wcagOwns}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t\t\t{Array.isArray(this.optionsState) && this.optionsState.map((option) => {\n\t\t\t\t\t\t\t\tconst selectedOption = this.selectedValueIndex(option.value);\n\t\t\t\t\t\t\t\treturn (<option value={option.value} selected={selectedOption > -1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={option?.disabled}>{option.name ?? option.value}</option>)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</select>\n\t\t\t\t\t</div>\n\t\t\t\t\t{this.h.hasSlot('sufix') && <slot name=\"sufix\"></slot>}\n\t\t\t\t</div>\n\t\t\t\t{this.hideSelectedList === false ? (\n\t\t\t\t\t<ul role=\"listbox\" id={this.listId} class={FormMultiSelectClass.list}>\n\t\t\t\t\t\t{Array.isArray(this.selectedOptionsState) && this.selectedOptionsState.map(selected => {\n\t\t\t\t\t\t\tconst option = this.getOption(selected);\n\t\t\t\t\t\t\tif (!option) return null\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li class={FormMultiSelectClass.item} role=\"option\">\n\t\t\t\t\t\t\t\t\t{option.name ?? option.value}\n\t\t\t\t\t\t\t\t\t<gov-button\n\t\t\t\t\t\t\t\t\t\twcagLabel={'Odebrat vybranou položku ' + option.name ?? option.value}\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\ttype=\"base\"\n\t\t\t\t\t\t\t\t\t\tsize=\"s\"\n\t\t\t\t\t\t\t\t\t\ton-gov-click={() => this.onTagRemove(selected)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<gov-icon name=\"x-lg\"></gov-icon>\n\t\t\t\t\t\t\t\t\t</gov-button>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t) : null}\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\tthis.focused = true\n\t\tthis.govFocus.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.selectedOptionsState,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\te.stopPropagation()\n\t\te.stopPropagation()\n\t\tthis.focused = false\n\t\tthis.govBlur.emit({\n\t\t\tcomponent: FormMultiSelectClass.root,\n\t\t\toriginalEvent: e,\n\t\t\tvalue: this.selectedOptionsState,\n\t\t})\n\t}\n\n\tprivate onInputHandler(e: CustomEvent<FormAutocompleteEvent>) {\n\t\tthis.valueState = e.detail.value\n\t\te.stopPropagation()\n\t}\n\n\tprivate onSelectHandler(e: CustomEvent<FormAutocompleteEvent>) {\n\t\te.stopPropagation()\n\t\tconst value = e.detail.selected\n\t\tthis.selectOption(value.value)\n\t\tthis.valueState = ''\n\t\tthis.autocompleteRef.clearValue().finally()\n\t\tthis.autocompleteRef.focus()\n\t}\n\n\tprivate onTagRemove(removeOption: GovFormMultiSelectSelectedItem) {\n\t\tthis.removeOption(removeOption)\n\t}\n\n\t/**\n\t * Returns the current state of the component\n\t */\n\t@Method()\n\tasync setFocus(options?: FocusOptions): Promise<void> {\n\t\treturn this.selectRef.focus(options)\n\t}\n\n\t/**\n\t * Sets the ordered value of the element\n\t */\n\t@Method()\n\tasync setValue(value: string): Promise<void> {\n\t\tthis.valueState = value\n\t}\n\n\t/**\n\t * Returns an instance of the native html select element\n\t */\n\t@Method()\n\tasync getRef(): Promise<HTMLSelectElement> {\n\t\treturn this.selectRef\n\t}\n\n\t/**\n\t * Validate the WCAG attributes of the component\n\t */\n\t@Method()\n\tasync validateWcag(): Promise<void> {\n\t\tvalidateWcagRef(this.wcagDescribedBy, 'wcag-described-by', FormMultiSelectClass.root)\n\t\tvalidateWcagRef(this.wcagLabelledBy, 'wcag-labelled-by', FormMultiSelectClass.root)\n\t\tvalidateWcagRef(this.wcagOwns, 'wcag-owns', FormMultiSelectClass.root)\n\t\tvalidateWcagLabelFor(this.identifier || this.selectId, this.wcagLabelledBy, FormMultiSelectClass.root)\n\t}\n}\n"],"version":3}