@gov-design-system-ce/components 0.0.27 → 0.0.29

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 (258) hide show
  1. package/dist/cjs/{constants-adc8268f.js → constants-245999e7.js} +2 -2
  2. package/dist/cjs/constants-245999e7.js.map +1 -0
  3. package/dist/cjs/{constants-e47694c4.js → constants-66cb0615.js} +2 -1
  4. package/dist/cjs/constants-66cb0615.js.map +1 -0
  5. package/dist/cjs/{constants-86fb4eb4.js → constants-6df82618.js} +3 -1
  6. package/dist/cjs/constants-6df82618.js.map +1 -0
  7. package/dist/cjs/core.cjs.js +1 -1
  8. package/dist/cjs/{form-9b8b1740.js → form-399e149e.js} +2 -2
  9. package/dist/cjs/{form-9b8b1740.js.map → form-399e149e.js.map} +1 -1
  10. package/dist/cjs/gov-app.cjs.entry.js +1 -1
  11. package/dist/cjs/gov-app.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gov-badge.cjs.entry.js +1 -1
  13. package/dist/cjs/gov-button.cjs.entry.js +1 -1
  14. package/dist/cjs/gov-form-autocomplete.cjs.entry.js +22 -6
  15. package/dist/cjs/gov-form-autocomplete.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gov-form-checkbox.cjs.entry.js +2 -2
  17. package/dist/cjs/gov-form-control.cjs.entry.js +2 -2
  18. package/dist/cjs/gov-form-file.cjs.entry.js +2 -2
  19. package/dist/cjs/gov-form-input.cjs.entry.js +2 -2
  20. package/dist/cjs/gov-form-radio.cjs.entry.js +2 -2
  21. package/dist/cjs/gov-form-select.cjs.entry.js +2 -2
  22. package/dist/cjs/gov-form-switch.cjs.entry.js +2 -2
  23. package/dist/cjs/gov-icon.cjs.entry.js +1 -1
  24. package/dist/cjs/gov-modal.cjs.entry.js +7 -7
  25. package/dist/cjs/gov-modal.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gov-prompt.cjs.entry.js +2 -2
  27. package/dist/cjs/gov-prompt.cjs.entry.js.map +1 -1
  28. package/dist/cjs/loader.cjs.js +1 -1
  29. package/dist/collection/components/gov-badge/gov-badge.js +1 -1
  30. package/dist/collection/components/gov-button/constants.js +1 -1
  31. package/dist/collection/components/gov-button/constants.js.map +1 -1
  32. package/dist/collection/components/gov-button/gov-button.js +1 -1
  33. package/dist/collection/components/gov-form/autocomplete/constants.js +2 -0
  34. package/dist/collection/components/gov-form/autocomplete/constants.js.map +1 -1
  35. package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.css +7 -0
  36. package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.js +98 -4
  37. package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.js.map +1 -1
  38. package/dist/collection/components/gov-modal/constants.js +1 -0
  39. package/dist/collection/components/gov-modal/constants.js.map +1 -1
  40. package/dist/collection/components/gov-modal/gov-modal.css +8 -3
  41. package/dist/collection/components/gov-modal/gov-modal.js +7 -8
  42. package/dist/collection/components/gov-modal/gov-modal.js.map +1 -1
  43. package/dist/collection/components/gov-promp/gov-prompt.css +8 -3
  44. package/dist/collection/pages/Modal.js +1 -1
  45. package/dist/collection/pages/Modal.js.map +1 -1
  46. package/dist/components/constants3.js +1 -1
  47. package/dist/components/constants3.js.map +1 -1
  48. package/dist/components/constants8.js +1 -0
  49. package/dist/components/constants8.js.map +1 -1
  50. package/dist/components/form.js +2 -0
  51. package/dist/components/form.js.map +1 -1
  52. package/dist/components/gov-accordion-item.js +0 -1
  53. package/dist/components/gov-accordion-item.js.map +1 -1
  54. package/dist/components/gov-accordion.js +0 -1
  55. package/dist/components/gov-accordion.js.map +1 -1
  56. package/dist/components/gov-alert.js +0 -1
  57. package/dist/components/gov-alert.js.map +1 -1
  58. package/dist/components/gov-app.js +1 -2
  59. package/dist/components/gov-app.js.map +1 -1
  60. package/dist/components/gov-attachments-item2.js +0 -1
  61. package/dist/components/gov-attachments-item2.js.map +1 -1
  62. package/dist/components/gov-attachments2.js +0 -1
  63. package/dist/components/gov-attachments2.js.map +1 -1
  64. package/dist/components/gov-backdrop2.js +0 -1
  65. package/dist/components/gov-backdrop2.js.map +1 -1
  66. package/dist/components/gov-badge2.js +0 -1
  67. package/dist/components/gov-badge2.js.map +1 -1
  68. package/dist/components/gov-breadcrumbs.js +0 -1
  69. package/dist/components/gov-breadcrumbs.js.map +1 -1
  70. package/dist/components/gov-button2.js +0 -1
  71. package/dist/components/gov-button2.js.map +1 -1
  72. package/dist/components/gov-card.js +0 -1
  73. package/dist/components/gov-card.js.map +1 -1
  74. package/dist/components/gov-container.js +0 -1
  75. package/dist/components/gov-container.js.map +1 -1
  76. package/dist/components/gov-cookiebar.js +0 -1
  77. package/dist/components/gov-cookiebar.js.map +1 -1
  78. package/dist/components/gov-empty.js +0 -1
  79. package/dist/components/gov-empty.js.map +1 -1
  80. package/dist/components/gov-error-code.js +0 -1
  81. package/dist/components/gov-error-code.js.map +1 -1
  82. package/dist/components/gov-form-autocomplete2.js +25 -6
  83. package/dist/components/gov-form-autocomplete2.js.map +1 -1
  84. package/dist/components/gov-form-checkbox.js +0 -1
  85. package/dist/components/gov-form-checkbox.js.map +1 -1
  86. package/dist/components/gov-form-control.js +0 -1
  87. package/dist/components/gov-form-control.js.map +1 -1
  88. package/dist/components/gov-form-file.js +0 -1
  89. package/dist/components/gov-form-file.js.map +1 -1
  90. package/dist/components/gov-form-group.js +0 -1
  91. package/dist/components/gov-form-group.js.map +1 -1
  92. package/dist/components/gov-form-input2.js +0 -1
  93. package/dist/components/gov-form-input2.js.map +1 -1
  94. package/dist/components/gov-form-label.js +0 -1
  95. package/dist/components/gov-form-label.js.map +1 -1
  96. package/dist/components/gov-form-message2.js +0 -1
  97. package/dist/components/gov-form-message2.js.map +1 -1
  98. package/dist/components/gov-form-multi-select.js +0 -1
  99. package/dist/components/gov-form-multi-select.js.map +1 -1
  100. package/dist/components/gov-form-password-power.js +0 -1
  101. package/dist/components/gov-form-password-power.js.map +1 -1
  102. package/dist/components/gov-form-radio.js +0 -1
  103. package/dist/components/gov-form-radio.js.map +1 -1
  104. package/dist/components/gov-form-search.js +0 -1
  105. package/dist/components/gov-form-search.js.map +1 -1
  106. package/dist/components/gov-form-select2.js +0 -1
  107. package/dist/components/gov-form-select2.js.map +1 -1
  108. package/dist/components/gov-form-switch.js +0 -1
  109. package/dist/components/gov-form-switch.js.map +1 -1
  110. package/dist/components/gov-grid-item.js +0 -1
  111. package/dist/components/gov-grid-item.js.map +1 -1
  112. package/dist/components/gov-grid.js +0 -1
  113. package/dist/components/gov-grid.js.map +1 -1
  114. package/dist/components/gov-icon2.js +1 -2
  115. package/dist/components/gov-icon2.js.map +1 -1
  116. package/dist/components/gov-layout-column.js +0 -1
  117. package/dist/components/gov-layout-column.js.map +1 -1
  118. package/dist/components/gov-layout.js +0 -1
  119. package/dist/components/gov-layout.js.map +1 -1
  120. package/dist/components/gov-loading.js +0 -1
  121. package/dist/components/gov-loading.js.map +1 -1
  122. package/dist/components/gov-message.js +0 -1
  123. package/dist/components/gov-message.js.map +1 -1
  124. package/dist/components/gov-modal.js +7 -8
  125. package/dist/components/gov-modal.js.map +1 -1
  126. package/dist/components/gov-nav-item.js +0 -1
  127. package/dist/components/gov-nav-item.js.map +1 -1
  128. package/dist/components/gov-nav.js +0 -1
  129. package/dist/components/gov-nav.js.map +1 -1
  130. package/dist/components/gov-pagination.js +0 -1
  131. package/dist/components/gov-pagination.js.map +1 -1
  132. package/dist/components/gov-prompt.js +1 -2
  133. package/dist/components/gov-prompt.js.map +1 -1
  134. package/dist/components/gov-side-nav-item.js +0 -1
  135. package/dist/components/gov-side-nav-item.js.map +1 -1
  136. package/dist/components/gov-side-nav.js +0 -1
  137. package/dist/components/gov-side-nav.js.map +1 -1
  138. package/dist/components/gov-skeleton.js +0 -1
  139. package/dist/components/gov-skeleton.js.map +1 -1
  140. package/dist/components/gov-spacer.js +0 -1
  141. package/dist/components/gov-spacer.js.map +1 -1
  142. package/dist/components/gov-statsbar-item.js +0 -1
  143. package/dist/components/gov-statsbar-item.js.map +1 -1
  144. package/dist/components/gov-statsbar.js +0 -1
  145. package/dist/components/gov-statsbar.js.map +1 -1
  146. package/dist/components/gov-stepper-item.js +0 -1
  147. package/dist/components/gov-stepper-item.js.map +1 -1
  148. package/dist/components/gov-stepper.js +0 -1
  149. package/dist/components/gov-stepper.js.map +1 -1
  150. package/dist/components/gov-tabs-item.js +0 -1
  151. package/dist/components/gov-tabs-item.js.map +1 -1
  152. package/dist/components/gov-tabs.js +0 -1
  153. package/dist/components/gov-tabs.js.map +1 -1
  154. package/dist/components/gov-tile.js +0 -1
  155. package/dist/components/gov-tile.js.map +1 -1
  156. package/dist/components/gov-tiles.js +0 -1
  157. package/dist/components/gov-tiles.js.map +1 -1
  158. package/dist/components/gov-toast.js +0 -1
  159. package/dist/components/gov-toast.js.map +1 -1
  160. package/dist/components/gov-tooltip-content.js +0 -1
  161. package/dist/components/gov-tooltip-content.js.map +1 -1
  162. package/dist/components/gov-tooltip.js +0 -1
  163. package/dist/components/gov-tooltip.js.map +1 -1
  164. package/dist/components/gov-wizzard-item.js +0 -1
  165. package/dist/components/gov-wizzard-item.js.map +1 -1
  166. package/dist/components/gov-wizzard.js +0 -1
  167. package/dist/components/gov-wizzard.js.map +1 -1
  168. package/dist/core/core.esm.js +1 -1
  169. package/dist/core/core.esm.js.map +1 -1
  170. package/dist/core/{p-93de0637.entry.js → p-154afdd1.entry.js} +2 -2
  171. package/dist/core/{p-266c3826.entry.js → p-30777e50.entry.js} +2 -2
  172. package/dist/core/{p-4ce15026.entry.js → p-3412facd.entry.js} +2 -2
  173. package/dist/core/{p-b7681cba.entry.js → p-3ed60543.entry.js} +2 -2
  174. package/dist/core/p-41f07da7.entry.js +2 -0
  175. package/dist/core/{p-742e37e4.entry.js.map → p-41f07da7.entry.js.map} +1 -1
  176. package/dist/core/{p-c1c5b496.entry.js → p-4687e822.entry.js} +2 -2
  177. package/dist/core/p-6044a1e7.entry.js +2 -0
  178. package/dist/core/p-6044a1e7.entry.js.map +1 -0
  179. package/dist/core/{p-034c40ab.entry.js → p-70c0ee18.entry.js} +2 -2
  180. package/dist/core/{p-7c55677b.entry.js → p-79f74578.entry.js} +2 -2
  181. package/dist/core/{p-9b380ef6.entry.js → p-942c1b73.entry.js} +2 -2
  182. package/dist/core/p-9dab01be.js +2 -0
  183. package/dist/core/p-9dab01be.js.map +1 -0
  184. package/dist/core/{p-45485d1c.js → p-be4aab0e.js} +2 -2
  185. package/dist/core/p-be4aab0e.js.map +1 -0
  186. package/dist/core/{p-7b890c55.entry.js → p-cb830bc1.entry.js} +2 -2
  187. package/dist/core/p-cd869237.js +2 -0
  188. package/dist/core/p-cd869237.js.map +1 -0
  189. package/dist/core/p-d0af6d2f.entry.js +2 -0
  190. package/dist/core/p-d0af6d2f.entry.js.map +1 -0
  191. package/dist/core/{p-1065b347.entry.js → p-e5a7dcf1.entry.js} +2 -2
  192. package/dist/core/{p-1065b347.entry.js.map → p-e5a7dcf1.entry.js.map} +1 -1
  193. package/dist/core/{p-b3f73e1d.entry.js → p-f814b4e9.entry.js} +2 -2
  194. package/dist/core/{p-9cd80b05.js → p-fd2f10eb.js} +2 -2
  195. package/dist/custom-elements/index.js +1 -1
  196. package/dist/custom-elements/index.js.map +1 -1
  197. package/dist/esm/{constants-ba13b28f.js → constants-2a283e9a.js} +2 -1
  198. package/dist/esm/constants-2a283e9a.js.map +1 -0
  199. package/dist/esm/{constants-089b3fdd.js → constants-45f6db4c.js} +2 -2
  200. package/dist/esm/constants-45f6db4c.js.map +1 -0
  201. package/dist/esm/{constants-2e8258cf.js → constants-47d7a8bc.js} +3 -1
  202. package/dist/esm/constants-47d7a8bc.js.map +1 -0
  203. package/dist/esm/core.js +1 -1
  204. package/dist/esm/{form-669a7180.js → form-3aceb161.js} +2 -2
  205. package/dist/esm/{form-669a7180.js.map → form-3aceb161.js.map} +1 -1
  206. package/dist/esm/gov-app.entry.js +1 -1
  207. package/dist/esm/gov-app.entry.js.map +1 -1
  208. package/dist/esm/gov-badge.entry.js +1 -1
  209. package/dist/esm/gov-button.entry.js +1 -1
  210. package/dist/esm/gov-form-autocomplete.entry.js +22 -6
  211. package/dist/esm/gov-form-autocomplete.entry.js.map +1 -1
  212. package/dist/esm/gov-form-checkbox.entry.js +2 -2
  213. package/dist/esm/gov-form-control.entry.js +2 -2
  214. package/dist/esm/gov-form-file.entry.js +2 -2
  215. package/dist/esm/gov-form-input.entry.js +2 -2
  216. package/dist/esm/gov-form-radio.entry.js +2 -2
  217. package/dist/esm/gov-form-select.entry.js +2 -2
  218. package/dist/esm/gov-form-switch.entry.js +2 -2
  219. package/dist/esm/gov-icon.entry.js +1 -1
  220. package/dist/esm/gov-modal.entry.js +7 -7
  221. package/dist/esm/gov-modal.entry.js.map +1 -1
  222. package/dist/esm/gov-prompt.entry.js +2 -2
  223. package/dist/esm/gov-prompt.entry.js.map +1 -1
  224. package/dist/esm/loader.js +1 -1
  225. package/dist/hydrate/index.js +30 -7
  226. package/dist/types/components/gov-button/constants.d.ts +1 -1
  227. package/dist/types/components/gov-form/autocomplete/constants.d.ts +2 -0
  228. package/dist/types/components/gov-form/autocomplete/gov-form-autocomplete.d.ts +16 -0
  229. package/dist/types/components/gov-modal/constants.d.ts +1 -0
  230. package/dist/types/components.d.ts +24 -0
  231. package/package.json +1 -1
  232. package/dist/cjs/constants-86fb4eb4.js.map +0 -1
  233. package/dist/cjs/constants-adc8268f.js.map +0 -1
  234. package/dist/cjs/constants-e47694c4.js.map +0 -1
  235. package/dist/core/p-45485d1c.js.map +0 -1
  236. package/dist/core/p-742e37e4.entry.js +0 -2
  237. package/dist/core/p-b2275b3d.js +0 -2
  238. package/dist/core/p-b2275b3d.js.map +0 -1
  239. package/dist/core/p-bec31703.entry.js +0 -2
  240. package/dist/core/p-bec31703.entry.js.map +0 -1
  241. package/dist/core/p-f555fce1.entry.js +0 -2
  242. package/dist/core/p-f555fce1.entry.js.map +0 -1
  243. package/dist/core/p-f687452c.js +0 -2
  244. package/dist/core/p-f687452c.js.map +0 -1
  245. package/dist/esm/constants-089b3fdd.js.map +0 -1
  246. package/dist/esm/constants-2e8258cf.js.map +0 -1
  247. package/dist/esm/constants-ba13b28f.js.map +0 -1
  248. /package/dist/core/{p-93de0637.entry.js.map → p-154afdd1.entry.js.map} +0 -0
  249. /package/dist/core/{p-266c3826.entry.js.map → p-30777e50.entry.js.map} +0 -0
  250. /package/dist/core/{p-4ce15026.entry.js.map → p-3412facd.entry.js.map} +0 -0
  251. /package/dist/core/{p-b7681cba.entry.js.map → p-3ed60543.entry.js.map} +0 -0
  252. /package/dist/core/{p-c1c5b496.entry.js.map → p-4687e822.entry.js.map} +0 -0
  253. /package/dist/core/{p-034c40ab.entry.js.map → p-70c0ee18.entry.js.map} +0 -0
  254. /package/dist/core/{p-7c55677b.entry.js.map → p-79f74578.entry.js.map} +0 -0
  255. /package/dist/core/{p-9b380ef6.entry.js.map → p-942c1b73.entry.js.map} +0 -0
  256. /package/dist/core/{p-7b890c55.entry.js.map → p-cb830bc1.entry.js.map} +0 -0
  257. /package/dist/core/{p-b3f73e1d.entry.js.map → p-f814b4e9.entry.js.map} +0 -0
  258. /package/dist/core/{p-9cd80b05.js.map → p-fd2f10eb.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{r as t,c as i,h as e,H as s,g as o}from"./p-4af5e4f4.js";import{a}from"./p-3f37ddb6.js";import{v as r}from"./p-26acf964.js";import{c as n}from"./p-24636c53.js";import{d as h,t as l,h as c}from"./p-03990da5.js";import{F as m,a as d,b as p}from"./p-9dab01be.js";import"./p-561fa17b.js";import"./p-55500e5a.js";import"./p-ff7365ae.js";const g='.gov-form-autocomplete__list{margin:0;padding:0}.gov-form-autocomplete__list>.gov-form-autocomplete__item{margin:0;padding:0;background:none}.gov-form-autocomplete__list>.gov-form-autocomplete__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-autocomplete{position:relative;display:block;width:100%}.gov-form-autocomplete__list{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);position:absolute;top:100%;right:0;left:0;z-index:5;max-height:14.0625rem;margin-top:0.5rem;border:var(--gov-autocomplete-item-hover, 0.0625rem solid var(--gov-color-secondary-500));border-radius:var(--gov-border-radius, 0.1875rem);background:var(--gov-autocomplete-bg, var(--gov-color-neutral-white));overflow-x:hidden;overflow-y:auto;overscroll-behavior:none}.gov-form-autocomplete__list>.gov-form-autocomplete__item{padding:0.75rem 0.5rem;cursor:pointer}.gov-form-autocomplete__item--empty,.gov-form-autocomplete__item--loading{padding:0.75rem 0.5rem;color:var(--gov-autocomplete-item-disable-color, var(--gov-color-secondary-600))}.gov-form-autocomplete__item--empty .gov-icon,.gov-form-autocomplete__item--loading .gov-icon{height:12px}.gov-form-autocomplete__list:empty{display:none}.gov-form-autocomplete__item[aria-selected=""],.gov-form-autocomplete__item[aria-selected=true i],.gov-form-autocomplete__item[aria-selected="1"]{background:var(--gov-autocomplete-item-select, var(--gov-color-secondary-400))}@media not all and (pointer: coarse){.gov-form-autocomplete__item:hover{background:var(--gov-autocomplete-item-hover, var(--gov-color-primary-100))}}';const v=class{constructor(e){t(this,e);this.govFocus=i(this,"gov-focus",7);this.govBlur=i(this,"gov-blur",7);this.govInput=i(this,"gov-input",7);this.govSelect=i(this,"gov-select",7);this.templateResolver=t=>t[this.nameKey];this.value="";this.identifier=undefined;this.variant=undefined;this.success=undefined;this.size="m";this.nameKey="name";this.name=undefined;this.required=false;this.disabled=undefined;this.placeholder=undefined;this.readonly=undefined;this.invalid=undefined;this.minlength=2;this.maxlength=undefined;this.messageEmpty="Nebyly nalezeny žádné výsledky";this.messageLoading="Načítám...";this.wcagDescribedBy=undefined;this.wcagLabelledBy=undefined;this.wcagOwns=undefined;this.focused=undefined;this.processing=false;this.arrowCounter=-1;this.list=[];this.listBoxId=n("GovListBox")}validateVariant(t){r(d,t,m.root)}validateSize(t){r(p,t,m.root)}onArrowUp(){if(this.arrowCounter>0){this.arrowCounter=this.arrowCounter-1;this.moveToView().finally()}}onArrowDown(){if(this.arrowCounter<this.list.length-1){this.arrowCounter=this.arrowCounter+1;this.moveToView().finally()}}async moveToView(){await h(200);const t=this.listRef.offsetHeight;const i=this.listRef.querySelector('li[aria-selected="true"]');if(i&&t){const t=i.offsetTop;this.listRef.scrollTo({top:t,behavior:"smooth"})}}doSearch(){if(Number.isInteger(this.minlength)&&String(this.value).length<=this.minlength&&this.minlength){this.list=[];this.arrowCounter=-1;this.processing=false;return}if(this.searchCallback){this.processing=true;this.searchCallback(this.value).then((t=>this.list=t)).catch((()=>this.list=[])).finally((()=>{this.arrowCounter=-1;this.processing=false}))}}componentWillLoad(){this.validateVariant(this.variant);this.validateSize(this.size)}render(){return e(s,{class:m.root,size:this.size,variant:this.variant},e("gov-form-input",{placeholder:this.placeholder,name:this.name,disabled:this.disabled,readonly:this.readonly,autocomplete:false,size:this.size,variant:this.variant,required:this.required,invalid:this.invalid,role:"searchbox",value:this.value,minlength:this.minlength,maxlength:this.maxlength,"on-gov-input":l(this.onInputHandler.bind(this),200),"on-gov-keyup":this.onKeyUpHandler.bind(this),"on-gov-keydown":this.onKeyDownHandler.bind(this),"on-gov-focus":this.onFocusHandler.bind(this),"on-gov-blur":this.onBlurHandler.bind(this),wcagAutocomplete:"list",wcagDescribedBy:this.wcagDescribedBy,wcagLabelledBy:this.wcagLabelledBy,wcagOwns:[this.listBoxId,this.wcagOwns].join(" "),wcagExpanded:this.list.length&&this.focused,ref:t=>this.inputRef=t},e("slot",{slot:"right-icon",name:"right-icon"})),e("ul",{class:m.list,role:"listbox",id:this.listBoxId,ref:t=>this.listRef=t},this.focused&&this.list.length===0&&this.processing===false&&this.value.length>0&&this.messageEmpty?e("li",{class:m.empty},this.messageEmpty):null,this.focused&&this.processing===true&&this.value.length>0?e("li",{class:m.loading},e("gov-icon",{name:"loader",class:"gov-spin-animation"}),this.messageLoading):null,this.list.map(((t,i)=>{const s=this.arrowCounter===i;return e("li",{class:m.item,innerHTML:this.templateResolver(t,s),role:"option","aria-posinset":i,tabindex:s?0:-1,"aria-setsize":this.list.length,onClick:()=>this.onSelectHandler(i),"aria-selected":a(s)})}))))}onFocusHandler(t){this.focused=true;this.arrowCounter=-1;if((this.value||this.minlength===0)&&this.searchCallback){this.doSearch()}t.stopPropagation();this.govFocus.emit({originalEvent:t,component:m.root,value:this.value,selected:null})}onBlurHandler(t){this.focused=false;setTimeout((()=>this.list=[]),200);this.arrowCounter=-1;t.stopPropagation();this.govBlur.emit({originalEvent:t,component:m.root,value:this.value,selected:null})}onInputHandler(t){this.value=t.target.value;t.stopPropagation();this.govInput.emit({originalEvent:t,component:m.root,value:this.value,selected:null});this.doSearch()}onSelectHandler(t=-1){let i=null;if(t>-1){i=this.list[t]}else if(c(this.arrowCounter,this.list)){i=this.list[this.arrowCounter]}if(i){this.govSelect.emit({component:m.root,value:this.value,selected:i});this.list=[];if(c(this.nameKey,i)&&typeof i[this.nameKey]==="string"){this.value=i[this.nameKey]}}}onKeyUpHandler(t){const i=t.detail.originalEvent;t.stopPropagation();if(i.keyCode===38)this.onArrowUp();else if(i.keyCode===40)this.onArrowDown();else if(i.keyCode===13){t.preventDefault();this.onSelectHandler()}}onKeyDownHandler(t){const i=t.detail.originalEvent;t.stopPropagation();if(i.keyCode===13){t.preventDefault()}}async setFocus(t){return this.inputRef.focus(t)}async setOptions(t){this.list=Array.isArray(t)?t:[];this.arrowCounter=-1;this.processing=false}async clearValue(){this.value="";this.inputRef.value="";await this.inputRef.clearValue()}async setProcessing(t){this.processing=t}async setSearchCallback(t){this.searchCallback=t}async setTemplateResolver(t){this.templateResolver=t}get host(){return o(this)}static get watchers(){return{variant:["validateVariant"],size:["validateSize"]}}};v.style=g;export{v as gov_form_autocomplete};
2
+ //# sourceMappingURL=p-d0af6d2f.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../packages/core/src/components/gov-form/autocomplete/gov-form-autocomplete.scss?tag=gov-form-autocomplete","../../../packages/core/src/components/gov-form/autocomplete/gov-form-autocomplete.tsx"],"names":["govFormAutocompleteCss","GovFormAutocomplete","[object Object]","hostRef","this","templateResolver","item","nameKey","listBoxId","createID","newValue","validateProp","FormAutocompleteVariants","FormAutocompleteClass","root","FormAutocompleteSizes","arrowCounter","moveToView","finally","list","length","delay","heightOfList","listRef","offsetHeight","selected","querySelector","offsetTop","scrollTo","top","behavior","Number","isInteger","minlength","String","value","processing","searchCallback","then","response","catch","validateVariant","variant","validateSize","size","h","Host","class","placeholder","name","disabled","readonly","autocomplete","required","invalid","role","maxlength","on-gov-input","throttle","onInputHandler","bind","on-gov-keyup","onKeyUpHandler","on-gov-keydown","onKeyDownHandler","on-gov-focus","onFocusHandler","on-gov-blur","onBlurHandler","wcagAutocomplete","wcagDescribedBy","wcagLabelledBy","wcagOwns","join","wcagExpanded","focused","ref","el","inputRef","slot","id","messageEmpty","empty","loading","messageLoading","map","index","isSelected","innerHTML","aria-posinset","tabindex","aria-setsize","onClick","onSelectHandler","aria-selected","toBoolAttr","e","doSearch","stopPropagation","govFocus","emit","originalEvent","component","setTimeout","govBlur","target","govInput","has","govSelect","event","detail","keyCode","onArrowUp","onArrowDown","preventDefault","options","focus","Array","isArray","clearValue","status","callback"],"mappings":"mVAAA,MAAMA,EAAyB,+8DCoBlBC,EAAmB,MAO/BC,YAAAC,6JAFQC,KAAAC,iBAAiFC,GAAQA,EAAKF,KAAKG,oBAU3D,qFAgBZ,iBAID,yCASE,uHAqBA,6CAQiC,qDAII,yIA+BpD,yBACG,YACkB,GAtG1CH,KAAKI,UAAYC,EAAS,cAyG3BP,gBAAgBQ,GACfC,EAAaC,EAA0BF,EAAUG,EAAsBC,MAIxEZ,aAAaQ,GACZC,EAAaI,EAAuBL,EAAUG,EAAsBC,MAG7DZ,YACP,GAAIE,KAAKY,aAAe,EAAG,CAC1BZ,KAAKY,aAAeZ,KAAKY,aAAe,EACxCZ,KAAKa,aAAaC,WAIZhB,cACP,GAAIE,KAAKY,aAAeZ,KAAKe,KAAKC,OAAS,EAAG,CAC7ChB,KAAKY,aAAeZ,KAAKY,aAAe,EACxCZ,KAAKa,aAAaC,WAIZhB,yBACDmB,EAAM,KACZ,MAAMC,EAAelB,KAAKmB,QAAQC,aAClC,MAAMC,EAAWrB,KAAKmB,QAAQG,cAAc,4BAC5C,GAAID,GAAYH,EAAc,CAC7B,MAAMK,EAAYF,EAASE,UAC3BvB,KAAKmB,QAAQK,SAAS,CAAEC,IAAKF,EAAWG,SAAU,YAI5C5B,WACP,GAAI6B,OAAOC,UAAU5B,KAAK6B,YAAcC,OAAO9B,KAAK+B,OAAOf,QAAUhB,KAAK6B,WAAa7B,KAAK6B,UAAW,CACtG7B,KAAKe,KAAO,GACZf,KAAKY,cAAgB,EACrBZ,KAAKgC,WAAa,MAClB,OAED,GAAIhC,KAAKiC,eAAgB,CACxBjC,KAAKgC,WAAa,KAClBhC,KAAKiC,eAAejC,KAAK+B,OACvBG,MAAKC,GAAanC,KAAKe,KAAOoB,IAC9BC,OAAM,IAAOpC,KAAKe,KAAO,KACzBD,SAAQ,KACRd,KAAKY,cAAgB,EACrBZ,KAAKgC,WAAa,UAKtBlC,oBACCE,KAAKqC,gBAAgBrC,KAAKsC,SAC1BtC,KAAKuC,aAAavC,KAAKwC,MAGxB1C,SACC,OACC2C,EAACC,EAAI,CAACC,MAAOlC,EAAsBC,KAAM8B,KAAMxC,KAAKwC,KAAMF,QAAStC,KAAKsC,SACvEG,EAAA,iBAAA,CACCG,YAAa5C,KAAK4C,YAClBC,KAAM7C,KAAK6C,KACXC,SAAU9C,KAAK8C,SACfC,SAAU/C,KAAK+C,SACfC,aAAc,MACdR,KAAMxC,KAAKwC,KACXF,QAAStC,KAAKsC,QACdW,SAAUjD,KAAKiD,SACfC,QAASlD,KAAKkD,QACdC,KAAM,YACNpB,MAAO/B,KAAK+B,MACZF,UAAW7B,KAAK6B,UAChBuB,UAAWpD,KAAKoD,UAASC,eACXC,EAAStD,KAAKuD,eAAeC,KAAKxD,MAAO,KAAIyD,eAC7CzD,KAAK0D,eAAeF,KAAKxD,MAAK2D,iBAC5B3D,KAAK4D,iBAAiBJ,KAAKxD,MAAK6D,eAClC7D,KAAK8D,eAAeN,KAAKxD,MAAK+D,cAC/B/D,KAAKgE,cAAcR,KAAKxD,MACrCiE,iBAAkB,OAClBC,gBAAiBlE,KAAKkE,gBACtBC,eAAgBnE,KAAKmE,eACrBC,SAAU,CAACpE,KAAKI,UAAWJ,KAAKoE,UAAUC,KAAK,KAC/CC,aAActE,KAAKe,KAAKC,QAAUhB,KAAKuE,QACvCC,IAAKC,GAAOzE,KAAK0E,SAAWD,GAE5BhC,EAAA,OAAA,CAAMkC,KAAK,aAAa9B,KAAK,gBAE9BJ,EAAA,KAAA,CAAIE,MAAOlC,EAAsBM,KAC7BoC,KAAM,UACNyB,GAAI5E,KAAKI,UACToE,IAAKC,GAAOzE,KAAKmB,QAAUsD,GAC7BzE,KAAKuE,SAAWvE,KAAKe,KAAKC,SAAW,GAAKhB,KAAKgC,aAAe,OAAShC,KAAK+B,MAAMf,OAAS,GAAKhB,KAAK6E,aACrGpC,EAAA,KAAA,CAAIE,MAAOlC,EAAsBqE,OAC/B9E,KAAK6E,cAEJ,KACH7E,KAAKuE,SAAWvE,KAAKgC,aAAe,MAAQhC,KAAK+B,MAAMf,OAAS,EAChEyB,EAAA,KAAA,CAAIE,MAAOlC,EAAsBsE,SAChCtC,EAAA,WAAA,CAAUI,KAAK,SAASF,MAAM,uBAC7B3C,KAAKgF,gBAEJ,KACHhF,KAAKe,KAAKkE,KAAI,CAAC/E,EAAMgF,KACrB,MAAMC,EAAanF,KAAKY,eAAiBsE,EACzC,OACCzC,EAAA,KAAA,CACCE,MAAOlC,EAAsBP,KAC7BkF,UAAWpF,KAAKC,iBAAiBC,EAAMiF,GACvChC,KAAM,SAAQkC,gBACCH,EACfI,SAAUH,EAAa,GAAK,EAACI,eACfvF,KAAKe,KAAKC,OACxBwE,QAAS,IAAMxF,KAAKyF,gBAAgBP,GAAMQ,gBAC3BC,EAAWR,UASzBrF,eAAe8F,GACtB5F,KAAKuE,QAAU,KACfvE,KAAKY,cAAgB,EACrB,IAAKZ,KAAK+B,OAAS/B,KAAK6B,YAAc,IAAM7B,KAAKiC,eAAgB,CAChEjC,KAAK6F,WAEND,EAAEE,kBACF9F,KAAK+F,SAASC,KAAK,CAClBC,cAAeL,EACfM,UAAWzF,EAAsBC,KACjCqB,MAAO/B,KAAK+B,MACZV,SAAU,OAIJvB,cAAc8F,GACrB5F,KAAKuE,QAAU,MACf4B,YAAW,IAAOnG,KAAKe,KAAO,IAAK,KACnCf,KAAKY,cAAgB,EACrBgF,EAAEE,kBACF9F,KAAKoG,QAAQJ,KAAK,CACjBC,cAAeL,EACfM,UAAWzF,EAAsBC,KACjCqB,MAAO/B,KAAK+B,MACZV,SAAU,OAIJvB,eAAe8F,GACtB5F,KAAK+B,MAAS6D,EAAES,OAAmCtE,MACnD6D,EAAEE,kBACF9F,KAAKsG,SAASN,KAAK,CAClBC,cAAeL,EACfM,UAAWzF,EAAsBC,KACjCqB,MAAO/B,KAAK+B,MACZV,SAAU,OAEXrB,KAAK6F,WAGE/F,gBAAgBoF,GAAS,GAChC,IAAI7D,EAA8C,KAClD,GAAI6D,GAAS,EAAG,CACf7D,EAAWrB,KAAKe,KAAKmE,QACf,GAAIqB,EAAIvG,KAAKY,aAAcZ,KAAKe,MAAO,CAC7CM,EAAWrB,KAAKe,KAAKf,KAAKY,cAE3B,GAAIS,EAAU,CACbrB,KAAKwG,UAAUR,KAAK,CACnBE,UAAWzF,EAAsBC,KACjCqB,MAAO/B,KAAK+B,MACZV,SAAUA,IAEXrB,KAAKe,KAAO,GACZ,GAAIwF,EAAIvG,KAAKG,QAASkB,WAAoBA,EAASrB,KAAKG,WAAa,SAAU,CAC9EH,KAAK+B,MAAQV,EAASrB,KAAKG,WAKtBL,eAAe8F,GACtB,MAAMa,EAASb,EAAEc,OAA0BT,cAC3CL,EAAEE,kBACF,GAAIW,EAAME,UAAY,GAAI3G,KAAK4G,iBAC1B,GAAIH,EAAME,UAAY,GAAI3G,KAAK6G,mBAC/B,GAAIJ,EAAME,UAAY,GAAI,CAC9Bf,EAAEkB,iBACF9G,KAAKyF,mBAIC3F,iBAAiB8F,GACxB,MAAMa,EAASb,EAAEc,OAA0BT,cAC3CL,EAAEE,kBACF,GAAIW,EAAME,UAAY,GAAI,CACzBf,EAAEkB,kBAQJhH,eAAeiH,GACd,OAAO/G,KAAK0E,SAASsC,MAAMD,GAO5BjH,iBAAiBiH,GAChB/G,KAAKe,KAAOkG,MAAMC,QAAQH,GAAWA,EAAU,GAC/C/G,KAAKY,cAAgB,EACrBZ,KAAKgC,WAAa,MAOnBlC,mBACCE,KAAK+B,MAAQ,GACb/B,KAAK0E,SAAS3C,MAAQ,SAEhB/B,KAAK0E,SAASyC,aAOrBrH,oBAAoBsH,GACnBpH,KAAKgC,WAAaoF,EAOnBtH,wBAAwBuH,GACvBrH,KAAKiC,eAAiBoF,EAQvBvH,0BAA0BuH,GACzBrH,KAAKC,iBAAmBoH","sourcesContent":["$class: \".gov-form-autocomplete\";\n\n#{$class} {\n\t@include base();\n\t&__list {\n\t\t@include typography($font-size-s);\n\t\t@extend %reset-ul;\n\t\tposition: absolute;\n\t\ttop: 100%;\n\t\tright: 0;\n\t\tleft: 0;\n\t\tz-index: 5;\n\t\tmax-height: rem-calc(225);\n\t\tmargin-top: rem-calc(8);\n\t\tborder: $form-autocomplete-border;\n\t\tborder-radius: $border-radius;\n\t\tbackground: $form-autocomplete-bg;\n\t\toverflow-x: hidden;\n\t\toverflow-y: auto;\n\t\toverscroll-behavior: none;\n\t}\n\t&__list > &__item {\n\t\t@extend %reset-ul-li;\n\t\tpadding: rem-calc(12 8);\n\t\tcursor: pointer;\n\t}\n\t&__item {\n\t\t&--empty,\n\t\t&--loading {\n\t\t\tpadding: rem-calc(12 8);\n\t\t\tcolor: $form-autocomplete-item-disable-color;\n\t\t\t& .gov-icon {\n\t\t\t\theight: 12px;\n\t\t\t}\n\t\t}\n\t}\n\n\t// STATES\n\t&__list:empty {\n\t\tdisplay: none;\n\t}\n\n\t// HOVERS\n\t&__item {\n\t\t@include parameter(\"aria-selected\") {\n\t\t\tbackground: $form-autocomplete-item-select-bg;\n\t\t}\n\t\t@include hover() {\n\t\t\tbackground: $form-autocomplete-item-hover-bg;\n\t\t}\n\t}\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State, Watch } from \"@stencil/core\"\nimport { toBoolAttr } from \"../../../helpers/Dom/template\"\nimport { validateProp } from \"../../../helpers/Validate/props\"\nimport { Nullable } from \"../../../types/interfaces\"\nimport { createID } from \"../../../utils/string.utils\"\nimport { delay, has, throttle } from \"../../../utils/utils\"\nimport { FormInputEvent } from \"../input/gov-form-input.types\"\nimport {\n\tFormAutocompleteClass,\n\tFormAutocompleteSizes,\n\tFormAutocompleteVariants,\n\tSizesType,\n\tVariantType,\n} from \"./constants\"\nimport { FormAutocompleteEvent, GovFormAutocompleteItem } from \"./gov-form-autocomplete.types\"\n\n@Component({\n\ttag: \"gov-form-autocomplete\",\n\tstyleUrl: \"gov-form-autocomplete.scss\",\n})\nexport class GovFormAutocomplete {\n\tprivate inputRef?: HTMLGovFormInputElement\n\tprivate listRef?: HTMLUListElement\n\tprivate readonly listBoxId: string\n\tprivate searchCallback: (value: string) => Promise<GovFormAutocompleteItem[]>\n\tprivate templateResolver: (item: GovFormAutocompleteItem, selected: boolean) => string = item => item[this.nameKey]\n\n\tconstructor() {\n\t\tthis.listBoxId = createID(\"GovListBox\")\n\t}\n\n\t@Element() host: HTMLGovFormInputElement\n\t/**\n\t * Value of input\n\t */\n\t@Prop({ reflect: true, mutable: true }) value = \"\"\n\t/**\n\t * Custom input identifier.\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Style variation of the form input.\n\t */\n\t@Prop() readonly variant?: VariantType\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 * Input’s size.\n\t */\n\t@Prop() readonly size?: SizesType = \"m\"\n\t/**\n\t * Main key name in the object\n\t */\n\t@Prop() readonly nameKey: string = \"name\"\n\t/**\n\t * Name of the input.\n\t */\n\t@Prop() readonly name: string\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 input 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\n\t/**\n\t * Text that appears in the form control when it has no value set\n\t */\n\t@Prop() readonly placeholder: string\n\t/**\n\t * The value is not editable\n\t */\n\t@Prop() readonly readonly: boolean\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 * Minimum length (number of characters) of value\n\t */\n\t@Prop() readonly minlength: number = 2\n\t/**\n\t * Maximum length (number of characters) of value\n\t */\n\t@Prop() readonly maxlength: number\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 * Same as original parameter\n\t * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-owns\n\t */\n\t@Prop({ attribute: \"wcag-owns\" }) readonly wcagOwns: string\n\t/**\n\t * Emitted when the input has focus.\n\t */\n\t@Event({ eventName: \"gov-focus\" }) govFocus: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input loses focus.\n\t */\n\t@Event({ eventName: \"gov-blur\" }) govBlur: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: \"gov-input\" }) govInput: EventEmitter<FormAutocompleteEvent>\n\t/**\n\t * Emitted when the input change value.\n\t */\n\t@Event({ eventName: \"gov-select\" }) govSelect: EventEmitter<FormAutocompleteEvent>\n\t@State() focused: boolean\n\t@State() processing = false\n\t@State() arrowCounter = -1\n\t@State() list: GovFormAutocompleteItem[] = []\n\n\t@Watch(\"variant\")\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteVariants, newValue, FormAutocompleteClass.root)\n\t}\n\n\t@Watch(\"size\")\n\tvalidateSize(newValue: string): void {\n\t\tvalidateProp(FormAutocompleteSizes, newValue, FormAutocompleteClass.root)\n\t}\n\n\tprivate onArrowUp() {\n\t\tif (this.arrowCounter > 0) {\n\t\t\tthis.arrowCounter = this.arrowCounter - 1\n\t\t\tthis.moveToView().finally()\n\t\t}\n\t}\n\n\tprivate onArrowDown() {\n\t\tif (this.arrowCounter < this.list.length - 1) {\n\t\t\tthis.arrowCounter = this.arrowCounter + 1\n\t\t\tthis.moveToView().finally()\n\t\t}\n\t}\n\n\tprivate async moveToView() {\n\t\tawait delay(200)\n\t\tconst heightOfList = this.listRef.offsetHeight\n\t\tconst selected = this.listRef.querySelector(\"li[aria-selected=\\\"true\\\"]\") as HTMLUListElement\n\t\tif (selected && heightOfList) {\n\t\t\tconst offsetTop = selected.offsetTop\n\t\t\tthis.listRef.scrollTo({ top: offsetTop, behavior: \"smooth\" })\n\t\t}\n\t}\n\n\tprivate doSearch() {\n\t\tif (Number.isInteger(this.minlength) && String(this.value).length <= this.minlength && this.minlength) {\n\t\t\tthis.list = []\n\t\t\tthis.arrowCounter = -1\n\t\t\tthis.processing = false\n\t\t\treturn\n\t\t}\n\t\tif (this.searchCallback) {\n\t\t\tthis.processing = true\n\t\t\tthis.searchCallback(this.value)\n\t\t\t\t.then(response => (this.list = response))\n\t\t\t\t.catch(() => (this.list = []))\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.arrowCounter = -1\n\t\t\t\t\tthis.processing = false\n\t\t\t\t})\n\t\t}\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.validateVariant(this.variant)\n\t\tthis.validateSize(this.size)\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class={FormAutocompleteClass.root} size={this.size} variant={this.variant}>\n\t\t\t\t<gov-form-input\n\t\t\t\t\tplaceholder={this.placeholder}\n\t\t\t\t\tname={this.name}\n\t\t\t\t\tdisabled={this.disabled}\n\t\t\t\t\treadonly={this.readonly}\n\t\t\t\t\tautocomplete={false}\n\t\t\t\t\tsize={this.size}\n\t\t\t\t\tvariant={this.variant}\n\t\t\t\t\trequired={this.required}\n\t\t\t\t\tinvalid={this.invalid}\n\t\t\t\t\trole={\"searchbox\"}\n\t\t\t\t\tvalue={this.value}\n\t\t\t\t\tminlength={this.minlength}\n\t\t\t\t\tmaxlength={this.maxlength}\n\t\t\t\t\ton-gov-input={throttle(this.onInputHandler.bind(this), 200)}\n\t\t\t\t\ton-gov-keyup={this.onKeyUpHandler.bind(this)}\n\t\t\t\t\ton-gov-keydown={this.onKeyDownHandler.bind(this)}\n\t\t\t\t\ton-gov-focus={this.onFocusHandler.bind(this)}\n\t\t\t\t\ton-gov-blur={this.onBlurHandler.bind(this)}\n\t\t\t\t\twcagAutocomplete={\"list\"}\n\t\t\t\t\twcagDescribedBy={this.wcagDescribedBy}\n\t\t\t\t\twcagLabelledBy={this.wcagLabelledBy}\n\t\t\t\t\twcagOwns={[this.listBoxId, this.wcagOwns].join(\" \")}\n\t\t\t\t\twcagExpanded={this.list.length && this.focused}\n\t\t\t\t\tref={el => (this.inputRef = el as HTMLGovFormInputElement)}\n\t\t\t\t>\n\t\t\t\t\t<slot slot=\"right-icon\" name=\"right-icon\" />\n\t\t\t\t</gov-form-input>\n\t\t\t\t<ul class={FormAutocompleteClass.list}\n\t\t\t\t role={\"listbox\"}\n\t\t\t\t id={this.listBoxId}\n\t\t\t\t ref={el => (this.listRef = el as HTMLUListElement)}>\n\t\t\t\t\t{this.focused && this.list.length === 0 && this.processing === false && this.value.length > 0 && this.messageEmpty ? (\n\t\t\t\t\t\t<li class={FormAutocompleteClass.empty}>\n\t\t\t\t\t\t\t{this.messageEmpty}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{this.focused && this.processing === true && this.value.length > 0 ? (\n\t\t\t\t\t\t<li class={FormAutocompleteClass.loading}>\n\t\t\t\t\t\t\t<gov-icon name=\"loader\" class=\"gov-spin-animation\"></gov-icon>\n\t\t\t\t\t\t\t{this.messageLoading}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{this.list.map((item, index) => {\n\t\t\t\t\t\tconst isSelected = this.arrowCounter === index\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tclass={FormAutocompleteClass.item}\n\t\t\t\t\t\t\t\tinnerHTML={this.templateResolver(item, isSelected)}\n\t\t\t\t\t\t\t\trole={\"option\"}\n\t\t\t\t\t\t\t\taria-posinset={index}\n\t\t\t\t\t\t\t\ttabindex={isSelected ? 0 : -1}\n\t\t\t\t\t\t\t\taria-setsize={this.list.length}\n\t\t\t\t\t\t\t\tonClick={() => this.onSelectHandler(index)}\n\t\t\t\t\t\t\t\taria-selected={toBoolAttr(isSelected)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t</Host>\n\t\t)\n\t}\n\n\tprivate onFocusHandler(e: FocusEvent) {\n\t\tthis.focused = true\n\t\tthis.arrowCounter = -1\n\t\tif ((this.value || this.minlength === 0) && this.searchCallback) {\n\t\t\tthis.doSearch()\n\t\t}\n\t\te.stopPropagation()\n\t\tthis.govFocus.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t}\n\n\tprivate onBlurHandler(e: FocusEvent) {\n\t\tthis.focused = false\n\t\tsetTimeout(() => (this.list = []), 200)\n\t\tthis.arrowCounter = -1\n\t\te.stopPropagation()\n\t\tthis.govBlur.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t}\n\n\tprivate onInputHandler(e: InputEvent) {\n\t\tthis.value = (e.target as HTMLGovFormInputElement).value\n\t\te.stopPropagation()\n\t\tthis.govInput.emit({\n\t\t\toriginalEvent: e,\n\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\tvalue: this.value,\n\t\t\tselected: null,\n\t\t})\n\t\tthis.doSearch()\n\t}\n\n\tprivate onSelectHandler(index = -1) {\n\t\tlet selected: Nullable<GovFormAutocompleteItem> = null\n\t\tif (index > -1) {\n\t\t\tselected = this.list[index]\n\t\t} else if (has(this.arrowCounter, this.list)) {\n\t\t\tselected = this.list[this.arrowCounter]\n\t\t}\n\t\tif (selected) {\n\t\t\tthis.govSelect.emit({\n\t\t\t\tcomponent: FormAutocompleteClass.root,\n\t\t\t\tvalue: this.value,\n\t\t\t\tselected: selected,\n\t\t\t})\n\t\t\tthis.list = []\n\t\t\tif (has(this.nameKey, selected) && typeof selected[this.nameKey] === \"string\") {\n\t\t\t\tthis.value = selected[this.nameKey]\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate onKeyUpHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tif (event.keyCode === 38) this.onArrowUp()\n\t\telse if (event.keyCode === 40) this.onArrowDown()\n\t\telse if (event.keyCode === 13) {\n\t\t\te.preventDefault()\n\t\t\tthis.onSelectHandler()\n\t\t}\n\t}\n\n\tprivate onKeyDownHandler(e: CustomEvent) {\n\t\tconst event = (e.detail as FormInputEvent).originalEvent as KeyboardEvent\n\t\te.stopPropagation()\n\t\tif (event.keyCode === 13) {\n\t\t\te.preventDefault()\n\t\t}\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.inputRef.focus(options)\n\t}\n\n\t/**\n\t * Set options for list\n\t */\n\t@Method()\n\tasync setOptions(options: GovFormAutocompleteItem[]): Promise<void> {\n\t\tthis.list = Array.isArray(options) ? options : []\n\t\tthis.arrowCounter = -1\n\t\tthis.processing = false\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync clearValue(): Promise<void> {\n\t\tthis.value = \"\"\n\t\tthis.inputRef.value = \"\"\n\n\t\tawait this.inputRef.clearValue()\n\t}\n\n\t/**\n\t * Clears whisperer value\n\t */\n\t@Method()\n\tasync setProcessing(status: boolean): Promise<void> {\n\t\tthis.processing = status\n\t}\n\n\t/**\n\t * Set a custom asynchronous function for the whisperer\n\t */\n\t@Method()\n\tasync setSearchCallback(callback: (value: string) => Promise<any>) {\n\t\tthis.searchCallback = callback\n\t}\n\n\t/**\n\t * Setting a custom whisper result template\n\t * @param callback\n\t */\n\t@Method()\n\tasync setTemplateResolver(callback: (item: GovFormAutocompleteItem) => string) {\n\t\tthis.templateResolver = callback\n\t}\n}\n"]}